Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
Aidea
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sa_aidea
Aidea
Commits
12636b65
Commit
12636b65
authored
Dec 02, 2020
by
谢希宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Aidea product update by Strive Date 2020-11-28
parent
51899f8c
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
163 additions
and
34 deletions
+163
-34
consultSheetlist.html
...n/webapp/WEB-INF/views/consultSheet/consultSheetlist.html
+2
-1
orderform.html
...le-web/src/main/webapp/WEB-INF/views/order/orderform.html
+13
-5
OrderMapper.xml
...module/src/main/java/com/cftech/order/dao/OrderMapper.xml
+4
-3
OrderExpiredRemindJob.java
...main/java/com/cftech/order/job/OrderExpiredRemindJob.java
+2
-2
OrderFromVO.java
...ule/src/main/java/com/cftech/order/model/OrderFromVO.java
+3
-2
OrderMobile.java
...ule/src/main/java/com/cftech/order/model/OrderMobile.java
+13
-12
WechatPayUtils.java
...le/src/main/java/com/cftech/order/pay/WechatPayUtils.java
+7
-6
OrderService.java
.../src/main/java/com/cftech/order/service/OrderService.java
+9
-0
OrderServiceImpl.java
.../java/com/cftech/order/service/impl/OrderServiceImpl.java
+62
-0
MobileOrderController.java
...main/java/com/cftech/order/web/MobileOrderController.java
+13
-0
OrderController.java
...e/src/main/java/com/cftech/order/web/OrderController.java
+15
-0
ExpressOrderInfoUtils.java
.../java/com/cftech/waybill/utils/ExpressOrderInfoUtils.java
+20
-3
No files found.
aidea-modules/consult-module-web/src/main/webapp/WEB-INF/views/consultSheet/consultSheetlist.html
View file @
12636b65
...
...
@@ -326,7 +326,8 @@
"mData"
:
"userName"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
if
(
c
)
{
return
c
.
userName
.
slice
(
0
,
1
)
+
'*'
+
c
.
userName
.
slice
(
2
,
3
);
console
.
log
(
c
.
userName
);
return
c
.
userName
.
slice
(
0
,
1
)
+
'*'
+
c
.
userName
.
slice
(
2
,
c
.
userName
.
length
);
}
else
{
return
null
;
}
...
...
aidea-modules/order-module-web/src/main/webapp/WEB-INF/views/order/orderform.html
View file @
12636b65
...
...
@@ -173,7 +173,17 @@
>
</div>
<div
class=
"form-group form-md-line-input col-xs-5"
>
<div
class=
"form-group form-md-line-input col-xs-10"
>
<label>
付款链接
<font
style=
"color: red"
></font></label>
<input
type=
"text"
class=
"form-control"
name=
"payUrl"
id=
"payUrl"
readonly=
"readonly"
maxlength=
"50"
placeholder=
""
value=
"$!{data.payUrl}"
>
</div>
<div
class=
"form-group form-md-line-input col-xs-10"
>
<label>
付款二维码
<font
style=
"color: red"
></font></label>
<div
id=
"qrcodeDiv"
></div>
</div>
...
...
@@ -526,15 +536,13 @@
});
}
let
qrcodeUrl
=
`$!{data.remarks}`
;
let
qrcodeObj
=
JSON
.
parse
(
qrcodeUrl
);
console
.
log
(
qrcodeObj
.
code_url
);
let
qrcodeUrl
=
`$!{data.payUrl}`
;
var
qrcode
=
new
QRCode
(
"qrcodeDiv"
,
{
render
:
"canvas"
,
//也可以替换为table
width
:
200
,
height
:
200
,
text
:
qrcode
Obj
.
code_u
rl
text
:
qrcode
U
rl
});
</script>
</body>
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/dao/OrderMapper.xml
View file @
12636b65
...
...
@@ -558,13 +558,14 @@
t.number,
t.pay_status AS payStatus,
t.total_amount AS totalAmount,
t.pay_time AS payTime,
t.order_amount AS orderAmount,
DATE_FORMAT(t.pay_time, '%Y-%m-%d %H:%i:%s') AS payTime,
t.trade_no AS tradeNo,
t.courier_number AS courierNumber,
t.order_cancel AS orderCancel,
t.status,
DATE_FORMAT(t.create_time,
'%Y-%m-%d %h
:%i:%s') AS createTime,
DATE_FORMAT(t.order_time,
'%Y-%m-%d %h
:%i:%s') AS orderTime,
DATE_FORMAT(t.create_time,
'%Y-%m-%d %H
:%i:%s') AS createTime,
DATE_FORMAT(t.order_time,
'%Y-%m-%d %H
:%i:%s') AS orderTime,
s.address_name AS addressName,
a.areaname AS province,
b.areaname AS city,
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/job/OrderExpiredRemindJob.java
View file @
12636b65
...
...
@@ -48,13 +48,13 @@ public class OrderExpiredRemindJob implements Job {
Date
orderTime
=
ord
.
getOrderTime
();
//确认时间
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
orderTime
);
calendar
.
add
(
Calendar
.
MINUTE
,
30
);
calendar
.
add
(
Calendar
.
HOUR
,
2
);
orderTime
=
calendar
.
getTime
();
//超过半小时
if
(
orderTime
.
compareTo
(
new
Date
())
<
0
)
{
ord
.
setStatus
(
"5"
);
ord
.
setCancelTime
(
new
Date
());
ord
.
setOrderCancel
(
"订单超时取消"
);
ord
.
setOrderCancel
(
"订单超时取消
!
"
);
orderService
.
update
(
ord
);
}
}
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/model/OrderFromVO.java
View file @
12636b65
...
...
@@ -12,6 +12,7 @@ import java.util.Date;
*/
@Data
public
class
OrderFromVO
{
private
Long
id
;
private
String
number
;
private
String
courierNumber
;
...
...
@@ -21,7 +22,7 @@ public class OrderFromVO {
private
Long
drugsNum
;
private
double
orderAmount
;
private
String
address
;
private
Lo
ng
payStatus
;
private
Stri
ng
payStatus
;
private
String
description
;
private
String
tradeNo
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
...
...
@@ -33,6 +34,6 @@ public class OrderFromVO {
private
String
openid
;
private
String
status
;
private
String
remarks
;
private
String
payUrl
;
}
aidea-modules/order-module/src/main/java/com/cftech/order/model/OrderMobile.java
View file @
12636b65
...
...
@@ -17,23 +17,28 @@ public class OrderMobile {
private
Long
id
;
/*订单编码*/
private
String
number
;
/*付款
状态
*/
private
Lo
ng
payStatus
;
/*订单
id
*/
/*付款
回调
*/
private
Stri
ng
payStatus
;
/*订单
金额
*/
private
Double
totalAmount
;
/*微信订单金额*/
private
Double
orderAmount
;
/*确认时间*/
private
String
orderTime
;
/*付款时间*/
private
Date
payTime
;
private
String
payTime
;
/*交易号*/
private
Long
tradeNo
;
private
String
tradeNo
;
/*发票编码*/
private
String
confirm
;
/*快递单号*/
private
String
courierNumber
;
/*订单取消原因*/
private
String
orderCancel
;
/*状态*/
private
Lo
ng
status
;
private
Stri
ng
status
;
/*订单创建时间*/
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
private
String
createTime
;
/*收货人姓名*/
private
String
addressName
;
/*详细收货地址*/
...
...
@@ -47,10 +52,6 @@ public class OrderMobile {
/*区县*/
private
String
area
;
private
String
orderTime
;
private
String
confirm
;
private
List
<
ProductMobile
>
ProductMobile
;
}
aidea-modules/order-module/src/main/java/com/cftech/order/pay/WechatPayUtils.java
View file @
12636b65
...
...
@@ -56,7 +56,7 @@ public class WechatPayUtils {
* @param params
* @return
*/
p
rivate
static
String
getSign
(
SortedMap
<
String
,
String
>
params
)
{
p
ublic
static
String
getSign
(
SortedMap
<
String
,
String
>
params
,
boolean
isKey
)
{
String
secretKey
=
SystemConfig
.
p
.
getProperty
(
"mch.secret_key"
);
//key为商户平台设置的密钥key
Map
<
String
,
String
>
map
=
new
TreeMap
<>();
...
...
@@ -75,6 +75,7 @@ public class WechatPayUtils {
stringBuffer
.
append
(
key
).
append
(
"="
).
append
(
value
).
append
(
"&"
);
}
System
.
out
.
println
(
stringBuffer
.
toString
());
if
(
isKey
)
stringBuffer
.
append
(
"key="
+
secretKey
);
String
md5Str
=
HashKit
.
md5
(
stringBuffer
.
toString
()).
toUpperCase
();
...
...
@@ -92,13 +93,13 @@ public class WechatPayUtils {
params
.
put
(
"appid"
,
SystemConfig
.
p
.
getProperty
(
"WX_MP_SERVER_APPID"
));
params
.
put
(
"mch_id"
,
SystemConfig
.
p
.
getProperty
(
"mch.mch_id"
));
params
.
put
(
"nonce_str"
,
randomStr
);
params
.
put
(
"body"
,
"诺康大药房药品咨询"
);
params
.
put
(
"body"
,
SystemConfig
.
p
.
getProperty
(
"mch.title"
)
);
params
.
put
(
"out_trade_no"
,
order
.
getNumber
());
params
.
put
(
"total_fee"
,
String
.
valueOf
(
order
.
getOrderAmount
().
intValue
()
*
100
));
params
.
put
(
"spbill_create_ip"
,
SystemConfig
.
p
.
getProperty
(
"mch.spbill_id"
));
params
.
put
(
"notify_url"
,
SystemConfig
.
p
.
getProperty
(
"mch.notify_url"
));
params
.
put
(
"trade_type"
,
"
NATIVE
"
);
params
.
put
(
"
product_id"
,
order
.
getProductNumber
());
params
.
put
(
"trade_type"
,
"
JSAPI
"
);
params
.
put
(
"
openid"
,
order
.
getOpenid
());
return
params
;
}
...
...
@@ -106,7 +107,7 @@ public class WechatPayUtils {
String
randomStr
=
generateRandomNumber
();
SortedMap
<
String
,
String
>
params
=
generateOrderMap
(
order
,
randomStr
);
String
sign
=
getSign
(
params
);
String
sign
=
getSign
(
params
,
true
);
params
.
put
(
"sign"
,
sign
);
String
xmlObj
=
parseXML
(
params
);
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/service/OrderService.java
View file @
12636b65
...
...
@@ -98,4 +98,13 @@ public interface OrderService extends GenericService<Order> {
* @return
*/
String
callBackPayStatus
(
HttpServletRequest
request
);
/**
* 获取移动端jsapi支付参数
* @param orderId
* @param openId
* @param appId
* @return
*/
String
findOrderPayParams
(
String
orderId
,
String
openId
,
String
appId
,
String
prepayId
);
}
aidea-modules/order-module/src/main/java/com/cftech/order/service/impl/OrderServiceImpl.java
View file @
12636b65
...
...
@@ -15,6 +15,8 @@ import com.cftech.core.util.SystemConfig;
import
com.cftech.invoice.model.Invoice
;
import
com.cftech.invoice.model.InvoiceDto
;
import
com.cftech.invoice.service.InvoiceService
;
import
com.cftech.mp.fans.model.MpFanssEntity
;
import
com.cftech.mp.fans.service.MpFanssService
;
import
com.cftech.order.model.*
;
import
com.cftech.order.dao.OrderMapper
;
import
com.cftech.order.pay.WechatPayUtils
;
...
...
@@ -61,6 +63,9 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Autowired
private
CodingruleUtils
codingruleUtils
;
@Autowired
private
MpFanssService
mpFanssService
;
@Override
public
GenericDao
<
Order
>
getGenericMapper
()
{
...
...
@@ -444,4 +449,61 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
return
WechatPayUtils
.
retFailXml
;
}
@Override
public
String
findOrderPayParams
(
String
orderId
,
String
openId
,
String
appId
,
String
prepayId
)
{
JSONObject
retObj
=
new
JSONObject
();
try
{
MpAccountsEntity
mpAccountsEntity
=
mpAccountsService
.
getMpAccountsAppid
(
appId
);
if
(
mpAccountsEntity
==
null
)
{
retObj
.
put
(
"errorNo"
,
1
);
retObj
.
put
(
"errorMsg"
,
"公众号信息获取失败!"
);
return
retObj
.
toString
();
}
//获取待付款订单
Conds
orderConds
=
new
Conds
();
orderConds
.
equal
(
"o.del_flag"
,
Constants
.
DEL_FLAG_0
);
orderConds
.
equal
(
"o.status"
,
"1"
);
orderConds
.
equal
(
"o.id"
,
orderId
);
Order
order
=
this
.
fetchSearchByConds
(
orderConds
);
if
(
order
==
null
)
{
retObj
.
put
(
"errorNo"
,
1
);
retObj
.
put
(
"errorMsg"
,
"订单信息获取失败!"
);
return
retObj
.
toString
();
}
MpFanssEntity
fanssEntity
=
mpFanssService
.
getWxUser
(
openId
);
if
(
fanssEntity
==
null
)
{
retObj
.
put
(
"errorNo"
,
1
);
retObj
.
put
(
"errorMsg"
,
"粉丝信息获取失败!"
);
return
retObj
.
toString
();
}
JSONObject
payParams
=
new
JSONObject
();
payParams
.
put
(
"appId"
,
mpAccountsEntity
.
getAppid
());
payParams
.
put
(
"timeStamp"
,
Long
.
toString
(
System
.
currentTimeMillis
()
/
1000
));
payParams
.
put
(
"nonceStr"
,
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
));
payParams
.
put
(
"package"
,
"prepay_id="
+
prepayId
);
payParams
.
put
(
"signType"
,
"MD5"
);
SortedMap
<
String
,
String
>
params
=
new
TreeMap
<>();
Iterator
it
=
payParams
.
entrySet
().
iterator
();
while
(
it
.
hasNext
())
{
Map
.
Entry
<
String
,
String
>
entry
=
(
Map
.
Entry
<
String
,
String
>)
it
.
next
();
params
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
String
sign
=
WechatPayUtils
.
getSign
(
params
,
true
);
payParams
.
put
(
"paySign"
,
sign
);
retObj
.
put
(
"errorNo"
,
0
);
retObj
.
put
(
"data"
,
payParams
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"下单接口获取订单信息失败! error msg = "
+
e
.
getMessage
());
}
return
retObj
.
toString
();
}
}
\ No newline at end of file
aidea-modules/order-module/src/main/java/com/cftech/order/web/MobileOrderController.java
View file @
12636b65
package
com
.
cftech
.
order
.
web
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cftech.core.sql.Conds
;
import
com.cftech.core.util.Constants
;
import
com.cftech.invoice.model.InvoiceDto
;
import
com.cftech.order.model.Order
;
import
com.cftech.order.model.OrderMobileDto
;
import
com.cftech.order.service.OrderService
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -10,6 +13,7 @@ import org.springframework.http.MediaType;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
* @author :licc
...
...
@@ -80,4 +84,13 @@ public class MobileOrderController {
log
.
info
(
" wechatCallback 已触发微信付款回调!"
);
return
orderService
.
callBackPayStatus
(
request
);
}
@RequestMapping
(
value
=
"/findOrderPayParams"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
String
findOrderPayParams
(
@RequestParam
String
orderId
,
@RequestParam
String
openId
,
@RequestParam
String
appId
,
@RequestParam
String
prepayId
)
{
return
orderService
.
findOrderPayParams
(
orderId
,
openId
,
appId
,
prepayId
);
}
}
aidea-modules/order-module/src/main/java/com/cftech/order/web/OrderController.java
View file @
12636b65
...
...
@@ -120,7 +120,22 @@ public class OrderController {
@RequestMapping
(
"/form"
)
public
String
form
(
HttpServletRequest
request
,
String
id
,
String
pageType
,
Model
model
)
{
if
(!
StringUtils
.
isEmpty
(
id
))
{
Long
accountId
=
UserUtils
.
getmpaccounts
(
request
);
MpAccountsEntity
mpAccountsEntity
=
accountsService
.
getDetail
(
accountId
);
OrderFromVO
orderFromVO
=
orderService
.
fetchId
(
id
);
//订单信息
if
(!
StringUtils
.
equals
(
orderFromVO
.
getStatus
(),
"0"
))
{
String
remarks
=
orderFromVO
.
getRemarks
();
if
(
StringUtils
.
isNoneBlank
(
remarks
)
&&
remarks
.
contains
(
"prepay_id"
))
{
JSONObject
remarkObj
=
JSONObject
.
parseObject
(
remarks
);
String
payUrl
=
SystemConfig
.
p
.
getProperty
(
"MOBILE_MP_DOMAIN_NAME"
)
+
"/orderPay?appid="
+
mpAccountsEntity
.
getAppid
()
+
//
"&tokenId=1&orderId="
+
orderFromVO
.
getId
()
+
"&prepayId="
+
remarkObj
.
getString
(
"prepay_id"
);
orderFromVO
.
setPayUrl
(
payUrl
);
}
}
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
orderFromVO
));
model
.
addAttribute
(
"data"
,
jsonObject
);
...
...
aidea-modules/waybill-module/src/main/java/com/cftech/waybill/utils/ExpressOrderInfoUtils.java
View file @
12636b65
...
...
@@ -30,6 +30,13 @@ public class ExpressOrderInfoUtils {
private
static
final
String
payMethod
=
"1"
;
//寄方付
/**
* 生成打印面单
* @param order
* @param orderDetails
* @param waybillObj
* @return
*/
public
static
JSONObject
generateBillPrinterObj
(
Order
order
,
List
<
OrderDetails
>
orderDetails
,
Waybill
waybillObj
)
{
JSONObject
billPrinter
=
new
JSONObject
();
try
{
...
...
@@ -58,8 +65,18 @@ public class ExpressOrderInfoUtils {
billPrinter
.
put
(
"consignerMobile"
,
waybillObj
.
getMobile
());
billPrinter
.
put
(
"consignerProvince"
,
waybillObj
.
getProvince
());
billPrinter
.
put
(
"consignerCity"
,
waybillObj
.
getCity
());
billPrinter
.
put
(
"consignerCounty"
,
waybillObj
.
getCounty
());
billPrinter
.
put
(
"consignerAddress"
,
waybillObj
.
getAddress
());
if
(
StringUtils
.
isNoneBlank
(
waybillObj
.
getCounty
())
&&
waybillObj
.
getCounty
().
length
()
>=
2
)
{
StringBuilder
county
=
new
StringBuilder
(
waybillObj
.
getCounty
());
billPrinter
.
put
(
"consignerCounty"
,
county
.
replace
(
1
,
2
,
"*"
));
}
else
{
billPrinter
.
put
(
"consignerCounty"
,
""
);
}
if
(
StringUtils
.
isNoneBlank
(
waybillObj
.
getAddress
())
&&
waybillObj
.
getAddress
().
length
()
>=
2
)
{
StringBuilder
address
=
new
StringBuilder
(
waybillObj
.
getAddress
());
billPrinter
.
put
(
"consignerAddress"
,
address
.
replace
(
0
,
2
,
"*"
));
}
else
{
billPrinter
.
put
(
"consignerAddress"
,
""
);
}
billPrinter
.
put
(
"consignerShipperCode"
,
"225000"
);
//billPrinter.put("totalFee", "");//费用合计
...
...
@@ -129,7 +146,7 @@ public class ExpressOrderInfoUtils {
waybill
.
put
(
"language"
,
language
);
waybill
.
put
(
"orderId"
,
order
.
getNumber
());
//快递单号
waybill
.
put
(
"cargoDesc"
,
"医疗药品"
);
//托寄物描述
waybill
.
put
(
"monthlyCard"
,
"7551234567"
);
//顺丰月结卡号
waybill
.
put
(
"monthlyCard"
,
SystemConfig
.
p
.
getProperty
(
"sf.monthlyCard"
)
);
//顺丰月结卡号
waybill
.
put
(
"orderSource"
,
"WECHAT_STORE"
);
//平台编码 微信咨询平台
waybill
.
put
(
"remark"
,
waybillObj
.
getWaybillRemark
());
//订单备注
waybill
.
put
(
"payMethod"
,
payMethod
);
//寄放付
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment