Toggle navigation
Toggle navigation
This project
Loading...
Sign in
zyn
/
cjs-site
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
bruce
2019-05-22 18:03:40 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
03a5f3588f86681f6350a4c57b0d639656e7fe02
03a5f358
1 parent
19c349d9
仓管费
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
356 additions
and
67 deletions
src/main/java/com/cjs/site/action/user/fund/PickPayAction.java
src/main/java/com/cjs/site/action/user/pick/PickAction.java
src/main/java/com/cjs/site/biz/user/pick/PickBiz.java
src/main/java/com/cjs/site/biz/user/pick/PickPayBiz.java
src/main/java/com/cjs/site/util/union/UnionPayUtil.java
src/main/resources/mybatis/user/pick/out-prop-apply-pay-mapper.xml
src/main/java/com/cjs/site/action/user/fund/PickPayAction.java
View file @
03a5f35
...
...
@@ -2,8 +2,10 @@ package com.cjs.site.action.user.fund;
import
com.cjs.site.biz.user.pick.PickPayBiz
;
import
com.cjs.site.util.lang.JsonUtil
;
import
com.cjs.site.util.union.UnionPayUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.ResponseBody
;
...
...
@@ -31,8 +33,19 @@ public class PickPayAction {
//支付通知
@RequestMapping
(
value
=
"notify"
,
method
=
RequestMethod
.
POST
)
public
String
notify
(
Map
<
String
,
String
>
params
)
{
System
.
out
.
println
(
"map----params参数"
+
JsonUtil
.
toJson
(
params
));
@ResponseBody
public
String
notify
(
HttpServletRequest
request
)
{
Map
<
String
,
String
>
params
=
UnionPayUtil
.
getRequestParams
(
request
);
System
.
out
.
println
(
"银联支付推送回调参数:"
+
JsonUtil
.
toJson
(
params
));
if
(
pickPayBiz
.
isValidNotify
(
params
)){
return
"SUCCESS"
;
}
return
"ERROR"
;
}
@RequestMapping
(
value
=
"test"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
public
String
notify
(
@RequestBody
Map
<
String
,
String
>
params
)
{
if
(
pickPayBiz
.
isValidNotify
(
params
)){
return
"SUCCESS"
;
}
...
...
src/main/java/com/cjs/site/action/user/pick/PickAction.java
View file @
03a5f35
...
...
@@ -102,7 +102,7 @@ public class PickAction {
@RequestMapping
(
"self"
)
public
String
selfPick
(
OutpropApplyPickInfo
pickInfo
,
Model
model
,
RedirectAttributes
attributes
,
HttpSession
session
)
{
ResultInfo
resultInfo
=
pickBiz
.
selfPick
New
(
pickInfo
);
ResultInfo
resultInfo
=
pickBiz
.
selfPick
(
pickInfo
);
session
.
setAttribute
(
"pickInfo"
,
pickInfo
);
this
.
putApplys
(
resultInfo
,
pickInfo
,
"2"
,
model
,
attributes
);
if
(
resultInfo
.
getCode
()
==
0
)
{
...
...
@@ -151,7 +151,7 @@ public class PickAction {
public
String
zhaoonlinePick
(
OutpropApplyPickInfo
pickInfo
,
Model
model
,
RedirectAttributes
attributes
,
HttpSession
session
)
{
session
.
setAttribute
(
"pickInfo"
,
pickInfo
);
ResultInfo
resultInfo
=
pickBiz
.
zhaoonlinePick
New
(
pickInfo
);
ResultInfo
resultInfo
=
pickBiz
.
zhaoonlinePick
(
pickInfo
);
this
.
putApplys
(
resultInfo
,
pickInfo
,
"1"
,
model
,
attributes
);
if
(
resultInfo
.
getCode
()
==
0
)
{
...
...
src/main/java/com/cjs/site/biz/user/pick/PickBiz.java
View file @
03a5f35
package
com
.
cjs
.
site
.
biz
.
user
.
pick
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpSession
;
import
com.cjs.site.dao.user.pick.*
;
import
com.cjs.site.util.lang.StringUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.stereotype.Service
;
import
com.cjs.site.biz.ServiceException
;
import
com.cjs.site.biz.pub.ZhaoonlineBiz
;
import
com.cjs.site.biz.user.fund.FundBiz
;
import
com.cjs.site.dao.pub.OtcExchangeDateDao
;
import
com.cjs.site.dao.user.account.ClientInfoDao
;
import
com.cjs.site.dao.user.account.UserAddressDao
;
import
com.cjs.site.dao.user.pick.*
;
import
com.cjs.site.model.pub.ConstInfo
;
import
com.cjs.site.model.pub.ResultInfo
;
import
com.cjs.site.model.user.account.ClientInfo
;
import
com.cjs.site.model.user.account.UserAddressInfo
;
import
com.cjs.site.model.user.account.UserInfo
;
import
com.cjs.site.model.user.pick.InventoryInfo
;
import
com.cjs.site.model.user.pick.OutpropApplyInfo
;
import
com.cjs.site.model.user.pick.OutpropApplyPickInfo
;
import
com.cjs.site.model.user.pick.PickPackageInfo
;
import
com.cjs.site.model.user.pick.WarehouseInfo
;
import
com.cjs.site.model.user.pick.*
;
import
com.cjs.site.util.lang.DateEnum
;
import
com.cjs.site.util.lang.DateUtil
;
import
com.cjs.site.util.redis.JedisTemplate
;
import
com.cjs.site.util.t2.T2Result
;
import
com.cjs.site.util.t2.T2Util
;
import
com.cjs.site.util.web.ActionUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.TransactionDefinition
;
import
org.springframework.transaction.TransactionStatus
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
org.springframework.transaction.support.DefaultTransactionDefinition
;
import
javax.servlet.http.HttpSession
;
import
java.util.*
;
/**
* 提货
*
...
...
@@ -105,8 +92,21 @@ public class PickBiz {
return
amount
;
}
public
ResultInfo
selfPickNew
(
OutpropApplyPickInfo
pickInfo
){
/**
* 自提
*/
@SuppressWarnings
(
"unchecked"
)
public
ResultInfo
selfPick
(
OutpropApplyPickInfo
pickInfo
)
{
//提货方式(0:本人自提;1:委托自提;2:物流;3:转赵涌在线;4:网点自提;5:网点委托)
String
pickType
=
StringUtils
.
isBlank
(
pickInfo
.
getDelegateName
())
?
"0"
:
"1"
;
String
pickDate
=
pickInfo
.
getPickDate
();
String
warehousePickDate
=
pickInfo
.
getPickDate
();
OutpropApplyInfo
applyInfo
=
new
OutpropApplyInfo
();
ClientInfo
clientInfo
=
clientInfoDao
.
queryByClientId
(
ActionUtil
.
getUser
().
getUserId
());
ResultInfo
resultInfo
=
null
;
String
warehouseCode
=
pickInfo
.
getWarehouseCode
();
HttpSession
session
=
ActionUtil
.
getRequest
().
getSession
();
if
(
"1"
.
equals
(
pickType
))
{
if
(
StringUtils
.
isBlank
(
pickInfo
.
getDelegateId
()))
{
return
new
ResultInfo
(
0
,
"委托人证件号码不能为空"
);
...
...
@@ -114,28 +114,69 @@ public class PickBiz {
if
(
StringUtils
.
isBlank
(
pickInfo
.
getDelegateName
()))
{
return
new
ResultInfo
(
0
,
"委托人姓名不能为空"
);
}
applyInfo
.
setPickingName
(
pickInfo
.
getDelegateName
());
applyInfo
.
setIdNo
(
pickInfo
.
getDelegateId
());
}
else
{
applyInfo
.
setPickingName
(
clientInfo
.
getClientName
());
}
/* resultInfo = this.checkPickTime(9, 16);
if (resultInfo.getCode() == 0) {
return resultInfo;
}*/
if
(
StringUtils
.
isNotBlank
(
warehouseCode
))
{
WarehouseInfo
warehouse
=
warehouseDao
.
queryByCode
(
warehouseCode
);
//Integer startHour = warehouseBiz.getHour(warehouse.getBusinessStartTime());
//Integer endHour = warehouseBiz.getHour(warehouse.getBusinessEndTime());
String
pickAddress
=
warehouse
.
getProvince
()
+
warehouse
.
getCity
()
+
warehouse
.
getArea
()
+
warehouse
.
getAddress
();
warehouse
=
warehouseBiz
.
parseWarehouseTime
(
warehouse
);
warehousePickDate
+=
" "
+
warehouse
.
getBusinessStartTime
();
warehousePickDate
+=
"-"
+
warehouse
.
getBusinessEndTime
();
//resultInfo = this.checkPickTime(startHour, endHour);
applyInfo
.
setPickingAddress
(
pickAddress
);
pickType
=
StringUtils
.
isBlank
(
pickInfo
.
getDelegateName
())
?
"4"
:
"5"
;
}
String
pickDate
=
pickInfo
.
getPickDate
();
if
(
StringUtils
.
isBlank
(
pickDate
))
{
return
new
ResultInfo
(
0
,
"提货日期不能为空"
);
}
return
new
ResultInfo
(-
1
,
""
);
pickDate
=
this
.
createPickDate
(
pickDate
);
pickInfo
.
setPickDate
(
pickDate
);
pickInfo
.
setPickType
(
pickType
);
pickInfo
.
setInsurance
(
0
);
//提货详细信息
applyInfo
.
setPickType
(
"01"
);
applyInfo
.
setPhoneCode
(
clientInfo
.
getMobileTel
());
resultInfo
=
this
.
pick
(
pickInfo
,
applyInfo
);
if
(
resultInfo
.
getCode
()
!=
0
)
{
if
(
StringUtils
.
isBlank
(
warehouseCode
))
{
warehousePickDate
+=
" 9:00-16:00"
;
}
else
{
List
<
OutpropApplyInfo
>
applyList
=
(
List
<
OutpropApplyInfo
>)
session
.
getAttribute
(
"applyList"
);
this
.
updateInventory
(
applyList
,
warehouseCode
);
}
pickInfo
.
setPickDate
(
warehousePickDate
);
if
(
"0"
.
equals
(
pickInfo
.
getPickType
())
||
"4"
.
equals
(
pickInfo
.
getPickType
()))
{
pickInfo
.
setPickType
(
"本人自提"
);
}
else
{
pickInfo
.
setPickType
(
"委托自提"
);
}
}
return
resultInfo
;
}
/**
* 自提
*/
@SuppressWarnings
(
"unchecked"
)
public
ResultInfo
selfPick
(
OutpropApplyPickInfo
pickInfo
)
{
public
ResultInfo
selfPick
New
(
OutpropApplyPickInfo
pickInfo
)
{
//提货方式(0:本人自提;1:委托自提;2:物流;3:转赵涌在线;4:网点自提;5:网点委托)
String
pickType
=
StringUtils
.
isBlank
(
pickInfo
.
getDelegateName
())
?
"0"
:
"1"
;
String
pickDate
=
pickInfo
.
getPickDate
();
String
warehousePickDate
=
pickInfo
.
getPickDate
();
OutpropApplyInfo
applyInfo
=
new
OutpropApplyInfo
();
ClientInfo
clientInfo
=
clientInfoDao
.
queryByClientId
(
ActionUtil
.
getUser
().
getUser
Id
());
ClientInfo
clientInfo
=
clientInfoDao
.
queryByClientId
(
pickInfo
.
getClient
Id
());
ResultInfo
resultInfo
=
null
;
String
warehouseCode
=
pickInfo
.
getWarehouseCode
();
HttpSession
session
=
ActionUtil
.
getRequest
().
getSession
();
if
(
"1"
.
equals
(
pickType
))
{
if
(
StringUtils
.
isBlank
(
pickInfo
.
getDelegateId
()))
{
...
...
@@ -182,8 +223,8 @@ public class PickBiz {
if
(
StringUtils
.
isBlank
(
warehouseCode
))
{
warehousePickDate
+=
" 9:00-16:00"
;
}
else
{
List
<
OutpropApplyInfo
>
applyList
=
(
List
<
OutpropApplyInfo
>)
session
.
getAttribute
(
"applyList"
);
List
<
PickPackInfo
>
list
=
pickPackDao
.
queryUserPosition
(
pickInfo
.
getClientId
());
List
<
OutpropApplyInfo
>
applyList
=
getList
(
list
);
this
.
updateInventory
(
applyList
,
warehouseCode
);
}
pickInfo
.
setPickDate
(
warehousePickDate
);
...
...
@@ -219,11 +260,10 @@ public class PickBiz {
def
.
setPropagationBehavior
(
TransactionDefinition
.
PROPAGATION_REQUIRED
);
TransactionStatus
status
=
transactionManager
.
getTransaction
(
def
);
try
{
HttpSession
session
=
ActionUtil
.
getRequest
().
getSession
();
UserAddressInfo
addressInfo
=
userAddressDao
.
queryById
(
addressId
);
OutpropApplyInfo
applyInfo
=
new
OutpropApplyInfo
();
String
pickDate
=
this
.
createPickDate
(
""
);
String
pack
=
(
String
)
session
.
getAttribute
(
"pack"
);
//0:普通自提;1:封装自提
String
pack
=
pickInfo
.
getCreateTime
(
);
//0:普通自提;1:封装自提
if
(
addressInfo
==
null
)
{
return
new
ResultInfo
(
0
,
"收货地址不存在"
);
...
...
@@ -258,6 +298,63 @@ public class PickBiz {
return
resultInfo
;
}
public
ResultInfo
expressPickNew
(
OutpropApplyPickInfo
pickInfo
)
{
// ResultInfo resultInfo = this.checkPickTime(9, 16);
/* if (resultInfo.getCode() == 0) {
return resultInfo;
}*/
ResultInfo
resultInfo
;
if
(
pickInfo
.
getInsuranceType
()
==
null
)
{
return
new
ResultInfo
(
0
,
"请选择投保方式"
);
}
if
(
pickInfo
.
getInsuranceType
()
==
1
)
{
if
(
pickInfo
.
getInsurance
()
==
null
||
pickInfo
.
getInsurance
()
<
1000
)
{
return
new
ResultInfo
(
0
,
"投保金额不能低于1000元"
);
}
}
DefaultTransactionDefinition
def
=
new
DefaultTransactionDefinition
();
def
.
setPropagationBehavior
(
TransactionDefinition
.
PROPAGATION_REQUIRED
);
TransactionStatus
status
=
transactionManager
.
getTransaction
(
def
);
try
{
UserAddressInfo
addressInfo
=
userAddressDao
.
queryById
(
Integer
.
parseInt
(
pickInfo
.
getCreateDate
()));
OutpropApplyInfo
applyInfo
=
new
OutpropApplyInfo
();
String
pickDate
=
this
.
createPickDate
(
""
);
String
pack
=
pickInfo
.
getCreateTime
();
//0:普通自提;1:封装自提
if
(
addressInfo
==
null
)
{
return
new
ResultInfo
(
0
,
"收货地址不存在"
);
}
//提货详细信息
applyInfo
.
setPickType
(
"02"
);
applyInfo
.
setPhoneCode
(
addressInfo
.
getMobileNo
());
applyInfo
.
setExpressAddress
(
addressInfo
.
getAddress
());
applyInfo
.
setPickingName
(
addressInfo
.
getUserName
());
pickInfo
.
setPickType
(
"2"
);
pickInfo
.
setPickDate
(
pickDate
);
//普通自提时检查是否需要合并取货单
if
(
"0"
.
equals
(
pack
))
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"pickingName"
,
addressInfo
.
getUserName
());
params
.
put
(
"expressAddress"
,
addressInfo
.
getAddress
());
params
.
put
(
"phoneCode"
,
addressInfo
.
getMobileNo
());
params
.
put
(
"initDate"
,
DateUtil
.
getNow
(
DateEnum
.
UNSIGNED_DATE
));
List
<
OutpropApplyInfo
>
beforeApplys
=
outpropApplyDao
.
search
(
params
);
if
(!
beforeApplys
.
isEmpty
())
{
pickInfo
.
setPickNo
(
beforeApplys
.
get
(
0
).
getOpStation
());
pickInfo
.
setMerge
(
true
);
}
}
resultInfo
=
this
.
pickNew
(
pickInfo
,
applyInfo
);
transactionManager
.
commit
(
status
);
}
catch
(
Exception
e
){
transactionManager
.
rollback
(
status
);
return
new
ResultInfo
(
0
,
"数据异常,请联系客服!"
);
}
return
resultInfo
;
}
public
ResultInfo
zhaoonlinePickNew
(
OutpropApplyPickInfo
pickInfo
){
try
{
zhaoonlineBiz
.
checkZhaoonlineId
(
pickInfo
.
getZhaoonlineId
());
...
...
@@ -396,6 +493,103 @@ public class PickBiz {
return
resultInfo
;
}
@SuppressWarnings
(
"unchecked"
)
public
ResultInfo
pickNew
(
OutpropApplyPickInfo
pickInfo
,
OutpropApplyInfo
applyInfo
)
{
UserInfo
user
=
new
UserInfo
();
user
.
setClient_id
(
pickInfo
.
getClientId
());
List
<
PickPackInfo
>
list
=
pickPackDao
.
queryUserPosition
(
pickInfo
.
getClientId
());
List
<
OutpropApplyInfo
>
applyList
=
getList
(
list
);
Map
<
String
,
T2Result
>
resultMap
=
new
HashMap
<
String
,
T2Result
>();
Integer
pickAmount
=
0
;
ResultInfo
resultInfo
=
this
.
validNew
(
applyList
,
pickInfo
,
user
);
String
pickNo
=
pickInfo
.
getPickNo
();
int
successAmount
=
0
;
String
pack
=
pickInfo
.
getCreateTime
();
//0:普通自提;1:封装自提
if
(
resultInfo
.
getCode
()
==
0
)
{
return
resultInfo
;
}
if
(!
pickInfo
.
isMerge
())
{
pickNo
=
this
.
createPickNo
();
}
applyInfo
.
setOpStation
(
pickNo
);
for
(
OutpropApplyInfo
apply
:
applyList
)
{
apply
.
setOpStation
(
pickNo
);
applyInfo
.
setOtcCode
(
apply
.
getOtcCode
());
applyInfo
.
setOtcName
(
apply
.
getOtcName
());
applyInfo
.
setOccurAmount
(
apply
.
getOccurAmount
());
applyInfo
.
setPickingDate
(
pickInfo
.
getPickDate
());
T2Result
t2Result
=
pickServiceSelf
(
user
,
applyInfo
);
apply
.
setResultCode
(
t2Result
.
getCode
());
resultMap
.
put
(
apply
.
getOtcCode
(),
t2Result
);
pickAmount
+=
apply
.
getOccurAmount
();
applyInfo
.
setOpStation
(
pickNo
);
pickPackDao
.
insertPick
(
this
.
compent
(
applyInfo
));
if
(
t2Result
.
getCode
()
==
0
)
{
successAmount
++;
//修改提货封装费用
if
(
"1"
.
equals
(
pack
))
{
outpropApplyDao
.
updateApply
(
apply
);
}
}
}
if
(
successAmount
>
0
)
{
pickInfo
.
setClientId
(
user
.
getClient_id
());
pickInfo
.
setPickNo
(
pickNo
);
pickInfo
.
setPickAmount
(
pickAmount
);
pickInfo
.
setCreateDate
(
DateUtil
.
getNow
(
DateEnum
.
UNSIGNED_DATE
));
pickInfo
.
setCreateTime
(
DateUtil
.
getNow
(
DateEnum
.
UNSIGNED_TIME
));
pickInfo
.
setPickDate
(
DateUtil
.
getNow
(
DateEnum
.
UNSIGNED_DATE
));
if
(
pickInfo
.
getInsurance
()
==
null
)
{
pickInfo
.
setInsurance
(
0
);
}
if
(!
pickInfo
.
isMerge
())
{
pickDao
.
save
(
pickInfo
);
}
//提货接口默认记录当前用户身份证号码,所以修改为委托人身份证号码
if
(
StringUtils
.
isNotBlank
(
pickInfo
.
getDelegateId
()))
{
outpropApplyDao
.
updateIdNo
(
applyInfo
);
}
}
resultInfo
=
this
.
pickResult
(
resultMap
,
pickNo
);
if
(
resultInfo
.
getCode
()
==
0
)
{
return
resultInfo
;
}
String
userId
=
pickInfo
.
getClientId
();
Map
<
String
,
Object
>
balance
=
pickPackDao
.
queryUserFundAccount
(
userId
);
//fundBiz.balance(userId);
Double
enableBalance
=
0.00
;
if
(
balance
!=
null
&&
balance
.
get
(
"enable_balance"
)
!=
null
){
enableBalance
=
Double
.
valueOf
(
balance
.
get
(
"enable_balance"
).
toString
());
}
//普通物流提货,收取6元物流包装费
if
(
"0"
.
equals
(
pack
)
&&
"2"
.
equals
(
pickInfo
.
getPickType
()))
{
if
(
pickInfo
.
isMerge
())
{
pickDao
.
mergeOrder
(
pickInfo
);
}
else
{
if
(
enableBalance
>=
6
){
//收取6元物流包装费
T2Result
result
=
this
.
subtractSysFund
(
pickInfo
.
getPickNo
(),
ConstInfo
.
Fund
.
USER_PICK
,
user
.
getClient_id
(),
-
6.0
,
ConstInfo
.
Fund
.
USER_PICK_REMARK
);
log
.
info
(
"收取提货包装费["
+
pickInfo
.
getPickNo
()
+
"]:"
+
result
);
}
}
}
//封装提货,收取费用
if
(
"1"
.
equals
(
pack
))
{
if
(
enableBalance
>=
pickInfo
.
getAmountFee
()){
T2Result
result
=
this
.
subtractSysFund
(
pickInfo
.
getPickNo
(),
ConstInfo
.
Fund
.
USER_PICK
,
user
.
getClient_id
(),
-
pickInfo
.
getAmountFee
(),
ConstInfo
.
Fund
.
USER_PICK_REMARK
);
log
.
info
(
"收取提货包装费["
+
pickInfo
.
getPickNo
()
+
"]:"
+
result
);
}
}
return
resultInfo
;
}
private
Map
<
String
,
Object
>
compent
(
OutpropApplyInfo
apply
){
Map
<
String
,
Object
>
dbPickInfo
=
new
HashMap
<
String
,
Object
>();
dbPickInfo
.
put
(
"initDate"
,
DateUtil
.
getNow
(
DateEnum
.
UNSIGNED_DATE
));
...
...
@@ -515,6 +709,84 @@ public class PickBiz {
return
new
ResultInfo
(
1
,
""
);
}
/**提货数量验证*/
private
ResultInfo
validNew
(
List
<
OutpropApplyInfo
>
applyList
,
OutpropApplyPickInfo
pickInfo
,
UserInfo
user
)
{
if
(
applyList
==
null
||
applyList
.
isEmpty
())
{
return
new
ResultInfo
(
0
,
"提货列表不能为空"
);
}
T2Result
result
=
positionBiz
.
positionSelf
(
user
);
List
<
Map
<
String
,
Object
>>
positions
=
result
.
getData
();
List
<
InventoryInfo
>
inventories
=
new
ArrayList
<
InventoryInfo
>();
String
message
;
if
(
StringUtils
.
isNotBlank
(
pickInfo
.
getWarehouseCode
()))
{
inventoryDao
.
queryByWarehouseCode
(
pickInfo
.
getWarehouseCode
());
}
//验证可提数量
for
(
OutpropApplyInfo
apply
:
applyList
)
{
for
(
Map
<
String
,
Object
>
position
:
positions
)
{
String
otcCode
=
position
.
get
(
"otc_code"
).
toString
();
if
(!
StringUtils
.
equals
(
apply
.
getOtcCode
(),
otcCode
))
{
continue
;
}
Integer
enableAmount
=
Double
.
valueOf
(
position
.
get
(
"enable_amount"
).
toString
())
.
intValue
();
if
(
enableAmount
<
apply
.
getOccurAmount
())
{
message
=
"提货失败:藏品["
+
otcCode
+
"]可用数量为"
+
enableAmount
+
",请重新输入提货数量"
;
return
new
ResultInfo
(
0
,
message
);
}
}
//网点自提
for
(
InventoryInfo
inventory
:
inventories
)
{
if
(!
StringUtils
.
equals
(
apply
.
getOtcCode
(),
inventory
.
getOtcCode
()))
{
continue
;
}
if
(
inventory
.
getUsefulAmount
()
<
apply
.
getOccurAmount
())
{
message
=
"提货失败:藏品["
+
inventory
.
getOtcCode
()
+
"]可用数量为"
+
inventory
.
getUsefulAmount
()
+
",请重新输入提货数量"
;
return
new
ResultInfo
(
0
,
message
);
}
}
}
//验证资金
String
pack
=
pickInfo
.
getCreateTime
();
//0:普通自提;1:封装自提
double
totalFee
=
0
;
String
userId
=
pickInfo
.
getClientId
();
Map
<
String
,
Object
>
balance
=
pickPackDao
.
queryUserFundAccount
(
userId
);
//fundBiz.balance(userId);
Double
enableBalance
=
0.00
;
if
(
balance
!=
null
&&
balance
.
get
(
"enable_balance"
)
!=
null
){
enableBalance
=
Double
.
valueOf
(
balance
.
get
(
"enable_balance"
).
toString
());
}
//封装提货
if
(
"1"
.
equals
(
pack
))
{
Integer
packageId
=
0
;
//todo 封装提货参数待验证
PickPackageInfo
pickPackageInfo
=
pickPackageDao
.
queryById
(
packageId
);
if
(
pickPackageInfo
!=
null
)
{
totalFee
=
pickPackageInfo
.
getPackageFee
();
pickInfo
.
setPackageFee
(
pickPackageInfo
.
getPackageFee
());
pickInfo
.
setPackageType
(
pickPackageInfo
.
getPackageName
());
}
else
{
pickInfo
.
setPackageFee
(
0.0
);
pickInfo
.
setPackageType
(
"无需包装"
);
}
for
(
OutpropApplyInfo
apply
:
applyList
)
{
totalFee
+=
apply
.
getPackFee
()
*
apply
.
getOccurAmount
();
}
}
//物流包装费6元
if
(
"2"
.
equals
(
pickInfo
.
getPickType
()))
{
pickInfo
.
setExpressPackFee
(
6.0
);
totalFee
+=
6
;
}
pickInfo
.
setAmountFee
(
totalFee
);
/* if (enableBalance < totalFee) {
return new ResultInfo(0, "账户可用余额少于" + totalFee + "元,无法支付提货费用");
}*/
return
new
ResultInfo
(
1
,
""
);
}
/**
* 提货接口
* @param user
...
...
@@ -645,4 +917,20 @@ public class PickBiz {
}
}
}
private
List
<
OutpropApplyInfo
>
getList
(
List
<
PickPackInfo
>
list
){
List
<
OutpropApplyInfo
>
applyList
=
new
ArrayList
<
OutpropApplyInfo
>();
for
(
PickPackInfo
item
:
list
){
if
(
item
.
getCurrentAmount
()>
0
){
OutpropApplyInfo
info
=
new
OutpropApplyInfo
();
info
.
setOtcCode
(
item
.
getOtcCode
());
info
.
setOtcName
(
item
.
getOtcName
());
info
.
setOccurAmount
(
item
.
getCurrentAmount
());
info
.
setEnableAmount
(
item
.
getCurrentAmount
());
applyList
.
add
(
info
);
}
}
return
applyList
;
}
}
...
...
src/main/java/com/cjs/site/biz/user/pick/PickPayBiz.java
View file @
03a5f35
...
...
@@ -51,8 +51,10 @@ public class PickPayBiz {
List
<
PickPackInfo
>
applyList
=
pickPackDao
.
queryUserPosition
(
userId
);
int
pickTotal
=
0
;
for
(
PickPackInfo
apply
:
applyList
)
{
if
(
apply
.
getCurrentAmount
()
>
0
)
{
pickTotal
+=
apply
.
getCurrentAmount
();
}
}
// BigDecimal totalAmount = new BigDecimal("0.01").multiply(new BigDecimal(DateUtil.getTrustCycle())).
// multiply(new BigDecimal(pickTotal)).add(new BigDecimal("6"));
BigDecimal
totalAmount
=
new
BigDecimal
(
"0.01"
);
//调试接口代码写死
...
...
@@ -66,6 +68,7 @@ public class PickPayBiz {
createQrCode
.
setBillDate
(
DateUtil
.
getNow
(
DateEnum
.
DATE
));
//此处拼接提货信息
OutpropApplyPickInfo
pickInfo
=
(
OutpropApplyPickInfo
)
session
.
getAttribute
(
"pickInfo"
);
pickInfo
.
setCreateTime
((
String
)
session
.
getAttribute
(
"pack"
));
//将提货方式放入createTime属性里
createQrCode
.
setSrcReserve
(
JsonUtil
.
toJsonRemoveNull
(
pickInfo
));
@SuppressWarnings
(
"unchecked"
)
Map
<
String
,
String
>
mapTypes
=
JsonUtil
.
fromJson
(
JsonUtil
.
toJson
(
createQrCode
),
Map
.
class
);
...
...
@@ -91,20 +94,22 @@ public class PickPayBiz {
def
.
setPropagationBehavior
(
TransactionDefinition
.
PROPAGATION_REQUIRED
);
TransactionStatus
status
=
transactionManager
.
getTransaction
(
def
);
try
{
OutpropApplyPayInfo
info
=
outpropApplyPayDao
.
selectByTradeNo
(
result
.
get
(
"billNo"
));
String
tradeNo
=
result
.
get
(
"billNo"
);
OutpropApplyPayInfo
info
=
outpropApplyPayDao
.
selectByTradeNo
(
tradeNo
);
if
(!
info
.
getStatus
().
equals
(
"2"
))
{
OutpropApplyPayInfo
update
=
new
OutpropApplyPayInfo
();
update
.
setTradeNo
(
result
.
get
(
"srcReserve"
)
);
update
.
setTradeNo
(
tradeNo
);
update
.
setStatus
(
"2"
);
outpropApplyPayDao
.
update
(
update
);
OutpropApplyPickInfo
pickInfo
=
JsonUtil
.
fromJson
(
result
.
get
(
"srcReserve"
),
OutpropApplyPickInfo
.
class
);
pickInfo
.
setClientId
(
info
.
getClientId
());
if
(
"0"
.
equals
(
pickInfo
.
getPickType
())
||
"1"
.
equals
(
pickInfo
.
getPickType
()))
{
pickBiz
.
selfPick
(
pickInfo
);
pickBiz
.
selfPick
New
(
pickInfo
);
}
else
if
(
"2"
.
equals
(
pickInfo
.
getPickType
()))
{
pickBiz
.
expressPick
(
pickInfo
,
Integer
.
parseInt
(
pickInfo
.
getCreateDate
())
);
pickBiz
.
expressPick
New
(
pickInfo
);
}
else
if
(
"3"
.
equals
(
pickInfo
.
getPickType
()))
{
pickBiz
.
zhaoonlinePick
(
pickInfo
);
pickBiz
.
zhaoonlinePick
New
(
pickInfo
);
}
}
transactionManager
.
commit
(
status
);
...
...
src/main/java/com/cjs/site/util/union/UnionPayUtil.java
View file @
03a5f35
package
com
.
cjs
.
site
.
util
.
union
;
import
com.cjs.site.model.union.CreateQrCode
;
import
com.cjs.site.model.union.UnionResponse
;
import
com.cjs.site.util.lang.DateEnum
;
import
com.cjs.site.util.lang.DateUtil
;
import
com.cjs.site.util.lang.JsonUtil
;
...
...
@@ -9,6 +7,7 @@ import org.apache.commons.codec.digest.DigestUtils;
import
org.apache.commons.lang3.RandomStringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.*
;
import
java.net.URL
;
import
java.net.URLConnection
;
...
...
@@ -79,7 +78,7 @@ public class UnionPayUtil {
}
}
/*
public static Map<String, String> getRequestParams(HttpServletRequest request) {
public
static
Map
<
String
,
String
>
getRequestParams
(
HttpServletRequest
request
)
{
Map
<
String
,
String
[]>
params
=
request
.
getParameterMap
();
Map
<
String
,
String
>
params2
=
new
HashMap
<
String
,
String
>();
for
(
String
key
:
params
.
keySet
())
{
...
...
@@ -89,22 +88,6 @@ public class UnionPayUtil {
}
}
return
params2
;
}*/
@SuppressWarnings
(
"unchecked"
)
public
static
void
main
(
String
[]
args
)
{
CreateQrCode
createQrCode
=
new
CreateQrCode
();
createQrCode
.
setQrCodeId
(
getQrCodeId
());
createQrCode
.
setBillNo
(
createQrCode
.
getQrCodeId
());
createQrCode
.
setTotalAmount
(
"1"
);
createQrCode
.
setRequestTimestamp
(
DateUtil
.
getNow
());
createQrCode
.
setBillDate
(
DateUtil
.
getNow
(
DateEnum
.
DATE
));
createQrCode
.
setSrcReserve
(
"201905140001"
);
Map
<
String
,
String
>
mapTypes
=
JsonUtil
.
fromJson
(
JsonUtil
.
toJson
(
createQrCode
),
Map
.
class
);
String
json
=
sendPost
(
UnionConstants
.
CREATE_ORDER
,
mapTypes
);
UnionResponse
response
=
JsonUtil
.
fromJson
(
json
,
UnionResponse
.
class
);
System
.
out
.
println
(
createQrCode
.
getQrCodeId
());
System
.
out
.
println
(
JsonUtil
.
toJson
(
response
));
}
public
static
String
sendPost
(
String
url
,
Map
<
String
,
String
>
data
)
{
...
...
src/main/resources/mybatis/user/pick/out-prop-apply-pay-mapper.xml
View file @
03a5f35
...
...
@@ -30,7 +30,7 @@
</select>
<update
id=
"update"
parameterType=
"OutpropApplyPayInfo"
>
UPDATE HS_ASSET.OUTPROPAPPLY_PAY SET STATUS = #{status},
UPDATED_AT = NOW(
)
UPDATE HS_ASSET.OUTPROPAPPLY_PAY SET STATUS = #{status},
PAY_AT = TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'
)
WHERE TRADE_NO = #{tradeNo}
</update>
...
...
Please
register
or
login
to post a comment