Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
oms-ci-test
Commits
8c9b6d94
提交
8c9b6d94
authored
8月 23, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
充值订单的生成
上级
959de3c7
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
277 行增加
和
160 行删除
+277
-160
pom.xml
pom.xml
+13
-1
TDateUtil.java
src/main/java/com/mmc/oms/common/util/TDateUtil.java
+1
-0
TopUpOrderDao.java
src/main/java/com/mmc/oms/dao/topup/TopUpOrderDao.java
+18
-0
TopUpOrderDO.java
src/main/java/com/mmc/oms/entity/topup/TopUpOrderDO.java
+35
-0
UserAppApi.java
src/main/java/com/mmc/oms/feign/UserAppApi.java
+9
-77
FeignConfiguration.java
...ain/java/com/mmc/oms/feign/config/FeignConfiguration.java
+7
-1
UserAppApiHystrix.java
...ain/java/com/mmc/oms/feign/hystrix/UserAppApiHystrix.java
+5
-49
CommonPaymentVO.java
...ain/java/com/mmc/oms/model/vo/demand/CommonPaymentVO.java
+5
-2
OrderRequestParamsVO.java
...ava/com/mmc/oms/model/vo/demand/OrderRequestParamsVO.java
+2
-0
TopUpOrderVO.java
src/main/java/com/mmc/oms/model/vo/wallet/TopUpOrderVO.java
+29
-0
RabbitmqConstant.java
src/main/java/com/mmc/oms/mq/constant/RabbitmqConstant.java
+13
-0
MqConsumer.java
src/main/java/com/mmc/oms/mq/listener/MqConsumer.java
+50
-0
DemandReleaseOrderServiceImpl.java
...ms/service/demand/Impl/DemandReleaseOrderServiceImpl.java
+55
-30
application-dev.yml
src/main/resources/application-dev.yml
+7
-0
application-prod.yml
src/main/resources/application-prod.yml
+8
-0
TopUpOrderDao.xml
src/main/resources/mapper/topup/TopUpOrderDao.xml
+20
-0
没有找到文件。
pom.xml
浏览文件 @
8c9b6d94
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<artifactId>
java-emoji-converter
</artifactId>
<artifactId>
java-emoji-converter
</artifactId>
<version>
0.1.1
</version>
<version>
0.1.1
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpcore
</artifactId>
<artifactId>
httpcore
</artifactId>
...
@@ -51,6 +51,18 @@
...
@@ -51,6 +51,18 @@
<groupId>
org.springframework.cloud
</groupId>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
</dependency>
<!-- RabbitMQ -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-amqp
</artifactId>
</dependency>
<dependency>
<groupId>
com.rabbitmq
</groupId>
<artifactId>
amqp-client
</artifactId>
<version>
5.5.0
</version>
<!-- 支持开源所有版本 -->
</dependency>
<!-- 使用okhttp-feign-连接池技术 -->
<!-- 使用okhttp-feign-连接池技术 -->
<dependency>
<dependency>
<groupId>
io.github.openfeign
</groupId>
<groupId>
io.github.openfeign
</groupId>
...
...
src/main/java/com/mmc/oms/common/util/TDateUtil.java
浏览文件 @
8c9b6d94
...
@@ -15,6 +15,7 @@ public class TDateUtil {
...
@@ -15,6 +15,7 @@ public class TDateUtil {
public
static
final
String
THREE_MONTH
=
"threemonth"
;
public
static
final
String
THREE_MONTH
=
"threemonth"
;
public
static
final
String
SIX_MONTH
=
"sixmonth"
;
public
static
final
String
SIX_MONTH
=
"sixmonth"
;
public
static
final
String
ONE_YEAR
=
"oneyear"
;
public
static
final
String
ONE_YEAR
=
"oneyear"
;
public
static
final
String
TYPE
=
"yyyyMMddHHmmss"
;
public
static
String
getCurrentDate
()
{
public
static
String
getCurrentDate
()
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy/MM/dd HH:mm"
);
// 设置日期格式
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy/MM/dd HH:mm"
);
// 设置日期格式
...
...
src/main/java/com/mmc/oms/dao/topup/TopUpOrderDao.java
0 → 100644
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
dao
.
topup
;
import
com.mmc.oms.entity.topup.TopUpOrderDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author LW
* @date 2023/8/23 14:22
* 概要:
*/
@Mapper
public
interface
TopUpOrderDao
{
void
insertTopUpOrder
(
TopUpOrderDO
topUpOrderDO
);
void
updateTopUpOrderInfo
(
TopUpOrderDO
topUpOrderDO
);
}
src/main/java/com/mmc/oms/entity/topup/TopUpOrderDO.java
0 → 100644
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
entity
.
topup
;
import
com.mmc.oms.model.vo.demand.OrderRequestParamsVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @Author LW
* @date 2023/8/19 13:38
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
TopUpOrderDO
{
private
Integer
id
;
private
Integer
version
;
private
Integer
userAccountId
;
private
String
orderNo
;
private
Integer
amount
;
private
String
tradeState
;
private
String
tradeStateDesc
;
private
String
description
;
private
Date
createTime
;
private
Date
updateTime
;
public
TopUpOrderDO
(
OrderRequestParamsVO
orderRequestParamsVO
,
Integer
userAccountId
)
{
this
.
userAccountId
=
userAccountId
;
this
.
orderNo
=
orderRequestParamsVO
.
getOrderNo
();
this
.
amount
=
orderRequestParamsVO
.
getAmount
();
}
}
src/main/java/com/mmc/oms/feign/UserAppApi.java
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
feign
;
package
com
.
mmc
.
oms
.
feign
;
import
com.mmc.oms.model.dto.mall.CooperationTagVO
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.model.dto.user.UserAccountSimpleDTO
;
import
com.mmc.oms.feign.hystrix.UserAppApiHystrix
;
import
com.mmc.oms.model.qo.mall.BUserAccountQO
;
import
com.mmc.oms.model.vo.wallet.TopUpOrderVO
;
//import io.swagger.annotations.ApiParam;
import
org.springframework.cloud.openfeign.FeignClient
;
//import org.springframework.cloud.openfeign.FeignClient;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
/**
/**
* @author: zj
* @author: zj
* @Date: 2023/5/18 17:06
* @Date: 2023/5/18 17:06
*/
*/
//
@FeignClient(url = "${userapp.url}", name = "cms-svc", fallback = UserAppApiHystrix.class)
@FeignClient
(
url
=
"${userapp.url}"
,
name
=
"cms-svc"
,
fallback
=
UserAppApiHystrix
.
class
)
public
interface
UserAppApi
{
public
interface
UserAppApi
{
/**
@GetMapping
(
"pay/feignTopUpCash"
)
* 根据用户id获取基本信息
public
ResultBody
feignTopUpCash
(
@RequestBody
TopUpOrderVO
topUpOrderVO
);
* @param userAccountId
* @return
*/
@RequestMapping
(
value
=
"user-account/feignGetUserSimpleInfo"
,
method
=
RequestMethod
.
GET
)
public
UserAccountSimpleDTO
feignGetUserSimpleInfo
(
@RequestParam
Integer
userAccountId
,
@RequestHeader
(
"token"
)
String
token
);
/**
* 根据地区信息查询用户id
* @param provinceCode
* @param cityCode
* @param districtCode
* @return
*/
@GetMapping
(
"user-account/feignListUserAccountIds"
)
List
<
Integer
>
feignListUserAccountIds
(
@RequestParam
Integer
provinceCode
,
@RequestParam
(
required
=
false
)
Integer
cityCode
,
@RequestParam
(
required
=
false
)
Integer
districtCode
,
@RequestHeader
(
value
=
"token"
,
required
=
false
)
String
token
);
/**
* 获取用户集合列表页面
*
* @param bUserAccountQO 问:b用户帐户
* @return {@link List}<{@link UserAccountSimpleDTO}>
*/
@PostMapping
(
"back-user/feignListBAccountPage"
)
List
<
UserAccountSimpleDTO
>
feignListBAccountPage
(
@RequestBody
BUserAccountQO
bUserAccountQO
,
@RequestHeader
(
"token"
)
String
token
);
/**
* 根据用户id查询用户信息
* @param ids
* @param token
* @return
*/
@PostMapping
(
"user-account/feignListUserAccountByIds"
)
List
<
UserAccountSimpleDTO
>
feignListUserAccountByIds
(
@RequestBody
List
<
Integer
>
ids
,
@RequestHeader
(
"token"
)
String
token
);
/**
* 查询推荐人信息
* @param userIds
* @return
*/
@PostMapping
(
"user-account/feignListRcdUserInfo"
)
List
<
UserAccountSimpleDTO
>
feignListRcdUserInfo
(
@RequestBody
List
<
Integer
>
userIds
);
/**
* 查询上级id
* @param userAccountId
* @return
*/
@GetMapping
(
"user-account/feignGetSuperiorRef"
)
Integer
feignGetSuperiorRef
(
@RequestParam
Integer
userAccountId
);
/**
* 查询上级推荐人信息
* @param userAccountId
* @return
*/
@GetMapping
(
"user-account/feignGetUserRcdInfo"
)
UserAccountSimpleDTO
feignGetUserRcdInfo
(
@RequestParam
Integer
userAccountId
);
/**
* 用户合作标签
* @return
*/
@GetMapping
(
"cooperation/feignListCooperationTag"
)
List
<
CooperationTagVO
>
feignListCooperationTag
();
}
}
src/main/java/com/mmc/oms/feign/config/FeignConfiguration.java
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
feign
.
config
;
package
com
.
mmc
.
oms
.
feign
.
config
;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.feign.hystrix.UserAppApiHystrix
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -14,8 +15,13 @@ import org.springframework.context.annotation.Configuration;
...
@@ -14,8 +15,13 @@ import org.springframework.context.annotation.Configuration;
public
class
FeignConfiguration
{
public
class
FeignConfiguration
{
@Bean
(
name
=
"pmsAppApiHystrix"
)
@Bean
(
name
=
"pmsAppApiHystrix"
)
public
PmsAppApiHystrix
P
msAppApi
()
{
public
PmsAppApiHystrix
p
msAppApi
()
{
return
new
PmsAppApiHystrix
();
return
new
PmsAppApiHystrix
();
}
}
@Bean
(
name
=
"userAppApiHystrix"
)
public
UserAppApiHystrix
userApp
()
{
return
new
UserAppApiHystrix
();
}
}
}
src/main/java/com/mmc/oms/feign/hystrix/UserAppApiHystrix.java
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
feign
.
hystrix
;
package
com
.
mmc
.
oms
.
feign
.
hystrix
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.model.dto.mall.CooperationTagVO
;
import
com.mmc.oms.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.oms.model.dto.user.UserAccountSimpleDTO
;
import
com.mmc.oms.model.qo.mall.BUserAccountQO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.List
;
/**
/**
* @author: zj
* @author: zj
* @Date: 2023/5/18 17:08
* @Date: 2023/5/18 17:08
*/
*/
@Slf4j
@Slf4j
public
class
UserAppApiHystrix
implements
UserAppApi
{
public
class
UserAppApiHystrix
implements
UserAppApi
{
@Override
public
UserAccountSimpleDTO
feignGetUserSimpleInfo
(
Integer
userAccountId
,
String
token
)
{
log
.
error
(
"熔断:feignGetUserSimpleInfo:{}"
,
userAccountId
);
return
null
;
}
@Override
public
List
<
Integer
>
feignListUserAccountIds
(
Integer
provinceCode
,
Integer
cityCode
,
Integer
districtCode
,
String
token
)
{
log
.
error
(
"熔断:feignListUserAccountIds:{}, {}, {}"
,
provinceCode
,
cityCode
,
districtCode
);
return
null
;
}
@Override
public
List
<
UserAccountSimpleDTO
>
feignListBAccountPage
(
BUserAccountQO
bUserAccountQO
,
String
token
)
{
log
.
error
(
"熔断:feignListBAccountPage:{}"
,
bUserAccountQO
);
return
null
;
}
@Override
public
List
<
UserAccountSimpleDTO
>
feignListUserAccountByIds
(
List
<
Integer
>
ids
,
String
token
)
{
log
.
error
(
"熔断:feignListUserAccountByIds:{}"
,
ids
);
return
null
;
}
@Override
public
List
<
UserAccountSimpleDTO
>
feignListRcdUserInfo
(
List
<
Integer
>
userIds
)
{
log
.
error
(
"熔断:feignListRcdUserInfo:{}"
,
userIds
);
return
null
;
}
@Override
public
Integer
feignGetSuperiorRef
(
Integer
userAccountId
)
{
log
.
error
(
"熔断:feignGetSuperiorRef:{}"
,
userAccountId
);
return
null
;
}
@Override
public
UserAccountSimpleDTO
feignGetUserRcdInfo
(
Integer
userAccountId
)
{
log
.
error
(
"熔断:feignGetUserRcdInfo:{}"
,
userAccountId
);
return
null
;
}
@Override
@Override
public
List
<
CooperationTagVO
>
feignListCooperationTag
(
)
{
public
ResultBody
feignTopUpCash
(
TopUpOrderVO
topUpOrderVO
)
{
log
.
error
(
"熔断:
feignListCooperationTag:{}"
);
log
.
error
(
"熔断:
UserAppApiHystrix.feignTopUpCash==error==>param:{}"
,
topUpOrderVO
);
return
null
;
return
ResultBody
.
error
(
"-1"
,
"远程调用失败"
)
;
}
}
}
}
src/main/java/com/mmc/oms/model/vo/demand/CommonPaymentVO.java
浏览文件 @
8c9b6d94
...
@@ -18,10 +18,13 @@ import lombok.NoArgsConstructor;
...
@@ -18,10 +18,13 @@ import lombok.NoArgsConstructor;
public
class
CommonPaymentVO
{
public
class
CommonPaymentVO
{
@ApiModelProperty
(
value
=
"订单编号"
,
example
=
"R202307251459553408130"
)
@ApiModelProperty
(
value
=
"订单编号"
,
example
=
"R202307251459553408130"
)
private
String
orderNumber
;
private
String
orderNumber
;
@ApiModelProperty
(
value
=
"订单来源 0:产品商城 1:租赁订单 2:培训订单 3发布需求 4服务需求发布 ...其他后续加"
)
@ApiModelProperty
(
value
=
"订单来源 0:产品商城 1:租赁订单 2:培训订单 3发布需求 4服务需求发布
5充值
...其他后续加"
)
private
Integer
orderPort
;
private
Integer
orderPort
;
@ApiModelProperty
(
value
=
"金额:单位(分)"
)
private
Integer
amount
;
}
}
src/main/java/com/mmc/oms/model/vo/demand/OrderRequestParamsVO.java
浏览文件 @
8c9b6d94
...
@@ -26,4 +26,6 @@ public class OrderRequestParamsVO implements Serializable {
...
@@ -26,4 +26,6 @@ public class OrderRequestParamsVO implements Serializable {
private
Integer
amount
;
private
Integer
amount
;
@ApiModelProperty
(
value
=
"订单来源 0:产品商城 1:租赁订单 2:培训订单 ...其他后续加"
)
@ApiModelProperty
(
value
=
"订单来源 0:产品商城 1:租赁订单 2:培训订单 ...其他后续加"
)
private
Integer
orderPort
;
private
Integer
orderPort
;
@ApiModelProperty
(
value
=
"附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段。"
)
private
String
attach
;
}
}
src/main/java/com/mmc/oms/model/vo/wallet/TopUpOrderVO.java
0 → 100644
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
model
.
vo
.
wallet
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Author LW
* @date 2023/8/23 13:37
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
TopUpOrderVO
{
@ApiModelProperty
(
value
=
"支付用户的openid"
)
private
String
openid
;
@ApiModelProperty
(
value
=
"订单编号"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"金额(分)"
)
private
Integer
amount
;
@ApiModelProperty
(
value
=
"订单状态"
)
private
String
tradeState
;
@ApiModelProperty
(
value
=
"交易状态描述"
)
private
String
tradeStateDesc
;
}
src/main/java/com/mmc/oms/mq/constant/RabbitmqConstant.java
0 → 100644
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
mq
.
constant
;
/**
* @author: lw
* @Date: 2023/8/23 11:26
*/
public
class
RabbitmqConstant
{
public
final
static
String
USER_TOP_UP_DIRECT_EXCHANGE
=
"USER_TOP_UP_DIRECT_EXCHANGE"
;
public
final
static
String
USER_TOP_UP_DIRECT_QUEUE
=
"USER_TOP_UP_DIRECT_QUEUE"
;
public
final
static
String
USER_TOP_UP_ROUTING_KEY
=
"USER_TOP_UP_ROUTING_KEY"
;
}
src/main/java/com/mmc/oms/mq/listener/MqConsumer.java
0 → 100644
浏览文件 @
8c9b6d94
package
com
.
mmc
.
oms
.
mq
.
listener
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.dao.topup.TopUpOrderDao
;
import
com.mmc.oms.entity.topup.TopUpOrderDO
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.oms.mq.constant.RabbitmqConstant
;
import
com.rabbitmq.client.Channel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.messaging.handler.annotation.Payload
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
/**
* @Author LW
* @date 2023/6/29 10:35 概要:
*/
@Slf4j
@Component
public
class
MqConsumer
{
@Resource
TopUpOrderDao
topUpOrderDao
;
@Resource
UserAppApi
userAppApi
;
@RabbitListener
(
queues
=
RabbitmqConstant
.
USER_TOP_UP_DIRECT_QUEUE
)
public
void
subscribeFanoutQueue
(
@Payload
String
topUpOrder
,
Channel
channel
,
Message
message
)
{
TopUpOrderVO
topUpOrderVO
=
JSONObject
.
parseObject
(
topUpOrder
,
TopUpOrderVO
.
class
);
log
.
info
(
"==========用户充值====>用户充值消费者消费开始:订单信息是---->{}"
,
topUpOrderVO
);
// 根据消费的消息修改充值订单的信息
TopUpOrderDO
topUpOrderDO
=
new
TopUpOrderDO
();
topUpOrderDO
.
setTradeState
(
topUpOrderVO
.
getTradeState
());
topUpOrderDO
.
setTradeStateDesc
(
topUpOrderVO
.
getTradeStateDesc
());
topUpOrderDO
.
setOrderNo
(
topUpOrderVO
.
getOrderNo
());
topUpOrderDao
.
updateTopUpOrderInfo
(
topUpOrderDO
);
if
(
"SUCCESS"
.
equals
(
topUpOrderVO
.
getTradeState
()))
{
// 远程调用用户钱包信息进行云享金增加操作
ResultBody
resultBody
=
userAppApi
.
feignTopUpCash
(
topUpOrderVO
);
if
(
"-1"
.
equals
(
resultBody
.
getCode
()))
{
log
.
error
(
"===========用户支付成功,但由于远程调用失败,导致用户充值未到账,请手动处理该事件!param:{}=======>"
,
topUpOrderVO
);
}
}
log
.
info
(
"=========用户充值====>用户充值消费者消费结束。"
);
}
}
src/main/java/com/mmc/oms/service/demand/Impl/DemandReleaseOrderServiceImpl.java
浏览文件 @
8c9b6d94
...
@@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSONObject;
import
com.mmc.oms.common.ResultEnum
;
import
com.mmc.oms.common.ResultEnum
;
import
com.mmc.oms.common.json.JsonUtil
;
import
com.mmc.oms.common.json.JsonUtil
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.common.util.CodeUtil
;
import
com.mmc.oms.common.util.TDateUtil
;
import
com.mmc.oms.controller.demand.util.EmojiUtils
;
import
com.mmc.oms.controller.demand.util.EmojiUtils
;
import
com.mmc.oms.dao.demand.DemandReleaseOrderDao
;
import
com.mmc.oms.dao.demand.DemandReleaseOrderDao
;
import
com.mmc.oms.dao.demand.PublishServiceOrderDao
;
import
com.mmc.oms.dao.demand.PublishServiceOrderDao
;
import
com.mmc.oms.dao.topup.TopUpOrderDao
;
import
com.mmc.oms.entity.demand.DemandReleaseOrderDO
;
import
com.mmc.oms.entity.demand.DemandReleaseOrderDO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDTO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDTO
;
import
com.mmc.oms.entity.topup.TopUpOrderDO
;
import
com.mmc.oms.model.vo.demand.CommonPaymentVO
;
import
com.mmc.oms.model.vo.demand.CommonPaymentVO
;
import
com.mmc.oms.model.vo.demand.DemandReleaseOrderVO
;
import
com.mmc.oms.model.vo.demand.DemandReleaseOrderVO
;
import
com.mmc.oms.model.vo.demand.OrderRequestParamsVO
;
import
com.mmc.oms.model.vo.demand.OrderRequestParamsVO
;
...
@@ -23,8 +27,10 @@ import org.springframework.stereotype.Service;
...
@@ -23,8 +27,10 @@ import org.springframework.stereotype.Service;
import
org.springframework.web.client.RestClientException
;
import
org.springframework.web.client.RestClientException
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -53,6 +59,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -53,6 +59,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
@Autowired
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
private
StringRedisTemplate
stringRedisTemplate
;
@Resource
private
TopUpOrderDao
topUpOrderDao
;
@Override
@Override
public
ResultBody
publish
(
DemandReleaseOrderVO
demandReleaseOrderVO
,
HttpServletRequest
request
)
{
public
ResultBody
publish
(
DemandReleaseOrderVO
demandReleaseOrderVO
,
HttpServletRequest
request
)
{
DemandReleaseOrderDO
requirementsInfoDO
=
new
DemandReleaseOrderDO
(
demandReleaseOrderVO
);
DemandReleaseOrderDO
requirementsInfoDO
=
new
DemandReleaseOrderDO
(
demandReleaseOrderVO
);
...
@@ -63,31 +72,46 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -63,31 +72,46 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
@Override
@Override
public
ResultBody
orderPayment
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
)
{
public
ResultBody
orderPayment
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
)
{
String
token
=
request
.
getHeader
(
"token"
);
String
token
=
request
.
getHeader
(
"token"
);
switch
(
commonPaymentVO
.
getOrderPort
().
toString
())
{
if
(
"3"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
())){
case
"3"
:
ResultBody
resultBody
=
orderPost
(
commonPaymentVO
,
token
);
return
orderPost
(
commonPaymentVO
,
token
);
return
resultBody
;
case
"4"
:
//发布服务需求支付
return
publishServicePay
(
commonPaymentVO
,
token
,
userAccountId
);
case
"5"
:
return
topUpOrder
(
commonPaymentVO
,
token
,
userAccountId
);
default
:
return
ResultBody
.
error
(
"无效的订单类型操作!"
);
}
}
if
(
"4"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
())){
}
//发布服务需求支付
ResultBody
resultBody
=
publishServicePay
(
commonPaymentVO
,
token
,
userAccountId
);
return
resultBody
;
}
return
ResultBody
.
success
();
private
ResultBody
topUpOrder
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
)
{
// 生成充值订单编号 规则T加时间戳加用户id加随机数4位
String
TOrderNo
=
"T"
+
TDateUtil
.
getDateStr
(
new
Date
(),
TDateUtil
.
TYPE
)
+
userAccountId
+
CodeUtil
.
getRandomNum
(
4
);
OrderRequestParamsVO
orderRequestParamsVO
=
new
OrderRequestParamsVO
();
orderRequestParamsVO
.
setAmount
(
commonPaymentVO
.
getAmount
());
orderRequestParamsVO
.
setOrderNo
(
TOrderNo
);
orderRequestParamsVO
.
setDescription
(
"云享金充值"
);
orderRequestParamsVO
.
setAttach
(
"TOP_UP"
);
TopUpOrderDO
topUpOrderDO
=
new
TopUpOrderDO
(
orderRequestParamsVO
,
userAccountId
);
topUpOrderDO
.
setTradeState
(
"WAIT"
);
topUpOrderDO
.
setDescription
(
"充值云享金"
);
// 充值订单记录至充值订单表
topUpOrderDao
.
insertTopUpOrder
(
topUpOrderDO
);
return
releaseOrder
(
orderRequestParamsVO
,
token
);
}
}
/**
/**
* 服务需求发布
* 服务需求发布
*
* @param commonPaymentVO
* @param commonPaymentVO
* @param token
* @param token
* @param userAccountId
* @param userAccountId
* @return
* @return
*/
*/
private
ResultBody
publishServicePay
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
)
{
private
ResultBody
publishServicePay
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
)
{
if
(
"4"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
())){
if
(
"4"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
()))
{
String
orderNumber
=
commonPaymentVO
.
getOrderNumber
();
String
orderNumber
=
commonPaymentVO
.
getOrderNumber
();
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
orderNumber
);
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
orderNumber
);
GetOrderNumberDTO
getOrderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
GetOrderNumberDTO
getOrderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
...
@@ -99,14 +123,14 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -99,14 +123,14 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
OrderRequestParamsVO
orderRequestParamsVO
=
getOrderNumberDO
.
orderRequestParamsVO
();
OrderRequestParamsVO
orderRequestParamsVO
=
getOrderNumberDO
.
orderRequestParamsVO
();
orderRequestParamsVO
.
setAmount
(
i
);
orderRequestParamsVO
.
setAmount
(
i
);
ResultBody
resultBody
=
releaseOrder
(
orderRequestParamsVO
,
token
);
ResultBody
resultBody
=
releaseOrder
(
orderRequestParamsVO
,
token
);
stringRedisTemplate
.
opsForValue
().
set
(
getOrderNumberDO
.
getPaymentOrderNumber
()
+
getOrderNumberDO
.
getUserAccountId
(),
JsonUtil
.
parseObjToJson
(
getOrderNumberDO
));
stringRedisTemplate
.
opsForValue
().
set
(
getOrderNumberDO
.
getPaymentOrderNumber
()
+
getOrderNumberDO
.
getUserAccountId
(),
JsonUtil
.
parseObjToJson
(
getOrderNumberDO
));
return
resultBody
;
return
resultBody
;
}
}
return
ResultBody
.
success
();
return
ResultBody
.
success
();
}
}
private
ResultBody
orderPost
(
CommonPaymentVO
commonPaymentVO
,
String
token
)
{
private
ResultBody
orderPost
(
CommonPaymentVO
commonPaymentVO
,
String
token
)
{
if
(
"3"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
())){
if
(
"3"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
()))
{
DemandReleaseOrderDO
demandReleaseOrderDO
=
releaseOrderDao
.
orderPayment
(
commonPaymentVO
.
getOrderNumber
());
DemandReleaseOrderDO
demandReleaseOrderDO
=
releaseOrderDao
.
orderPayment
(
commonPaymentVO
.
getOrderNumber
());
BigDecimal
paramMoney
=
demandReleaseOrderDO
.
getParamMoney
();
BigDecimal
paramMoney
=
demandReleaseOrderDO
.
getParamMoney
();
BigDecimal
multiply
=
paramMoney
.
multiply
(
new
BigDecimal
(
100
));
BigDecimal
multiply
=
paramMoney
.
multiply
(
new
BigDecimal
(
100
));
...
@@ -114,21 +138,22 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -114,21 +138,22 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
OrderRequestParamsVO
orderRequestParamsVO
=
demandReleaseOrderDO
.
buildOrderRequestParamsVO
();
OrderRequestParamsVO
orderRequestParamsVO
=
demandReleaseOrderDO
.
buildOrderRequestParamsVO
();
orderRequestParamsVO
.
setAmount
(
i
);
orderRequestParamsVO
.
setAmount
(
i
);
BigDecimal
practicalMoney
=
demandReleaseOrderDO
.
getPracticalMoney
();
BigDecimal
practicalMoney
=
demandReleaseOrderDO
.
getPracticalMoney
();
if
(
practicalMoney
!=
null
)
{
if
(
practicalMoney
!=
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
THE_CURRENT_DEMAND_IS_PAID
);
return
ResultBody
.
error
(
ResultEnum
.
THE_CURRENT_DEMAND_IS_PAID
);
}
}
if
(
i
!=
0
)
{
if
(
i
!=
0
)
{
return
releaseOrder
(
orderRequestParamsVO
,
token
);
return
releaseOrder
(
orderRequestParamsVO
,
token
);
}
else
if
(
i
==
0
)
{
}
else
if
(
i
==
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
NO_PAYMENT_REQUIRED
);
return
ResultBody
.
error
(
ResultEnum
.
NO_PAYMENT_REQUIRED
);
}
}
}
}
return
ResultBody
.
success
();
return
ResultBody
.
success
();
}
}
@Override
@Override
public
ResultBody
getPublishPhone
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
)
{
public
ResultBody
getPublishPhone
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
)
{
String
token
=
request
.
getHeader
(
"token"
);
String
token
=
request
.
getHeader
(
"token"
);
HttpHeaders
headers
=
new
HttpHeaders
();
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
"token"
,
token
);
headers
.
add
(
"token"
,
token
);
...
@@ -136,20 +161,20 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -136,20 +161,20 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
ResponseEntity
<
UserPayInfoVO
>
exchange
=
restTemplate
.
exchange
(
paymentUrl
+
"/wechat/queryUserPayInfo"
+
"?orderNo="
+
commonPaymentVO
.
getOrderNumber
(),
HttpMethod
.
GET
,
entity
,
UserPayInfoVO
.
class
);
ResponseEntity
<
UserPayInfoVO
>
exchange
=
restTemplate
.
exchange
(
paymentUrl
+
"/wechat/queryUserPayInfo"
+
"?orderNo="
+
commonPaymentVO
.
getOrderNumber
(),
HttpMethod
.
GET
,
entity
,
UserPayInfoVO
.
class
);
UserPayInfoVO
body
=
exchange
.
getBody
();
UserPayInfoVO
body
=
exchange
.
getBody
();
if
(
body
.
getWxNotifyPayerTotal
()!=
null
)
{
if
(
body
.
getWxNotifyPayerTotal
()
!=
null
)
{
BigDecimal
divide
=
BigDecimal
.
valueOf
(
Long
.
valueOf
(
body
.
getWxNotifyPayerTotal
())).
divide
(
new
BigDecimal
(
100
));
BigDecimal
divide
=
BigDecimal
.
valueOf
(
Long
.
valueOf
(
body
.
getWxNotifyPayerTotal
())).
divide
(
new
BigDecimal
(
100
));
DemandReleaseOrderDO
requirementsInfoDO
=
new
DemandReleaseOrderDO
(
body
,
divide
);
DemandReleaseOrderDO
requirementsInfoDO
=
new
DemandReleaseOrderDO
(
body
,
divide
);
releaseOrderDao
.
updateOrderDemand
(
requirementsInfoDO
);
releaseOrderDao
.
updateOrderDemand
(
requirementsInfoDO
);
DemandReleaseOrderDO
demandReleaseOrderDO
=
releaseOrderDao
.
selectPhone
(
requirementsInfoDO
.
getOrderNumber
());
DemandReleaseOrderDO
demandReleaseOrderDO
=
releaseOrderDao
.
selectPhone
(
requirementsInfoDO
.
getOrderNumber
());
stringRedisTemplate
.
opsForValue
().
set
(
demandReleaseOrderDO
.
getRequirementsInfoId
().
toString
(),
JsonUtil
.
parseObjToJson
(
demandReleaseOrderDO
));
stringRedisTemplate
.
opsForValue
().
set
(
demandReleaseOrderDO
.
getRequirementsInfoId
().
toString
(),
JsonUtil
.
parseObjToJson
(
demandReleaseOrderDO
));
return
ResultBody
.
success
(
demandReleaseOrderDO
.
getPublishPhone
());
return
ResultBody
.
success
(
demandReleaseOrderDO
.
getPublishPhone
());
}
}
return
ResultBody
.
success
();
return
ResultBody
.
success
();
}
}
public
ResultBody
releaseOrder
(
OrderRequestParamsVO
orderRequestParamsVO
,
String
token
)
{
public
ResultBody
releaseOrder
(
OrderRequestParamsVO
orderRequestParamsVO
,
String
token
)
{
boolean
emoji
=
EmojiUtils
.
containsEmoji
(
orderRequestParamsVO
.
getDescription
());
boolean
emoji
=
EmojiUtils
.
containsEmoji
(
orderRequestParamsVO
.
getDescription
());
if
(
emoji
==
true
)
{
if
(
emoji
==
true
)
{
orderRequestParamsVO
.
setDescription
(
EmojiUtils
.
emojiConverter2Html
(
orderRequestParamsVO
.
getDescription
()));
orderRequestParamsVO
.
setDescription
(
EmojiUtils
.
emojiConverter2Html
(
orderRequestParamsVO
.
getDescription
()));
}
}
HttpHeaders
headers
=
new
HttpHeaders
();
HttpHeaders
headers
=
new
HttpHeaders
();
...
@@ -157,10 +182,10 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -157,10 +182,10 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
headers
.
add
(
"token"
,
token
);
headers
.
add
(
"token"
,
token
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
JSONObject
.
toJSONString
(
orderRequestParamsVO
),
headers
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
JSONObject
.
toJSONString
(
orderRequestParamsVO
),
headers
);
ResponseEntity
<
Object
>
exchange
=
null
;
ResponseEntity
<
Object
>
exchange
=
null
;
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
try
{
try
{
exchange
=
restTemplate
.
exchange
(
paymentUrl
+
"wechat/pay"
,
HttpMethod
.
POST
,
entity
,
Object
.
class
);
exchange
=
restTemplate
.
exchange
(
paymentUrl
+
"wechat/pay"
,
HttpMethod
.
POST
,
entity
,
Object
.
class
);
map
.
put
(
"Ok"
,
exchange
.
getBody
());
map
.
put
(
"Ok"
,
exchange
.
getBody
());
}
catch
(
RestClientException
e
)
{
}
catch
(
RestClientException
e
)
{
return
ResultBody
.
error
(
ResultEnum
.
THIRD_PARTY_ERRORS
);
return
ResultBody
.
error
(
ResultEnum
.
THIRD_PARTY_ERRORS
);
}
}
...
...
src/main/resources/application-dev.yml
浏览文件 @
8c9b6d94
...
@@ -13,6 +13,13 @@ spring:
...
@@ -13,6 +13,13 @@ spring:
jedis
:
jedis
:
pool
:
pool
:
max-active
:
2
max-active
:
2
#rabbitMQ
rabbitmq
:
host
:
amqp-cn-zvp2ozhnj001.cn-shenzhen.amqp-0.vpc.mq.amqp.aliyuncs.com
port
:
5672
username
:
MjphbXFwLWNuLXp2cDJvemhuajAwMTpMVEFJNEZ6Q3B5ckEzM1BlZ254V1M2WFY=
password
:
${RABBITMQ_PASSWORD}
virtual-host
:
dev
main
:
main
:
allow-circular-references
:
true
allow-circular-references
:
true
...
...
src/main/resources/application-prod.yml
浏览文件 @
8c9b6d94
...
@@ -16,6 +16,14 @@ spring:
...
@@ -16,6 +16,14 @@ spring:
main
:
main
:
allow-circular-references
:
true
allow-circular-references
:
true
#rabbitMQ
rabbitmq
:
host
:
amqp-cn-zvp2ozhnj001.cn-shenzhen.amqp-0.vpc.mq.amqp.aliyuncs.com
port
:
5672
username
:
MjphbXFwLWNuLXp2cDJvemhuajAwMTpMVEFJNEZ6Q3B5ckEzM1BlZ254V1M2WFY=
password
:
${RABBITMQ_PASSWORD}
virtual-host
:
prod
springfox
:
springfox
:
documentation
:
documentation
:
swagger-ui
:
swagger-ui
:
...
...
src/main/resources/mapper/topup/TopUpOrderDao.xml
0 → 100644
浏览文件 @
8c9b6d94
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mmc.oms.dao.topup.TopUpOrderDao"
>
<insert
id=
"insertTopUpOrder"
>
insert into top_up_order (user_account_id,
order_no,
amount,
trade_state,
description)
values (#{userAccountId}, #{orderNo}, #{amount}, #{tradeState}, #{description})
</insert>
<update
id=
"updateTopUpOrderInfo"
>
update top_up_order
set trade_state = #{tradeState},
trade_state_desc = #{tradeStateDesc}
where order_no = #{orderNo}
</update>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论