Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rs-cloud-platform
Project
Project
Details
Activity
Releases
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
周健威
rs-cloud-platform
Commits
91e1e1c5
Commit
91e1e1c5
authored
Dec 25, 2020
by
unset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加订单商品信息
parent
d115d536
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
165 additions
and
57 deletions
+165
-57
pom.xml
rs-universal/rs-universal-server/pom.xml
+12
-1
OrderPayBiz.java
...ava/com/upyuns/platform/rs/universal/biz/OrderPayBiz.java
+46
-52
OrderPayController.java
.../platform/rs/universal/controller/OrderPayController.java
+5
-0
OrderInfo.java
...java/com/upyuns/platform/rs/website/entity/OrderInfo.java
+10
-0
WebsiteFeign.java
...va/com/upyuns/platform/rs/website/feign/WebsiteFeign.java
+7
-0
OrderInfoBiz.java
...java/com/upyuns/platform/rs/website/biz/OrderInfoBiz.java
+67
-4
OrderInfoWebController.java
...orm/rs/website/controller/web/OrderInfoWebController.java
+18
-0
No files found.
rs-universal/rs-universal-server/pom.xml
View file @
91e1e1c5
...
...
@@ -20,7 +20,12 @@
<version>
2.0-rscp-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.upyuns.platform.rs
</groupId>
<artifactId>
rs-website-api
</artifactId>
<version>
2.0-rscp-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.aliyun
</groupId>
<artifactId>
aliyun-java-sdk-core
</artifactId>
...
...
@@ -112,6 +117,12 @@
<optional>
true
</optional>
<version>
2.8.3
</version>
</dependency>
<dependency>
<groupId>
com.upyuns.platform.rs
</groupId>
<artifactId>
rs-website-api
</artifactId>
<version>
2.0-rscp-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
...
...
rs-universal/rs-universal-server/src/main/java/com/upyuns/platform/rs/universal/biz/OrderPayBiz.java
View file @
91e1e1c5
...
...
@@ -30,6 +30,8 @@ import com.upyuns.platform.rs.universal.vo.OrderPayVo;
import
com.upyuns.platform.rs.universal.weixin.api.*
;
import
com.upyuns.platform.rs.universal.constant.WxResponseProperties
;
import
com.upyuns.platform.rs.universal.weixin.util.HTTPUtils
;
import
com.upyuns.platform.rs.website.entity.OrderInfo
;
import
com.upyuns.platform.rs.website.feign.WebsiteFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -64,13 +66,19 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
@Autowired
MQServiceBiZ
mqServiceBiZ
;
@Value
(
"${universal.url}"
)
String
weixinHost
;
@Value
(
"${wx.appid}"
)
private
String
wy_appid
;
@Value
(
"${wx.appSercet}"
)
private
String
wy_secret
;
@Autowired
WebsiteFeign
websiteFeign
;
private
static
final
String
SUCCESS
=
"SUCCESS"
;
public
JSONObject
preparepay
(
OrderPayVo
orderPayVo
)
{
...
...
@@ -123,7 +131,11 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
jsParam
=
generateAliPayment
(
orderPayVo
,
notifyUrl
);
}
else
if
(
type
==
3
&&
payWay
==
1
)
{
//网页支付
sellerAccount
=
SystemConfig
.
APP_PARTNER
;
jsParam
=
WXPay
.
getH5PayParam
(
amount
+
""
,
orderPayVo
.
getBuyerIp
(),
trade_no
,
orderPayVo
.
getBody
(),
orderPayVo
.
getBody
(),
orderPayVo
.
getBody
(),
notify_url
);
jsParam
=
WXPay
.
getH5PayParam
(
amount
+
""
,
orderPayVo
.
getBuyerIp
(),
trade_no
,
orderPayVo
.
getBody
(),
orderPayVo
.
getBody
(),
orderPayVo
.
getBody
(),
notify_url
);
}
else
if
(
type
==
3
&&
payWay
==
3
)
{
//对公账户支付
sellerAccount
=
SystemConfig
.
APP_PARTNER
;
//生成随机码
}
log
.
info
(
"报名费回调路径jsParam:"
+
jsParam
);
if
(!
StringUtils
.
isBlank
(
jsParam
))
{
...
...
@@ -135,7 +147,6 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
log
.
error
(
"---下单---order_no====="
+
order_no
+
"----成功"
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
;
log
.
error
(
"---下单---order_no====="
+
order_no
+
"----异常---msg==="
+
e
.
getMessage
());
return
JsonResultUtil
.
createFailedResult
(
ResultCode
.
EXCEPTION_CODE
,
"出现异常"
);
}
...
...
@@ -162,44 +173,8 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
orderPay
.
setStatus
(
1
);
orderPay
.
setSerialNumber
(
serialNumber
);
int
num
=
mapper
.
updateByExampleSelective
(
orderPay
,
example
);
log
.
error
(
"---支付回调处理---num====="
+
num
+
"----orderNo======="
+
orderNo
);
if
(
num
>
0
)
{
//支付成功,添加积分
OrderPay
pay
=
list
.
get
(
0
);
OrderPay
newValue
=
mapper
.
selectOne
(
orderPay
);
log
.
info
(
"支付回调信息:newValue = {}"
,
newValue
);
if
(
newValue
.
getStatus
()
==
1
)
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"userId"
,
newValue
.
getUserId
());
jsonObject
.
put
(
"amount"
,
newValue
.
getAmount
());
jsonObject
.
put
(
"channelId"
,
newValue
.
getOrderNo
());
if
(
newValue
.
getChannel
()
==
1
)
{
//租车
jsonObject
.
put
(
"integralRuleCode"
,
"RENTRV"
);
}
else
if
(
newValue
.
getChannel
()
==
2
)
{
//旅游
jsonObject
.
put
(
"integralRuleCode"
,
"BUYROUT"
);
}
else
if
(
newValue
.
getChannel
()
==
3
)
{
//会员
jsonObject
.
put
(
"integralRuleCode"
,
"BUYMEMBER"
);
}
log
.
info
(
"支付订单号:orderNo = {}, orderType = {}"
,
newValue
.
getOrderNo
(),
newValue
.
getChannel
());
// log.info("支付成功获取积分:发送消息 exchange = {}, routingKey = {}, json = {}", RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
// mqServiceBiZ.sendMessage(RabbitConstant.INTEGRAL_TOPIC, RabbitConstant.INTEGRAL_ROUTING_KEY, jsonObject.toJSONString());
}
if
(
StringUtils
.
isNotBlank
(
pay
.
getNotifyUrl
()))
{
String
url
=
pay
.
getNotifyUrl
();
Integer
type
=
pay
.
getType
()
==
null
?
1
:
pay
.
getType
();
Integer
payWay
=
pay
.
getPayWay
();
url
+=
"&tradeNo="
+
orderNo
+
"&type="
+
type
+
"&payWay="
+
payWay
;
log
.
error
(
"---支付回调处理---orderNo======="
+
orderNo
+
"----notifyUrl===="
+
url
);
String
result
=
""
;
if
(
url
.
contains
(
"https"
)
||
url
.
contains
(
"HTTPS"
))
{
result
=
HTTPSUtils
.
httpRequest
(
url
,
"GET"
,
null
);
}
else
{
result
=
HTTPUtils
.
doGet
(
url
);
}
log
.
error
(
"---支付回调处理---orderNo======="
+
orderNo
+
"---result==="
+
result
);
}
websiteFeign
.
updateOrderStatus
(
new
OrderInfo
(){{
setOrderNo
(
orderPay
.
getOrderNo
());
setPayStatus
(
2
);}});
}
}
...
...
@@ -334,23 +309,23 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
* @return
*/
private
String
preCreate
(
AlipayClient
alipayClient
,
OrderPayVo
orderPayVo
,
String
notifyUrl
)
{
BigDecimal
realAmount
=
new
BigDecimal
(
orderPayVo
.
getAmount
().
toString
()).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_UP
);
AlipayTradePrecreateRequest
request
=
new
AlipayTradePrecreateRequest
();
//创建API对应的request类
BigDecimal
realAmount
=
new
BigDecimal
(
orderPayVo
.
getAmount
().
toString
()).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_UP
);
AlipayTradePrecreateRequest
request
=
new
AlipayTradePrecreateRequest
();
//创建API对应的request类
request
.
setBizContent
(
"{"
+
"\"out_trade_no\":\""
+
orderPayVo
.
getTradeNo
()
+
"\","
+
//商户订单号
"\"total_amount\":\""
+
realAmount
+
"\","
+
"\"total_amount\":\""
+
realAmount
+
"\","
+
"\"subject\":\""
+
orderPayVo
.
getSubject
()
+
"\","
+
"\"timeout_express\":\"30m\"}"
);
//订单允许的最晚付款时间
try
{
log
.
info
(
"{}"
,
JSONObject
.
toJSONString
(
request
));
AlipayTradePrecreateResponse
response
=
alipayClient
.
execute
(
request
);
log
.
info
(
response
.
getBody
());
//就是orderString 可以直接给客户端请求,无需再做处理。
return
response
.
getBody
();
}
catch
(
AlipayApiException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
null
;
}
try
{
log
.
info
(
"{}"
,
JSONObject
.
toJSONString
(
request
));
AlipayTradePrecreateResponse
response
=
alipayClient
.
execute
(
request
);
log
.
info
(
response
.
getBody
());
//就是orderString 可以直接给客户端请求,无需再做处理。
return
response
.
getBody
();
}
catch
(
AlipayApiException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
null
;
}
//预授权冻结
...
...
@@ -715,4 +690,23 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
//orderPayBiz.tradePay("20191114182254000019", "2019111410002001530505959461", 1,"扣除违约金", "扣除违约金");
//orderPayBiz.fundAuthQuery("20191031172653000026");
}
/**
* 更新支付状态
* @param orderPay
* @return
*/
public
ObjectRestResponse
updateStatus
(
OrderPay
orderPay
)
{
if
(
orderPay
==
null
)
{
return
ObjectRestResponse
.
paramIsEmpty
();
}
OrderPay
old
=
selectOne
(
orderPay
);
if
(
old
==
null
)
{
return
ObjectRestResponse
.
paramIsEmpty
();
}
old
.
setStatus
(
1
);
updateSelectiveByIdRe
(
old
);
return
ObjectRestResponse
.
succ
();
}
}
rs-universal/rs-universal-server/src/main/java/com/upyuns/platform/rs/universal/controller/OrderPayController.java
View file @
91e1e1c5
...
...
@@ -111,6 +111,11 @@ public class OrderPayController extends BaseController<OrderPayBiz,OrderPay> {
return
baseBiz
.
fundAuthQuery
(
tradNo
);
}
@PostMapping
(
value
=
"/app/unauth/updateStatus"
)
public
ObjectRestResponse
updateStatus
(
@RequestBody
OrderPay
orderPay
)
{
return
baseBiz
.
updateStatus
(
orderPay
);
}
@PostMapping
(
"/app/unauth/transfer_account"
)
@IgnoreUserToken
public
ObjectRestResponse
<
String
>
transferAccount
(
@RequestBody
FundPayVo
fundPayVo
){
...
...
rs-website/rs-website-api/src/main/java/com/upyuns/platform/rs/website/entity/OrderInfo.java
View file @
91e1e1c5
...
...
@@ -222,6 +222,16 @@ public class OrderInfo implements Serializable {
*/
String
customerJson
;
/**
* 对公支付随机码
*/
String
payCode
;
/**
* 对公支付电子回单地址
*/
String
payImg
;
@Transient
private
List
<
OrderItem
>
orderItemList
;
...
...
rs-website/rs-website-api/src/main/java/com/upyuns/platform/rs/website/feign/WebsiteFeign.java
View file @
91e1e1c5
package
com
.
upyuns
.
platform
.
rs
.
website
.
feign
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.upyuns.platform.rs.website.entity.OrderInfo
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
/**
...
...
@@ -12,4 +16,7 @@ import org.springframework.cloud.openfeign.FeignClient;
@FeignClient
(
value
=
"rs-website"
,
contextId
=
"website-base"
)
public
interface
WebsiteFeign
{
@PostMapping
(
value
=
"orderInfo/web/updateOrderStatus"
)
public
ObjectRestResponse
updateOrderStatus
(
@RequestBody
OrderInfo
orderInfo
);
}
rs-website/rs-website-server/src/main/java/com/upyuns/platform/rs/website/biz/OrderInfoBiz.java
View file @
91e1e1c5
...
...
@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import
com.github.wxiaoqi.security.common.util.OrderUtil
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.upyuns.platform.rs.datacenter.fegin.DatacenterFeign
;
import
com.upyuns.platform.rs.datacenter.pojo.ImageDataVO
;
...
...
@@ -16,6 +17,7 @@ import com.upyuns.platform.rs.datacenter.pojo.ImagePageFeginDTO;
import
com.upyuns.platform.rs.universal.constant.DictionaryKey
;
import
com.upyuns.platform.rs.universal.entity.Dictionary
;
import
com.upyuns.platform.rs.universal.feign.ThirdFeign
;
import
com.upyuns.platform.rs.universal.vo.OrderPayVo
;
import
com.upyuns.platform.rs.website.dto.*
;
import
com.upyuns.platform.rs.website.entity.*
;
import
com.upyuns.platform.rs.website.mapper.OrderItemMapper
;
...
...
@@ -32,10 +34,7 @@ import tk.mybatis.mapper.entity.Example;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.stream.Collectors
;
...
...
@@ -944,4 +943,68 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> {
return
ObjectRestResponse
.
succ
(
itemInfoVoList
);
}
/**
* 订单支付
* @param orderPayVo
* @return
*/
public
JSONObject
pay
(
OrderPayVo
orderPayVo
)
{
if
(
orderPayVo
==
null
||
StringUtils
.
isBlank
(
orderPayVo
.
getOrderNo
()))
{
return
JsonResultUtil
.
createFailedResult
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
PARAM_ILLEGAL_CODE
));
}
OrderInfo
orderInfo
=
getOneByOrderNo
(
orderPayVo
.
getOrderNo
());
if
(
orderInfo
==
null
)
{
return
JsonResultUtil
.
createFailedResult
(
ResultCode
.
ORDER_NOT_EXIST
,
ResultCode
.
getMsg
(
ResultCode
.
ORDER_NOT_EXIST
));
}
orderInfo
.
setPayType
(
orderPayVo
.
getPayType
());
orderInfo
.
setPayTime
(
new
Date
());
orderInfo
.
setPayStatus
(
1
);
updateSelectiveByIdRe
(
orderInfo
);
return
thirdFeign
.
wx
(
orderPayVo
);
}
/**
* 支付成功修改订单状态
* @param orderInfo
* @return
*/
public
ObjectRestResponse
updateOrderStatus
(
OrderInfo
orderInfo
)
{
if
(
orderInfo
==
null
||
StringUtils
.
isBlank
(
orderInfo
.
getOrderNo
()))
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
PARAM_ILLEGAL_CODE
));
}
OrderInfo
old
=
getOneByOrderNo
(
orderInfo
.
getOrderNo
());
if
(
old
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
ORDER_NOT_EXIST
,
ResultCode
.
getMsg
(
ResultCode
.
ORDER_NOT_EXIST
));
}
old
.
setStatus
(
orderInfo
.
getPayStatus
());
old
.
setPayTime
(
new
Date
());
updateSelectiveByIdRe
(
old
);
return
ObjectRestResponse
.
succ
();
}
/**
* 对公账号支付设置
* @param orderInfo
* @return
*/
public
ObjectRestResponse
payByCompanyBank
(
OrderInfo
orderInfo
)
{
if
(
orderInfo
==
null
||
StringUtils
.
isBlank
(
orderInfo
.
getOrderNo
()))
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
PARAM_ILLEGAL_CODE
));
}
OrderInfo
old
=
getOneByOrderNo
(
orderInfo
.
getOrderNo
());
if
(
old
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
ORDER_NOT_EXIST
,
ResultCode
.
getMsg
(
ResultCode
.
ORDER_NOT_EXIST
));
}
if
(
old
.
getPayCode
().
equals
(
orderInfo
.
getPayCode
()))
{
old
.
setPayImg
(
orderInfo
.
getPayImg
());
old
.
setPayStatus
(
2
);
old
.
setPayTime
(
new
Date
());
updateSelectiveByIdRe
(
old
);
thirdFeign
.
return
ObjectRestResponse
.
succ
();
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
FAILED_CODE
,
"汇款识别码错误"
);
}
}
}
\ No newline at end of file
rs-website/rs-website-server/src/main/java/com/upyuns/platform/rs/website/controller/web/OrderInfoWebController.java
View file @
91e1e1c5
package
com
.
upyuns
.
platform
.
rs
.
website
.
controller
.
web
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.upyuns.platform.rs.universal.vo.OrderPayVo
;
import
com.upyuns.platform.rs.website.biz.OrderInfoBiz
;
import
com.upyuns.platform.rs.website.dto.*
;
import
com.upyuns.platform.rs.website.entity.OrderInfo
;
...
...
@@ -67,6 +69,22 @@ public class OrderInfoWebController extends BaseController<OrderInfoBiz,OrderInf
return
baseBiz
.
setAddressOrInvoice
(
orderInfoDto
);
}
@PostMapping
(
value
=
"pay"
)
public
JSONObject
pay
(
OrderPayVo
orderPayVo
)
{
orderPayVo
.
setUserId
(
getAppUser
().
getUserid
());
return
baseBiz
.
pay
(
orderPayVo
);
}
@PostMapping
(
value
=
"updateOrderStatus"
)
public
ObjectRestResponse
updateOrderStatus
(
@RequestBody
OrderInfo
orderInfo
)
{
return
baseBiz
.
updateOrderStatus
(
orderInfo
);
}
@PostMapping
(
value
=
"payByCompanyBank"
)
public
ObjectRestResponse
payByCompanyBank
(
@RequestBody
OrderInfo
orderInfo
)
{
return
baseBiz
.
payByCompanyBank
(
orderInfo
);
}
@Override
public
UserFeign
getUserFeign
()
{
return
userFeign
;
...
...
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