Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
oms
Commits
86fa6dd6
提交
86fa6dd6
authored
9月 06, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
124ffd1a
2f085b73
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
594 行增加
和
148 行删除
+594
-148
deployment.yaml
kustomization/base/deployment.yaml
+5
-0
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
pom.xml
pom.xml
+26
-2
TDateUtil.java
src/main/java/com/mmc/oms/common/util/TDateUtil.java
+1
-0
UserAddressController.java
...in/java/com/mmc/oms/controller/UserAddressController.java
+12
-12
DemandReleaseOrderController.java
...c/oms/controller/demand/DemandReleaseOrderController.java
+21
-4
NotRepeatSubmit.java
...com/mmc/oms/controller/demand/commit/NotRepeatSubmit.java
+17
-0
NotRepeatSubmitConfig.java
...c/oms/controller/demand/commit/NotRepeatSubmitConfig.java
+160
-0
DemandReleaseOrderDao.java
...in/java/com/mmc/oms/dao/demand/DemandReleaseOrderDao.java
+10
-0
PublishServiceOrderDao.java
...n/java/com/mmc/oms/dao/demand/PublishServiceOrderDao.java
+13
-0
TopUpOrderDao.java
src/main/java/com/mmc/oms/dao/topup/TopUpOrderDao.java
+18
-0
GetOrderNumberDO.java
...main/java/com/mmc/oms/entity/demand/GetOrderNumberDO.java
+51
-0
GetOrderNumberDTO.java
...ain/java/com/mmc/oms/entity/demand/GetOrderNumberDTO.java
+37
-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
+39
-0
DemandReleaseOrderService.java
...com/mmc/oms/service/demand/DemandReleaseOrderService.java
+4
-0
DemandReleaseOrderServiceImpl.java
...ms/service/demand/Impl/DemandReleaseOrderServiceImpl.java
+0
-0
application-dev.yml
src/main/resources/application-dev.yml
+7
-0
application-prod.yml
src/main/resources/application-prod.yml
+8
-0
DemandReleaseOrderDao.xml
src/main/resources/mapper/demand/DemandReleaseOrderDao.xml
+30
-0
PublishServiceOrderDao.xml
src/main/resources/mapper/demand/PublishServiceOrderDao.xml
+9
-0
TopUpOrderDao.xml
src/main/resources/mapper/topup/TopUpOrderDao.xml
+20
-0
没有找到文件。
kustomization/base/deployment.yaml
浏览文件 @
86fa6dd6
...
@@ -76,6 +76,11 @@ spec:
...
@@ -76,6 +76,11 @@ spec:
secretKeyRef
:
secretKeyRef
:
name
:
iuav-secret
name
:
iuav-secret
key
:
WECHAT_APPLET_SECRET
key
:
WECHAT_APPLET_SECRET
-
name
:
RABBITMQ_PASSWORD
valueFrom
:
secretKeyRef
:
name
:
iuav-secret
key
:
RABBITMQ_PASSWORD
volumes
:
volumes
:
-
name
:
log-of-app
-
name
:
log-of-app
hostPath
:
hostPath
:
...
...
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
86fa6dd6
...
@@ -14,4 +14,4 @@ patches:
...
@@ -14,4 +14,4 @@ patches:
images
:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/oms
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/oms
newTag
:
ce4d28ea571f7394271384ad94b0f7a773fdc8a3
newTag
:
5575ae098e3769d73fba04b7148e3b86547b06ed
pom.xml
浏览文件 @
86fa6dd6
...
@@ -20,6 +20,11 @@
...
@@ -20,6 +20,11 @@
</properties>
</properties>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
org.redisson
</groupId>
<artifactId>
redisson-spring-boot-starter
</artifactId>
<version>
3.15.6
</version>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<artifactId>
httpclient
</artifactId>
<version>
4.5.2
</version>
<version>
4.5.2
</version>
...
@@ -30,7 +35,7 @@
...
@@ -30,7 +35,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 +56,18 @@
...
@@ -51,6 +56,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>
...
@@ -236,7 +253,14 @@
...
@@ -236,7 +253,14 @@
<build>
<build>
<plugins>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<version>
2.22.2
</version>
<configuration>
<skipTests>
true
</skipTests>
</configuration>
</plugin>
<plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
...
...
src/main/java/com/mmc/oms/common/util/TDateUtil.java
浏览文件 @
86fa6dd6
...
@@ -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/controller/UserAddressController.java
浏览文件 @
86fa6dd6
...
@@ -14,7 +14,6 @@ import io.swagger.annotations.ApiResponses;
...
@@ -14,7 +14,6 @@ import io.swagger.annotations.ApiResponses;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.List
;
...
@@ -26,46 +25,47 @@ import java.util.List;
...
@@ -26,46 +25,47 @@ import java.util.List;
@RestController
@RestController
@RequestMapping
(
"/user-address/"
)
@RequestMapping
(
"/user-address/"
)
@Api
(
tags
=
{
"地址管理"
})
@Api
(
tags
=
{
"地址管理"
})
public
class
UserAddressController
extends
BaseController
{
public
class
UserAddressController
extends
BaseController
{
@Autowired
@Autowired
private
UserAddressService
userAddressService
;
private
UserAddressService
userAddressService
;
/**
/**
* 添加地址
* 添加地址
*
* @param request
* @param request
* @param param
* @param param
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"新增用户地址"
)
@ApiOperation
(
value
=
"新增用户地址"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@PostMapping
(
"insert"
)
@PostMapping
(
"insert"
)
public
ResultBody
insert
(
HttpServletRequest
request
,
@RequestBody
@Validated
(
Insert
.
class
)
UserAddressVO
param
)
{
public
ResultBody
insert
(
HttpServletRequest
request
,
@RequestBody
@Validated
(
Insert
.
class
)
UserAddressVO
param
)
{
return
userAddressService
.
insert
(
param
,
this
.
getCurrentAccount
(
request
));
return
userAddressService
.
insert
(
param
,
this
.
getCurrentAccount
(
request
));
}
}
@ApiOperation
(
value
=
"编辑用户地址"
)
@ApiOperation
(
value
=
"编辑用户地址"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@PostMapping
(
"update"
)
@PostMapping
(
"update"
)
public
ResultBody
update
(
@RequestBody
@Validated
(
Update
.
class
)
UserAddressVO
param
,
HttpServletRequest
request
)
{
public
ResultBody
update
(
@RequestBody
@Validated
(
Update
.
class
)
UserAddressVO
param
,
HttpServletRequest
request
)
{
return
userAddressService
.
update
(
param
,
this
.
getCurrentAccount
(
request
));
return
userAddressService
.
update
(
param
,
this
.
getCurrentAccount
(
request
));
}
}
@ApiOperation
(
value
=
"删除用户地址-根据id"
)
@ApiOperation
(
value
=
"删除用户地址-根据id"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)
})
@GetMapping
(
"deleteById"
)
@GetMapping
(
"deleteById"
)
public
ResultBody
deleteById
(
Integer
id
){
public
ResultBody
deleteById
(
Integer
id
)
{
return
userAddressService
.
deleteById
(
id
);
return
userAddressService
.
deleteById
(
id
);
}
}
@ApiOperation
(
value
=
"根据id查询地址"
)
@ApiOperation
(
value
=
"根据id查询地址"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserAddressDTO
.
class
)
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserAddressDTO
.
class
)
})
@GetMapping
(
"getUserAddressInfo"
)
@GetMapping
(
"getUserAddressInfo"
)
public
UserAddressDTO
getUserAddressInfo
(
@RequestParam
Integer
userAddressId
)
{
public
ResultBody
getUserAddressInfo
(
@RequestParam
Integer
userAddressId
)
{
return
userAddressService
.
getUserAddressInfo
(
userAddressId
);
return
ResultBody
.
success
(
userAddressService
.
getUserAddressInfo
(
userAddressId
)
);
}
}
@ApiOperation
(
value
=
"查询用户地址列表-条件查询"
)
@ApiOperation
(
value
=
"查询用户地址列表-条件查询"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserAddressDTO
.
class
)
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UserAddressDTO
.
class
)
})
@PostMapping
(
"selectList"
)
@PostMapping
(
"selectList"
)
public
ResultBody
<
List
<
UserAddressDTO
>>
selectList
(
@RequestBody
UserAddressQO
param
,
HttpServletRequest
request
)
{
public
ResultBody
<
List
<
UserAddressDTO
>>
selectList
(
@RequestBody
UserAddressQO
param
,
HttpServletRequest
request
)
{
return
userAddressService
.
selectList
(
param
,
this
.
getCurrentAccount
(
request
));
return
userAddressService
.
selectList
(
param
,
this
.
getCurrentAccount
(
request
));
...
...
src/main/java/com/mmc/oms/controller/demand/DemandReleaseOrderController.java
浏览文件 @
86fa6dd6
...
@@ -5,6 +5,7 @@ import com.mmc.oms.common.publicinterface.Insert;
...
@@ -5,6 +5,7 @@ import com.mmc.oms.common.publicinterface.Insert;
import
com.mmc.oms.common.publicinterface.Update
;
import
com.mmc.oms.common.publicinterface.Update
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.controller.demand.commit.NotRepeatSubmit
;
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.service.demand.DemandReleaseOrderService
;
import
com.mmc.oms.service.demand.DemandReleaseOrderService
;
...
@@ -16,10 +17,7 @@ import lombok.NoArgsConstructor;
...
@@ -16,10 +17,7 @@ import lombok.NoArgsConstructor;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.Length
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
springfox.documentation.annotations.ApiIgnore
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
...
@@ -55,6 +53,7 @@ public class DemandReleaseOrderController extends BaseController {
...
@@ -55,6 +53,7 @@ public class DemandReleaseOrderController extends BaseController {
@ApiOperation
(
value
=
"订单支付"
)
@ApiOperation
(
value
=
"订单支付"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"/orderPayment"
)
@PostMapping
(
"/orderPayment"
)
@NotRepeatSubmit
(
value
=
3000L
)
public
ResultBody
orderPayment
(
@RequestBody
@Validated
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
)
{
public
ResultBody
orderPayment
(
@RequestBody
@Validated
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
)
{
return
releaseOrderService
.
orderPayment
(
commonPaymentVO
,
request
,
this
.
getCurrentAccount
(
request
).
getUserAccountId
());
return
releaseOrderService
.
orderPayment
(
commonPaymentVO
,
request
,
this
.
getCurrentAccount
(
request
).
getUserAccountId
());
}
}
...
@@ -68,6 +67,24 @@ public class DemandReleaseOrderController extends BaseController {
...
@@ -68,6 +67,24 @@ public class DemandReleaseOrderController extends BaseController {
}
}
@ApiOperation
(
value
=
"通过id删除订单"
)
@GetMapping
(
"/getDeleteOrder"
)
public
ResultBody
getDelete
(
@ApiParam
(
value
=
"requirementsInfoId"
,
required
=
true
)
@RequestParam
Integer
requirementsInfoId
){
return
releaseOrderService
.
getDelete
(
requirementsInfoId
);
}
@ApiOperation
(
value
=
"通过需求id获取支付编号"
)
@GetMapping
(
"/getPaymentOrderNumber"
)
public
String
getOrderNumber
(
@ApiParam
(
value
=
"requirementsInfoId"
,
required
=
true
)
@RequestParam
Integer
requirementsInfoId
){
return
releaseOrderService
.
getOrderNumber
(
requirementsInfoId
);
}
...
...
src/main/java/com/mmc/oms/controller/demand/commit/NotRepeatSubmit.java
0 → 100644
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
controller
.
demand
.
commit
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* @Author small
* @Date 2023/8/26 16:34
* @Version 1.0
*/
@Target
({
ElementType
.
TYPE
,
ElementType
.
METHOD
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
NotRepeatSubmit
{
long
value
();
}
src/main/java/com/mmc/oms/controller/demand/commit/NotRepeatSubmitConfig.java
0 → 100644
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
controller
.
demand
.
commit
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.dao.demand.DemandReleaseOrderDao
;
import
com.mmc.oms.entity.demand.GetOrderNumberDO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDTO
;
import
com.mmc.oms.model.vo.demand.CommonPaymentVO
;
import
com.mmc.oms.model.vo.demand.UserPayInfoVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.Signature
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.CodeSignature
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.http.*
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Method
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
/**
* @Author small
* @Date 2023/8/26 16:13
* @Version 1.0
*/
@Slf4j
@Component
@Aspect
public
class
NotRepeatSubmitConfig
extends
BaseController
{
@Autowired
private
RedissonClient
redissonClient
;
@Autowired
private
DemandReleaseOrderDao
releaseOrderDao
;
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
@Autowired
private
RestTemplate
restTemplate
;
@Value
(
"${payment.url}"
)
private
String
paymentApp
;
@Pointcut
(
"@within(notRepeatSubmit)||@annotation(notRepeatSubmit)"
)
public
void
pointcut
(
NotRepeatSubmit
notRepeatSubmit
)
{
}
@Around
(
value
=
"pointcut(notRepeatSubmit)"
)
public
Object
around
(
ProceedingJoinPoint
proceedingJoinPoint
,
NotRepeatSubmit
notRepeatSubmit
)
throws
Throwable
{
log
.
info
(
"提交之前---"
);
Object
result
=
null
;
long
leaseTime
=
notRepeatSubmit
.
value
();
log
.
info
(
"leaseTime:"
+
leaseTime
);
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
attributes
.
getRequest
();
Integer
userAccountId
=
this
.
getCurrentAccount
(
request
).
getUserAccountId
();
String
accountUriLockKey
=
userAccountId
+
"-"
+
request
.
getServletPath
();
// 设置锁定资源名称,accountUriLock改为userid+uri作为标识,作为测试写死
// String accountUriLockKey = "accountUriLock";
RLock
accountUriLock
=
redissonClient
.
getLock
(
accountUriLockKey
);
boolean
tryLock
;
MethodSignature
signature
=
(
MethodSignature
)
proceedingJoinPoint
.
getSignature
();
Method
method
=
signature
.
getMethod
();
String
name
=
method
.
getDeclaringClass
().
getName
();
String
[]
parameterNames
=
signature
.
getParameterNames
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
Object
[]
values
=
proceedingJoinPoint
.
getArgs
();
String
[]
names
=
((
CodeSignature
)
proceedingJoinPoint
.
getSignature
()).
getParameterNames
();
for
(
int
i
=
0
;
i
<
names
.
length
;
i
++)
{
map
.
put
(
names
[
i
],
values
[
i
]);
}
log
.
info
(
map
+
""
);
CommonPaymentVO
commonPaymentsVO
=
(
CommonPaymentVO
)
map
.
get
(
"commonPaymentVO"
);
//尝试获取分布式锁
//-1为永久 leaseTime 最多等待几秒 上锁以后leaseTime秒自动解锁
tryLock
=
accountUriLock
.
tryLock
(-
1
,
leaseTime
,
TimeUnit
.
MILLISECONDS
);
log
.
info
(
"tryLock:"
+
tryLock
);
if
(
tryLock
)
{
try
{
String
orderNumber
=
commonPaymentsVO
.
getOrderNumber
();
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
orderNumber
);
GetOrderNumberDTO
getOrderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
if
(
getOrderNumberDTO
!=
null
){
GetOrderNumberDO
getOrderNumberDO
=
new
GetOrderNumberDO
(
getOrderNumberDTO
);
if
(
getOrderNumberDTO
.
getRequirementsInfoId
()!=
null
){
String
orderNumber1
=
releaseOrderDao
.
getOrderNumber
(
getOrderNumberDO
.
getRequirementsInfoId
());
if
(
orderNumber1
!=
null
){
UserPayInfoVO
userPayInfoVO
=
queryUserPayInfo
(
orderNumber1
,
request
);
if
(
userPayInfoVO
.
getTradeState
()!=
"SUCCESS"
){
releaseOrderDao
.
getDelete
(
getOrderNumberDO
.
getRequirementsInfoId
());
}
}
int
i
=
releaseOrderDao
.
selectOrderNumberDO
(
getOrderNumberDO
.
getRequirementsInfoId
());
if
(
i
!=
0
){
return
ResultBody
.
error
(
"当前需求已有人支付"
);
}
}
}
// 查询订单库存判断是否大于0
// 大于0表示还有库存可以更新订单库存将库存数字减一更新到数据库中
// 不大于0表示没有库存了本次请求就终止
log
.
info
(
"正常提交:"
);
result
=
proceedingJoinPoint
.
proceed
();
}
catch
(
Exception
e
)
{
log
.
info
(
"主程序异常:"
+
e
);
throw
new
Exception
(
e
);
}
}
else
{
log
.
info
(
"重复提交:"
+
accountUriLockKey
);
}
log
.
info
(
"提交之后---"
);
return
result
;
}
/**
* 通过订单编号查看是否支付成功
*
* @param orderNo
* @return
*/
public
UserPayInfoVO
queryUserPayInfo
(
String
orderNo
,
HttpServletRequest
request
)
{
String
token
=
request
.
getHeader
(
"token"
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
add
(
"token"
,
token
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
JSONObject
.
toJSONString
(
orderNo
),
headers
);
ResponseEntity
<
UserPayInfoVO
>
exchange
=
restTemplate
.
exchange
(
paymentApp
+
"wechat/queryUserPayInfo?orderNo="
+
orderNo
,
HttpMethod
.
GET
,
entity
,
UserPayInfoVO
.
class
);
UserPayInfoVO
body
=
exchange
.
getBody
();
return
body
;
}
}
src/main/java/com/mmc/oms/dao/demand/DemandReleaseOrderDao.java
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
dao
.
demand
;
package
com
.
mmc
.
oms
.
dao
.
demand
;
import
com.mmc.oms.common.result.ResultBody
;
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.model.vo.demand.UserPayInfoVO
;
import
com.mmc.oms.model.vo.demand.UserPayInfoVO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
...
@@ -20,4 +22,12 @@ public interface DemandReleaseOrderDao {
...
@@ -20,4 +22,12 @@ public interface DemandReleaseOrderDao {
void
updateOrderDemand
(
DemandReleaseOrderDO
releaseOrderDO
);
void
updateOrderDemand
(
DemandReleaseOrderDO
releaseOrderDO
);
DemandReleaseOrderDO
selectPhone
(
String
orderNumber
);
DemandReleaseOrderDO
selectPhone
(
String
orderNumber
);
void
insertService
(
GetOrderNumberDO
getOrderNumberDO
);
int
selectOrderNumberDO
(
Integer
requirementsInfoId
);
void
getDelete
(
Integer
requirementsInfoId
);
String
getOrderNumber
(
Integer
requirementsInfoId
);
}
}
src/main/java/com/mmc/oms/dao/demand/PublishServiceOrderDao.java
0 → 100644
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
dao
.
demand
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author small
* @Date 2023/8/19 15:28
* @Version 1.0
*/
@Mapper
public
interface
PublishServiceOrderDao
{
}
src/main/java/com/mmc/oms/dao/topup/TopUpOrderDao.java
0 → 100644
浏览文件 @
86fa6dd6
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/demand/GetOrderNumberDO.java
0 → 100644
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
entity
.
demand
;
import
com.mmc.oms.model.vo.demand.OrderRequestParamsVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
/**
* @Author small
* @Date 2023/8/19 17:03
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
GetOrderNumberDO
{
private
Integer
id
;
private
static
final
long
serialVersionUID
=
75097833899496576L
;
@ApiModelProperty
(
value
=
"支付订单编号"
,
example
=
"dadasdas"
)
private
String
paymentOrderNumber
;
@ApiModelProperty
(
value
=
"微信需要支付金额"
,
example
=
"100"
)
private
BigDecimal
weChatPay
;
@ApiModelProperty
(
value
=
"用户id"
,
example
=
"100"
,
hidden
=
true
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"服务id"
)
private
Integer
requirementsInfoId
;
public
GetOrderNumberDO
(
GetOrderNumberDTO
getOrderNumberDTO
){
this
.
paymentOrderNumber
=
getOrderNumberDTO
.
getPaymentOrderNumber
();
this
.
weChatPay
=
getOrderNumberDTO
.
getWeChatPay
();
this
.
userAccountId
=
getOrderNumberDTO
.
getUserAccountId
();
this
.
requirementsInfoId
=
getOrderNumberDTO
.
getRequirementsInfoId
();
}
public
OrderRequestParamsVO
orderRequestParamsVO
()
{
return
OrderRequestParamsVO
.
builder
().
orderNo
(
this
.
paymentOrderNumber
)
.
description
(
"发布服务需求支付"
).
orderPort
(
4
)
.
build
();
}
}
src/main/java/com/mmc/oms/entity/demand/GetOrderNumberDTO.java
0 → 100644
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
entity
.
demand
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @Author small
* @Date 2023/8/19 16:59
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
GetOrderNumberDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
75097833899496576L
;
@ApiModelProperty
(
value
=
"制度订单编号"
,
example
=
"dadasdas"
)
private
String
paymentOrderNumber
;
@ApiModelProperty
(
value
=
"微信需要支付金额"
,
example
=
"100"
)
private
BigDecimal
weChatPay
;
@ApiModelProperty
(
value
=
"用户id"
,
example
=
"100"
,
hidden
=
true
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"服务id"
)
private
Integer
requirementsInfoId
;
}
src/main/java/com/mmc/oms/entity/topup/TopUpOrderDO.java
0 → 100644
浏览文件 @
86fa6dd6
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
浏览文件 @
86fa6dd6
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.PostMapping
;
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
{
/**
@PostMapping
(
"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
浏览文件 @
86fa6dd6
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
userAppApi
()
{
return
new
UserAppApiHystrix
();
}
}
}
src/main/java/com/mmc/oms/feign/hystrix/UserAppApiHystrix.java
浏览文件 @
86fa6dd6
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
浏览文件 @
86fa6dd6
...
@@ -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发布需求 ...其他后续加"
)
@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
浏览文件 @
86fa6dd6
...
@@ -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
浏览文件 @
86fa6dd6
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
浏览文件 @
86fa6dd6
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
浏览文件 @
86fa6dd6
package
com
.
mmc
.
oms
.
mq
.
listener
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mmc.oms.dao.topup.TopUpOrderDao
;
import
com.mmc.oms.entity.topup.TopUpOrderDO
;
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
;
@RabbitListener
(
queues
=
RabbitmqConstant
.
USER_TOP_UP_DIRECT_QUEUE
)
public
void
subscribeDirectQueue
(
@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
);
log
.
info
(
"<==========用户充值订单消费结束==========>"
);
}
}
src/main/java/com/mmc/oms/service/demand/DemandReleaseOrderService.java
浏览文件 @
86fa6dd6
...
@@ -19,4 +19,8 @@ public interface DemandReleaseOrderService {
...
@@ -19,4 +19,8 @@ public interface DemandReleaseOrderService {
ResultBody
orderPayment
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
);
ResultBody
orderPayment
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
);
ResultBody
getPublishPhone
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
);
ResultBody
getPublishPhone
(
CommonPaymentVO
commonPaymentVO
,
HttpServletRequest
request
,
Integer
userAccountId
);
ResultBody
getDelete
(
Integer
requirementsInfoId
);
String
getOrderNumber
(
Integer
requirementsInfoId
);
}
}
src/main/java/com/mmc/oms/service/demand/Impl/DemandReleaseOrderServiceImpl.java
浏览文件 @
86fa6dd6
差异被折叠。
点击展开。
src/main/resources/application-dev.yml
浏览文件 @
86fa6dd6
...
@@ -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
浏览文件 @
86fa6dd6
...
@@ -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/demand/DemandReleaseOrderDao.xml
浏览文件 @
86fa6dd6
...
@@ -37,4 +37,34 @@
...
@@ -37,4 +37,34 @@
<select
id=
"selectPhone"
resultType=
"com.mmc.oms.entity.demand.DemandReleaseOrderDO"
>
<select
id=
"selectPhone"
resultType=
"com.mmc.oms.entity.demand.DemandReleaseOrderDO"
>
select publish_phone,requirements_info_id,user_account_id,order_number from demand_release_order where order_number = #{orderNumber}
select publish_phone,requirements_info_id,user_account_id,order_number from demand_release_order where order_number = #{orderNumber}
</select>
</select>
<insert
id=
"insertService"
parameterType=
"com.mmc.oms.entity.demand.GetOrderNumberDO"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
INSERT INTO service_demand_order(payment_order_number, we_chat_pay, user_account_id, create_time,update_time,requirements_info_id)
VALUES (#{paymentOrderNumber}, #{weChatPay},#{userAccountId},NOW(),NOW(),#{requirementsInfoId});
</insert>
<select
id=
"selectOrderNumberDO"
resultType=
"java.lang.Integer"
>
SELECT
count(*)
FROM
service_demand_order
WHERE
requirements_info_id =#{requirementsInfoId}
</select>
<delete
id=
"getDelete"
>
delete
from service_demand_order
where requirements_info_id = #{requirementsInfoId}
</delete>
<select
id=
"getOrderNumber"
resultType=
"java.lang.String"
>
SELECT
payment_order_number
FROM
service_demand_order
WHERE
requirements_info_id =#{requirementsInfoId}
</select>
</mapper>
</mapper>
src/main/resources/mapper/demand/PublishServiceOrderDao.xml
0 → 100644
浏览文件 @
86fa6dd6
<?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.demand.PublishServiceOrderDao"
>
</mapper>
src/main/resources/mapper/topup/TopUpOrderDao.xml
0 → 100644
浏览文件 @
86fa6dd6
<?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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论