Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
oms
Commits
8c9b6d94
提交
8c9b6d94
authored
8月 23, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
充值订单的生成
上级
959de3c7
显示空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
268 行增加
和
151 行删除
+268
-151
pom.xml
pom.xml
+12
-0
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
+47
-22
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
...
@@ -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"
:
}
if
(
"4"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
())){
//发布服务需求支付
//发布服务需求支付
ResultBody
resultBody
=
publishServicePay
(
commonPaymentVO
,
token
,
userAccountId
);
return
publishServicePay
(
commonPaymentVO
,
token
,
userAccountId
);
return
resultBody
;
case
"5"
:
return
topUpOrder
(
commonPaymentVO
,
token
,
userAccountId
);
default
:
return
ResultBody
.
error
(
"无效的订单类型操作!"
);
}
}
}
private
ResultBody
topUpOrder
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
)
{
return
ResultBody
.
success
();
// 生成充值订单编号 规则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,12 +138,12 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -114,12 +138,12 @@ 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
);
}
}
}
}
...
@@ -128,7 +152,8 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -128,7 +152,8 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
@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,9 +161,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -136,9 +161,9 @@ 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
));
...
@@ -149,7 +174,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -149,7 +174,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
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,7 +182,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
...
@@ -157,7 +182,7 @@ 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
());
...
...
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论