Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
oms-ci-test
Commits
48a581d6
提交
48a581d6
authored
10月 07, 2023
作者:
zhenjie
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
425446e4
d43987ca
隐藏空白字符变更
内嵌
并排
正在显示
64 个修改的文件
包含
3626 行增加
和
226 行删除
+3626
-226
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
OmsApplication.java
src/main/java/com/mmc/oms/OmsApplication.java
+2
-0
CodeUtil.java
src/main/java/com/mmc/oms/common/util/CodeUtil.java
+21
-0
OrderReportController.java
...va/com/mmc/oms/controller/data/OrderReportController.java
+36
-0
LeaseOrderController.java
...va/com/mmc/oms/controller/lease/LeaseOrderController.java
+117
-0
UavCartController.java
...in/java/com/mmc/oms/controller/uav/UavCartController.java
+2
-0
UavOrderController.java
...n/java/com/mmc/oms/controller/uav/UavOrderController.java
+11
-6
UserAddressDao.java
src/main/java/com/mmc/oms/dao/UserAddressDao.java
+1
-0
OrderReportDao.java
src/main/java/com/mmc/oms/dao/data/OrderReportDao.java
+12
-0
LeaseOrderDao.java
src/main/java/com/mmc/oms/dao/lease/LeaseOrderDao.java
+49
-0
UavCartDao.java
src/main/java/com/mmc/oms/dao/uav/UavCartDao.java
+2
-0
UavOrderDao.java
src/main/java/com/mmc/oms/dao/uav/UavOrderDao.java
+12
-1
UavOrderExpressDao.java
src/main/java/com/mmc/oms/dao/uav/UavOrderExpressDao.java
+2
-0
UavPayWxDao.java
src/main/java/com/mmc/oms/dao/uav/UavPayWxDao.java
+24
-0
LeaseOrderDO.java
src/main/java/com/mmc/oms/entity/lease/LeaseOrderDO.java
+169
-0
LeaseOrderExpressDO.java
...in/java/com/mmc/oms/entity/lease/LeaseOrderExpressDO.java
+103
-0
LeaseRefundOrderDO.java
...ain/java/com/mmc/oms/entity/lease/LeaseRefundOrderDO.java
+65
-0
UavOrderRemarkDO.java
src/main/java/com/mmc/oms/entity/uav/UavOrderRemarkDO.java
+12
-0
UavPayWxDO.java
src/main/java/com/mmc/oms/entity/uav/UavPayWxDO.java
+31
-0
UavPayWxSubDO.java
src/main/java/com/mmc/oms/entity/uav/UavPayWxSubDO.java
+28
-0
LeaseOrderStatus.java
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
+39
-0
LeaseTermInfo.java
src/main/java/com/mmc/oms/enums/LeaseTermInfo.java
+35
-0
OrderType.java
src/main/java/com/mmc/oms/enums/OrderType.java
+34
-0
ImsAppApi.java
src/main/java/com/mmc/oms/feign/ImsAppApi.java
+19
-0
PmsAppApi.java
src/main/java/com/mmc/oms/feign/PmsAppApi.java
+8
-1
UserAppApi.java
src/main/java/com/mmc/oms/feign/UserAppApi.java
+3
-0
FeignConfiguration.java
...ain/java/com/mmc/oms/feign/config/FeignConfiguration.java
+5
-0
ImsApiHystrix.java
src/main/java/com/mmc/oms/feign/hystrix/ImsApiHystrix.java
+20
-0
PmsAppApiHystrix.java
...main/java/com/mmc/oms/feign/hystrix/PmsAppApiHystrix.java
+8
-2
UserAppApiHystrix.java
...ain/java/com/mmc/oms/feign/hystrix/UserAppApiHystrix.java
+6
-0
AuthSignatureFilter.java
src/main/java/com/mmc/oms/filter/AuthSignatureFilter.java
+4
-1
OrderReportDTO.java
src/main/java/com/mmc/oms/model/dto/data/OrderReportDTO.java
+35
-0
ReleaseReportDTO.java
...ain/java/com/mmc/oms/model/dto/data/ReleaseReportDTO.java
+31
-0
LeaseOrderDTO.java
src/main/java/com/mmc/oms/model/dto/lease/LeaseOrderDTO.java
+98
-0
LeaseRefundOrderDTO.java
...java/com/mmc/oms/model/dto/lease/LeaseRefundOrderDTO.java
+39
-0
TranStatusDicDTO.java
...va/com/mmc/oms/model/dto/transtatus/TranStatusDicDTO.java
+2
-1
MultiUavOrderDTO.java
...main/java/com/mmc/oms/model/dto/uav/MultiUavOrderDTO.java
+25
-0
UavCartCompanyDTO.java
...ain/java/com/mmc/oms/model/dto/uav/UavCartCompanyDTO.java
+8
-0
UavCartDTO.java
src/main/java/com/mmc/oms/model/dto/uav/UavCartDTO.java
+4
-2
UavOrderRemarkDTO.java
...ain/java/com/mmc/oms/model/dto/uav/UavOrderRemarkDTO.java
+40
-0
UavCartQO.java
src/main/java/com/mmc/oms/model/qo/uav/UavCartQO.java
+0
-2
AddLeaseOrderVO.java
...main/java/com/mmc/oms/model/vo/lease/AddLeaseOrderVO.java
+64
-0
LeaseGoodsVO.java
src/main/java/com/mmc/oms/model/vo/lease/LeaseGoodsVO.java
+134
-0
LeaseOrderRefundVO.java
...n/java/com/mmc/oms/model/vo/lease/LeaseOrderRefundVO.java
+35
-0
LeasePriceStockVO.java
...in/java/com/mmc/oms/model/vo/lease/LeasePriceStockVO.java
+63
-0
AddUavOrderByCartQO.java
...in/java/com/mmc/oms/model/vo/uav/AddUavOrderByCartQO.java
+0
-6
OrderReportService.java
...ain/java/com/mmc/oms/service/data/OrderReportService.java
+13
-0
OrderReportServiceImpl.java
...com/mmc/oms/service/data/impl/OrderReportServiceImpl.java
+51
-0
DemandReleaseOrderServiceImpl.java
...ms/service/demand/Impl/DemandReleaseOrderServiceImpl.java
+65
-17
LeaseOrderService.java
...ain/java/com/mmc/oms/service/lease/LeaseOrderService.java
+43
-0
LeaseOrderServiceImpl.java
...com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
+664
-0
ServiceOrderTaskServiceImpl.java
...mc/oms/service/mall/impl/ServiceOrderTaskServiceImpl.java
+3
-2
UavCartService.java
src/main/java/com/mmc/oms/service/uav/UavCartService.java
+1
-1
UavOrderService.java
src/main/java/com/mmc/oms/service/uav/UavOrderService.java
+7
-3
UavCartServiceImpl.java
...java/com/mmc/oms/service/uav/impl/UavCartServiceImpl.java
+27
-23
UavOrderServiceImpl.java
...ava/com/mmc/oms/service/uav/impl/UavOrderServiceImpl.java
+248
-75
TDateUtil.java
src/main/java/com/mmc/oms/util/TDateUtil.java
+611
-0
application-dev.yml
src/main/resources/application-dev.yml
+2
-2
OrderReportDao.xml
src/main/resources/mapper/data/OrderReportDao.xml
+6
-0
LeaseOrderDao.xml
src/main/resources/mapper/lease/LeaseOrderDao.xml
+233
-0
UavCartDao.xml
src/main/resources/mapper/uav/UavCartDao.xml
+8
-0
UavOrderDao.xml
src/main/resources/mapper/uav/UavOrderDao.xml
+137
-80
UavOrderExpressDao.xml
src/main/resources/mapper/uav/UavOrderExpressDao.xml
+8
-0
UavPayWxDao.xml
src/main/resources/mapper/uav/UavPayWxDao.xml
+40
-0
没有找到文件。
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
48a581d6
...
...
@@ -14,4 +14,4 @@ patches:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/oms
newTag
:
62d5ba1ec80b8f48768cc6453fedc8e3fb12f95c
newTag
:
b7b6292e8a4fd03a5ea0c9ad7cb8d3079ed995ad
src/main/java/com/mmc/oms/OmsApplication.java
浏览文件 @
48a581d6
...
...
@@ -3,8 +3,10 @@ package com.mmc.oms;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
@SpringBootApplication
@EnableScheduling
@EnableFeignClients
(
basePackages
=
"com.mmc.oms.feign"
)
public
class
OmsApplication
{
...
...
src/main/java/com/mmc/oms/common/util/CodeUtil.java
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
common
.
util
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Random
;
import
java.util.concurrent.atomic.AtomicInteger
;
/**
* @Author small
...
...
@@ -236,6 +239,14 @@ public class CodeUtil {
return
sb
.
toString
();
}
public
static
String
multiUavOrderPayCode
()
{
StringBuffer
sb
=
new
StringBuffer
();
sb
.
append
(
"m"
);
sb
.
append
(
TDateUtil
.
getCurrentDateByType
(
"yyyyMMddHHmmss"
));
sb
.
append
(
CodeUtil
.
getRandomNum
(
4
));
return
sb
.
toString
();
}
/**
* 活动编号
*/
...
...
@@ -243,4 +254,14 @@ public class CodeUtil {
return
"AC"
+
CodeUtil
.
getRandomNum
(
5
);
}
private
static
final
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
private
static
final
AtomicInteger
counter
=
new
AtomicInteger
(
0
);
public
static
String
generateOrderId
()
{
Date
now
=
new
Date
();
String
dateString
=
sdf
.
format
(
now
);
int
count
=
counter
.
incrementAndGet
();
return
"ORD"
+
dateString
+
String
.
format
(
"%04d"
,
count
);
}
}
src/main/java/com/mmc/oms/controller/data/OrderReportController.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
controller
.
data
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.model.dto.data.OrderReportDTO
;
import
com.mmc.oms.service.data.OrderReportService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @Author LW
* @date 2023/9/16 17:49
* 概要:
*/
@Api
(
tags
=
"云享飞加盟入驻及商品sku看板数据"
)
@RequestMapping
(
"/product/report"
)
@RestController
public
class
OrderReportController
{
@Autowired
private
OrderReportService
orderReportService
;
@ApiOperation
(
value
=
"获取用户报表数据"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
OrderReportDTO
.
class
)})
@GetMapping
(
"/getOrderReportData"
)
public
ResultBody
<
OrderReportDTO
>
getOrderReportData
()
{
return
orderReportService
.
getOrderReportData
();
}
}
src/main/java/com/mmc/oms/controller/lease/LeaseOrderController.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
controller
.
lease
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.model.dto.lease.LeaseOrderDTO
;
import
com.mmc.oms.model.dto.transtatus.TranStatusDicDTO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.vo.lease.AddLeaseOrderVO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
com.mmc.oms.service.lease.LeaseOrderService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @author: lw
* @Date: 2023/9/21 16:29
*/
@Api
(
tags
=
{
"最新版--租赁订单接口"
})
@RestController
@RequestMapping
(
"/lease/order/"
)
public
class
LeaseOrderController
extends
BaseController
{
@Resource
private
LeaseOrderService
leaseOrderService
;
@ApiOperation
(
value
=
"提交订单"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
LeaseOrderDTO
.
class
)})
@PostMapping
(
"addLeaseOrder"
)
public
ResultBody
<
LeaseOrderDTO
>
addLeaseOrder
(
@RequestBody
AddLeaseOrderVO
param
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
addLeaseOrder
(
param
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"订单详情"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
LeaseOrderDTO
.
class
)})
@GetMapping
(
"detail"
)
public
ResultBody
<
LeaseOrderDTO
>
detail
(
@RequestParam
Integer
id
,
HttpServletRequest
request
)
throws
Exception
{
return
leaseOrderService
.
detail
(
id
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"买家申请退款(取消订单)"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"close"
)
public
ResultBody
close
(
@RequestBody
LeaseOrderRefundVO
leaseOrderRefundVO
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
close
(
leaseOrderRefundVO
,
this
.
getCurrentAccount
(
request
).
getToken
());
}
@ApiOperation
(
value
=
"后台订单列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
LeaseOrderDTO
.
class
)})
@PostMapping
(
"list"
)
public
ResultBody
<
LeaseOrderDTO
>
list
(
@RequestBody
UavOrderQO
uavOrderQO
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
list
(
uavOrderQO
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"个人订单列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
LeaseOrderDTO
.
class
)})
@PostMapping
(
"listByUid"
)
public
ResultBody
<
LeaseOrderDTO
>
listByUid
(
@RequestBody
UavOrderQO
uavOrderQO
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
listByUid
(
uavOrderQO
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"支付"
,
hidden
=
true
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"pay"
)
public
ResultBody
pay
(
@RequestParam
Integer
id
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
pay
(
id
,
this
.
getCurrentAccount
(
request
),
request
);
}
@ApiOperation
(
value
=
"发货"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"send"
)
public
ResultBody
send
(
@RequestBody
UavOrderExpressVO
param
)
{
return
leaseOrderService
.
send
(
param
);
}
@ApiOperation
(
value
=
"用户收货"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"receive"
)
public
ResultBody
receive
(
@RequestParam
Integer
id
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
receive
(
id
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"归还商品"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"giveBack"
)
public
ResultBody
giveBack
(
@RequestBody
LeaseOrderRefundVO
leaseOrderRefundVO
,
HttpServletRequest
request
)
{
return
leaseOrderService
.
giveBack
(
leaseOrderRefundVO
,
this
.
getCurrentAccount
(
request
));
}
@ApiOperation
(
value
=
"平台确认归还"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"pfConfirmOrderWare"
)
public
ResultBody
pfConfirmOrderWare
(
HttpServletRequest
request
,
@RequestBody
LeaseOrderRefundVO
param
)
{
return
leaseOrderService
.
pfConfirmOrderWare
(
this
.
getCurrentAccount
(
request
),
param
);
}
@ApiOperation
(
value
=
"订单状态列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
TranStatusDicDTO
.
class
)})
@GetMapping
(
"statusList"
)
public
ResultBody
statusList
()
{
return
leaseOrderService
.
statusList
();
}
@ApiOperation
(
value
=
"用户删除订单"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@GetMapping
(
"removeLeaseOrder"
)
public
ResultBody
removeLeaseOrder
(
@RequestParam
Integer
id
)
{
return
leaseOrderService
.
removeLeaseOrder
(
id
);
}
}
src/main/java/com/mmc/oms/controller/uav/UavCartController.java
浏览文件 @
48a581d6
...
...
@@ -2,6 +2,7 @@ package com.mmc.oms.controller.uav;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.model.dto.uav.UavCartCompanyDTO
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderDTO
;
...
...
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Arrays
;
import
java.util.List
;
/**
...
...
src/main/java/com/mmc/oms/controller/uav/UavOrderController.java
浏览文件 @
48a581d6
...
...
@@ -3,9 +3,7 @@ package com.mmc.oms.controller.uav;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.controller.BaseController
;
import
com.mmc.oms.model.dto.ContractInfoDTO
;
import
com.mmc.oms.model.dto.uav.UavCartCompanyDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderStatusDTO
;
import
com.mmc.oms.model.dto.uav.*
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.vo.uav.*
;
import
com.mmc.oms.service.uav.UavOrderService
;
...
...
@@ -38,10 +36,10 @@ public class UavOrderController extends BaseController {
}
@ApiOperation
(
value
=
"提交订单-购物车"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UavOrderDTO
.
class
)})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
Multi
UavOrderDTO
.
class
)})
@PostMapping
(
"addOrderByCart"
)
public
ResultBody
<
UavOrderDTO
>
addOrderByCart
(
@RequestBody
AddUavOrderByCartQO
orderByCartQO
,
HttpServletRequest
request
)
{
public
ResultBody
<
Multi
UavOrderDTO
>
addOrderByCart
(
@RequestBody
AddUavOrderByCartQO
orderByCartQO
,
HttpServletRequest
request
)
{
return
uavOrderService
.
addOrderByCart
(
orderByCartQO
,
this
.
getCurrentAccount
(
request
));
}
...
...
@@ -143,6 +141,13 @@ public class UavOrderController extends BaseController {
return
uavOrderService
.
removeUavOrder
(
id
);
}
@ApiOperation
(
value
=
"商品评价"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
UavOrderRemarkDTO
.
class
)})
@GetMapping
(
"listGoodsRemark"
)
public
List
<
UavOrderRemarkDTO
>
listGoodsRemark
(
@RequestParam
Integer
remarkType
,
@RequestParam
Integer
goodsId
)
{
return
uavOrderService
.
listGoodsRemark
(
remarkType
,
goodsId
);
}
// 设置订单抽成比例
// 微信完成回调-修改订单状态
...
...
src/main/java/com/mmc/oms/dao/UserAddressDao.java
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
dao
;
import
com.mmc.oms.entity.mall.UserAddressDO
;
import
com.mmc.oms.entity.uav.UavOrderExpressDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
...
...
src/main/java/com/mmc/oms/dao/data/OrderReportDao.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
dao
.
data
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author LW
* @date 2023/9/19 10:06
* 概要:
*/
@Mapper
public
interface
OrderReportDao
{
}
src/main/java/com/mmc/oms/dao/lease/LeaseOrderDao.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
dao
.
lease
;
import
com.mmc.oms.entity.lease.LeaseOrderDO
;
import
com.mmc.oms.entity.lease.LeaseOrderExpressDO
;
import
com.mmc.oms.entity.lease.LeaseRefundOrderDO
;
import
com.mmc.oms.entity.transtatus.TranStatusDicDO
;
import
com.mmc.oms.entity.uav.UavOrderDO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* @Author LW
* @date 2023/9/21 16:48
* 概要:
*/
@Mapper
public
interface
LeaseOrderDao
{
void
addOrder
(
LeaseOrderDO
leaseOrderDO
);
void
addAddress
(
LeaseOrderExpressDO
leaseOrderExpressDO
);
LeaseOrderDO
detail
(
Integer
id
);
LeaseOrderExpressDO
getLeaseOrderExpress
(
Integer
id
);
void
updateUavOrderStatus
(
Integer
id
,
Integer
code
);
void
addLeaseRefundOrder
(
LeaseRefundOrderDO
leaseRefundOrderDO
);
int
countList
(
UavOrderQO
uavOrderQO
);
List
<
LeaseOrderDO
>
list
(
UavOrderQO
uavOrderQO
);
List
<
LeaseRefundOrderDO
>
getLeaseRefundOrder
(
List
<
Integer
>
ids
);
UavOrderDO
detailByNo
(
String
orderNo
);
void
updateLeaseOrderExpress
(
LeaseOrderExpressDO
leaseOrderExpressDO
);
List
<
TranStatusDicDO
>
statusList
();
void
closeShowLeaseOrder
(
Integer
id
);
List
<
LeaseOrderExpressDO
>
listLeaseOrderExpress
(
List
<
Integer
>
expressIds
);
void
updateLeaseOrderProportion
(
Integer
id
,
int
proportion
);
}
src/main/java/com/mmc/oms/dao/uav/UavCartDao.java
浏览文件 @
48a581d6
...
...
@@ -23,4 +23,6 @@ public interface UavCartDao {
List
<
Integer
>
countList
(
Integer
userAccountId
);
List
<
UavCartCompanyDO
>
list
(
Integer
begin
,
Integer
pageSize
,
Integer
userAccountId
);
UavCartDO
countMallGoodsSku
(
UavCartDO
uavCartDO
);
}
src/main/java/com/mmc/oms/dao/uav/UavOrderDao.java
浏览文件 @
48a581d6
...
...
@@ -4,6 +4,7 @@ import com.mmc.oms.entity.uav.*;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -42,11 +43,21 @@ public interface UavOrderDao {
void
checkPay
(
UavOrderPayDO
uavOrderPayDO
);
void
addRemarkOrder
(
UavOrderRemarkDO
uavOrderRemarkDO
);
void
addRemarkOrder
(
List
<
UavOrderRemarkDO
>
uavOrderRemarkDOS
);
UavOrderPayDO
getUavOrderPayById
(
Integer
id
);
void
updateUavOrderProportion
(
Integer
id
,
Integer
proportion
);
void
closeShowUavOrder
(
Integer
id
);
void
batchAddOrder
(
List
<
UavOrderDO
>
orders
);
int
getOrderCount
();
BigDecimal
getSaleOrderGMV
();
List
<
UavOrderRemarkDO
>
listGoodsRemark
(
Integer
remarkType
,
Integer
goodsId
);
void
updateUavOrderRemarkStatus
(
Integer
id
);
}
src/main/java/com/mmc/oms/dao/uav/UavOrderExpressDao.java
浏览文件 @
48a581d6
...
...
@@ -18,4 +18,6 @@ public interface UavOrderExpressDao {
int
updateUavOrderExpressDO
(
UavOrderExpressDO
uavOrderExpressDO
);
List
<
UavOrderExpressDO
>
listNoReceive
();
void
batchAddOrderExpress
(
List
<
UavOrderExpressDO
>
expressDOS
);
}
src/main/java/com/mmc/oms/dao/uav/UavPayWxDao.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
dao
.
uav
;
import
com.mmc.oms.entity.uav.UavPayWxDO
;
import
com.mmc.oms.entity.uav.UavPayWxSubDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/9/21 19:36
*/
@Mapper
public
interface
UavPayWxDao
{
UavPayWxDO
getUavPayWx
(
String
payNo
);
void
addUavPayWx
(
UavPayWxDO
uavPayWx
);
void
batchAddUavPayWxSub
(
List
<
UavPayWxSubDO
>
payWxSubDOS
);
List
<
UavPayWxSubDO
>
listUavPayWxSub
(
Integer
uavPayWxId
);
void
finishUavPayWx
(
String
orderNo
,
String
tradeState
);
}
src/main/java/com/mmc/oms/entity/lease/LeaseOrderDO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
entity
.
lease
;
import
com.mmc.oms.model.dto.lease.LeaseOrderDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* (LeaseOrderDO)实体类
*
* @author makejava
* @since 2023-09-21 16:59:10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
LeaseOrderDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
58305538180098964L
;
private
Integer
id
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 订单状态
*/
private
Integer
statusCode
;
/**
* 下单用户id
*/
private
Integer
userAccountId
;
/**
* 租赁商品id
*/
private
Integer
leaseGoodsId
;
/**
* 商家企业名称
*/
private
String
companyName
;
/**
* 商家id
*/
private
Integer
thirdBackUserAccountId
;
/**
* 商品标题
*/
private
String
orderName
;
/**
* sku图片/商品图片
*/
private
String
skuImg
;
/**
* 订单总金额
*/
private
BigDecimal
orderTotalAmount
;
/**
* 抵扣佣金金额
*/
private
BigDecimal
salaryAmount
;
/**
* 抵扣云享金金额
*/
private
BigDecimal
shareAmount
;
/**
* 其他渠道应支付金额
*/
private
BigDecimal
otherAmount
;
/**
* 支付方式,wechatpay微信,alipay支付宝,offline线下
*/
private
String
payType
;
/**
* 用户收货地址id
*/
private
Integer
userAddressId
;
/**
* 买家备注信息
*/
private
String
userRemark
;
/**
* 商家备注信息
*/
private
String
sellerRemark
;
/**
* 支付时间
*/
private
Date
payTime
;
/**
* 确认收货时间(成交时间)
*/
private
Date
confirmReceiptTime
;
/**
* 修改版本
*/
private
Integer
version
;
/**
* 评价状态
*/
private
Integer
remarkStatus
;
/**
* 订单分成比例(平台收取)
*/
private
Integer
proportion
;
/**
* 用户删除(0用户不可看,1用户可看)
* (假删除,后台还能看到)
*/
private
Integer
showUserPort
;
/**
* 生成订单时间(下单时间)
*/
private
Date
createTime
;
/**
* 最近修改时间
*/
private
Date
updateTime
;
/**
* 单价 元/天
*/
private
BigDecimal
unitPrice
;
/**
* 购买的商品数量
*/
private
Integer
wareNum
;
/**
* 押金
*/
private
BigDecimal
deposit
;
/**
* 租约开始日
*/
private
Date
startDate
;
/**
* 租约结束日
*/
private
Date
endDate
;
/**
* 关闭原因
*/
private
String
shutReason
;
/**
* sku
*/
private
String
sku
;
/**
* 发货时间
*/
private
Date
sendWareTime
;
private
String
modeOfDeliveryInfo
;
private
BigDecimal
shareCashPledge
;
private
BigDecimal
salaryCashPledge
;
public
LeaseOrderDTO
buildLeaseOrderDTO
()
{
return
LeaseOrderDTO
.
builder
().
id
(
id
).
orderNo
(
orderNo
).
statusCode
(
statusCode
).
userAccountId
(
userAccountId
)
.
thirdBackUserAccountId
(
thirdBackUserAccountId
).
companyName
(
companyName
).
orderTotalAmount
(
orderTotalAmount
)
.
salaryAmount
(
salaryAmount
).
shareAmount
(
shareAmount
).
otherAmount
(
otherAmount
).
payType
(
payType
).
payTime
(
payTime
)
.
startDate
(
startDate
).
endDate
(
endDate
).
userRemark
(
userRemark
).
sellerRemark
(
sellerRemark
).
createTime
(
createTime
)
.
confirmReceiptTime
(
confirmReceiptTime
).
remarkStatus
(
remarkStatus
).
modeOfDeliveryInfo
(
modeOfDeliveryInfo
).
sku
(
sku
).
skuImg
(
skuImg
).
build
();
}
}
src/main/java/com/mmc/oms/entity/lease/LeaseOrderExpressDO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
entity
.
lease
;
import
com.mmc.oms.entity.mall.UserAddressDO
;
import
com.mmc.oms.model.dto.uav.UavOrderExpressDTO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* (LeaseOrderExpressDO)实体类
*
* @author makejava
* @since 2023-09-22 15:02:22
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
LeaseOrderExpressDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
24578000103219438L
;
private
Integer
id
;
private
Integer
leaseOrderId
;
private
String
sendExpNo
;
private
String
sendExpCode
;
/**
* 收货人姓名
*/
private
String
takeName
;
/**
* 收货人电话
*/
private
String
takePhone
;
/**
* 收货地区
*/
private
String
takeRegion
;
/**
* 收货详细地址
*/
private
String
takeAddress
;
private
String
returnExpNo
;
private
String
returnExpCode
;
private
Date
returnTime
;
/**
* 发货时间
*/
private
Date
sendTime
;
/**
* 是否已签收
*/
private
Integer
receive
;
/**
* 收货人签收时间
*/
private
Date
receiveTime
;
private
Date
updateTime
;
private
Date
createTime
;
public
LeaseOrderExpressDO
(
UserAddressDO
userAddressDO
)
{
this
.
takeName
=
userAddressDO
.
getTakeName
();
this
.
takePhone
=
userAddressDO
.
getTakePhone
();
this
.
takeRegion
=
userAddressDO
.
getTakeRegion
();
this
.
takeAddress
=
userAddressDO
.
getTakeAddress
();
}
public
LeaseOrderExpressDO
(
UavOrderExpressVO
param
)
{
this
.
id
=
param
.
getId
();
this
.
leaseOrderId
=
param
.
getUavOrderId
();
this
.
sendExpNo
=
param
.
getSendExpNo
();
this
.
sendExpCode
=
param
.
getSendExpCode
();
this
.
takeName
=
param
.
getTakeName
();
this
.
takePhone
=
param
.
getTakePhone
();
this
.
takeRegion
=
param
.
getTakeRegion
();
this
.
takeAddress
=
param
.
getTakeAddress
();
this
.
sendTime
=
new
Date
();
}
public
LeaseOrderExpressDO
(
LeaseOrderRefundVO
leaseOrderRefundVO
)
{
this
.
id
=
leaseOrderRefundVO
.
getId
();
this
.
leaseOrderId
=
leaseOrderRefundVO
.
getOrderId
();
this
.
returnExpNo
=
leaseOrderRefundVO
.
getExpressNum
();
this
.
returnExpCode
=
leaseOrderRefundVO
.
getExpressCode
();
this
.
receiveTime
=
new
Date
();
}
public
UavOrderExpressDTO
buildUavOrderExpressDTO
()
{
return
UavOrderExpressDTO
.
builder
().
id
(
this
.
id
).
uavOrderId
(
this
.
leaseOrderId
).
sendExpNo
(
this
.
sendExpNo
).
sendExpCode
(
this
.
sendExpCode
).
takeName
(
this
.
takeName
)
.
takePhone
(
this
.
takePhone
).
takeAddress
(
this
.
takeAddress
).
takeRegion
(
this
.
takeRegion
).
receive
(
this
.
receive
).
receiveTime
(
this
.
receiveTime
)
.
sendTime
(
this
.
sendTime
).
build
();
}
}
src/main/java/com/mmc/oms/entity/lease/LeaseRefundOrderDO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
entity
.
lease
;
import
com.mmc.oms.model.dto.lease.LeaseRefundOrderDTO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* (LeaseRefundOrderDO)实体类
*
* @author makejava
* @since 2023-09-23 15:49:05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
LeaseRefundOrderDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
78279245843440398L
;
private
Integer
id
;
private
Integer
leaseOrderId
;
/**
* 归还状态:0已归还 1无需归还
*/
private
Integer
status
;
/**
* 物流单号
*/
private
String
expressNum
;
/**
* 图片文件
*/
private
String
file
;
/**
* 原因
*/
private
String
reason
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
leaseOrderExpressId
;
private
Integer
type
;
public
LeaseRefundOrderDO
(
LeaseOrderRefundVO
leaseOrderRefundVO
)
{
this
.
leaseOrderId
=
leaseOrderRefundVO
.
getOrderId
();
this
.
status
=
leaseOrderRefundVO
.
getStatus
();
this
.
file
=
leaseOrderRefundVO
.
getFile
();
this
.
reason
=
leaseOrderRefundVO
.
getReason
();
}
public
LeaseRefundOrderDTO
buildLeaseRefundOrderDTO
()
{
return
LeaseRefundOrderDTO
.
builder
().
id
(
this
.
id
).
leaseOrderId
(
this
.
leaseOrderId
)
.
status
(
this
.
status
).
file
(
this
.
file
).
reason
(
this
.
reason
)
.
createTime
(
this
.
createTime
).
build
();
}
}
src/main/java/com/mmc/oms/entity/uav/UavOrderRemarkDO.java
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
entity
.
uav
;
import
com.mmc.oms.model.dto.uav.UavOrderRemarkDTO
;
import
com.mmc.oms.model.vo.uav.UavOrderRemarkVO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -8,6 +9,7 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author: zj
...
...
@@ -21,6 +23,8 @@ public class UavOrderRemarkDO implements Serializable {
private
static
final
long
serialVersionUID
=
3316555339556069007L
;
@ApiModelProperty
(
value
=
"评价id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"评价类型,0商城,1租赁"
)
private
Integer
remarkType
;
@ApiModelProperty
(
value
=
"商品id"
)
private
Integer
mallGoodsId
;
@ApiModelProperty
(
value
=
"订单id"
)
...
...
@@ -31,6 +35,14 @@ public class UavOrderRemarkDO implements Serializable {
private
String
uavImages
;
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"生成时间"
)
private
Date
createTime
;
public
UavOrderRemarkDTO
buildUavOrderRemarkDTO
()
{
return
UavOrderRemarkDTO
.
builder
().
id
(
this
.
id
).
remarkType
(
this
.
remarkType
).
mallGoodsId
(
this
.
mallGoodsId
)
.
uavOrderId
(
this
.
uavOrderId
).
remarkLevel
(
this
.
remarkLevel
).
content
(
this
.
content
).
uavImages
(
this
.
uavImages
)
.
createTime
(
this
.
createTime
).
build
();
}
public
UavOrderRemarkDO
(
UavOrderRemarkVO
uavOrderRemarkVO
){
this
.
id
=
uavOrderRemarkVO
.
getId
();
...
...
src/main/java/com/mmc/oms/entity/uav/UavPayWxDO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
entity
.
uav
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/9/21 16:59
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"多订单支付总记录"
)
public
class
UavPayWxDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3003931182943391633L
;
private
Integer
id
;
private
String
payNo
;
private
BigDecimal
amount
;
private
String
tradeState
;
private
Date
createTime
;
private
List
<
UavPayWxSubDO
>
payWxSubDOS
;
}
src/main/java/com/mmc/oms/entity/uav/UavPayWxSubDO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
entity
.
uav
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author: zj
* @Date: 2023/9/21 19:27
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"订单微信支付记录"
)
public
class
UavPayWxSubDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1446318972494082705L
;
private
Integer
id
;
private
Integer
uavPayWxId
;
private
Integer
uavOrderId
;
private
String
orderNo
;
private
BigDecimal
amount
;
private
Date
createTime
;
}
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
enums
;
/**
* @author: zj
* @Date: 2023/9/4 14:36
*/
public
enum
LeaseOrderStatus
{
PLACED_AN_ORDER
(
100
,
"已下单"
,
"待付款"
),
PAID
(
200
,
"已付款"
,
"待发货"
),
SHIPPED
(
300
,
"卖家已发货"
,
"待买家收货"
),
TO_BE_RETURNED
(
400
,
"待归还"
,
"待归还"
),
WAITING_MERCHANT_CONFIRM
(
500
,
"等待商家确认"
,
"等待商家确认"
),
REMAIN_TO_BE_EVALUATED
(
600
,
"待评价"
,
"待评价"
),
COMPLETE_TRANSACTION
(
700
,
"交易完成"
,
"交易完成"
),
APPLY_REFUND
(
800
,
"申请退款"
,
"退款中"
),
CLOSE
(
999
,
"订单关闭"
,
"订单关闭"
);
public
Integer
getCode
()
{
return
code
;
}
public
String
getDoing
()
{
return
doing
;
}
public
String
getWaiting
()
{
return
waiting
;
}
LeaseOrderStatus
(
Integer
code
,
String
doing
,
String
waiting
)
{
this
.
code
=
code
;
this
.
doing
=
doing
;
this
.
waiting
=
waiting
;
}
private
Integer
code
;
private
String
doing
;
private
String
waiting
;
}
src/main/java/com/mmc/oms/enums/LeaseTermInfo.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
enums
;
/**
* @author: lw
* @Date: 2023/9/4 14:36
*/
public
enum
LeaseTermInfo
{
THREE_DAY
(
1
,
3
,
"三天"
),
SEVEN_DAY
(
2
,
7
,
"七天"
),
THIRTY_DAY
(
3
,
30
,
"三十天"
),
NINETY_DAY
(
4
,
90
,
"九十天"
),
ONE_HUNDRED_AND_EIGHTY_DAY
(
5
,
180
,
"一百八十天"
);
public
Integer
getId
()
{
return
id
;
}
public
Integer
getDays
()
{
return
days
;
}
public
String
getDescription
()
{
return
description
;
}
LeaseTermInfo
(
Integer
id
,
Integer
days
,
String
description
)
{
this
.
id
=
id
;
this
.
days
=
days
;
this
.
description
=
description
;
}
private
Integer
id
;
private
Integer
days
;
private
String
description
;
}
src/main/java/com/mmc/oms/enums/OrderType.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
enums
;
/**
* @author 作者 lw
* @version 创建时间:2023年09月26日 下午10:57:12
* @explain 类说明
*/
public
enum
OrderType
{
REC
(
1
,
"客户收货"
),
RETURN
(
2
,
"归还"
),
PFREC
(
3
,
"平台收货"
),
RETREAT
(
4
,
"申请退款"
);
OrderType
(
Integer
code
,
String
status
)
{
this
.
code
=
code
;
this
.
status
=
status
;
}
private
Integer
code
;
private
String
status
;
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
}
src/main/java/com/mmc/oms/feign/ImsAppApi.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
feign
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.feign.hystrix.ImsApiHystrix
;
import
com.mmc.oms.model.dto.data.ReleaseReportDTO
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
/**
* @Author LW
* @date 2023/6/15 10:46 概要:
*/
@FeignClient
(
url
=
"${ims.url}"
,
name
=
"ims"
,
fallback
=
ImsApiHystrix
.
class
)
public
interface
ImsAppApi
{
@GetMapping
(
"/report/getReleaseReportData"
)
ResultBody
<
ReleaseReportDTO
>
getUserReportData
();
}
src/main/java/com/mmc/oms/feign/PmsAppApi.java
浏览文件 @
48a581d6
...
...
@@ -4,8 +4,12 @@ import com.mmc.oms.common.result.ResultBody;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
com.mmc.oms.model.vo.lease.LeaseGoodsVO
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
...
...
@@ -20,4 +24,7 @@ public interface PmsAppApi {
@PostMapping
(
"app/goods/listPriceStock"
)
List
<
UavCartDTO
>
listPriceStock
(
@RequestBody
List
<
PriceStockQO
>
priceStockQOS
);
@GetMapping
(
"app/lease/leaseGoodsDetails"
)
ResultBody
<
LeaseGoodsVO
>
leaseGoodsDetails
(
@RequestParam
Integer
id
);
}
src/main/java/com/mmc/oms/feign/UserAppApi.java
浏览文件 @
48a581d6
...
...
@@ -38,6 +38,9 @@ public interface UserAppApi {
@GetMapping
(
"company/getManagerIdByBackUserId"
)
public
ResultBody
getManagerIdByBackUserId
(
@RequestParam
Integer
backUserAccountId
,
@RequestHeader
String
token
);
@PostMapping
(
"user-account/feignListUserAccountByIds"
)
List
<
UserAccountSimpleDTO
>
feignListUserAccountByIds
(
@RequestBody
List
<
Integer
>
ids
,
@RequestHeader
(
"token"
)
String
token
);
/**
* 获取小程序用户集合列表页面
*
...
...
src/main/java/com/mmc/oms/feign/config/FeignConfiguration.java
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
feign
.
config
;
import
com.mmc.oms.feign.hystrix.ImsApiHystrix
;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.feign.hystrix.UserAppApiHystrix
;
import
org.springframework.context.annotation.Bean
;
...
...
@@ -24,4 +25,8 @@ public class FeignConfiguration {
return
new
UserAppApiHystrix
();
}
@Bean
(
name
=
"imsApiHystrix"
)
public
ImsApiHystrix
imsAppApi
()
{
return
new
ImsApiHystrix
();
}
}
src/main/java/com/mmc/oms/feign/hystrix/ImsApiHystrix.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
feign
.
hystrix
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.feign.ImsAppApi
;
import
com.mmc.oms.model.dto.data.ReleaseReportDTO
;
import
lombok.extern.slf4j.Slf4j
;
/**
* @Author LW
* @date 2023/6/15 10:47 概要:
*/
@Slf4j
public
class
ImsApiHystrix
implements
ImsAppApi
{
@Override
public
ResultBody
<
ReleaseReportDTO
>
getUserReportData
()
{
log
.
error
(
"熔断:ImsApiHystrix.getUserReportData"
);
return
null
;
}
}
src/main/java/com/mmc/oms/feign/hystrix/PmsAppApiHystrix.java
浏览文件 @
48a581d6
...
...
@@ -5,8 +5,8 @@ import com.mmc.oms.common.result.ResultBody;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
com.mmc.oms.model.vo.lease.LeaseGoodsVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
...
...
@@ -18,7 +18,7 @@ import java.util.List;
public
class
PmsAppApiHystrix
implements
PmsAppApi
{
@Override
public
ResultBody
feignLeaseGoodsInfoByAddressId
(
Integer
id
)
{
log
.
info
(
"熔断:PmsAppApiHystrix.feignLeaseGoodsInfoByAddressId==error==>param:{}"
,
id
);
log
.
info
(
"熔断:PmsAppApiHystrix.feignLeaseGoodsInfoByAddressId==error==>param:{}"
,
id
);
return
null
;
}
...
...
@@ -27,4 +27,10 @@ public class PmsAppApiHystrix implements PmsAppApi {
log
.
info
(
"熔断:PmsAppApiHystrix.listPriceStock==error==>param:{}"
,
JSONObject
.
toJSONString
(
priceStockQOS
));
return
null
;
}
@Override
public
ResultBody
<
LeaseGoodsVO
>
leaseGoodsDetails
(
Integer
id
)
{
log
.
info
(
"熔断:PmsAppApiHystrix.leaseGoodsDetails==error==>param:{}"
,
id
);
return
null
;
}
}
src/main/java/com/mmc/oms/feign/hystrix/UserAppApiHystrix.java
浏览文件 @
48a581d6
...
...
@@ -52,6 +52,12 @@ public class UserAppApiHystrix implements UserAppApi {
}
@Override
public
List
<
UserAccountSimpleDTO
>
feignListUserAccountByIds
(
List
<
Integer
>
ids
,
String
token
)
{
log
.
error
(
"熔断:UserAppApiHystrix.feignListUserAccountByIds:{}"
,
ids
);
return
null
;
}
@Override
public
List
<
UserAccountSimpleDTO
>
feignListAppUserAccount
(
UserAccountQO
userAccountQO
,
String
token
)
{
log
.
error
(
"熔断:UserAppApiHystrix.feignListAppUserAccount:{}"
,
userAccountQO
);
return
null
;
...
...
src/main/java/com/mmc/oms/filter/AuthSignatureFilter.java
浏览文件 @
48a581d6
...
...
@@ -39,7 +39,10 @@ public class AuthSignatureFilter implements AuthFilter {
/**
* 无需登录白名单
*/
private
static
final
String
[]
IGNORE_URLS
=
{
"/oms/swagger-resources"
,
"/oms/v2/api-docs"
,
"/oms/doc.html"
,
"/oms/mallorder/listStatus"
,
"/oms/actuator/health/readiness"
,
"/oms/uav-order/finishSign"
,
"/oms/uav-order/statusList"
};
private
static
final
String
[]
IGNORE_URLS
=
{
"/oms/swagger-resources"
,
"/oms/v2/api-docs"
,
"/oms/doc.html"
,
"/oms/mallorder/listStatus"
,
"/oms/actuator/health/readiness"
,
"/oms/uav-order/finishSign"
,
"/oms/uav-order/statusList"
,
"/oms/uav-order/listGoodsRemark"
};
/*无需加密狗无需登录白名单*/
private
static
final
String
[]
USE_KEY
=
{
"/oms/account/loginByUsbKey"
};
...
...
src/main/java/com/mmc/oms/model/dto/data/OrderReportDTO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
dto
.
data
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
/**
* @Author LW
* @date 2023/9/16 14:15
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
OrderReportDTO
{
@ApiModelProperty
(
value
=
"商城售卖订单总数"
)
private
Integer
saleOrderCount
;
@ApiModelProperty
(
value
=
"商品租赁订单总数"
)
private
Integer
leaseOrderCount
;
@ApiModelProperty
(
value
=
"服务订单订单总数"
)
private
Integer
serviceOrderCount
;
@ApiModelProperty
(
value
=
"商城售卖交易总额"
)
private
BigDecimal
saleGMV
;
@ApiModelProperty
(
value
=
"商品租赁交易总额"
)
private
BigDecimal
leaseGMV
;
@ApiModelProperty
(
value
=
"服务订单交易总额"
)
private
BigDecimal
serviceGMV
;
@ApiModelProperty
(
value
=
"交易总额"
)
private
BigDecimal
totalGMV
;
}
src/main/java/com/mmc/oms/model/dto/data/ReleaseReportDTO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
dto
.
data
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
/**
* @Author LW
* @date 2023/9/16 14:15
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
ReleaseReportDTO
{
@ApiModelProperty
(
value
=
"信息发布总数"
)
private
Integer
releaseCount
;
@ApiModelProperty
(
value
=
"订单发布数量"
)
private
Integer
orderReleaseCount
;
@ApiModelProperty
(
value
=
"帖子发布数量"
)
private
Integer
postsReleaseCount
;
@ApiModelProperty
(
value
=
"话题发布数量"
)
private
Integer
topicReleaseCount
;
@ApiModelProperty
(
value
=
"订单金额"
)
private
BigDecimal
serviceOrderAmount
;
}
src/main/java/com/mmc/oms/model/dto/lease/LeaseOrderDTO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
dto
.
lease
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mmc.oms.model.dto.kdn.KdnExpDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderExpressDTO
;
import
io.swagger.annotations.ApiModel
;
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
;
import
java.util.Date
;
/**
* @author: lw
* @Date: 2023/9/4 14:50
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
description
=
"最新版-订单"
)
public
class
LeaseOrderDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7548192478556457453L
;
@ApiModelProperty
(
"id"
)
private
Integer
id
;
@ApiModelProperty
(
"订单编号"
)
private
String
orderNo
;
@ApiModelProperty
(
"订单状态"
)
private
Integer
statusCode
;
@ApiModelProperty
(
"买家id"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
"买家手机号"
)
private
String
phoneNum
;
@ApiModelProperty
(
"买家姓名"
)
private
String
userName
;
@ApiModelProperty
(
"买家昵称"
)
private
String
nickname
;
@ApiModelProperty
(
"卖家id"
)
private
Integer
thirdBackUserAccountId
;
@ApiModelProperty
(
"卖家企业名称"
)
private
String
companyName
;
@ApiModelProperty
(
"订单实付总额"
)
private
BigDecimal
orderTotalAmount
;
@ApiModelProperty
(
"订单需付金额"
)
private
BigDecimal
needPayAmount
;
@ApiModelProperty
(
"抵扣佣金余额"
)
private
BigDecimal
salaryAmount
;
@ApiModelProperty
(
"抵扣云享金余额"
)
private
BigDecimal
shareAmount
;
@ApiModelProperty
(
"其他方式支付额度"
)
private
BigDecimal
otherAmount
;
@ApiModelProperty
(
"wechatpay微信,alipay支付宝,offline线下"
)
private
String
payType
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"租赁开始时间"
)
private
Date
startDate
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"租赁结束时间"
)
private
Date
endDate
;
@ApiModelProperty
(
"买家备注"
)
private
String
userRemark
;
@ApiModelProperty
(
"卖家备注"
)
private
String
sellerRemark
;
@ApiModelProperty
(
"下单时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
@ApiModelProperty
(
"支付时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
payTime
;
@ApiModelProperty
(
"确认收货时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
confirmReceiptTime
;
@ApiModelProperty
(
value
=
"修改版本"
,
hidden
=
true
)
private
Integer
version
;
@ApiModelProperty
(
"评价状态"
)
private
Integer
remarkStatus
;
@ApiModelProperty
(
"最近修改时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
updateTime
;
@ApiModelProperty
(
"用户收货地址信息"
)
private
UavOrderExpressDTO
uavOrderExpressDTO
;
@ApiModelProperty
(
"快递信息"
)
private
KdnExpDTO
kdnExpDTO
;
@ApiModelProperty
(
"订单规格列表"
)
private
String
sku
;
@ApiModelProperty
(
"sku图片"
)
private
String
skuImg
;
@ApiModelProperty
(
"运费"
)
private
String
modeOfDeliveryInfo
;
@ApiModelProperty
(
"发货后申请退款"
)
private
LeaseRefundOrderDTO
leaseRefundOrder
;
@ApiModelProperty
(
"商户确认收货信息"
)
private
LeaseRefundOrderDTO
storeReceiveOrder
;
}
src/main/java/com/mmc/oms/model/dto/lease/LeaseRefundOrderDTO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
dto
.
lease
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author LW
* @date 2023/9/25 14:19
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
LeaseRefundOrderDTO
implements
Serializable
{
@ApiModelProperty
(
"id"
)
private
Integer
id
;
@ApiModelProperty
(
"订单id"
)
private
Integer
leaseOrderId
;
@ApiModelProperty
(
"归还状态:0已归还 1无需归还"
)
private
Integer
status
;
@ApiModelProperty
(
"快递单号"
)
private
String
expressNum
;
@ApiModelProperty
(
"物流编号"
)
private
String
expressCode
;
@ApiModelProperty
(
"图片文件"
)
private
String
file
;
@ApiModelProperty
(
"退款原因"
)
private
String
reason
;
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
}
src/main/java/com/mmc/oms/model/dto/transtatus/TranStatusDicDTO.java
浏览文件 @
48a581d6
...
...
@@ -17,12 +17,13 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
//@ApiModel(value = "com.mmc.csf.model.dto.TranStatusDicDTO", description = "订单状态DTO")
public
class
TranStatusDicDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5956006425413101797L
;
@ApiModelProperty
(
value
=
"状态码"
)
private
String
status
;
@ApiModelProperty
(
value
=
"当前状态描述"
)
private
String
doing
;
@ApiModelProperty
(
value
=
"等待状态描述"
)
private
String
waiting
;
private
String
leaseOrderStatus
;
}
src/main/java/com/mmc/oms/model/dto/uav/MultiUavOrderDTO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
dto
.
uav
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @author: zj
* @Date: 2023/9/21 16:11
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
MultiUavOrderDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
935420087357754202L
;
private
BigDecimal
allOtherAmount
;
private
String
payNo
;
private
List
<
UavOrderDTO
>
uavOrderDTOS
;
}
src/main/java/com/mmc/oms/model/dto/uav/UavCartCompanyDTO.java
浏览文件 @
48a581d6
...
...
@@ -22,8 +22,16 @@ public class UavCartCompanyDTO implements Serializable {
private
static
final
long
serialVersionUID
=
-
6785504068213761405L
;
@ApiModelProperty
(
value
=
"商家id"
)
private
Integer
thirdBackUserAccountId
;
@ApiModelProperty
(
value
=
"商家名称"
)
private
String
companyName
;
@ApiModelProperty
(
"是否抵扣云享金,0否,1是"
)
private
Integer
deductShareAmount
;
@ApiModelProperty
(
"是否抵扣余额,0否,1是"
)
private
Integer
deductSalaryAmount
;
@ApiModelProperty
(
value
=
"购物车对应规格"
)
private
List
<
UavCartDTO
>
uavCartDOS
;
}
src/main/java/com/mmc/oms/model/dto/uav/UavCartDTO.java
浏览文件 @
48a581d6
...
...
@@ -24,9 +24,9 @@ public class UavCartDTO implements Serializable {
private
Integer
id
;
@ApiModelProperty
(
value
=
"用户ID"
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"商家id"
)
@ApiModelProperty
(
value
=
"商家id"
,
hidden
=
true
)
private
Integer
thirdBackUserAccountId
;
@ApiModelProperty
(
value
=
"商家名称"
)
@ApiModelProperty
(
value
=
"商家名称"
,
hidden
=
true
)
private
String
companyName
;
@ApiModelProperty
(
value
=
"商品id"
)
private
Integer
mallGoodsId
;
...
...
@@ -48,6 +48,8 @@ public class UavCartDTO implements Serializable {
private
Date
createTime
;
@ApiModelProperty
(
value
=
"是否展示价格,0 不显示 1显示"
)
private
Integer
priceShow
;
@ApiModelProperty
(
value
=
"是否删除"
)
private
Integer
deleted
;
@ApiModelProperty
(
value
=
"是否上架状态:0: 下架 1:上架"
)
private
Integer
shelfStatus
;
}
src/main/java/com/mmc/oms/model/dto/uav/UavOrderRemarkDTO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
dto
.
uav
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author: zj
* @Date: 2023/9/23 15:05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
UavOrderRemarkDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2751635245494487278L
;
@ApiModelProperty
(
value
=
"评价id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"评价类型,0商城,1租赁"
)
private
Integer
remarkType
;
@ApiModelProperty
(
value
=
"订单id"
)
private
Integer
uavOrderId
;
@ApiModelProperty
(
value
=
"商品id"
)
private
Integer
mallGoodsId
;
@ApiModelProperty
(
value
=
"评分"
)
private
Integer
remarkLevel
;
@ApiModelProperty
(
value
=
"图片地址,‘,’隔开"
)
private
String
uavImages
;
@ApiModelProperty
(
value
=
"评论内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"生成时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
}
src/main/java/com/mmc/oms/model/qo/uav/UavCartQO.java
浏览文件 @
48a581d6
...
...
@@ -19,8 +19,6 @@ import java.io.Serializable;
@AllArgsConstructor
public
class
UavCartQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"订单类型,0正常订单,1意向订单"
,
required
=
true
)
private
Integer
orderType
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
Page
.
class
)
...
...
src/main/java/com/mmc/oms/model/vo/lease/AddLeaseOrderVO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
vo
.
lease
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author: lw
* @Date: 2023/9/21 16:01
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
AddLeaseOrderVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2749055915508197141L
;
@ApiModelProperty
(
"商家id"
)
private
Integer
thirdBackUserAccountId
;
@ApiModelProperty
(
"卖家企业名称"
)
private
String
companyName
;
@ApiModelProperty
(
"租赁商品id"
)
private
Integer
leaseGoodsId
;
@ApiModelProperty
(
"收货地址id"
)
private
Integer
userAddressId
;
@ApiModelProperty
(
value
=
"订单实付总额"
,
hidden
=
true
)
private
BigDecimal
orderTotalAmount
;
@ApiModelProperty
(
value
=
"抵扣钱包余额"
,
hidden
=
true
)
private
BigDecimal
walletAmount
;
@ApiModelProperty
(
value
=
"抵扣云享金余额"
,
hidden
=
true
)
private
BigDecimal
shareAmount
;
@ApiModelProperty
(
value
=
"云享金抵扣押金金额"
,
hidden
=
true
)
private
BigDecimal
shareCashPledgeAmount
;
@ApiModelProperty
(
value
=
"余额抵扣押金金额"
,
hidden
=
true
)
private
BigDecimal
salaryCashPledgeAmount
;
@ApiModelProperty
(
value
=
"其他方式支付额度"
,
hidden
=
true
)
private
BigDecimal
otherAmount
;
@ApiModelProperty
(
value
=
"租期"
,
hidden
=
true
)
private
Integer
leaseTerm
;
@ApiModelProperty
(
"用户备注"
)
private
String
userRemark
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"租赁开始时间"
)
private
Date
startDate
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"租赁结束时间"
)
private
Date
endDate
;
@ApiModelProperty
(
"购买数量"
)
private
Integer
wareNum
;
@ApiModelProperty
(
value
=
"单价"
,
hidden
=
true
)
private
BigDecimal
unitPrice
;
@ApiModelProperty
(
value
=
"押金"
,
hidden
=
true
)
private
BigDecimal
deposit
;
@ApiModelProperty
(
"sku"
)
private
String
sku
;
@ApiModelProperty
(
"是否抵扣云享金,0否,1是"
)
private
Integer
deductShareAmount
;
@ApiModelProperty
(
"是否抵扣余额,0否,1是"
)
private
Integer
deductSalaryAmount
;
}
src/main/java/com/mmc/oms/model/vo/lease/LeaseGoodsVO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
vo
.
lease
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mmc.oms.common.publicinterface.Create
;
import
com.mmc.oms.common.publicinterface.Update
;
import
com.mmc.oms.model.vo.uav.GoodsResourcesVO
;
import
com.mmc.oms.model.vo.uav.SpecAttrVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author LW
* @date 2023/7/24 17:44
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
LeaseGoodsVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3147170430919703826L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
@NotNull
(
message
=
"id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@ApiModelProperty
(
value
=
"商品标题"
,
example
=
"商品标题"
,
required
=
true
)
@NotEmpty
(
message
=
"商品标题不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
String
tradeName
;
@ApiModelProperty
(
value
=
"商品卖点"
,
example
=
"商品卖点"
)
private
String
sellingPoint
;
@ApiModelProperty
(
value
=
"商品成新"
,
example
=
"1"
,
required
=
true
)
private
Integer
level
;
@ApiModelProperty
(
value
=
"商品状态 :0下架 1上架"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"商品状态不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
Integer
shelfStatus
;
@ApiModelProperty
(
value
=
"商品类型id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"商品类型id不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
Integer
productTypeId
;
@ApiModelProperty
(
value
=
"品牌id"
,
example
=
"2"
,
required
=
true
)
@NotNull
(
message
=
"品牌id不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
Integer
brandInfoId
;
@ApiModelProperty
(
value
=
"型号id"
,
example
=
"2"
,
required
=
true
)
@NotNull
(
message
=
"型号id不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
Integer
deviceModeId
;
@ApiModelProperty
(
value
=
"商品参数"
,
example
=
"示例:[{\"起飞重量\":\"595g\"}]"
)
private
String
productParam
;
@ApiModelProperty
(
value
=
"商品资源:图片or视频及其他"
)
@NotEmpty
(
message
=
"图片不能为空"
)
private
List
<
GoodsResourcesVO
>
resourcesList
;
@ApiModelProperty
(
value
=
"规格"
)
@NotEmpty
(
message
=
"规格不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
List
<
SpecAttrVO
>
specAttrList
;
@ApiModelProperty
(
value
=
"价格库存排列组合表信息"
)
private
List
<
LeasePriceStockVO
>
priceStock
;
@ApiModelProperty
(
value
=
"商品详情 富文本"
)
private
String
productDetails
;
@ApiModelProperty
(
value
=
"最短租期"
)
private
Integer
minLeaseTerm
;
@ApiModelProperty
(
value
=
"最长租期"
)
private
Integer
maxLeaseTerm
;
@ApiModelProperty
(
value
=
"发货地址"
)
private
Integer
shipAddress
;
@ApiModelProperty
(
value
=
"归还地址"
)
private
Integer
returnAddress
;
@ApiModelProperty
(
value
=
"寄出物流"
)
private
String
logisticsCompany
;
@ApiModelProperty
(
value
=
"配送方式"
)
private
Integer
modeOfDelivery
;
@ApiModelProperty
(
value
=
"展示最低价"
,
example
=
"1"
)
private
BigDecimal
showPrice
;
@ApiModelProperty
(
value
=
"创建时间 用作列表回显"
,
hidden
=
true
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"店铺id 小程序用"
,
hidden
=
true
)
private
Integer
userAccountId
;
@ApiModelProperty
(
value
=
"押金范围"
,
hidden
=
true
)
private
String
cashPledgeRange
;
@ApiModelProperty
(
value
=
"租金范围"
,
hidden
=
true
)
private
String
rentalRange
;
@ApiModelProperty
(
value
=
"库存"
,
hidden
=
true
)
private
Integer
stock
;
@ApiModelProperty
(
value
=
"市code编码"
)
private
String
districtCode
;
@ApiModelProperty
(
value
=
"类型名称"
,
hidden
=
true
)
private
String
productTypeName
;
@ApiModelProperty
(
value
=
"品牌名称"
,
hidden
=
true
)
private
String
brandName
;
@ApiModelProperty
(
value
=
"型号名称"
,
hidden
=
true
)
private
String
deviceModeName
;
@ApiModelProperty
(
value
=
"配送方式信息"
,
hidden
=
true
)
private
String
modeOfDeliveryInfo
;
@ApiModelProperty
(
value
=
"企业名称"
,
hidden
=
true
)
private
String
companyName
;
}
src/main/java/com/mmc/oms/model/vo/lease/LeaseOrderRefundVO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
vo
.
lease
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @Author LW
* @date 2023/9/23 15:36
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
LeaseOrderRefundVO
implements
Serializable
{
@ApiModelProperty
(
"id"
)
private
Integer
id
;
@ApiModelProperty
(
"订单id"
)
private
Integer
orderId
;
@ApiModelProperty
(
"归还状态 0已归还 1无需归还(注:发货后申请退款需要传,归还商品的时候不需要)"
)
private
Integer
status
;
@ApiModelProperty
(
"商家确认商品是否破损 0:未破损 1:破损"
)
private
Integer
damage
;
@ApiModelProperty
(
"物流单号"
)
private
String
expressNum
;
@ApiModelProperty
(
value
=
"物流编码"
)
private
String
expressCode
;
@ApiModelProperty
(
"图片文件"
)
private
String
file
;
@ApiModelProperty
(
"原因"
)
private
String
reason
;
}
src/main/java/com/mmc/oms/model/vo/lease/LeasePriceStockVO.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
model
.
vo
.
lease
;
import
com.mmc.oms.common.publicinterface.Create
;
import
com.mmc.oms.common.publicinterface.Update
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.NotEmpty
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @Author LW
* @date 2023/8/8 10:48
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
LeasePriceStockVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1011141620995647903L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"商品规格"
,
example
=
"示例:{\"颜色\":\"蓝色\",\"尺寸\":\"1寸\",\"大小\":\"小\"} 或 [\"颜色\":\"蓝色\",\"尺寸\":\"1寸\",\"大小\":\"小\"] 或 你怎么方便怎么来"
)
@NotEmpty
(
message
=
"商品规格不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
String
productSpec
;
@ApiModelProperty
(
value
=
"押金"
,
example
=
"1"
)
private
BigDecimal
cashPledge
;
@ApiModelProperty
(
value
=
"3天租金"
,
example
=
"1"
)
private
BigDecimal
threeDaysRental
;
@ApiModelProperty
(
value
=
"7天租金"
,
example
=
"1"
)
private
BigDecimal
sevenDaysRental
;
@ApiModelProperty
(
value
=
"30天租金"
,
example
=
"1"
)
private
BigDecimal
thirtyDaysRental
;
@ApiModelProperty
(
value
=
"90天租金"
,
example
=
"1"
)
private
BigDecimal
ninetyDaysRental
;
@ApiModelProperty
(
value
=
"180天租金"
,
example
=
"1"
)
private
BigDecimal
maxDaysRental
;
@ApiModelProperty
(
value
=
"sku图片"
,
example
=
"https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/35bbd044-7cd7-4c85-ba27-69776e03dbb2.jpg"
)
private
String
skuImage
;
@ApiModelProperty
(
value
=
"库存"
,
example
=
"10"
)
@Max
(
message
=
"最大不能超过9999"
,
groups
=
{
Update
.
class
,
Create
.
class
},
value
=
9999
)
private
Integer
stock
;
@ApiModelProperty
(
value
=
"是否缺货 0:否 1:是"
)
private
Integer
stockOut
;
}
src/main/java/com/mmc/oms/model/vo/uav/AddUavOrderByCartQO.java
浏览文件 @
48a581d6
...
...
@@ -27,12 +27,6 @@ public class AddUavOrderByCartQO implements Serializable {
@ApiModelProperty
(
"用户备注"
)
private
String
userRemark
;
@ApiModelProperty
(
"是否抵扣云享金,0否,1是"
)
private
Integer
deductShareAmount
;
@ApiModelProperty
(
"是否抵扣余额,0否,1是"
)
private
Integer
deductSalaryAmount
;
@ApiModelProperty
(
"每家商户对应的规格"
)
private
List
<
UavCartCompanyDTO
>
cartCompanyDTOS
;
}
src/main/java/com/mmc/oms/service/data/OrderReportService.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
service
.
data
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.model.dto.data.OrderReportDTO
;
/**
* @Author LW
* @date 2023/9/19 10:05
* 概要:
*/
public
interface
OrderReportService
{
ResultBody
<
OrderReportDTO
>
getOrderReportData
();
}
src/main/java/com/mmc/oms/service/data/impl/OrderReportServiceImpl.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
service
.
data
.
impl
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.dao.uav.UavOrderDao
;
import
com.mmc.oms.feign.ImsAppApi
;
import
com.mmc.oms.model.dto.data.OrderReportDTO
;
import
com.mmc.oms.model.dto.data.ReleaseReportDTO
;
import
com.mmc.oms.service.data.OrderReportService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
/**
* @Author LW
* @date 2023/9/19 10:05
* 概要:
*/
@Service
public
class
OrderReportServiceImpl
implements
OrderReportService
{
@Resource
private
UavOrderDao
uavOrderDao
;
@Resource
private
ImsAppApi
imsAppApi
;
@Override
public
ResultBody
<
OrderReportDTO
>
getOrderReportData
()
{
OrderReportDTO
orderReportDTO
=
new
OrderReportDTO
();
// 获取商城订单数量
int
saleOrderCount
=
uavOrderDao
.
getOrderCount
();
orderReportDTO
.
setSaleOrderCount
(
saleOrderCount
);
// 获取租赁订单数量// todo 暂时默认0
int
leaseOrderCount
=
0
;
orderReportDTO
.
setLeaseOrderCount
(
leaseOrderCount
);
// 获取服务订单总数
ResultBody
<
ReleaseReportDTO
>
userReportData
=
imsAppApi
.
getUserReportData
();
int
serviceOrderCount
=
userReportData
.
getResult
().
getOrderReleaseCount
();
orderReportDTO
.
setServiceOrderCount
(
serviceOrderCount
);
// 获取商城订单GMV
BigDecimal
saleGMV
=
uavOrderDao
.
getSaleOrderGMV
();
orderReportDTO
.
setSaleGMV
(
saleGMV
);
// 获取租赁订单GMV // todo 暂时默认0
BigDecimal
leaseGMV
=
BigDecimal
.
ZERO
;
orderReportDTO
.
setLeaseGMV
(
leaseGMV
);
BigDecimal
serviceGMV
=
userReportData
.
getResult
().
getServiceOrderAmount
();
orderReportDTO
.
setServiceGMV
(
serviceGMV
);
// 获取总GMV
orderReportDTO
.
setTotalGMV
(
saleGMV
.
add
(
leaseGMV
).
add
(
serviceGMV
));
return
ResultBody
.
success
(
orderReportDTO
);
}
}
src/main/java/com/mmc/oms/service/demand/Impl/DemandReleaseOrderServiceImpl.java
浏览文件 @
48a581d6
...
...
@@ -9,17 +9,18 @@ import com.mmc.oms.common.util.TDateUtil;
import
com.mmc.oms.controller.demand.util.EmojiUtils
;
import
com.mmc.oms.dao.demand.DemandReleaseOrderDao
;
import
com.mmc.oms.dao.demand.PublishServiceOrderDao
;
import
com.mmc.oms.dao.lease.LeaseOrderDao
;
import
com.mmc.oms.dao.topup.TopUpOrderDao
;
import
com.mmc.oms.dao.uav.UavOrderDao
;
import
com.mmc.oms.dao.uav.UavPayWxDao
;
import
com.mmc.oms.entity.demand.DemandReleaseOrderDO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDO
;
import
com.mmc.oms.entity.demand.GetOrderNumberDTO
;
import
com.mmc.oms.entity.demand.ServiceRequirementsDO
;
import
com.mmc.oms.entity.topup.TopUpOrderDO
;
import
com.mmc.oms.entity.uav.UavOrderDO
;
import
com.mmc.oms.en
ums.UavOrderStatus
;
import
com.mmc.oms.en
tity.uav.UavPayWxDO
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.model.dto.uav.PayWalletDTO
;
import
com.mmc.oms.model.vo.demand.CommonPaymentVO
;
import
com.mmc.oms.model.vo.demand.DemandReleaseOrderVO
;
import
com.mmc.oms.model.vo.demand.OrderRequestParamsVO
;
...
...
@@ -39,7 +40,6 @@ import org.springframework.web.client.RestTemplate;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -81,8 +81,14 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
private
TopUpOrderDao
topUpOrderDao
;
@Autowired
private
UavPayWxDao
uavPayWxDao
;
@Autowired
private
UserAppApi
userAppApi
;
@Autowired
private
LeaseOrderDao
leaseOrderDao
;
@Override
public
ResultBody
publish
(
DemandReleaseOrderVO
demandReleaseOrderVO
,
HttpServletRequest
request
)
{
DemandReleaseOrderDO
requirementsInfoDO
=
new
DemandReleaseOrderDO
(
demandReleaseOrderVO
);
...
...
@@ -97,11 +103,13 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
switch
(
commonPaymentVO
.
getOrderPort
().
toString
())
{
case
"0"
:
return
payUavOrder
(
commonPaymentVO
,
token
);
case
"1"
:
return
payLeaseOrder
(
commonPaymentVO
,
token
);
case
"3"
:
return
orderPost
(
commonPaymentVO
,
token
);
case
"4"
:
//发布服务需求支付
return
publishServicePay
(
commonPaymentVO
,
token
,
userAccountId
,
request
);
return
publishServicePay
(
commonPaymentVO
,
token
,
userAccountId
,
request
);
case
"5"
:
return
topUpOrder
(
commonPaymentVO
,
token
,
userAccountId
);
default
:
...
...
@@ -109,17 +117,30 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
}
}
public
ResultBody
payUavOrder
(
CommonPaymentVO
commonPaymentVO
,
String
token
)
{
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detailByNo
(
commonPaymentVO
.
getOrderNumber
());
if
(
uavOrderDO
.
getOtherAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
compareTo
(
BigDecimal
.
valueOf
(
commonPaymentVO
.
getAmount
()))
!=
0
){
return
ResultBody
.
error
(
"发起支付金额不正确"
);
}
private
ResultBody
payLeaseOrder
(
CommonPaymentVO
commonPaymentVO
,
String
token
)
{
OrderRequestParamsVO
orderRequestParamsVO
=
new
OrderRequestParamsVO
();
orderRequestParamsVO
.
setOrderNo
(
commonPaymentVO
.
getOrderNumber
());
orderRequestParamsVO
.
setAmount
(
commonPaymentVO
.
getAmount
());
orderRequestParamsVO
.
setAttach
(
"PAY_UAV_ORDER"
);
orderRequestParamsVO
.
setDescription
(
"商城订单"
+
uavOrderDO
.
getOrderNo
());
orderRequestParamsVO
.
setAttach
(
"LEASE_ORDER"
);
orderRequestParamsVO
.
setOrderPort
(
commonPaymentVO
.
getOrderPort
());
UavOrderDO
leaseOrder
=
leaseOrderDao
.
detailByNo
(
commonPaymentVO
.
getOrderNumber
());
if
(
leaseOrder
.
getOtherAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
compareTo
(
BigDecimal
.
valueOf
(
commonPaymentVO
.
getAmount
()))
!=
0
)
{
return
ResultBody
.
error
(
"支付金额不正确"
);
}
orderRequestParamsVO
.
setDescription
(
"租赁订单"
+
leaseOrder
.
getOrderNo
());
ResultBody
resultBody
=
releaseOrder
(
orderRequestParamsVO
,
token
);
if
(!
"200"
.
equals
(
resultBody
.
getCode
()))
{
return
ResultBody
.
error
(
"调用微信支付方法失败"
);
}
return
resultBody
;
}
private
ResultBody
multiUavOrderPay
(
OrderRequestParamsVO
orderRequestParamsVO
,
String
token
)
{
UavPayWxDO
uavPayWxDO
=
uavPayWxDao
.
getUavPayWx
(
orderRequestParamsVO
.
getOrderNo
());
if
(
uavPayWxDO
.
getAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
compareTo
(
BigDecimal
.
valueOf
(
orderRequestParamsVO
.
getAmount
()))
!=
0
)
{
return
ResultBody
.
error
(
"发起支付金额不正确"
);
}
orderRequestParamsVO
.
setDescription
(
"商城多订单"
+
orderRequestParamsVO
.
getOrderNo
());
ResultBody
resultBody
=
releaseOrder
(
orderRequestParamsVO
,
token
);
if
(!
"200"
.
equals
(
resultBody
.
getCode
()))
{
throw
new
RuntimeException
(
"调用微信支付方法失败!"
);
...
...
@@ -127,6 +148,33 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
return
resultBody
;
}
private
ResultBody
singleUavOrderPay
(
OrderRequestParamsVO
orderRequestParamsVO
,
String
token
)
{
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detailByNo
(
orderRequestParamsVO
.
getOrderNo
());
if
(
uavOrderDO
.
getOtherAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
compareTo
(
BigDecimal
.
valueOf
(
orderRequestParamsVO
.
getAmount
()))
!=
0
)
{
return
ResultBody
.
error
(
"发起支付金额不正确"
);
}
orderRequestParamsVO
.
setDescription
(
"商城订单"
+
uavOrderDO
.
getOrderNo
());
ResultBody
resultBody
=
releaseOrder
(
orderRequestParamsVO
,
token
);
if
(!
"200"
.
equals
(
resultBody
.
getCode
()))
{
throw
new
RuntimeException
(
"调用微信支付方法失败!"
);
}
return
resultBody
;
}
public
ResultBody
payUavOrder
(
CommonPaymentVO
commonPaymentVO
,
String
token
)
{
OrderRequestParamsVO
orderRequestParamsVO
=
new
OrderRequestParamsVO
();
orderRequestParamsVO
.
setOrderNo
(
commonPaymentVO
.
getOrderNumber
());
orderRequestParamsVO
.
setAmount
(
commonPaymentVO
.
getAmount
());
orderRequestParamsVO
.
setAttach
(
"PAY_UAV_ORDER"
);
orderRequestParamsVO
.
setOrderPort
(
commonPaymentVO
.
getOrderPort
());
// 购物车下单涉及多订单
if
(
commonPaymentVO
.
getOrderNumber
().
startsWith
(
"m"
))
{
return
multiUavOrderPay
(
orderRequestParamsVO
,
token
);
}
else
{
return
singleUavOrderPay
(
orderRequestParamsVO
,
token
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
topUpOrder
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
)
{
// 生成充值订单编号 规则T加时间戳加用户id加随机数4位
...
...
@@ -163,9 +211,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
* @param userAccountId
* @return
*/
private
ResultBody
publishServicePay
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
private
ResultBody
publishServicePay
(
CommonPaymentVO
commonPaymentVO
,
String
token
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
if
(
"4"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
())){
if
(
"4"
.
equals
(
commonPaymentVO
.
getOrderPort
().
toString
()))
{
try
{
TimeUnit
.
SECONDS
.
sleep
(
1
);
}
catch
(
InterruptedException
e
)
{
...
...
@@ -175,14 +223,14 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
orderNumber
);
GetOrderNumberDTO
getOrderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
GetOrderNumberDO
getOrderNumberDO
=
new
GetOrderNumberDO
(
getOrderNumberDTO
);
if
(
getOrderNumberDTO
.
getRequirementsInfoId
()
!=
null
)
{
if
(
getOrderNumberDTO
.
getRequirementsInfoId
()
!=
null
)
{
int
i
=
releaseOrderDao
.
selectOrderNumberDO
(
getOrderNumberDO
.
getRequirementsInfoId
());
if
(
i
!=
0
)
{
if
(
i
!=
0
)
{
return
ResultBody
.
error
(
"当前需求已有人支付"
);
}
ServiceRequirementsDO
repertory
=
repertory
(
getOrderNumberDO
.
getRequirementsInfoId
(),
request
);
Integer
repertory1
=
repertory
.
getRepertory
();
if
(
repertory1
!=
null
&&
repertory1
<=
0
)
{
if
(
repertory1
!=
null
&&
repertory1
<=
0
)
{
return
ResultBody
.
error
(
"需求已被人抢走"
);
}
}
...
...
@@ -193,7 +241,7 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
OrderRequestParamsVO
orderRequestParamsVO
=
getOrderNumberDO
.
orderRequestParamsVO
();
orderRequestParamsVO
.
setAmount
(
i
);
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
.
success
();
...
...
src/main/java/com/mmc/oms/service/lease/LeaseOrderService.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
service
.
lease
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.model.dto.lease.LeaseOrderDTO
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.vo.lease.AddLeaseOrderVO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @Author LW
* @date 2023/9/21 16:38
* 概要:
*/
public
interface
LeaseOrderService
{
ResultBody
<
LeaseOrderDTO
>
addLeaseOrder
(
AddLeaseOrderVO
param
,
BaseAccountDTO
currentAccount
);
ResultBody
detail
(
Integer
id
,
BaseAccountDTO
currentAccount
)
throws
Exception
;
ResultBody
close
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
String
token
);
ResultBody
<
LeaseOrderDTO
>
list
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
);
ResultBody
<
LeaseOrderDTO
>
listByUid
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
);
ResultBody
pay
(
Integer
id
,
BaseAccountDTO
currentAccount
,
HttpServletRequest
request
);
ResultBody
send
(
UavOrderExpressVO
param
);
ResultBody
receive
(
Integer
id
,
BaseAccountDTO
currentAccount
);
ResultBody
statusList
();
ResultBody
removeLeaseOrder
(
Integer
id
);
ResultBody
giveBack
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
);
ResultBody
pfConfirmOrderWare
(
BaseAccountDTO
currentAccount
,
LeaseOrderRefundVO
param
);
}
src/main/java/com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
service
.
lease
.
impl
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.oms.common.ResultEnum
;
import
com.mmc.oms.common.constant.UavOrderProportion
;
import
com.mmc.oms.common.json.JsonUtil
;
import
com.mmc.oms.common.result.PageResult
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.common.util.CodeUtil
;
import
com.mmc.oms.common.util.KdnExpressUtil
;
import
com.mmc.oms.dao.UserAddressDao
;
import
com.mmc.oms.dao.lease.LeaseOrderDao
;
import
com.mmc.oms.entity.lease.LeaseOrderDO
;
import
com.mmc.oms.entity.lease.LeaseOrderExpressDO
;
import
com.mmc.oms.entity.lease.LeaseRefundOrderDO
;
import
com.mmc.oms.entity.mall.UserAddressDO
;
import
com.mmc.oms.entity.transtatus.TranStatusDicDO
;
import
com.mmc.oms.enums.LeaseOrderStatus
;
import
com.mmc.oms.enums.LeaseTermInfo
;
import
com.mmc.oms.enums.OrderType
;
import
com.mmc.oms.feign.PaymentAppApi
;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.model.dto.kdn.KdnExpDTO
;
import
com.mmc.oms.model.dto.lease.LeaseOrderDTO
;
import
com.mmc.oms.model.dto.lease.LeaseRefundOrderDTO
;
import
com.mmc.oms.model.dto.order.ExpStationsDTO
;
import
com.mmc.oms.model.dto.transtatus.TranStatusDicDTO
;
import
com.mmc.oms.model.dto.uav.PayWalletDTO
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.dto.user.UserAccountSimpleDTO
;
import
com.mmc.oms.model.qo.UserAccountQO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.vo.ApplyRefundVO
;
import
com.mmc.oms.model.vo.demand.CommonPaymentVO
;
import
com.mmc.oms.model.vo.lease.AddLeaseOrderVO
;
import
com.mmc.oms.model.vo.lease.LeaseGoodsVO
;
import
com.mmc.oms.model.vo.lease.LeaseOrderRefundVO
;
import
com.mmc.oms.model.vo.lease.LeasePriceStockVO
;
import
com.mmc.oms.model.vo.uav.GoodsResourcesVO
;
import
com.mmc.oms.model.vo.uav.PayUavWalletVO
;
import
com.mmc.oms.model.vo.uav.UavOrderExpressVO
;
import
com.mmc.oms.service.demand.DemandReleaseOrderService
;
import
com.mmc.oms.service.lease.LeaseOrderService
;
import
com.mmc.oms.service.uav.UavOrderService
;
import
com.mmc.oms.util.TDateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @Author LW
* @date 2023/9/21 16:46
* 概要:
*/
@Service
@Slf4j
public
class
LeaseOrderServiceImpl
implements
LeaseOrderService
{
@Resource
private
PmsAppApi
pmsAppApi
;
@Resource
private
UavOrderService
uavOrderService
;
@Resource
private
LeaseOrderDao
leaseOrderDao
;
@Resource
private
UserAddressDao
userAddressDao
;
@Resource
private
UserAppApi
userAppApi
;
@Resource
private
PaymentAppApi
paymentAppApi
;
@Resource
DemandReleaseOrderService
demandReleaseOrderService
;
@Override
@Transactional
public
ResultBody
addLeaseOrder
(
AddLeaseOrderVO
param
,
BaseAccountDTO
currentAccount
)
{
log
.
info
(
"user:{},addOrder param:{}"
,
currentAccount
.
getUserAccountId
(),
param
);
if
(
StringUtils
.
isEmpty
(
param
.
getSku
()))
{
return
ResultBody
.
error
(
"至少选择一个规格!"
);
}
if
(
param
.
getWareNum
()
<=
0
)
{
return
ResultBody
.
error
(
"购买数量不得少于1"
);
}
LeaseGoodsVO
leaseGoodsVO
;
LeasePriceStockVO
priceStock
=
null
;
try
{
leaseGoodsVO
=
pmsAppApi
.
leaseGoodsDetails
(
param
.
getLeaseGoodsId
()).
getResult
();
// 检验商品是否在卖
if
(
leaseGoodsVO
==
null
||
!
leaseGoodsVO
.
getShelfStatus
().
equals
(
1
))
{
return
ResultBody
.
error
(
"商品已下架"
);
}
// 判断租赁时间是否超出当前商品的最长租期或小于最短租期
int
distanceDays
=
TDateUtil
.
distanceDays
(
param
.
getStartDate
(),
param
.
getEndDate
());
param
.
setLeaseTerm
(
distanceDays
);
// 获取租赁商品的最低租期
Integer
minLeaseTerm
=
getLeaseTerm
(
leaseGoodsVO
.
getMinLeaseTerm
());
// 获取租赁商品的最大租期
Integer
maxLeaseTerm
=
getLeaseTerm
(
leaseGoodsVO
.
getMaxLeaseTerm
());
if
(
distanceDays
<
minLeaseTerm
||
distanceDays
>
maxLeaseTerm
)
{
return
ResultBody
.
error
(
"商品信息发生变更,刷新后重试!"
);
}
// 判断该租期在那个价格区间
Integer
priceSection
=
getPriceSection
(
distanceDays
);
// 找到对应的规格
boolean
flag
=
false
;
for
(
LeasePriceStockVO
priceStockVO
:
leaseGoodsVO
.
getPriceStock
())
{
if
(
param
.
getSku
().
equals
(
priceStockVO
.
getProductSpec
()))
{
priceStock
=
priceStockVO
;
// 获取最新的规格单价
param
.
setUnitPrice
(
getUnitPrice
(
priceSection
,
priceStockVO
));
param
.
setDeposit
(
priceStockVO
.
getCashPledge
());
flag
=
true
;
break
;
}
}
if
(!
flag
)
{
return
ResultBody
.
error
(
"选择规格不存在"
);
}
}
catch
(
Exception
e
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
e
.
getMessage
());
}
String
orderNo
=
CodeUtil
.
generateOrderId
();
// 计算订单总金额
BigDecimal
orderTotalAmount
=
param
.
getUnitPrice
().
multiply
(
BigDecimal
.
valueOf
(
param
.
getLeaseTerm
()))
.
multiply
(
BigDecimal
.
valueOf
(
param
.
getWareNum
())).
add
(
param
.
getDeposit
().
multiply
(
BigDecimal
.
valueOf
(
param
.
getWareNum
())));
BigDecimal
otherAmount
=
BigDecimal
.
ZERO
;
// 用来进行操作的总金额
otherAmount
=
otherAmount
.
add
(
orderTotalAmount
);
// 总押金金额
BigDecimal
totalDeposit
=
param
.
getDeposit
().
multiply
(
BigDecimal
.
valueOf
(
param
.
getWareNum
()));
// 用来操作的总押金
BigDecimal
otherCashPledge
=
BigDecimal
.
ZERO
;
otherCashPledge
=
otherCashPledge
.
add
(
totalDeposit
);
// 云享金押金金额,余额押金金额
BigDecimal
shareCashPledge
=
BigDecimal
.
ZERO
;
BigDecimal
salaryCashPledge
=
BigDecimal
.
ZERO
;
// 校验云享金、钱包余额是否足够抵扣
BigDecimal
shareAmount
=
BigDecimal
.
ZERO
;
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
Integer
statusCode
=
null
;
// 获取用户钱包信息
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
)
||
param
.
getDeductShareAmount
().
equals
(
1
))
{
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getCurrentUserPayWalletInfo
(
currentAccount
.
getToken
());
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payResInfo
.
getResult
()
==
null
)
{
return
payResInfo
;
}
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
// 先使用云享金来扣减押金
if
(
param
.
getDeductShareAmount
().
equals
(
1
))
{
if
(
otherCashPledge
.
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
// 不够抵扣押金
shareCashPledge
=
payWalletDTO
.
getCashAmt
();
}
else
{
// 够抵扣押金
shareCashPledge
=
otherCashPledge
;
}
otherCashPledge
=
otherCashPledge
.
subtract
(
shareCashPledge
);
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
otherAmount
=
otherAmount
.
subtract
(
shareCashPledge
);
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
))
{
if
(
otherCashPledge
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>=
0
)
{
salaryCashPledge
=
payWalletDTO
.
getSalaryAmt
();
}
else
{
salaryCashPledge
=
otherCashPledge
;
}
otherCashPledge
=
otherCashPledge
.
subtract
(
salaryCashPledge
);
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
otherAmount
=
otherAmount
.
subtract
(
salaryCashPledge
.
add
(
shareCashPledge
));
}
}
}
}
// 抵扣完后当押金为0的时候 继续抵扣其余金额
if
(
otherCashPledge
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
if
(
param
.
getDeductShareAmount
().
equals
(
1
))
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getCashAmt
().
subtract
(
shareCashPledge
))
>=
0
)
{
// 抵扣云享金小于等于订单总额时,直接使用云享金
shareAmount
=
payWalletDTO
.
getCashAmt
().
subtract
(
shareCashPledge
);
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
shareAmount
=
otherAmount
;
}
}
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
// 支付完成
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
LeaseOrderStatus
.
PAID
.
getCode
();
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
))
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
().
subtract
(
salaryCashPledge
))
>=
0
)
{
// 抵扣余额小于等于订单总额时,直接使用余额
salaryAmount
=
payWalletDTO
.
getSalaryAmt
().
subtract
(
salaryCashPledge
);
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
salaryAmount
=
otherAmount
;
}
}
otherAmount
=
otherAmount
.
subtract
(
salaryAmount
);
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
LeaseOrderStatus
.
PAID
.
getCode
();
}
}
}
// 抵扣余额
uavOrderService
.
deductWallet
(
shareAmount
.
add
(
shareCashPledge
),
salaryAmount
.
add
(
salaryCashPledge
),
currentAccount
);
}
// 获取商品主图
String
url
=
null
;
for
(
GoodsResourcesVO
goodsResourcesVO
:
leaseGoodsVO
.
getResourcesList
())
{
if
(
goodsResourcesVO
.
getType
().
equals
(
0
))
{
url
=
goodsResourcesVO
.
getUrl
();
break
;
}
}
// 添加总订单表
LeaseOrderDO
leaseOrderDO
=
new
LeaseOrderDO
();
leaseOrderDO
.
setOrderNo
(
orderNo
);
leaseOrderDO
.
setOrderTotalAmount
(
orderTotalAmount
);
leaseOrderDO
.
setStatusCode
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
?
LeaseOrderStatus
.
PLACED_AN_ORDER
.
getCode
()
:
statusCode
);
leaseOrderDO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
leaseOrderDO
.
setLeaseGoodsId
(
param
.
getLeaseGoodsId
());
leaseOrderDO
.
setCompanyName
(
param
.
getCompanyName
());
leaseOrderDO
.
setThirdBackUserAccountId
(
param
.
getThirdBackUserAccountId
());
leaseOrderDO
.
setOrderName
(
leaseGoodsVO
.
getTradeName
());
leaseOrderDO
.
setModeOfDeliveryInfo
(
leaseGoodsVO
.
getModeOfDeliveryInfo
());
if
(
priceStock
.
getSkuImage
()
!=
null
)
{
leaseOrderDO
.
setSkuImg
(
priceStock
.
getSkuImage
());
}
else
{
leaseOrderDO
.
setSkuImg
(
url
);
}
leaseOrderDO
.
setSalaryAmount
(
salaryAmount
);
leaseOrderDO
.
setSku
(
param
.
getSku
());
leaseOrderDO
.
setSalaryCashPledge
(
salaryCashPledge
);
leaseOrderDO
.
setShareCashPledge
(
shareCashPledge
);
leaseOrderDO
.
setShareAmount
(
shareAmount
);
leaseOrderDO
.
setOtherAmount
(
otherAmount
);
leaseOrderDO
.
setUserAddressId
(
param
.
getUserAddressId
());
leaseOrderDO
.
setUserRemark
(
param
.
getUserRemark
());
leaseOrderDO
.
setUnitPrice
(
param
.
getUnitPrice
());
leaseOrderDO
.
setWareNum
(
param
.
getWareNum
());
leaseOrderDO
.
setDeposit
(
param
.
getDeposit
());
leaseOrderDO
.
setStartDate
(
param
.
getStartDate
());
if
(
null
!=
statusCode
&&
statusCode
.
equals
(
LeaseOrderStatus
.
PAID
.
getCode
()))
{
leaseOrderDO
.
setPayTime
(
new
Date
());
}
leaseOrderDO
.
setEndDate
(
param
.
getEndDate
());
leaseOrderDao
.
addOrder
(
leaseOrderDO
);
// 添加收货地址
UserAddressDO
userAddressDO
=
userAddressDao
.
selectById
(
param
.
getUserAddressId
());
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
(
userAddressDO
);
leaseOrderExpressDO
.
setLeaseOrderId
(
leaseOrderDO
.
getId
());
leaseOrderDao
.
addAddress
(
leaseOrderExpressDO
);
LeaseOrderDTO
leaseOrderDTO
=
leaseOrderDO
.
buildLeaseOrderDTO
();
leaseOrderDTO
.
setModeOfDeliveryInfo
(
leaseGoodsVO
.
getModeOfDeliveryInfo
());
return
ResultBody
.
success
(
leaseOrderDTO
);
}
private
Integer
getLeaseTerm
(
Integer
leaseTermId
)
{
if
(
leaseTermId
.
equals
(
LeaseTermInfo
.
THREE_DAY
.
getId
()))
{
return
LeaseTermInfo
.
THREE_DAY
.
getDays
();
}
else
if
(
leaseTermId
.
equals
(
LeaseTermInfo
.
SEVEN_DAY
.
getId
()))
{
return
LeaseTermInfo
.
SEVEN_DAY
.
getDays
();
}
else
if
(
leaseTermId
.
equals
(
LeaseTermInfo
.
THIRTY_DAY
.
getId
()))
{
return
LeaseTermInfo
.
THIRTY_DAY
.
getDays
();
}
else
if
(
leaseTermId
.
equals
(
LeaseTermInfo
.
NINETY_DAY
.
getId
()))
{
return
LeaseTermInfo
.
NINETY_DAY
.
getDays
();
}
else
{
return
LeaseTermInfo
.
ONE_HUNDRED_AND_EIGHTY_DAY
.
getDays
();
}
}
private
BigDecimal
getUnitPrice
(
Integer
priceSection
,
LeasePriceStockVO
priceStockVO
)
{
if
(
priceSection
.
equals
(
LeaseTermInfo
.
THREE_DAY
.
getDays
()))
{
return
priceStockVO
.
getThreeDaysRental
();
}
else
if
(
priceSection
.
equals
(
LeaseTermInfo
.
SEVEN_DAY
.
getDays
()))
{
return
priceStockVO
.
getSevenDaysRental
();
}
else
if
(
priceSection
.
equals
(
LeaseTermInfo
.
THIRTY_DAY
.
getDays
()))
{
return
priceStockVO
.
getThirtyDaysRental
();
}
else
if
(
priceSection
.
equals
(
LeaseTermInfo
.
NINETY_DAY
.
getDays
()))
{
return
priceStockVO
.
getNinetyDaysRental
();
}
else
{
return
priceStockVO
.
getMaxDaysRental
();
}
}
private
Integer
getPriceSection
(
int
distanceDays
)
{
if
(
distanceDays
>=
LeaseTermInfo
.
THREE_DAY
.
getDays
()
&&
distanceDays
<
LeaseTermInfo
.
SEVEN_DAY
.
getDays
())
{
return
LeaseTermInfo
.
THREE_DAY
.
getDays
();
}
else
if
(
distanceDays
>=
LeaseTermInfo
.
SEVEN_DAY
.
getDays
()
&&
distanceDays
<
LeaseTermInfo
.
THIRTY_DAY
.
getDays
())
{
return
LeaseTermInfo
.
SEVEN_DAY
.
getDays
();
}
else
if
(
distanceDays
>=
LeaseTermInfo
.
THIRTY_DAY
.
getDays
()
&&
distanceDays
<
LeaseTermInfo
.
NINETY_DAY
.
getDays
())
{
return
LeaseTermInfo
.
THIRTY_DAY
.
getDays
();
}
else
if
(
distanceDays
>=
LeaseTermInfo
.
NINETY_DAY
.
getDays
()
&&
distanceDays
<
LeaseTermInfo
.
ONE_HUNDRED_AND_EIGHTY_DAY
.
getDays
())
{
return
LeaseTermInfo
.
NINETY_DAY
.
getDays
();
}
else
{
return
LeaseTermInfo
.
ONE_HUNDRED_AND_EIGHTY_DAY
.
getDays
();
}
}
@Override
public
ResultBody
detail
(
Integer
id
,
BaseAccountDTO
currentAccount
)
throws
Exception
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
if
(
leaseOrderDO
==
null
)
{
return
ResultBody
.
error
(
"订单信息不存在!"
);
}
LeaseOrderDTO
leaseOrderDTO
=
leaseOrderDO
.
buildLeaseOrderDTO
();
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
PLACED_AN_ORDER
.
getCode
()))
{
leaseOrderDTO
.
setNeedPayAmount
(
leaseOrderDO
.
getOtherAmount
());
}
// 收货信息、付款信息、规格信息、快递信息、签署信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
leaseOrderDao
.
getLeaseOrderExpress
(
id
);
if
(
leaseOrderExpressDO
!=
null
)
{
leaseOrderDTO
.
setUavOrderExpressDTO
(
leaseOrderExpressDO
.
buildUavOrderExpressDTO
());
// 快递信息
KdnExpDTO
kdnExpDTO
=
this
.
getOrderExpInfo
(
leaseOrderExpressDO
);
leaseOrderDTO
.
setKdnExpDTO
(
kdnExpDTO
);
}
// 设置个人信息
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAppApi
.
feignGetUserSimpleInfo
(
leaseOrderDO
.
getUserAccountId
(),
currentAccount
.
getToken
());
if
(
userAccountSimpleDTO
!=
null
)
{
leaseOrderDTO
.
setUserName
(
userAccountSimpleDTO
.
getUserName
());
leaseOrderDTO
.
setNickname
(
userAccountSimpleDTO
.
getNickName
());
leaseOrderDTO
.
setPhoneNum
(
userAccountSimpleDTO
.
getPhoneNum
());
}
return
ResultBody
.
success
(
leaseOrderDTO
);
}
private
KdnExpDTO
getOrderExpInfo
(
LeaseOrderExpressDO
exp
)
throws
Exception
{
String
json
=
""
;
if
(
"SF"
.
equals
(
exp
.
getSendExpCode
()))
{
json
=
KdnExpressUtil
.
SF
(
exp
.
getTakePhone
(),
exp
.
getSendExpNo
());
}
else
if
(
"JD"
.
equals
(
exp
.
getSendExpCode
()))
{
json
=
KdnExpressUtil
.
JD
(
""
,
exp
.
getSendExpNo
());
}
else
{
json
=
KdnExpressUtil
.
others
(
exp
.
getSendExpCode
(),
exp
.
getSendExpNo
());
}
KdnExpDTO
kdn
=
JsonUtil
.
parseJsonToObj
(
json
,
KdnExpDTO
.
class
);
kdn
.
setLogisticCode
(
exp
.
getSendExpNo
());
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
kdn
.
getTraces
()))
{
Collections
.
sort
(
kdn
.
getTraces
(),
Comparator
.
comparing
(
ExpStationsDTO:
:
getAcceptTime
).
reversed
());
// 升序
}
return
kdn
;
}
@Override
@Transactional
public
ResultBody
close
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
String
token
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
leaseOrderRefundVO
.
getOrderId
());
if
(
leaseOrderDO
==
null
)
{
return
ResultBody
.
error
(
"订单信息不存在!"
);
}
// 判断订单状态
if
(
leaseOrderDO
.
getStatusCode
().
compareTo
(
LeaseOrderStatus
.
PAID
.
getCode
())
>
0
)
{
if
(
leaseOrderDO
.
getStatusCode
().
compareTo
(
LeaseOrderStatus
.
TO_BE_RETURNED
.
getCode
())
==
0
)
{
return
ResultBody
.
error
(
"当前状态不可申请退款"
);
}
// 判断商品是否需要归还
if
(
leaseOrderRefundVO
.
getStatus
().
equals
(
0
))
{
if
(
leaseOrderRefundVO
.
getExpressCode
()
==
null
||
leaseOrderRefundVO
.
getExpressNum
()
==
null
)
{
return
ResultBody
.
error
(
"请完善物流信息"
);
}
}
// 插入退货地址信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
();
leaseOrderExpressDO
.
setLeaseOrderId
(
leaseOrderRefundVO
.
getOrderId
());
leaseOrderExpressDO
.
setReturnExpCode
(
leaseOrderRefundVO
.
getExpressCode
());
leaseOrderExpressDO
.
setReturnExpNo
(
leaseOrderRefundVO
.
getExpressNum
());
leaseOrderExpressDO
.
setReturnTime
(
new
Date
());
leaseOrderDao
.
addAddress
(
leaseOrderExpressDO
);
// 插入退款订单信息
LeaseRefundOrderDO
leaseRefundOrderDO
=
new
LeaseRefundOrderDO
(
leaseOrderRefundVO
);
leaseRefundOrderDO
.
setLeaseOrderExpressId
(
leaseOrderExpressDO
.
getId
());
leaseRefundOrderDO
.
setType
(
OrderType
.
RETREAT
.
getCode
());
leaseOrderDao
.
addLeaseRefundOrder
(
leaseRefundOrderDO
);
// 修改订单状态
leaseOrderDao
.
updateUavOrderStatus
(
leaseOrderRefundVO
.
getStatus
(),
LeaseOrderStatus
.
APPLY_REFUND
.
getCode
());
return
ResultBody
.
success
();
}
else
{
// 退云享金、佣金
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setCashAmount
(
leaseOrderDO
.
getShareAmount
());
payUavWalletVO
.
setSalaryAmount
(
leaseOrderDO
.
getSalaryAmount
());
payUavWalletVO
.
setOrderStatus
(
1400
);
payUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
token
);
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
}
// 微信退款
if
(
"wechatpay"
.
equals
(
leaseOrderDO
.
getPayType
()))
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setOutTradeNo
(
leaseOrderDO
.
getOrderNo
());
applyRefundVO
.
setReason
(
"关闭租赁订单"
);
applyRefundVO
.
setRefund
(
leaseOrderDO
.
getOtherAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
());
ResultBody
applyRefund
=
paymentAppApi
.
applyRefund
(
applyRefundVO
,
token
);
log
.
info
(
"applyRefund res:{}"
,
applyRefund
);
if
(!
applyRefund
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
"关闭订单失败!"
);
}
}
// 修改订单状态
this
.
updateLeaseOrderStatus
(
leaseOrderRefundVO
.
getOrderId
(),
LeaseOrderStatus
.
CLOSE
);
return
ResultBody
.
success
();
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateLeaseOrderStatus
(
Integer
id
,
LeaseOrderStatus
leaseOrderStatus
)
{
leaseOrderDao
.
updateUavOrderStatus
(
id
,
leaseOrderStatus
.
getCode
());
}
@Override
public
ResultBody
<
LeaseOrderDTO
>
list
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
)
{
if
(!
currentAccount
.
getRoleInfo
().
getSuperAdmin
().
equals
(
1
))
{
uavOrderQO
.
setThirdBackUserAccountId
(
currentAccount
.
getUserAccountId
());
}
int
count
=
leaseOrderDao
.
countList
(
uavOrderQO
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
uavOrderQO
.
getPageNo
(),
uavOrderQO
.
getPageSize
(),
count
));
}
Integer
pageNo
=
uavOrderQO
.
getPageNo
();
uavOrderQO
.
buildCurrentPage
();
List
<
LeaseOrderDO
>
leaseOrderDOS
=
leaseOrderDao
.
list
(
uavOrderQO
);
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
=
new
HashMap
<>();
List
<
Integer
>
ids
=
new
ArrayList
<>();
List
<
Integer
>
userIds
=
new
ArrayList
<>();
for
(
LeaseOrderDO
leaseOrderDO
:
leaseOrderDOS
)
{
LeaseOrderDTO
leaseOrderDTO
=
leaseOrderDO
.
buildLeaseOrderDTO
();
leaseOrderDTOMap
.
put
(
leaseOrderDO
.
getId
(),
leaseOrderDTO
);
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
APPLY_REFUND
.
getCode
())
||
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
WAITING_MERCHANT_CONFIRM
.
getCode
()))
{
ids
.
add
(
leaseOrderDO
.
getId
());
}
userIds
.
add
(
leaseOrderDTO
.
getUserAccountId
());
}
buildRefundOrder
(
leaseOrderDTOMap
,
ids
);
UserAccountQO
userAccountQO
=
new
UserAccountQO
();
userAccountQO
.
setUserIds
(
userIds
);
List
<
UserAccountSimpleDTO
>
userDTOS
=
userAppApi
.
feignListAppUserAccount
(
userAccountQO
,
currentAccount
.
getToken
());
if
(
CollectionUtils
.
isNotEmpty
(
userDTOS
))
{
Map
<
Integer
,
UserAccountSimpleDTO
>
userDTOMap
=
userDTOS
.
stream
().
collect
(
Collectors
.
toMap
(
UserAccountSimpleDTO:
:
getId
,
user
->
user
,
(
k1
,
k2
)
->
k2
));
for
(
LeaseOrderDTO
leaseOrderDTO
:
leaseOrderDTOMap
.
values
())
{
UserAccountSimpleDTO
user
=
userDTOMap
.
get
(
leaseOrderDTO
.
getUserAccountId
());
if
(
user
!=
null
)
{
leaseOrderDTO
.
setPhoneNum
(
user
.
getPhoneNum
());
leaseOrderDTO
.
setNickname
(
user
.
getNickName
());
leaseOrderDTO
.
setUserName
(
user
.
getUserName
());
}
}
}
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
uavOrderQO
.
getPageSize
(),
count
,
new
ArrayList
<>(
leaseOrderDTOMap
.
values
())));
}
@Override
public
ResultBody
<
LeaseOrderDTO
>
listByUid
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
)
{
uavOrderQO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
uavOrderQO
.
setShowUserPort
(
1
);
int
count
=
leaseOrderDao
.
countList
(
uavOrderQO
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
uavOrderQO
.
getPageNo
(),
uavOrderQO
.
getPageSize
(),
count
));
}
Integer
pageNo
=
uavOrderQO
.
getPageNo
();
uavOrderQO
.
buildCurrentPage
();
List
<
LeaseOrderDO
>
leaseOrderDOS
=
leaseOrderDao
.
list
(
uavOrderQO
);
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
=
new
HashMap
<>();
List
<
Integer
>
ids
=
new
ArrayList
<>();
for
(
LeaseOrderDO
leaseOrderDO
:
leaseOrderDOS
)
{
LeaseOrderDTO
leaseOrderDTO
=
leaseOrderDO
.
buildLeaseOrderDTO
();
leaseOrderDTOMap
.
put
(
leaseOrderDO
.
getId
(),
leaseOrderDTO
);
if
(
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
APPLY_REFUND
.
getCode
()))
{
ids
.
add
(
leaseOrderDO
.
getId
());
}
}
buildRefundOrder
(
leaseOrderDTOMap
,
ids
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
uavOrderQO
.
getPageSize
(),
count
,
new
ArrayList
<>(
leaseOrderDTOMap
.
values
())));
}
private
void
buildRefundOrder
(
Map
<
Integer
,
LeaseOrderDTO
>
leaseOrderDTOMap
,
List
<
Integer
>
ids
)
{
if
(
ids
.
size
()
>
0
)
{
List
<
LeaseRefundOrderDO
>
leaseRefundOrderDO
=
leaseOrderDao
.
getLeaseRefundOrder
(
ids
);
List
<
Integer
>
expressIds
=
leaseRefundOrderDO
.
stream
().
map
(
LeaseRefundOrderDO:
:
getLeaseOrderExpressId
).
collect
(
Collectors
.
toList
());
List
<
LeaseOrderExpressDO
>
expressDOS
=
leaseOrderDao
.
listLeaseOrderExpress
(
expressIds
);
Map
<
Integer
,
LeaseOrderExpressDO
>
expressDOMap
=
expressDOS
.
stream
().
collect
(
Collectors
.
toMap
(
LeaseOrderExpressDO:
:
getId
,
Function
.
identity
()));
for
(
LeaseRefundOrderDO
refundOrderDO
:
leaseRefundOrderDO
)
{
LeaseRefundOrderDTO
refundOrderDTO
=
refundOrderDO
.
buildLeaseRefundOrderDTO
();
LeaseOrderExpressDO
expressDO
=
expressDOMap
.
get
(
refundOrderDO
.
getLeaseOrderExpressId
());
if
(
expressDO
!=
null
)
{
refundOrderDTO
.
setExpressCode
(
expressDO
.
getReturnExpCode
());
refundOrderDTO
.
setExpressNum
(
expressDO
.
getReturnExpNo
());
}
LeaseOrderDTO
correspondingLeaseOrderDTO
=
leaseOrderDTOMap
.
get
(
refundOrderDTO
.
getLeaseOrderId
());
if
(
correspondingLeaseOrderDTO
!=
null
)
{
if
(
refundOrderDO
.
getType
().
equals
(
OrderType
.
RETREAT
.
getCode
()))
{
correspondingLeaseOrderDTO
.
setLeaseRefundOrder
(
refundOrderDTO
);
}
else
{
correspondingLeaseOrderDTO
.
setStoreReceiveOrder
(
refundOrderDTO
);
}
}
}
}
}
@Override
public
ResultBody
pay
(
Integer
id
,
BaseAccountDTO
currentAccount
,
HttpServletRequest
request
)
{
// 发起微信支付
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
if
(!
leaseOrderDO
.
getStatusCode
().
toString
().
equals
(
LeaseOrderStatus
.
PLACED_AN_ORDER
.
getCode
().
toString
()))
{
return
ResultBody
.
error
(
"操作有误,请重试!"
);
}
CommonPaymentVO
commonPaymentVO
=
new
CommonPaymentVO
();
int
shouldPay
=
leaseOrderDO
.
getOtherAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
intValue
();
if
(
shouldPay
<=
0
)
{
return
ResultBody
.
success
(
"已支付完成"
);
}
commonPaymentVO
.
setAmount
(
shouldPay
);
commonPaymentVO
.
setDescription
(
leaseOrderDO
.
getOrderName
());
commonPaymentVO
.
setOrderNumber
(
leaseOrderDO
.
getOrderNo
());
commonPaymentVO
.
setOrderPort
(
1
);
ResultBody
resultBody
=
demandReleaseOrderService
.
orderPayment
(
commonPaymentVO
,
request
,
currentAccount
.
getUserAccountId
());
return
resultBody
;
}
@Override
public
ResultBody
send
(
UavOrderExpressVO
param
)
{
// 修改订单状态
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
param
.
getUavOrderId
());
if
(!
leaseOrderDO
.
getStatusCode
().
toString
().
equals
(
LeaseOrderStatus
.
PAID
.
getCode
().
toString
()))
{
return
ResultBody
.
error
(
"状态流程有误,请重试!"
);
}
this
.
updateLeaseOrderStatus
(
param
.
getUavOrderId
(),
LeaseOrderStatus
.
SHIPPED
);
// 修改收货信息
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
(
param
);
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpressDO
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
receive
(
Integer
id
,
BaseAccountDTO
currentAccount
)
{
// 修改订单状态
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
SHIPPED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误,请重试!"
);
}
// 修改收货信息
LeaseOrderExpressDO
leaseOrderExpress
=
leaseOrderDao
.
getLeaseOrderExpress
(
id
);
leaseOrderExpress
.
setReceive
(
1
);
leaseOrderExpress
.
setReceiveTime
(
new
Date
());
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpress
);
this
.
updateLeaseOrderStatus
(
id
,
LeaseOrderStatus
.
TO_BE_RETURNED
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
statusList
()
{
List
<
TranStatusDicDO
>
statusDOS
=
leaseOrderDao
.
statusList
();
List
<
TranStatusDicDTO
>
uavOrderStatusDTOS
=
statusDOS
.
stream
().
map
(
TranStatusDicDO:
:
buildTranStatusDicDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
uavOrderStatusDTOS
);
}
@Override
public
ResultBody
removeLeaseOrder
(
Integer
id
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
id
);
log
.
info
(
"leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(
leaseOrderDO
.
getStatusCode
().
compareTo
(
LeaseOrderStatus
.
COMPLETE_TRANSACTION
.
getCode
())
<
0
)
{
return
ResultBody
.
error
(
"该订单状态不可删除!"
);
}
leaseOrderDao
.
closeShowLeaseOrder
(
id
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
giveBack
(
LeaseOrderRefundVO
leaseOrderRefundVO
,
BaseAccountDTO
currentAccount
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
leaseOrderRefundVO
.
getOrderId
());
log
.
info
(
"leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
TO_BE_RETURNED
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误,请重试!"
);
}
LeaseOrderExpressDO
leaseOrderExpressDO
=
new
LeaseOrderExpressDO
(
leaseOrderRefundVO
);
leaseOrderDao
.
updateLeaseOrderExpress
(
leaseOrderExpressDO
);
this
.
updateLeaseOrderStatus
(
leaseOrderRefundVO
.
getOrderId
(),
LeaseOrderStatus
.
WAITING_MERCHANT_CONFIRM
);
return
ResultBody
.
success
();
}
@Override
@Transactional
public
ResultBody
pfConfirmOrderWare
(
BaseAccountDTO
currentAccount
,
LeaseOrderRefundVO
param
)
{
LeaseOrderDO
leaseOrderDO
=
leaseOrderDao
.
detail
(
param
.
getOrderId
());
log
.
info
(
"leaseOrderDO:{}"
,
JSONObject
.
toJSONString
(
leaseOrderDO
));
if
(!
leaseOrderDO
.
getStatusCode
().
equals
(
LeaseOrderStatus
.
WAITING_MERCHANT_CONFIRM
.
getCode
()))
{
return
ResultBody
.
error
(
"状态流程有误,请重试!"
);
}
if
(
param
.
getDamage
().
equals
(
0
))
{
// 解冻用户钱包金额
if
(
leaseOrderDO
.
getShareAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
leaseOrderDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
userPayUavWalletVO
=
new
PayUavWalletVO
();
userPayUavWalletVO
.
setRemark
(
"租赁订单金额解冻"
);
userPayUavWalletVO
.
setCashAmount
(
leaseOrderDO
.
getShareAmount
());
userPayUavWalletVO
.
setSalaryAmount
(
leaseOrderDO
.
getSalaryAmount
());
userPayUavWalletVO
.
setUserAccountId
(
leaseOrderDO
.
getUserAccountId
());
userPayUavWalletVO
.
setOrderStatus
(
999
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
userPayUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
resultBody
;
}
}
BigDecimal
thirdAmount
=
leaseOrderDO
.
getOrderTotalAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
).
subtract
(
UavOrderProportion
.
PROPORTION
).
divide
(
BigDecimal
.
valueOf
(
100
)));
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setSalaryAmount
(
thirdAmount
);
payUavWalletVO
.
setCashAmount
(
BigDecimal
.
ZERO
);
payUavWalletVO
.
setRemark
(
"租赁订单收入,订单编号"
+
leaseOrderDO
.
getOrderNo
());
payUavWalletVO
.
setOrderStatus
(
1500
);
// 拿到商家管理员的用户id
ResultBody
managerRes
=
userAppApi
.
getManagerIdByBackUserId
(
leaseOrderDO
.
getThirdBackUserAccountId
(),
null
);
if
(!
managerRes
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
managerRes
;
}
payUavWalletVO
.
setUserAccountId
((
Integer
)
managerRes
.
getResult
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
resultBody
;
}
leaseOrderDao
.
updateLeaseOrderProportion
(
leaseOrderDO
.
getId
(),
UavOrderProportion
.
PROPORTION
.
intValue
());
this
.
updateLeaseOrderStatus
(
param
.
getOrderId
(),
LeaseOrderStatus
.
REMAIN_TO_BE_EVALUATED
);
return
ResultBody
.
success
();
}
else
{
// todo 进行相应赔偿
return
ResultBody
.
success
();
}
}
}
src/main/java/com/mmc/oms/service/mall/impl/ServiceOrderTaskServiceImpl.java
浏览文件 @
48a581d6
...
...
@@ -55,7 +55,8 @@ public class ServiceOrderTaskServiceImpl
@Autowired
private
PmsClient
pmsClient
;
@Autowired
private
UserClient
userClient
;
@Autowired
private
UserAppApi
userAppApi
;
@Autowired
private
HttpUtil
httpUtil
;
...
...
@@ -162,7 +163,7 @@ public class ServiceOrderTaskServiceImpl
}
private
Map
<
Integer
,
UserAccountSimpleDTO
>
getUserDTOMap
(
HttpServletRequest
request
,
List
<
Integer
>
userIds
)
{
List
<
UserAccountSimpleDTO
>
userList
=
user
Client
.
feignListUserAccountByIds
(
userIds
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
List
<
UserAccountSimpleDTO
>
userList
=
user
AppApi
.
feignListUserAccountByIds
(
userIds
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
Map
<
Integer
,
UserAccountSimpleDTO
>
userMap
=
new
HashMap
<>();
if
(
CollectionUtils
.
isNotEmpty
(
userList
)){
userMap
=
userList
.
stream
().
collect
(
Collectors
.
toMap
(
UserAccountSimpleDTO:
:
getId
,
d
->
d
,
(
k1
,
k2
)
->
k1
));
...
...
src/main/java/com/mmc/oms/service/uav/UavCartService.java
浏览文件 @
48a581d6
...
...
@@ -21,5 +21,5 @@ public interface UavCartService {
ResultBody
list
(
UavCartQO
uavCartQO
,
BaseAccountDTO
currentAccount
);
void
buildUavCartCompany
(
Integer
orderType
,
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
);
void
buildUavCartCompany
(
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
);
}
src/main/java/com/mmc/oms/service/uav/UavOrderService.java
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
service
.
uav
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.model.dto.ContractInfoDTO
;
import
com.mmc.oms.model.dto.uav.UavCartCompanyDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderDTO
;
import
com.mmc.oms.model.dto.uav.UavOrderRemarkDTO
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.vo.uav.*
;
import
com.mmc.oms.model.vo.wallet.TopUpOrderVO
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -54,4 +53,9 @@ public interface UavOrderService {
ResultBody
removeUavOrder
(
Integer
id
);
ResultBody
addOrderByCart
(
AddUavOrderByCartQO
orderByCartQO
,
BaseAccountDTO
currentAccount
);
ResultBody
deductWallet
(
BigDecimal
allShareAmount
,
BigDecimal
allSalaryAmount
,
BaseAccountDTO
currentAccount
);
List
<
UavOrderRemarkDTO
>
listGoodsRemark
(
Integer
remarkType
,
Integer
goodsId
);
}
src/main/java/com/mmc/oms/service/uav/impl/UavCartServiceImpl.java
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
service
.
uav
.
impl
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.oms.common.ResultEnum
;
import
com.mmc.oms.common.result.PageResult
;
import
com.mmc.oms.common.result.ResultBody
;
...
...
@@ -15,6 +16,7 @@ import com.mmc.oms.model.qo.uav.PriceStockQO;
import
com.mmc.oms.model.qo.uav.UavCartQO
;
import
com.mmc.oms.model.vo.uav.UavCartVO
;
import
com.mmc.oms.service.uav.UavCartService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -28,6 +30,7 @@ import java.util.stream.Collectors;
* @Date: 2023/9/16 14:40
*/
@Service
@Slf4j
public
class
UavCartServiceImpl
implements
UavCartService
{
@Autowired
private
UavCartDao
uavCartDao
;
...
...
@@ -38,6 +41,13 @@ public class UavCartServiceImpl implements UavCartService {
@Override
public
ResultBody
addCart
(
UavCartVO
uavCartVO
)
{
UavCartDO
uavCartDO
=
new
UavCartDO
(
uavCartVO
);
// 查询购物车中是否有一样的商品规格,有则数量+1,无则直接添加数据。
UavCartDO
uavCartDO1
=
uavCartDao
.
countMallGoodsSku
(
uavCartDO
);
if
(
uavCartDO1
!=
null
)
{
uavCartDO1
.
setOrderNum
(
uavCartDO1
.
getOrderNum
()
+
1
);
uavCartDao
.
updateUavCart
(
uavCartDO1
);
return
ResultBody
.
success
();
}
uavCartDao
.
addCart
(
uavCartDO
);
return
ResultBody
.
success
();
}
...
...
@@ -54,7 +64,7 @@ public class UavCartServiceImpl implements UavCartService {
if
(
uavCartDO
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
SHOP_CAR_ERROR
);
}
//
changeNum,
正加负减
// 正加负减
Integer
targetNum
=
uavCartDO
.
getOrderNum
()
+
changeNum
;
if
(
targetNum
.
compareTo
(
0
)
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
BUY_NUM_ERROR
);
...
...
@@ -71,18 +81,18 @@ public class UavCartServiceImpl implements UavCartService {
if
(
list
.
size
()
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
uavCartQO
.
getPageNo
(),
uavCartQO
.
getPageSize
(),
list
.
size
()));
}
Integer
pageNo
=
uavCartQO
.
getPage
No
();
Integer
pageNo
=
uavCartQO
.
getPage
Size
();
uavCartQO
.
buildCurrentPage
();
List
<
UavCartCompanyDO
>
uavCartCompanyDOS
=
uavCartDao
.
list
(
pageNo
,
uavCartQO
.
getPageSize
(),
currentAccount
.
getUserAccountId
());
List
<
UavCartCompanyDO
>
uavCartCompanyDOS
=
uavCartDao
.
list
(
uavCartQO
.
getPageNo
()
,
uavCartQO
.
getPageSize
(),
currentAccount
.
getUserAccountId
());
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
=
uavCartCompanyDOS
.
stream
().
map
(
UavCartCompanyDO:
:
buildUavCartCompanyDTO
).
collect
(
Collectors
.
toList
());
// 同步商品信息,价格及是否展示
// 根据规格查询商品信息
buildUavCartCompany
(
uavCartQO
.
getOrderType
(),
uavCartCompanyDTOS
);
buildUavCartCompany
(
uavCartCompanyDTOS
);
uavCartCompanyDTOS
.
removeIf
(
i
->
CollectionUtils
.
isEmpty
(
i
.
getUavCartDOS
())
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
uavCartQO
.
getPageSize
(),
list
.
size
(),
uavCartCompanyDTOS
));
}
@Override
public
void
buildUavCartCompany
(
Integer
orderType
,
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
){
public
void
buildUavCartCompany
(
List
<
UavCartCompanyDTO
>
uavCartCompanyDTOS
){
List
<
PriceStockQO
>
priceStockQOS
=
new
ArrayList
<>();
for
(
UavCartCompanyDTO
uavCartCompanyDTO
:
uavCartCompanyDTOS
)
{
for
(
UavCartDTO
uavCartDO
:
uavCartCompanyDTO
.
getUavCartDOS
())
{
...
...
@@ -92,35 +102,29 @@ public class UavCartServiceImpl implements UavCartService {
}
// 最新规格信息
List
<
UavCartDTO
>
uavCartDTOS
=
pmsAppApi
.
listPriceStock
(
priceStockQOS
);
if
(
CollectionUtils
.
isEmpty
(
uavCartDTOS
))
{
return
;
}
// 更新最新的规格信息
for
(
UavCartCompanyDTO
uavCartCompanyDTO
:
uavCartCompanyDTOS
)
{
uavCartCompanyDTO
.
setCompanyName
(
uavCartCompanyDTO
.
getUavCartDOS
().
get
(
0
).
getCompanyName
());
for
(
UavCartDTO
uavCartDTO
:
uavCartCompanyDTO
.
getUavCartDOS
())
{
// 从最新规格中逐个更新
// 标识是否找到
Boolean
flag
=
false
;
// 从最新规格中逐个更新,没有则置为失效
for
(
UavCartDTO
newestUavCartDTO
:
uavCartDTOS
)
{
if
(
uavCartDTO
.
getMallGoodsId
().
equals
(
newestUavCartDTO
.
getMallGoodsId
())
&&
uavCartDTO
.
getProductSpec
().
equals
(
newestUavCartDTO
.
getProductSpec
()))
{
// 不符合的移除
if
(
UavOrderType
.
PAY
.
getCode
().
equals
(
orderType
))
{
if
(
newestUavCartDTO
.
getPriceShow
().
equals
(
0
))
{
uavCartCompanyDTO
.
getUavCartDOS
().
remove
(
uavCartDTO
);
}
}
else
{
if
(
newestUavCartDTO
.
getPriceShow
().
equals
(
1
))
{
uavCartCompanyDTO
.
getUavCartDOS
().
remove
(
uavCartDTO
);
}
}
flag
=
true
;
uavCartDTO
.
setPriceShow
(
newestUavCartDTO
.
getPriceShow
());
uavCartDTO
.
setSalePrice
(
newestUavCartDTO
.
getSalePrice
());
uavCartDTO
.
setShelfStatus
(
newestUavCartDTO
.
getShelfStatus
());
uavCartDTO
.
setDeleted
(
newestUavCartDTO
.
getDeleted
());
break
;
}
}
}
if
(
CollectionUtils
.
isEmpty
(
uavCartCompanyDTO
.
getUavCartDOS
()))
{
uavCartCompanyDTOS
.
remove
(
uavCartCompanyDTO
);
// 找不到或被删除则置为失效
if
(!
flag
||
uavCartDTO
.
getDeleted
().
equals
(
1
))
{
uavCartDTO
.
setShelfStatus
(
0
);
uavCartDTO
.
setDeleted
(
1
);
}
}
}
}
...
...
src/main/java/com/mmc/oms/service/uav/impl/UavOrderServiceImpl.java
浏览文件 @
48a581d6
...
...
@@ -14,6 +14,7 @@ import com.mmc.oms.dao.UserAddressDao;
import
com.mmc.oms.dao.uav.UavOrderDao
;
import
com.mmc.oms.dao.uav.UavOrderExpressDao
;
import
com.mmc.oms.dao.uav.UavPODao
;
import
com.mmc.oms.dao.uav.UavPayWxDao
;
import
com.mmc.oms.entity.mall.UserAddressDO
;
import
com.mmc.oms.entity.uav.*
;
import
com.mmc.oms.enums.UavOrderStatus
;
...
...
@@ -68,6 +69,9 @@ public class UavOrderServiceImpl implements UavOrderService {
private
UavPODao
uavPODao
;
@Autowired
private
UavPayWxDao
uavPayWxDao
;
@Autowired
private
DemandReleaseOrderService
demandReleaseOrderService
;
@Autowired
...
...
@@ -86,35 +90,14 @@ public class UavOrderServiceImpl implements UavOrderService {
@Transactional
public
ResultBody
addOrder
(
AddUavOrderVO
param
,
BaseAccountDTO
currentAccount
)
{
log
.
info
(
"user:{},addOrder param:{}"
,
currentAccount
.
getUserAccountId
(),
param
);
if
(
CollectionUtils
.
isEmpty
(
param
.
getSkuVOS
())){
if
(
CollectionUtils
.
isEmpty
(
param
.
getSkuVOS
()))
{
return
ResultBody
.
error
(
"至少选择一个规格!"
);
}
MallGoodsVO
mallGoodsVO
=
null
;
try
{
mallGoodsVO
=
pmsClient
.
mallGoodsDetails
(
param
.
getMallGoodsId
());
// 检验商品是否在卖
if
(
mallGoodsVO
==
null
||
!
mallGoodsVO
.
getShelfStatus
().
equals
(
1
)){
return
ResultBody
.
error
(
"商品已下架"
);
}
// 找到对应的规格
for
(
UavOrderSkuVO
skuVO
:
param
.
getSkuVOS
())
{
Boolean
flag
=
false
;
for
(
PriceStockVO
priceStockVO
:
mallGoodsVO
.
getPriceStock
())
{
if
(
skuVO
.
getProductSpec
().
equals
(
priceStockVO
.
getProductSpec
()))
{
// 获取最新的规格单价
skuVO
.
setUnitPrice
(
priceStockVO
.
getSalePrice
());
flag
=
true
;
break
;
}
}
if
(!
flag
){
return
ResultBody
.
error
(
"选择规格不存在"
);
}
}
}
catch
(
Exception
e
){
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
e
.
printStackTrace
();
ResultBody
<
MallGoodsVO
>
checkRes
=
this
.
verifyMallGoods
(
param
);
if
(!
checkRes
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
checkRes
;
}
MallGoodsVO
mallGoodsVO
=
checkRes
.
getResult
();
String
orderNo
=
CodeUtil
.
uavOrderCode
();
BigDecimal
orderTotalAmount
=
BigDecimal
.
ZERO
;
BigDecimal
otherAmount
=
BigDecimal
.
ZERO
;
...
...
@@ -129,31 +112,31 @@ public class UavOrderServiceImpl implements UavOrderService {
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
Integer
statusCode
=
null
;
// 正常订单可以抵扣云享金和余额、意向订单不能扣
if
(
param
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
())){
if
(
param
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
()))
{
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getCurrentUserPayWalletInfo
(
currentAccount
.
getToken
());
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payResInfo
.
getResult
()
==
null
){
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payResInfo
.
getResult
()
==
null
)
{
return
payResInfo
;
}
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
if
(
param
.
getDeductShareAmount
().
equals
(
1
)){
if
(
param
.
getDeductShareAmount
().
equals
(
1
))
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
// 抵扣云享金小于等于订单总额时,直接使用云享金
shareAmount
=
payWalletDTO
.
getCashAmt
();
}
else
{
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
shareAmount
=
otherAmount
;
}
}
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
// 支付完成
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
)){
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
))
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>=
0
)
{
// 抵扣余额小于等于订单总额时,直接使用余额
salaryAmount
=
payWalletDTO
.
getSalaryAmt
();
}
else
{
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
salaryAmount
=
otherAmount
;
}
...
...
@@ -163,26 +146,17 @@ public class UavOrderServiceImpl implements UavOrderService {
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
}
}
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setCashAmount
(
shareAmount
);
payUavWalletVO
.
setSalaryAmount
(
salaryAmount
);
payUavWalletVO
.
setOrderStatus
(
100
);
payUavWalletVO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
salaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())){
return
resultBody
;
}
}
// 抵扣余额
this
.
deductWallet
(
shareAmount
,
salaryAmount
,
currentAccount
);
}
// 添加总订单表
UavOrderDO
uavOrderDO
=
new
UavOrderDO
();
uavOrderDO
.
setOrderNo
(
orderNo
);
uavOrderDO
.
setOrderTotalAmount
(
orderTotalAmount
);
uavOrderDO
.
setOrderType
(
param
.
getOrderType
());
if
(
param
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
())){
if
(
param
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
()))
{
uavOrderDO
.
setStatusCode
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
?
UavOrderStatus
.
PAYING
.
getCode
()
:
statusCode
);
}
else
{
}
else
{
uavOrderDO
.
setStatusCode
(
UavOrderStatus
.
CONFIRM
.
getCode
());
}
uavOrderDO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
...
...
@@ -219,6 +193,36 @@ public class UavOrderServiceImpl implements UavOrderService {
return
ResultBody
.
success
(
uavOrderDO
.
buildUavOrderDTO
());
}
private
ResultBody
<
MallGoodsVO
>
verifyMallGoods
(
AddUavOrderVO
param
)
{
MallGoodsVO
mallGoodsVO
=
null
;
try
{
mallGoodsVO
=
pmsClient
.
mallGoodsDetails
(
param
.
getMallGoodsId
());
// 检验商品是否在卖
if
(
mallGoodsVO
==
null
||
!
mallGoodsVO
.
getShelfStatus
().
equals
(
1
)){
return
ResultBody
.
error
(
"商品已下架"
);
}
// 找到对应的规格
for
(
UavOrderSkuVO
skuVO
:
param
.
getSkuVOS
())
{
Boolean
flag
=
false
;
for
(
PriceStockVO
priceStockVO
:
mallGoodsVO
.
getPriceStock
())
{
if
(
skuVO
.
getProductSpec
().
equals
(
priceStockVO
.
getProductSpec
()))
{
// 获取最新的规格单价
skuVO
.
setUnitPrice
(
priceStockVO
.
getSalePrice
());
flag
=
true
;
break
;
}
}
if
(!
flag
){
return
ResultBody
.
error
(
"选择规格不存在"
);
}
}
}
catch
(
Exception
e
){
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
e
.
printStackTrace
();
}
return
ResultBody
.
success
(
mallGoodsVO
);
}
@Override
public
ResultBody
detail
(
Integer
id
,
BaseAccountDTO
baseAccountDTO
)
throws
Exception
{
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detail
(
id
);
...
...
@@ -233,7 +237,7 @@ public class UavOrderServiceImpl implements UavOrderService {
List
<
UavOrderPayDTO
>
collect
=
payDOS
.
stream
().
map
(
UavOrderPayDO:
:
buildUavOrderPayDTO
).
collect
(
Collectors
.
toList
());
uavOrderDTO
.
setPayDTOList
(
collect
);
}
List
<
UavOrderSkuDO
>
skuDOS
=
uavOrderDao
.
listUavOrderSkuDO
(
id
);
List
<
UavOrderSkuDO
>
skuDOS
=
uavOrderDao
.
listUavOrderSkuDO
(
id
);
if
(
CollectionUtils
.
isNotEmpty
(
skuDOS
))
{
List
<
UavOrderSkuDTO
>
uavOrderSkuDTOS
=
skuDOS
.
stream
().
map
(
UavOrderSkuDO:
:
buildUavOrderSkuDTO
).
collect
(
Collectors
.
toList
());
uavOrderDTO
.
setSkuDTOList
(
uavOrderSkuDTOS
);
...
...
@@ -291,7 +295,7 @@ public class UavOrderServiceImpl implements UavOrderService {
payUavWalletVO
.
setOrderStatus
(
1400
);
payUavWalletVO
.
setUserAccountId
(
uavOrderDO
.
getUserAccountId
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
token
);
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())){
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
}
...
...
@@ -315,7 +319,7 @@ public class UavOrderServiceImpl implements UavOrderService {
@Override
public
ResultBody
list
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
)
{
if
(!
currentAccount
.
getRoleInfo
().
getSuperAdmin
().
equals
(
1
)){
if
(!
currentAccount
.
getRoleInfo
().
getSuperAdmin
().
equals
(
1
))
{
uavOrderQO
.
setThirdBackUserAccountId
(
currentAccount
.
getUserAccountId
());
uavOrderQO
.
setOrderType
(
UavOrderType
.
PAY
.
getCode
());
}
...
...
@@ -463,14 +467,23 @@ public class UavOrderServiceImpl implements UavOrderService {
}
// 修改订单状态
this
.
updateUavOrderStatus
(
uavOrderRemarkVO
.
getUavOrderId
(),
UavOrderStatus
.
WAITING_REMARK
);
// 填入评价内容
UavOrderRemarkDO
uavOrderRemarkDO
=
new
UavOrderRemarkDO
(
uavOrderRemarkVO
);
uavOrderDao
.
addRemarkOrder
(
uavOrderRemarkDO
);
uavOrderDao
.
updateUavOrderRemarkStatus
(
uavOrderDO
.
getId
());
List
<
UavOrderSkuDO
>
uavOrderSkuDOS
=
uavOrderDao
.
listUavOrderSkuDO
(
uavOrderDO
.
getId
());
List
<
Integer
>
mallGoodsIds
=
uavOrderSkuDOS
.
stream
().
map
(
i
->
i
.
getMallGoodsId
()).
distinct
().
collect
(
Collectors
.
toList
());
List
<
UavOrderRemarkDO
>
uavOrderRemarkDOS
=
new
ArrayList
<
UavOrderRemarkDO
>();
for
(
Integer
mallGoodsId
:
mallGoodsIds
)
{
// 填入评价内容
UavOrderRemarkDO
uavOrderRemarkDO
=
new
UavOrderRemarkDO
(
uavOrderRemarkVO
);
uavOrderRemarkDO
.
setRemarkType
(
0
);
uavOrderRemarkDO
.
setMallGoodsId
(
mallGoodsId
);
uavOrderRemarkDOS
.
add
(
uavOrderRemarkDO
);
}
uavOrderDao
.
addRemarkOrder
(
uavOrderRemarkDOS
);
return
ResultBody
.
success
();
}
@Transactional
public
void
updateUavOrderStatus
(
Integer
id
,
UavOrderStatus
uavOrderStatus
){
public
void
updateUavOrderStatus
(
Integer
id
,
UavOrderStatus
uavOrderStatus
)
{
uavOrderDao
.
updateUavOrderStatus
(
id
,
uavOrderStatus
.
getNextCode
());
}
...
...
@@ -511,7 +524,7 @@ public class UavOrderServiceImpl implements UavOrderService {
UavOrderPayDO
beforeUavOrderPayDO
=
uavOrderDao
.
getUavOrderPayById
(
uavOrderPayVO
.
getId
());
// 一个订单可能会多次上传付款凭证,因此单独审核
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detail
(
beforeUavOrderPayDO
.
getUavOrderId
());
if
(
uavOrderPayVO
.
getCheckStatus
().
equals
(
1
)){
if
(
uavOrderPayVO
.
getCheckStatus
().
equals
(
1
))
{
// 第一次审核通过,则要把订单状态改为待发货;意向订单还要生成采购订单
if
(
uavOrderDO
.
getStatusCode
().
equals
(
UavOrderStatus
.
FINISH_PAYING
.
getCode
()))
{
this
.
updateUavOrderStatus
(
beforeUavOrderPayDO
.
getUavOrderId
(),
UavOrderStatus
.
FINISH_PAYING
);
...
...
@@ -525,7 +538,7 @@ public class UavOrderServiceImpl implements UavOrderService {
uavPurchaseOrderDO
.
setStatusCode
(
UavOrderStatus
.
CONFIRM
.
getCode
());
uavPODao
.
addPurchaseOrder
(
uavPurchaseOrderDO
);
}
}
else
{
}
else
{
if
(
uavOrderDO
.
getStatusCode
().
equals
(
UavOrderStatus
.
FINISH_PAYING
.
getCode
()))
{
// 第一次未通过,需要走回上一步
this
.
updateUavOrderStatus
(
beforeUavOrderPayDO
.
getUavOrderId
(),
UavOrderStatus
.
SIGN
);
...
...
@@ -539,6 +552,15 @@ public class UavOrderServiceImpl implements UavOrderService {
@Transactional
@Override
public
void
payUavOrder
(
TopUpOrderVO
topUpOrderVO
)
{
if
(
topUpOrderVO
.
getOrderNo
().
startsWith
(
"m"
))
{
payMultiUavOrder
(
topUpOrderVO
);
}
else
{
paySingleUavOrder
(
topUpOrderVO
);
}
}
@Transactional
public
void
paySingleUavOrder
(
TopUpOrderVO
topUpOrderVO
)
{
// 添加支付凭证、记录支付方式
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detailByNo
(
topUpOrderVO
.
getOrderNo
());
if
(
uavOrderDO
==
null
)
{
...
...
@@ -561,6 +583,24 @@ public class UavOrderServiceImpl implements UavOrderService {
}
@Transactional
public
void
payMultiUavOrder
(
TopUpOrderVO
topUpOrderVO
)
{
UavPayWxDO
uavPayWx
=
uavPayWxDao
.
getUavPayWx
(
topUpOrderVO
.
getOrderNo
());
if
(
uavPayWx
!=
null
)
{
List
<
UavPayWxSubDO
>
payWxSubDOS
=
uavPayWxDao
.
listUavPayWxSub
(
uavPayWx
.
getId
());
for
(
UavPayWxSubDO
wxSubDO
:
payWxSubDOS
)
{
TopUpOrderVO
upOrderVO
=
new
TopUpOrderVO
();
upOrderVO
.
setOpenid
(
topUpOrderVO
.
getOpenid
());
upOrderVO
.
setOrderNo
(
wxSubDO
.
getOrderNo
());
upOrderVO
.
setAmount
(
wxSubDO
.
getAmount
().
multiply
(
BigDecimal
.
valueOf
(
100
)).
intValue
());
upOrderVO
.
setTradeState
(
topUpOrderVO
.
getTradeState
());
upOrderVO
.
setTradeStateDesc
(
topUpOrderVO
.
getTradeStateDesc
());
this
.
paySingleUavOrder
(
upOrderVO
);
}
}
uavPayWxDao
.
finishUavPayWx
(
topUpOrderVO
.
getOrderNo
(),
topUpOrderVO
.
getTradeState
());
}
@Transactional
@Override
public
ResultBody
confirmOrder
(
UavOrderVO
uavOrderVO
,
BaseAccountDTO
currentAccount
)
{
// 修改订单状态
...
...
@@ -578,7 +618,7 @@ public class UavOrderServiceImpl implements UavOrderService {
if
(
uavOrderDO
.
getOrderType
().
equals
(
UavOrderType
.
SIGN
.
getCode
()))
{
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getPayWalletInfo
(
uavOrderDO
.
getUserAccountId
(),
currentAccount
.
getToken
());
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payWalletDTO
==
null
){
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payWalletDTO
==
null
)
{
return
payResInfo
;
}
// 要扣除的云享金
...
...
@@ -590,11 +630,11 @@ public class UavOrderServiceImpl implements UavOrderService {
// 根据订单总额确认扣除多少云享金
if
(
uavOrderVO
.
getOrderTotalAmount
().
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
shareAmount
=
payWalletDTO
.
getCashAmt
();
}
else
{
}
else
{
shareAmount
=
uavOrderVO
.
getOrderTotalAmount
();
}
// 抵扣
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setUserAccountId
(
uavOrderDO
.
getUserAccountId
());
payUavWalletVO
.
setCashAmount
(
shareAmount
);
...
...
@@ -603,7 +643,7 @@ public class UavOrderServiceImpl implements UavOrderService {
payUavWalletVO
.
setOrderStatus
(
100
);
payUavWalletVO
.
setRemark
(
"商城确认订单抵扣"
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())){
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
}
}
...
...
@@ -663,30 +703,91 @@ public class UavOrderServiceImpl implements UavOrderService {
@Transactional
@Override
public
ResultBody
addOrderByCart
(
AddUavOrderByCartQO
orderByCartQO
,
BaseAccountDTO
currentAccount
)
{
uavCartService
.
buildUavCartCompany
(
orderByCartQO
.
getOrderType
(),
orderByCartQO
.
getCartCompanyDTOS
());
// 可以多商家多商品,为每个商家生成一个订单
List
<
UavOrderDO
>
orders
=
new
ArrayList
<
UavOrderDO
>();
BigDecimal
allAmount
=
BigDecimal
.
ZERO
;
uavCartService
.
buildUavCartCompany
(
orderByCartQO
.
getCartCompanyDTOS
());
// 意向订单只能下一个商家的
if
(
orderByCartQO
.
getOrderType
().
equals
(
UavOrderType
.
SIGN
.
getCode
())
&&
orderByCartQO
.
getCartCompanyDTOS
().
size
()
>
1
)
{
return
ResultBody
.
error
(
"意向订单仅限下单个商家的商品"
);
}
// 云享金、余额扣除相关
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getCurrentUserPayWalletInfo
(
currentAccount
.
getToken
());
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payResInfo
.
getResult
()
==
null
)
{
return
payResInfo
;
}
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
// 购物车id
List
<
Integer
>
cartIds
=
new
ArrayList
<>();
// 可以多商家多商品,为每个商家生成一个订单
List
<
UavOrderDO
>
orders
=
new
ArrayList
<
UavOrderDO
>();
BigDecimal
allOtherAmount
=
BigDecimal
.
ZERO
;
BigDecimal
allShareAmount
=
BigDecimal
.
ZERO
;
BigDecimal
allSalaryAmount
=
BigDecimal
.
ZERO
;
// 生成订单信息
for
(
UavCartCompanyDTO
companyDTO
:
orderByCartQO
.
getCartCompanyDTOS
())
{
BigDecimal
singleO
rderAmount
=
BigDecimal
.
ZERO
;
BigDecimal
o
rderAmount
=
BigDecimal
.
ZERO
;
UavOrderDO
uavOrderDO
=
new
UavOrderDO
();
// 校验云享金、钱包余额是否足够抵扣
BigDecimal
shareAmount
=
BigDecimal
.
ZERO
;
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
BigDecimal
otherAmount
=
BigDecimal
.
ZERO
;
Integer
statusCode
=
null
;
List
<
UavOrderSkuDO
>
skuDOS
=
new
ArrayList
<
UavOrderSkuDO
>();
String
orderNo
=
CodeUtil
.
uavOrderCode
();
if
(
CollectionUtils
.
isNotEmpty
(
companyDTO
.
getUavCartDOS
()))
{
for
(
UavCartDTO
uavCartDTO
:
companyDTO
.
getUavCartDOS
())
{
// 记录购物车id
cartIds
.
add
(
uavCartDTO
.
getId
());
// 购物车记录转换成对应规格
UavOrderSkuDO
uavOrderSkuDO
=
new
UavOrderSkuDO
(
uavCartDTO
);
skuDOS
.
add
(
uavOrderSkuDO
);
singleOrderAmount
=
singleOrderAmount
.
add
(
uavCartDTO
.
getSalePrice
().
multiply
(
BigDecimal
.
valueOf
(
uavCartDTO
.
getOrderNum
())));
orderAmount
=
orderAmount
.
add
(
uavCartDTO
.
getSalePrice
().
multiply
(
BigDecimal
.
valueOf
(
uavCartDTO
.
getOrderNum
())));
if
(
uavCartDTO
.
getShelfStatus
().
equals
(
0
))
{
return
ResultBody
.
error
(
uavCartDTO
.
getTradeName
()
+
" 已下架,请重新选择"
);
}
}
}
else
{
return
ResultBody
.
error
(
"所选规格无效"
);
}
otherAmount
=
otherAmount
.
add
(
orderAmount
);
// 正常订单可以抵扣云享金和余额、意向订单不能扣
if
(
orderByCartQO
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
()))
{
// 抵扣云享金
if
(
companyDTO
.
getDeductShareAmount
().
equals
(
1
)
&&
payWalletDTO
.
getCashAmt
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
payWalletDTO
.
getCashAmt
().
compareTo
(
otherAmount
)
>
0
)
{
shareAmount
=
shareAmount
.
add
(
otherAmount
);
}
else
{
shareAmount
=
shareAmount
.
add
(
payWalletDTO
.
getCashAmt
());
}
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
allShareAmount
=
allShareAmount
.
add
(
shareAmount
);
payWalletDTO
.
setCashAmt
(
payWalletDTO
.
getCashAmt
().
subtract
(
shareAmount
));
}
// 抵扣余额
if
(
companyDTO
.
getDeductSalaryAmount
().
equals
(
1
)
&&
payWalletDTO
.
getSalaryAmt
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
&&
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>
0
)
{
salaryAmount
=
salaryAmount
.
add
(
payWalletDTO
.
getSalaryAmt
());
}
else
{
salaryAmount
=
salaryAmount
.
add
(
otherAmount
);
}
otherAmount
=
otherAmount
.
subtract
(
salaryAmount
);
allSalaryAmount
=
allSalaryAmount
.
add
(
salaryAmount
);
payWalletDTO
.
setSalaryAmt
(
payWalletDTO
.
getSalaryAmt
().
subtract
(
salaryAmount
));
}
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
}
else
{
statusCode
=
UavOrderStatus
.
PAYING
.
getCode
();
}
}
else
{
statusCode
=
UavOrderStatus
.
CONFIRM
.
getCode
();
}
// 设置订单状态
// uavOrderDO.setStatusCode();
uavOrderDO
.
setOrderTotalAmount
(
singleOrderAmount
);
uavOrderDO
.
setStatusCode
(
statusCode
);
uavOrderDO
.
setOrderTotalAmount
(
orderAmount
);
uavOrderDO
.
setOtherAmount
(
otherAmount
);
uavOrderDO
.
setSalaryAmount
(
salaryAmount
);
uavOrderDO
.
setShareAmount
(
shareAmount
);
uavOrderDO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
uavOrderDO
.
setUserAddressId
(
orderByCartQO
.
getUserAddressId
());
uavOrderDO
.
setThirdBackUserAccountId
(
companyDTO
.
getThirdBackUserAccountId
());
...
...
@@ -696,15 +797,87 @@ public class UavOrderServiceImpl implements UavOrderService {
uavOrderDO
.
setOrderNo
(
orderNo
);
uavOrderDO
.
setSkuDOS
(
skuDOS
);
orders
.
add
(
uavOrderDO
);
allAmount
=
allAmount
.
add
(
singleOrderAmount
);
allOtherAmount
=
allOtherAmount
.
add
(
otherAmount
);
}
// 抵扣余额
if
(
allShareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
allSalaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
this
.
deductWallet
(
allShareAmount
,
allSalaryAmount
,
currentAccount
);
}
// 添加订单信息
uavOrderDao
.
batchAddOrder
(
orders
);
// 全部规格信息
List
<
UavOrderSkuDO
>
allSkuDOS
=
new
ArrayList
<
UavOrderSkuDO
>();
for
(
UavOrderDO
order
:
orders
)
{
for
(
UavOrderSkuDO
skuDO
:
order
.
getSkuDOS
())
{
skuDO
.
setUavOrderId
(
order
.
getId
());
allSkuDOS
.
add
(
skuDO
);
}
}
// 云享金、余额扣除相关
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getCurrentUserPayWalletInfo
(
currentAccount
.
getToken
());
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payResInfo
.
getResult
()
==
null
){
return
payResInfo
;
// 批量添加规格
uavOrderDao
.
addOrderSku
(
allSkuDOS
);
// 多个添加收货地址
List
<
UavOrderExpressDO
>
expressDOS
=
new
ArrayList
<
UavOrderExpressDO
>();
UserAddressDO
userAddressDO
=
userAddressDao
.
selectById
(
orderByCartQO
.
getUserAddressId
());
for
(
UavOrderDO
order
:
orders
)
{
UavOrderExpressDO
uavOrderExpressDO
=
new
UavOrderExpressDO
(
userAddressDO
);
uavOrderExpressDO
.
setUavOrderId
(
order
.
getId
());
expressDOS
.
add
(
uavOrderExpressDO
);
}
// 批量添加收货地址
uavOrderExpressDao
.
batchAddOrderExpress
(
expressDOS
);
// 批量标识购物车
uavCartService
.
batchRemove
(
cartIds
);
List
<
UavOrderDTO
>
collect
=
orders
.
stream
().
map
(
UavOrderDO:
:
buildUavOrderDTO
).
collect
(
Collectors
.
toList
());
long
unFinishPay
=
collect
.
stream
().
filter
(
i
->
i
.
getStatusCode
().
equals
(
UavOrderStatus
.
PAYING
.
getCode
())).
count
();
MultiUavOrderDTO
multiUavOrderDTO
=
new
MultiUavOrderDTO
();
multiUavOrderDTO
.
setAllOtherAmount
(
allOtherAmount
);
multiUavOrderDTO
.
setUavOrderDTOS
(
collect
);
// 待订单个数大于1
if
(
unFinishPay
>
0
)
{
String
payNo
=
CodeUtil
.
multiUavOrderPayCode
();
multiUavOrderDTO
.
setPayNo
(
payNo
);
UavPayWxDO
uavPayWx
=
new
UavPayWxDO
();
uavPayWx
.
setPayNo
(
payNo
);
uavPayWx
.
setAmount
(
allOtherAmount
);
uavPayWx
.
setTradeState
(
"WAIT"
);
List
<
UavPayWxSubDO
>
payWxSubDOS
=
new
ArrayList
<>();
uavPayWxDao
.
addUavPayWx
(
uavPayWx
);
collect
.
stream
().
forEach
(
i
->
{
if
(
i
.
getStatusCode
().
equals
(
UavOrderStatus
.
PAYING
.
getCode
()))
{
UavPayWxSubDO
uavPayWxSubDO
=
new
UavPayWxSubDO
();
uavPayWxSubDO
.
setUavPayWxId
(
uavPayWx
.
getId
());
uavPayWxSubDO
.
setUavOrderId
(
i
.
getId
());
uavPayWxSubDO
.
setOrderNo
(
i
.
getOrderNo
());
uavPayWxSubDO
.
setAmount
(
i
.
getOtherAmount
());
payWxSubDOS
.
add
(
uavPayWxSubDO
);
}
});
uavPayWxDao
.
batchAddUavPayWxSub
(
payWxSubDOS
);
}
return
ResultBody
.
success
(
multiUavOrderDTO
);
}
@Override
public
ResultBody
deductWallet
(
BigDecimal
allShareAmount
,
BigDecimal
allSalaryAmount
,
BaseAccountDTO
currentAccount
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setCashAmount
(
allShareAmount
);
payUavWalletVO
.
setSalaryAmount
(
allSalaryAmount
);
payUavWalletVO
.
setOrderStatus
(
100
);
payUavWalletVO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
if
(
allShareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
allSalaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
ResultBody
.
error
(
"余额抵扣失败!"
);
}
}
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
return
ResultBody
.
success
();
}
@Override
public
List
<
UavOrderRemarkDTO
>
listGoodsRemark
(
Integer
remarkType
,
Integer
goodsId
)
{
List
<
UavOrderRemarkDO
>
remarkDOS
=
uavOrderDao
.
listGoodsRemark
(
remarkType
,
goodsId
);
return
CollectionUtils
.
isNotEmpty
(
remarkDOS
)
?
remarkDOS
.
stream
()
.
map
(
UavOrderRemarkDO:
:
buildUavOrderRemarkDTO
).
collect
(
Collectors
.
toList
())
:
null
;
}
}
src/main/java/com/mmc/oms/util/TDateUtil.java
0 → 100644
浏览文件 @
48a581d6
package
com
.
mmc
.
oms
.
util
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
* @author 作者 geDuo
* @version 创建时间:2021年7月17日 下午5:28:19
* @explain 日期时间工具类
*/
public
class
TDateUtil
{
public
static
final
String
ONE_WEEK
=
"oneweek"
;
public
static
final
String
ONE_MONTH
=
"onemonth"
;
public
static
final
String
THREE_MONTH
=
"threemonth"
;
public
static
final
String
SIX_MONTH
=
"sixmonth"
;
public
static
final
String
ONE_YEAR
=
"oneyear"
;
public
static
String
getCurrentDate
()
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy/MM/dd HH:mm"
);
// 设置日期格式
String
date
=
df
.
format
(
new
Date
());
// new Date()为获取当前系统时间
return
date
;
}
public
static
String
getCurrentDateByType
(
String
format
)
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
format
);
// 设置日期格式
String
date
=
df
.
format
(
new
Date
());
// new Date()为获取当前系统时间
return
date
;
}
public
static
String
getCurrentDateMidd
()
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
// 设置日期格式
String
date
=
df
.
format
(
new
Date
());
// new Date()为获取当前系统时间
return
date
;
}
public
static
Date
getDate
(
String
str
,
String
format
)
{
Date
date
=
null
;
try
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
format
);
// 设置日期格式
// String dates=df.format(new Date());// new Date()为获取当前系统时间
date
=
df
.
parse
(
str
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
/**
* date类型转字符串
*/
public
static
String
getDateStr
(
Date
date
,
String
type
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
type
);
String
s
=
format
.
format
(
date
);
return
s
;
}
/**
* 根据日期获得随机数
*/
public
static
Integer
getDateRandom
(
Date
date
,
String
format
,
int
count
)
{
String
code
=
""
;
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
code
=
code
+
(
int
)
(
Math
.
random
()
*
9
);
}
code
=
TDateUtil
.
getDateStr
(
date
,
format
)
+
code
;
return
Integer
.
parseInt
(
code
);
}
/**
* 10位数的秒转日期字符
*
* @param mss
* @return
*/
public
static
Date
dateFromSecond
(
long
sceondTime
)
{
return
new
Date
(
sceondTime
*
1000
);
}
/**
* 10位数的秒转日期字符
*
* @param mss
* @return
*/
public
static
String
dateFromSecondStr
(
long
sceondTime
)
{
return
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
(
sceondTime
*
1000
));
}
/**
* 秒转时分秒
*
* @param secondTime
* @return
*/
public
static
String
hmsFromSecond
(
Integer
secondTime
)
{
Integer
hour
=
secondTime
/
60
/
60
;
Integer
minutes
=
secondTime
/
60
%
60
;
Integer
remainingSeconds
=
secondTime
%
60
;
return
(
hour
+
"h"
+
minutes
+
"min"
+
remainingSeconds
+
"s"
);
}
public
static
String
hmsFromSecondFormat
(
long
secondTime
)
{
long
day
=
secondTime
/
60
/
60
/
24
;
long
hour
=
secondTime
/
60
/
60
%
24
;
long
minutes
=
secondTime
/
60
%
60
;
long
remainingSeconds
=
secondTime
%
60
;
if
(
day
>
0
)
{
return
(
day
+
"天"
+
hour
+
"小时"
+
minutes
+
"分"
+
remainingSeconds
+
"秒"
);
}
return
(
hour
+
"小时"
+
minutes
+
"分"
+
remainingSeconds
+
"秒"
);
}
/**
* 两个日期的相差秒数
*
* @param maxDate
* @param minDate
* @return
*/
public
static
long
calLastedTime
(
Date
maxDate
,
Date
minDate
)
{
long
a
=
maxDate
.
getTime
();
long
b
=
minDate
.
getTime
();
long
c
=
(
a
-
b
)
/
1000
;
return
c
;
}
/**
* 获取某个月的月底最后一天的时间
*/
public
static
Date
getMonthLatestDay
(
Date
date
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
// 获取当前月最后一天
Calendar
ca
=
Calendar
.
getInstance
();
ca
.
setTime
(
date
);
ca
.
set
(
Calendar
.
DAY_OF_MONTH
,
ca
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
String
last
=
format
.
format
(
ca
.
getTime
());
Date
dates
=
getDate
(
last
,
"yyyy-MM-dd"
);
return
dates
;
}
/**
* 某个时间 加N天
*/
public
static
Date
nextNumDay
(
Date
d
,
int
num
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
date
=
null
;
try
{
Date
now
=
d
;
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
now
);
calendar
.
add
(
Calendar
.
DAY_OF_MONTH
,
num
);
String
last
=
format
.
format
(
calendar
.
getTime
());
date
=
getDate
(
last
,
"yyyy-MM-dd"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
/**
* 某天个时间加 N 小时
*
* @param now
* @param num
* @return
*/
public
static
Date
addHourTime
(
Date
now
,
int
num
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
date
=
null
;
try
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
now
);
calendar
.
add
(
Calendar
.
HOUR
,
num
);
String
last
=
format
.
format
(
calendar
.
getTime
());
date
=
getDate
(
last
,
"yyyy-MM-dd HH:mm:ss"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
/**
* 某个时间加n个月加n天(负数为减)
*/
@SuppressWarnings
(
"static-access"
)
public
static
Date
getMonthNDayN
(
Date
date
,
int
month
,
int
day
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
news
=
null
;
try
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
MONTH
,
month
);
calendar
.
add
(
calendar
.
DATE
,
day
);
String
last
=
format
.
format
(
calendar
.
getTime
());
news
=
getDate
(
last
,
"yyyy-MM-dd"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
news
;
}
/**
* 时间戳-计算小时
*/
public
static
long
getDistanceTime
(
long
time1
,
long
time2
)
{
long
diff
=
0
;
long
day
=
0
;
long
hour
=
0
;
if
(
time1
<
time2
)
{
diff
=
time2
-
time1
;
}
else
{
diff
=
time1
-
time2
;
}
day
=
diff
/
(
24
*
60
*
60
*
1000
);
hour
=
(
diff
/
(
60
*
60
*
1000
)
-
day
*
24
);
return
hour
;
}
/**
* 两个时间之间相差距离多少天
*
* @param one 时间参数 1:
* @param two 时间参数 2:
* @return 相差天数
*/
public
static
int
distanceDays
(
Date
one
,
Date
two
)
{
int
days
=
0
;
long
time1
=
one
.
getTime
();
long
time2
=
two
.
getTime
();
long
diff
;
if
(
time1
<
time2
)
{
diff
=
time2
-
time1
;
}
else
{
diff
=
time1
-
time2
;
}
days
=
new
Long
(
diff
/
(
1000
*
60
*
60
*
24
)).
intValue
();
return
days
;
}
public
static
Date
nextNumDateTime
(
Date
d
,
int
num
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
date
=
null
;
try
{
Date
now
=
d
;
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
now
);
calendar
.
add
(
Calendar
.
DAY_OF_MONTH
,
num
);
String
last
=
format
.
format
(
calendar
.
getTime
());
date
=
getDate
(
last
,
"yyyy-MM-dd HH:mm:ss"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
public
static
String
createYearWeek
(
String
startStr
,
String
endStr
)
{
if
(
startStr
==
null
||
""
.
equals
(
startStr
)
||
endStr
==
null
||
""
.
equals
(
endStr
))
{
return
"起止日期不能为空"
;
}
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
start
=
null
;
Date
end
=
null
;
Date
startDate
;
Date
endDate
;
int
dayOfWeek
;
boolean
goOn
=
true
;
int
no
=
0
;
try
{
start
=
sdf
.
parse
(
startStr
);
end
=
sdf
.
parse
(
endStr
);
}
catch
(
ParseException
e
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
try
{
start
=
simpleDateFormat
.
parse
(
startStr
);
end
=
simpleDateFormat
.
parse
(
endStr
);
}
catch
(
ParseException
pe
)
{
pe
.
printStackTrace
();
}
}
if
(
start
.
compareTo
(
end
)
>
-
1
)
{
return
"结束日期必须大于开始日期"
;
}
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
start
);
dayOfWeek
=
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
);
List
<
Map
<
String
,
String
>>
weekList
=
new
ArrayList
<>();
if
(
dayOfWeek
>
1
&&
dayOfWeek
<
7
)
{
do
{
startDate
=
start
;
calendar
.
add
(
Calendar
.
DATE
,
(
8
-
dayOfWeek
));
endDate
=
calendar
.
getTime
();
no
+=
1
;
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"startOfWeek"
,
sdf
.
format
(
startDate
));
map
.
put
(
"weekNo"
,
no
+
""
);
if
(
endDate
.
compareTo
(
end
)
<
0
)
{
map
.
put
(
"endOfWeek"
,
sdf
.
format
(
endDate
));
weekList
.
add
(
map
);
calendar
.
add
(
Calendar
.
DATE
,
1
);
start
=
calendar
.
getTime
();
dayOfWeek
=
2
;
}
else
{
map
.
put
(
"endOfWeek"
,
sdf
.
format
(
end
));
weekList
.
add
(
map
);
goOn
=
false
;
}
}
while
(
goOn
);
}
else
{
no
+=
1
;
startDate
=
start
;
if
(
dayOfWeek
==
1
)
{
endDate
=
start
;
}
else
{
calendar
.
add
(
Calendar
.
DATE
,
1
);
endDate
=
calendar
.
getTime
();
}
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"startOfWeek"
,
sdf
.
format
(
startDate
));
map
.
put
(
"endOfWeek"
,
sdf
.
format
(
endDate
));
map
.
put
(
"weekNo"
,
no
+
""
);
weekList
.
add
(
map
);
calendar
.
add
(
Calendar
.
DATE
,
1
);
start
=
calendar
.
getTime
();
do
{
startDate
=
start
;
calendar
.
add
(
Calendar
.
DATE
,
6
);
endDate
=
calendar
.
getTime
();
no
+=
1
;
map
=
new
HashMap
<>();
map
.
put
(
"startOfWeek"
,
sdf
.
format
(
startDate
));
map
.
put
(
"weekNo"
,
no
+
""
);
if
(
endDate
.
compareTo
(
end
)
<
0
)
{
map
.
put
(
"endOfWeek"
,
sdf
.
format
(
endDate
));
weekList
.
add
(
map
);
calendar
.
add
(
Calendar
.
DATE
,
1
);
start
=
calendar
.
getTime
();
}
else
{
map
.
put
(
"endOfWeek"
,
sdf
.
format
(
end
));
weekList
.
add
(
map
);
goOn
=
false
;
}
}
while
(
goOn
);
}
return
weekList
.
toString
();
}
/**
* 获取起止日期
*
* @param sdf 需要显示的日期格式
* @param date 需要参照的日期
* @param n 最近n周
* @param option 0 开始日期;1 结束日期
* @param k 0 包含本周 1 不包含本周
* @return
*/
public
static
String
getFromToDate
(
SimpleDateFormat
sdf
,
Date
date
,
int
n
,
int
option
,
int
k
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
int
dayOfWeek
=
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
)
-
1
;
int
offset
=
0
==
option
?
1
-
dayOfWeek
:
7
-
dayOfWeek
;
int
amount
=
0
==
option
?
offset
-
(
n
-
1
+
k
)
*
7
:
offset
-
k
*
7
;
calendar
.
add
(
Calendar
.
DATE
,
amount
);
return
sdf
.
format
(
calendar
.
getTime
());
}
/**
* 根据当前日期获得最近n周的日期区间(包含本周)
*
* @param n
* @param sdf
* @return
*/
public
static
String
getNWeekTimeInterval
(
int
n
,
String
format
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
// 设置日期格式
String
beginDate
=
getFromToDate
(
sdf
,
new
Date
(),
n
,
0
,
0
);
String
endDate
=
getFromToDate
(
sdf
,
new
Date
(),
n
,
1
,
0
);
return
beginDate
+
","
+
endDate
;
}
/**
* 根据当前日期获得最近n周的日期区间(不包含本周)
*
* @param n
* @param sdf
* @return
*/
public
static
String
getNWeekTimeIntervalTwo
(
int
n
,
String
format
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
// 设置日期格式
String
beginDate
=
getFromToDate
(
sdf
,
new
Date
(),
n
,
0
,
1
);
String
endDate
=
getFromToDate
(
sdf
,
new
Date
(),
n
,
1
,
1
);
return
beginDate
+
","
+
endDate
;
}
/**
* 根据当前日期获得本周的日期区间(本周周一和周日日期)
*
* @param sdf
* @return
*/
public
static
String
getThisWeekTimeInterval
(
String
format
)
{
return
getNWeekTimeInterval
(
1
,
format
);
}
/**
* 根据当前日期获得上周的日期区间(上周周一和周日日期)
*
* @param sdf
* @return
*/
public
static
String
getLastWeekTimeInterval
(
String
format
)
{
return
getNWeekTimeIntervalTwo
(
1
,
format
);
}
/**
* 获取某个日期最近一个的星期日
*
* @return
*/
public
static
Date
getLatestWeekend
(
Date
date
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
int
w
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
)
-
1
;
Date
endDate
=
TDateUtil
.
nextNumDay
(
date
,
w
*
-
1
);
return
endDate
;
}
/**
* 获取N周的星期一的日期(正加负减)
*
* @param date
* @return
*/
public
static
Date
getMinMonday
(
Date
date
,
int
weekNum
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
int
w
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
)
-
1
;
Date
endDate
=
TDateUtil
.
nextNumDay
(
date
,
w
*
-
1
);
Date
startDate
=
TDateUtil
.
nextNumDay
(
endDate
,
(
weekNum
*
7
)
+
1
);
return
startDate
;
}
/**
* 获取某个月加几个月后一号的日期
*/
@SuppressWarnings
(
"static-access"
)
public
static
Date
getAddMonThDay
(
Date
date
,
int
i
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
add
(
calendar
.
MONTH
,
i
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
String
last
=
format
.
format
(
calendar
.
getTime
());
date
=
getDate
(
last
,
"yyyy-MM-dd"
);
return
date
;
}
/**
* 某个月最后一天
*/
public
static
Date
getAnyMonthLastDay
(
Date
date
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
// 获取当前月最后一天
Calendar
ca
=
Calendar
.
getInstance
();
ca
.
setTime
(
date
);
ca
.
set
(
Calendar
.
DAY_OF_MONTH
,
ca
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
String
last
=
format
.
format
(
ca
.
getTime
());
date
=
getDate
(
last
,
"yyyy-MM-dd"
);
return
date
;
}
public
static
Date
getDate
(
Date
date
,
String
type
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
type
);
String
s
=
format
.
format
(
date
);
return
getDate
(
s
,
type
);
}
/**
* 获取去年今天的日期
*/
public
static
Date
getLastYearTodayDate
()
{
Calendar
instance
=
Calendar
.
getInstance
();
instance
.
add
(
Calendar
.
YEAR
,
-
1
);
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
s
=
format
.
format
(
instance
.
getTime
());
return
getDate
(
s
,
"yyyy-MM-dd"
);
}
/**
* 获取昨天的日期
*
* @param type
* @return
*/
public
static
String
getYesterdayDateByType
(
String
type
)
{
Calendar
instance
=
Calendar
.
getInstance
();
instance
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
1
);
Date
time
=
instance
.
getTime
();
SimpleDateFormat
format
=
new
SimpleDateFormat
(
type
);
return
format
.
format
(
time
);
}
/**
* 判断两个时间是不是在同一个月
*/
public
static
boolean
isSameMonth
(
Date
date1
,
Date
date2
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date1
);
int
month1
=
c
.
get
(
Calendar
.
MONTH
);
c
.
setTime
(
date2
);
int
month2
=
c
.
get
(
Calendar
.
MONTH
);
if
(
month1
==
month2
)
{
return
true
;
}
return
false
;
}
/**
* 间隔天数
*
* @param startTime
* @param endTime
* @return
*/
public
static
int
isolateDayNum
(
String
startTime
,
String
endTime
)
{
Date
startDate
=
getDate
(
startTime
,
"yyyy-MM-dd"
);
Date
endDate
=
getDate
(
endTime
,
"yyyy-MM-dd"
);
long
differentMillis
=
endDate
.
getTime
()
-
startDate
.
getTime
();
long
dayNum
=
differentMillis
/
(
1000
*
60
*
60
*
24
);
return
(
int
)
dayNum
;
}
/**
* 获取某月最后一天的时间
*
* @param yearMonth
* @return
*/
public
static
String
getLastDateTimeOfMonth
(
String
yearMonth
)
{
SimpleDateFormat
format0
=
new
SimpleDateFormat
(
"yyyy-MM"
);
SimpleDateFormat
format1
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Calendar
instance
=
Calendar
.
getInstance
();
try
{
Date
parse
=
format0
.
parse
(
yearMonth
);
instance
.
setTime
(
parse
);
instance
.
set
(
Calendar
.
DAY_OF_MONTH
,
instance
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
instance
.
set
(
Calendar
.
HOUR_OF_DAY
,
23
);
instance
.
set
(
Calendar
.
MINUTE
,
59
);
instance
.
set
(
Calendar
.
SECOND
,
59
);
String
format
=
format1
.
format
(
instance
.
getTime
());
return
format
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
Date
getStrToDate
(
String
str
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy年MM月dd日"
);
Date
date
=
null
;
try
{
if
(
str
==
null
)
{
date
=
null
;
}
else
{
date
=
dateFormat
.
parse
(
str
);
}
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
public
static
int
getStageByDate
(
Date
date
)
{
Calendar
instance
=
Calendar
.
getInstance
();
instance
.
setTime
(
date
);
//当前时间
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
String
format
=
dateFormat
.
format
(
date
);
try
{
Date
currentTime
=
dateFormat
.
parse
(
format
);
Date
parse1
=
dateFormat
.
parse
(
"05:00:00"
);
Date
parse2
=
dateFormat
.
parse
(
"11:00:00"
);
Date
parse3
=
dateFormat
.
parse
(
"17:00:00"
);
Date
parse4
=
dateFormat
.
parse
(
"00:00:00"
);
//A:05:00-11:00 | B:11:00-17:00 | C:00:00-05:00,17:00-00:00
if
(
currentTime
.
after
(
parse4
)
&&
currentTime
.
before
(
parse1
))
{
return
3
;
}
else
if
(
currentTime
.
after
(
parse1
)
&&
currentTime
.
before
(
parse2
))
{
return
1
;
}
else
if
(
currentTime
.
after
(
parse2
)
&&
currentTime
.
before
(
parse3
))
{
return
2
;
}
else
if
(
currentTime
.
after
(
parse3
)
&&
currentTime
.
after
(
parse4
))
{
return
4
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
0
;
}
public
static
String
getCurrentYear
()
{
Calendar
date
=
Calendar
.
getInstance
();
String
year
=
String
.
valueOf
(
date
.
get
(
Calendar
.
YEAR
));
return
year
;
}
}
src/main/resources/application-dev.yml
浏览文件 @
48a581d6
...
...
@@ -70,5 +70,5 @@ pms:
ims
:
url
:
https://test.iuav.shop/release/
scheduling
:
enabled
:
true
src/main/resources/mapper/data/OrderReportDao.xml
0 → 100644
浏览文件 @
48a581d6
<?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.data.OrderReportDao"
>
</mapper>
\ No newline at end of file
src/main/resources/mapper/lease/LeaseOrderDao.xml
0 → 100644
浏览文件 @
48a581d6
<?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.lease.LeaseOrderDao"
>
<insert
id=
"addOrder"
keyProperty=
"id"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.oms.entity.lease.LeaseOrderDO"
>
insert into lease_order (order_no,
status_code,
user_account_id,
lease_goods_id,
company_name,
third_back_user_account_id,
order_name,
sku_img,
order_total_amount,
salary_amount,
share_amount,
other_amount,
user_address_id,
pay_time,
user_remark,
unit_price,
ware_num,
deposit,
start_date,
share_cash_pledge,
salary_cash_pledge,
end_date,
sku)
values (#{orderNo}, #{statusCode}, #{userAccountId}, #{leaseGoodsId}, #{companyName}, #{thirdBackUserAccountId},
#{orderName}, #{skuImg}, #{orderTotalAmount}, #{salaryAmount}, #{shareAmount}, #{otherAmount},
#{userAddressId},
#{payTime}, #{userRemark}, #{unitPrice}, #{wareNum}, #{deposit}, #{startDate}, #{shareCashPledge},
#{salaryCashPledge}, #{endDate}, #{sku});
</insert>
<insert
id=
"addAddress"
keyProperty=
"id"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.oms.entity.lease.LeaseOrderExpressDO"
>
insert into lease_order_express(lease_order_id, send_exp_no, send_exp_code, take_name, take_phone, take_region,
take_address, create_time, return_exp_no, return_exp_code, return_time)
values (#{leaseOrderId}, #{sendExpNo}, #{sendExpCode}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress},
NOW(), #{returnExpNo}, #{returnExpCode}, #{returnTime})
</insert>
<insert
id=
"addLeaseRefundOrder"
parameterType=
"com.mmc.oms.entity.lease.LeaseRefundOrderDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into lease_refund_order(lease_order_id, status, file, reason, type, lease_order_express_id)
values (#{leaseOrderId}, #{status}, #{file}, #{reason}, #{type}, #{leaseOrderExpressId})
</insert>
<update
id=
"updateUavOrderStatus"
>
update lease_order
set status_code = #{code}
where id = #{id}
</update>
<update
id=
"updateLeaseOrderExpress"
>
update lease_order_express
<set>
<if
test=
"sendExpNo != null"
>
send_exp_no = #{sendExpNo},
</if>
<if
test=
"sendExpCode != null"
>
send_exp_code = #{sendExpCode},
</if>
<if
test=
"takeName != null"
>
take_name = #{takeName},
</if>
<if
test=
"takePhone != null"
>
take_phone = #{takePhone},
</if>
<if
test=
"takeRegion != null"
>
take_region = #{takeRegion},
</if>
<if
test=
"takeAddress != null"
>
take_address = #{takeAddress},
</if>
<if
test=
"sendTime != null"
>
send_time = #{sendTime},
</if>
<if
test=
"takeAddress != null"
>
take_address = #{takeAddress},
</if>
<if
test=
"receive != null"
>
is_receive = #{receive},
</if>
<if
test=
"receiveTime != null"
>
receive_time = #{receiveTime},
</if>
<if
test=
"takeAddress != null"
>
take_address = #{takeAddress},
</if>
<if
test=
"returnExpNo != null"
>
return_exp_no = #{returnExpNo},
</if>
<if
test=
"returnExpCode != null"
>
return_exp_code = #{returnExpCode},
</if>
<if
test=
"returnTime != null"
>
return_time = #{returnTime},
</if>
</set>
where
id = #{id}
</update>
<update
id=
"closeShowLeaseOrder"
>
update lease_order
set show_user_port = 0
where id = #{id}
</update>
<update
id=
"updateLeaseOrderProportion"
>
update lease_order
set proportion = #{proportion}
where id = #{id}
</update>
<sql
id=
"lease_order_column"
>
id
,order_no,status_code,user_account_id,lease_goods_id,company_name,third_back_user_account_id,
order_name,sku_img,sku,order_total_amount,salary_amount,share_amount,other_amount,pay_type,
user_address_id,user_remark,seller_remark,pay_time,confirm_receipt_time,version,remark_status,mode_of_delivery_Info,
proportion,show_user_port,create_time,update_time,unit_price,ware_num,deposit,start_date,end_date,shut_reason,send_ware_time
</sql>
<select
id=
"detail"
resultType=
"com.mmc.oms.entity.lease.LeaseOrderDO"
>
select
<include
refid=
"lease_order_column"
/>
from lease_order where id = #{id}
</select>
<sql
id=
"lease_order_express_column"
>
id
,lease_order_id,send_exp_no,send_exp_code,take_name,take_phone,take_region,take_address,send_time,is_receive
,receive_time,return_exp_no,return_exp_code,return_time,update_time,create_time
</sql>
<select
id=
"getLeaseOrderExpress"
resultType=
"com.mmc.oms.entity.lease.LeaseOrderExpressDO"
>
select
<include
refid=
"lease_order_express_column"
/>
from lease_order_express
where lease_order_id = #{id}
</select>
<select
id=
"countList"
resultType=
"java.lang.Integer"
>
select count(*) from lease_order lo
where 1 = 1
<if
test=
"keyword != null"
>
and order_no = #{keyword}
</if>
<if
test=
"userAccountId != null"
>
and user_account_id = #{userAccountId}
</if>
<if
test=
"statusCode != null"
>
and status_code = #{statusCode}
</if>
<if
test=
"thirdBackUserAccountId != null"
>
and third_back_user_account_id = #{thirdBackUserAccountId}
</if>
<if
test=
"startTime != null"
>
and create_time >= #{startTime}
</if>
<if
test=
"endTime != null"
>
and #{endTime} >= create_time
</if>
<if
test=
"showUserPort != null"
>
and show_user_port = #{showUserPort}
</if>
</select>
<select
id=
"list"
resultType=
"com.mmc.oms.entity.lease.LeaseOrderDO"
>
SELECT
<include
refid=
"lease_order_column"
/>
FROM
lease_order lo
WHERE
1 = 1
<if
test=
"keyword != null"
>
and lo.order_no = #{keyword}
</if>
<if
test=
"uid != null"
>
and lo.user_account_id = #{uid}
</if>
<if
test=
"userAccountId != null"
>
and lo.user_account_id = #{userAccountId}
</if>
<if
test=
"statusCode != null"
>
and lo.status_code = #{statusCode}
</if>
<if
test=
"thirdBackUserAccountId != null"
>
and lo.third_back_user_account_id = #{thirdBackUserAccountId}
</if>
<if
test=
"startTime != null"
>
and lo.create_time >= #{startTime}
</if>
<if
test=
"endTime != null"
>
and #{endTime} >= lo.create_time
</if>
<if
test=
"showUserPort != null"
>
and show_user_port = #{showUserPort}
</if>
order by lo.id desc
limit #{pageNo}, #{pageSize}
</select>
<sql
id=
"lease_refund_order_column"
>
id
,lease_order_express_id,lease_order_id,status,type,file,reason,create_time
</sql>
<select
id=
"getLeaseRefundOrder"
resultType=
"com.mmc.oms.entity.lease.LeaseRefundOrderDO"
>
select
<include
refid=
"lease_refund_order_column"
/>
from lease_refund_order
<where>
<foreach
collection=
"list"
item=
"item"
open=
"and lease_order_id in("
separator=
","
close=
")"
>
lease_order_id = #{item}
</foreach>
</where>
</select>
<select
id=
"detailByNo"
resultType=
"com.mmc.oms.entity.uav.UavOrderDO"
>
select
<include
refid=
"lease_order_column"
/>
from lease_order
where order_no = #{orderNo}
</select>
<select
id=
"statusList"
resultType=
"com.mmc.oms.entity.transtatus.TranStatusDicDO"
>
select t.id, t.`status`, t.doing, t.waiting
from tran_status_dic t
order by t.sort asc
</select>
<select
id=
"listLeaseOrderExpress"
resultType=
"com.mmc.oms.entity.lease.LeaseOrderExpressDO"
>
select
<include
refid=
"lease_order_express_column"
/>
from lease_order_express
<where>
<foreach
collection=
"list"
item=
"item"
open=
"and id in("
separator=
","
close=
")"
>
id = #{item}
</foreach>
</where>
</select>
</mapper>
\ No newline at end of file
src/main/resources/mapper/uav/UavCartDao.xml
浏览文件 @
48a581d6
...
...
@@ -79,4 +79,11 @@
group by third_back_user_account_id
limit #{begin}, #{pageSize}
</select>
<select
id=
"countMallGoodsSku"
resultType=
"com.mmc.oms.entity.uav.UavCartDO"
parameterType=
"com.mmc.oms.entity.uav.UavCartDO"
>
select
<include
refid=
"cart_column"
/>
from uav_cart
where third_back_user_account_id = #{thirdBackUserAccountId} and user_account_id = #{userAccountId} and is_deleted = 0
and mall_goods_id = #{mallGoodsId} and product_spec = #{productSpec}
</select>
</mapper>
\ No newline at end of file
src/main/resources/mapper/uav/UavOrderDao.xml
浏览文件 @
48a581d6
...
...
@@ -4,28 +4,28 @@
<resultMap
type=
"com.mmc.oms.entity.uav.UavOrderDO"
id=
"uavOrderResultMap"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"orderNo"
column=
"order_no"
/>
<result
property=
"statusCode"
column=
"status_code"
/>
<result
property=
"userAccountId"
column=
"user_account_id"
/>
<result
property=
"thirdBackUserAccountId"
column=
"third_back_user_account_id"
/>
<result
property=
"companyName"
column=
"company_name"
/>
<result
property=
"orderTotalAmount"
column=
"order_total_amount"
/>
<result
property=
"salaryAmount"
column=
"salary_amount"
/>
<result
property=
"shareAmount"
column=
"share_amount"
/>
<result
property=
"otherAmount"
column=
"other_amount"
/>
<result
property=
"payType"
column=
"pay_type"
/>
<result
property=
"orderType"
column=
"order_type"
/>
<result
property=
"deliveryTime"
column=
"delivery_time"
/>
<result
property=
"userAddressId"
column=
"user_address_id"
/>
<result
property=
"userRemark"
column=
"user_remark"
/>
<result
property=
"sellerRemark"
column=
"seller_remark"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"payTime"
column=
"pay_time"
/>
<result
property=
"confirmReceiptTime"
column=
"confirm_receipt_time"
/>
<result
property=
"version"
column=
"version"
/>
<result
property=
"remarkStatus"
column=
"remark_status"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<id
property=
"id"
column=
"id"
/>
<result
property=
"orderNo"
column=
"order_no"
/>
<result
property=
"statusCode"
column=
"status_code"
/>
<result
property=
"userAccountId"
column=
"user_account_id"
/>
<result
property=
"thirdBackUserAccountId"
column=
"third_back_user_account_id"
/>
<result
property=
"companyName"
column=
"company_name"
/>
<result
property=
"orderTotalAmount"
column=
"order_total_amount"
/>
<result
property=
"salaryAmount"
column=
"salary_amount"
/>
<result
property=
"shareAmount"
column=
"share_amount"
/>
<result
property=
"otherAmount"
column=
"other_amount"
/>
<result
property=
"payType"
column=
"pay_type"
/>
<result
property=
"orderType"
column=
"order_type"
/>
<result
property=
"deliveryTime"
column=
"delivery_time"
/>
<result
property=
"userAddressId"
column=
"user_address_id"
/>
<result
property=
"userRemark"
column=
"user_remark"
/>
<result
property=
"sellerRemark"
column=
"seller_remark"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"payTime"
column=
"pay_time"
/>
<result
property=
"confirmReceiptTime"
column=
"confirm_receipt_time"
/>
<result
property=
"version"
column=
"version"
/>
<result
property=
"remarkStatus"
column=
"remark_status"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<collection
property=
"skuDOS"
ofType=
"com.mmc.oms.entity.uav.UavOrderSkuDO"
select=
"listUavOrderSkuDO"
column=
"{uavOrderId=id}"
>
...
...
@@ -37,69 +37,96 @@
</resultMap>
<sql
id=
"uav_order_column"
>
id, order_no, status_code, user_account_id, third_back_user_account_id, company_name, order_total_amount, salary_amount,
id
, order_no, status_code, user_account_id, third_back_user_account_id, company_name, order_total_amount, salary_amount,
share_amount, other_amount, pay_type, order_type, delivery_time, user_address_id, user_remark, seller_remark, create_time,
pay_time, confirm_receipt_time, version, remark_status, update_time
</sql>
<sql
id=
"uav_order_pay_column"
>
id, uav_order_id, pay_type, pay_img_list, check_status, pay_remark, refuse_reason, create_time, check_time
id
, uav_order_id, pay_type, pay_img_list, check_status, pay_remark, refuse_reason, create_time, check_time
</sql>
<insert
id=
"addOrder"
parameterType=
"com.mmc.oms.entity.uav.UavOrderDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into uav_order(order_no, status_code, user_account_id, third_back_user_account_id, company_name, order_total_amount,
salary_amount, share_amount, other_amount, pay_type, order_type, user_address_id, user_remark, seller_remark, create_time
)
values( #{orderNo}, #{statusCode}, #{userAccountId}, #{thirdBackUserAccountId}, #{companyName}, #{orderTotalAmount},
#{salaryAmount}, #{shareAmount}, #{otherAmount}, #{payType}, #{orderType}, #{userAddressId}, #{userRemark}, #{sellerRemark},
NOW()
);
insert into uav_order(order_no, status_code, user_account_id, third_back_user_account_id, company_name,
order_total_amount,
salary_amount, share_amount, other_amount, pay_type, order_type, user_address_id,
user_remark, seller_remark, create_time)
values (#{orderNo}, #{statusCode}, #{userAccountId}, #{thirdBackUserAccountId}, #{companyName},
#{orderTotalAmount},
#{salaryAmount}, #{shareAmount}, #{otherAmount}, #{payType}, #{orderType}, #{userAddressId},
#{userRemark}, #{sellerRemark},
NOW());
</insert>
<insert
id=
"addOrderSku"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into uav_order_sku(
uav_order_id, mall_goods_id, trade_name, price_stock_id, product_spec, order_num, unit_price, sku_image, sku_no, create_time)
uav_order_id, mall_goods_id, trade_name, price_stock_id, product_spec, order_num, unit_price, sku_image, sku_no,
create_time)
values
<foreach
item=
"item"
collection=
"list"
separator=
","
>
(#{item.uavOrderId}, #{item.mallGoodsId}, #{item.tradeName}, #{item.priceStockId}, #{item.productSpec}, #{item.orderNum}, #{item.unitPrice}, #{item.skuImage}, #{item.skuNo}, NOW())
(#{item.uavOrderId}, #{item.mallGoodsId}, #{item.tradeName}, #{item.priceStockId}, #{item.productSpec},
#{item.orderNum}, #{item.unitPrice}, #{item.skuImage}, #{item.skuNo}, NOW())
</foreach>
</insert>
<insert
id=
"addOrderPay"
parameterType=
"com.mmc.oms.entity.uav.UavOrderPayDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into uav_order_pay(
uav_order_id,
order_no,
pay_type,
pay_amount,
pay_img_list,
check_status,
pay_remark,
refuse_reason,
create_time,
check_time
)
values(#{uavOrderId}, #{orderNo}, #{payType}, #{payAmount}, #{payImgList}, #{checkStatus}, #{payRemark},
#{refuseReason}, NOW(), #{checkTime})
<insert
id=
"addOrderPay"
parameterType=
"com.mmc.oms.entity.uav.UavOrderPayDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into uav_order_pay(
uav_order_id,
order_no,
pay_type,
pay_amount,
pay_img_list,
check_status,
pay_remark,
refuse_reason,
create_time,
check_time)
values (#{uavOrderId}, #{orderNo}, #{payType}, #{payAmount}, #{payImgList}, #{checkStatus}, #{payRemark},
#{refuseReason}, NOW(), #{checkTime})
</insert>
<insert
id=
"addRemarkOrder"
parameterType=
"com.mmc.oms.entity.uav.UavOrderRemarkDO"
>
insert into uav_order_remark (mall_goods_id, uav_order_id, remark_level, uav_images, content, create_time)
values (#{mallGoodsId}, #{uavOrderId}, #{remarkLevel}, #{uavImages}, #{content}, NOW())
<insert
id=
"addRemarkOrder"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into uav_order_remark (remark_type, mall_goods_id, uav_order_id, remark_level, uav_images, content, create_time)
values
<foreach
item=
"item"
collection=
"list"
separator=
","
>
(#{item.remarkType}, #{item.mallGoodsId}, #{item.uavOrderId}, #{item.remarkLevel}, #{item.uavImages}, #{item.content}, NOW())
</foreach>
</insert>
<insert
id=
"batchAddOrder"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into uav_order(order_no, status_code, user_account_id, third_back_user_account_id, company_name, order_total_amount,
salary_amount, share_amount, other_amount, pay_type, order_type, user_address_id, user_remark, seller_remark, create_time
)
values
<foreach
item=
"item"
collection=
"list"
separator=
","
>
(#{item.orderNo}, #{item.statusCode}, #{item.userAccountId}, #{item.thirdBackUserAccountId}, #{item.companyName}, #{item.orderTotalAmount},
#{item.salaryAmount}, #{item.shareAmount}, #{item.otherAmount}, #{item.payType}, #{item.orderType}, #{item.userAddressId}, #{item.userRemark}, #{item.sellerRemark}, NOW())
</foreach>
</insert>
<update
id=
"sellerRemark"
>
update uav_order set seller_remark = #{content} where id = #{id}
update uav_order
set seller_remark = #{content}
where id = #{id}
</update>
<update
id=
"updateUavOrderStatus"
>
update uav_order set status_code = #{nextCode} where id = #{id}
update uav_order
set status_code = #{nextCode}
where id = #{id}
</update>
<update
id=
"updateUavOrderPayInfo"
parameterType=
"com.mmc.oms.entity.uav.UavOrderDO"
>
update uav_order set pay_time = #{payTime}, pay_type = #{payType} where id = #{id}
update uav_order
set pay_time = #{payTime},
pay_type = #{payType}
where id = #{id}
</update>
<update
id=
"updateUavOrder"
parameterType=
"com.mmc.oms.entity.uav.UavOrderDO"
>
update uav_order
update uav_order
<set>
<if
test=
"orderTotalAmount != null"
>
order_total_amount = #{orderTotalAmount},
...
...
@@ -143,47 +170,57 @@
</update>
<update
id=
"updateUavOrderProportion"
>
update uav_order set proportion = #{proportion} where id = #{id}
update uav_order
set proportion = #{proportion}
where id = #{id}
</update>
<update
id=
"closeShowUavOrder"
>
update uav_order set show_user_port = 0 where id = #{id}
update uav_order
set show_user_port = 0
where id = #{id}
</update>
<update
id=
"updateUavOrderRemarkStatus"
>
update uav_order
set remark_status = 1
where id = #{id}
</update>
<select
id=
"detail"
resultType=
"com.mmc.oms.entity.uav.UavOrderDO"
>
select
<include
refid=
"uav_order_column"
/>
from uav_order where id = #{id}
select
<include
refid=
"uav_order_column"
/>
from uav_order where id = #{id}
</select>
<select
id=
"listUavOrderPay"
resultType=
"com.mmc.oms.entity.uav.UavOrderPayDO"
>
select
<include
refid=
"uav_order_pay_column"
/>
<include
refid=
"uav_order_pay_column"
/>
from uav_order_pay
where uav_order_id = #{uavOrderId} and pay_type = 2
</select>
<select
id=
"listUavOrderSkuDO"
resultType=
"com.mmc.oms.entity.uav.UavOrderSkuDO"
>
select
id,
uav_order_id,
mall_goods_id,
trade_name,
price_stock_id,
product_spec,
order_num,
unit_price,
sku_image,
sku_no,
create_time
select id,
uav_order_id,
mall_goods_id,
trade_name,
price_stock_id,
product_spec,
order_num,
unit_price,
sku_image,
sku_no,
create_time
from uav_order_sku
where uav_order_id = #{uavOrderId}
</select>
<select
id=
"statusList"
resultType=
"com.mmc.oms.entity.uav.UavOrderStatusDO"
>
select
id,
status,
code,
next_code
select id,
status,
code,
next_code
from uav_order_status
</select>
...
...
@@ -220,9 +257,10 @@
</select>
<select
id=
"list"
resultMap=
"uavOrderResultMap"
parameterType=
"com.mmc.oms.model.qo.uav.UavOrderQO"
>
SELECT
<include
refid=
"uav_order_column"
/>
SELECT
<include
refid=
"uav_order_column"
/>
FROM
uav_order uo
uav_order uo
where 1 = 1
<if
test=
"keyword != null"
>
and uo.order_no = #{keyword}
...
...
@@ -256,13 +294,32 @@
</select>
<select
id=
"detailByNo"
resultType=
"com.mmc.oms.entity.uav.UavOrderDO"
>
select
<include
refid=
"uav_order_column"
/>
from uav_order where order_no = #{orderNo}
select
<include
refid=
"uav_order_column"
/>
from uav_order where order_no = #{orderNo}
</select>
<select
id=
"getUavOrderPayById"
resultType=
"com.mmc.oms.entity.uav.UavOrderPayDO"
>
select
<include
refid=
"uav_order_pay_column"
/>
select
<include
refid=
"uav_order_pay_column"
/>
from uav_order_pay
where id = #{id} and pay_type = 2
</select>
<select
id=
"getOrderCount"
resultType=
"java.lang.Integer"
>
select count(*)
from uav_order
where status_code
<![CDATA[<>]]>
900
</select>
<select
id=
"getSaleOrderGMV"
resultType=
"java.math.BigDecimal"
>
SELECT sum(order_total_amount) AS GMV
FROM uav_order
WHERE status_code
<![CDATA[<>]]>
900
</select>
<select
id=
"listGoodsRemark"
resultType=
"com.mmc.oms.entity.uav.UavOrderRemarkDO"
>
select id, remark_type, mall_goods_id, uav_order_id, remark_level, uav_images, content, create_time
from uav_order_remark
where mall_goods_id = #{goodsId} and remark_type = #{remarkType}
order by id desc
</select>
</mapper>
src/main/resources/mapper/uav/UavOrderExpressDao.xml
浏览文件 @
48a581d6
...
...
@@ -13,6 +13,14 @@
values (#{uavOrderId}, #{sendExpNo}, #{sendExpCode}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress}, NOW())
</insert>
<insert
id=
"batchAddOrderExpress"
>
insert into uav_order_express(uav_order_id, send_exp_no, send_exp_code, take_name, take_phone, take_region, take_address, create_time)
values
<foreach
item=
"item"
collection=
"list"
separator=
","
>
(#{item.uavOrderId}, #{item.sendExpNo}, #{item.sendExpCode}, #{item.takeName}, #{item.takePhone}, #{item.takeRegion}, #{item.takeAddress}, NOW())
</foreach>
</insert>
<update
id=
"updateUavOrderExpressDO"
parameterType=
"com.mmc.oms.entity.uav.UavOrderExpressDO"
>
update uav_order_express
<set>
...
...
src/main/resources/mapper/uav/UavPayWxDao.xml
0 → 100644
浏览文件 @
48a581d6
<?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.uav.UavPayWxDao"
>
<sql
id=
"UAV_PAY_WX_COLUMN"
>
id, pay_no, amount, trade_state, create_time
</sql>
<sql
id=
"UAV_PAY_WX_SUB_COLUMN"
>
id, uav_pay_wx_id, uav_order_id, order_no, amount, create_time
</sql>
<insert
id=
"addUavPayWx"
parameterType=
"com.mmc.oms.entity.uav.UavPayWxDO"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into uav_pay_wx (pay_no, amount, trade_state, create_time)
values (#{payNo}, #{amount}, #{tradeState}, NOW())
</insert>
<insert
id=
"batchAddUavPayWxSub"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into uav_pay_wx_sub( uav_pay_wx_id, uav_order_id, order_no, amount, create_time)
values
<foreach
item=
"item"
collection=
"list"
separator=
","
>
(#{item.uavPayWxId}, #{item.uavOrderId}, #{item.orderNo}, #{item.amount}, NOW())
</foreach>
</insert>
<update
id=
"finishUavPayWx"
>
update uav_pay_wx set trade_state = #{tradeState} where pay_no = #{payNo}
</update>
<select
id=
"getUavPayWx"
resultType=
"com.mmc.oms.entity.uav.UavPayWxDO"
>
select
<include
refid=
"UAV_PAY_WX_COLUMN"
/>
from uav_pay_wx where pay_no = #{payNo}
</select>
<select
id=
"listUavPayWxSub"
resultType=
"com.mmc.oms.entity.uav.UavPayWxSubDO"
>
select
<include
refid=
"UAV_PAY_WX_SUB_COLUMN"
/>
from uav_pay_wx_sub where uav_pay_wx_id = #{uavPayWxId}
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论