Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
O
oms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
oms-ci-test
Commits
c7a6a354
提交
c7a6a354
authored
9月 22, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
租赁订单下单
上级
de8e5ad1
显示空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
1687 行增加
和
40 行删除
+1687
-40
CodeUtil.java
src/main/java/com/mmc/oms/common/util/CodeUtil.java
+13
-0
LeaseOrderController.java
...va/com/mmc/oms/controller/lease/LeaseOrderController.java
+39
-0
LeaseOrderDao.java
src/main/java/com/mmc/oms/dao/lease/LeaseOrderDao.java
+17
-0
LeaseOrderDO.java
src/main/java/com/mmc/oms/entity/lease/LeaseOrderDO.java
+163
-0
LeaseOrderExpressDO.java
...in/java/com/mmc/oms/entity/lease/LeaseOrderExpressDO.java
+70
-0
LeaseOrderStatus.java
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
+38
-0
LeaseTermInfo.java
src/main/java/com/mmc/oms/enums/LeaseTermInfo.java
+35
-0
PmsAppApi.java
src/main/java/com/mmc/oms/feign/PmsAppApi.java
+8
-1
PmsAppApiHystrix.java
...main/java/com/mmc/oms/feign/hystrix/PmsAppApiHystrix.java
+8
-2
LeaseOrderDTO.java
src/main/java/com/mmc/oms/model/dto/lease/LeaseOrderDTO.java
+95
-0
AddLeaseOrderVO.java
...main/java/com/mmc/oms/model/vo/lease/AddLeaseOrderVO.java
+60
-0
LeaseGoodsVO.java
src/main/java/com/mmc/oms/model/vo/lease/LeaseGoodsVO.java
+134
-0
LeasePriceStockVO.java
...in/java/com/mmc/oms/model/vo/lease/LeasePriceStockVO.java
+63
-0
LeaseOrderService.java
...ain/java/com/mmc/oms/service/lease/LeaseOrderService.java
+16
-0
LeaseOrderServiceImpl.java
...com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
+241
-0
UavOrderService.java
src/main/java/com/mmc/oms/service/uav/UavOrderService.java
+4
-4
UavOrderServiceImpl.java
...ava/com/mmc/oms/service/uav/impl/UavOrderServiceImpl.java
+34
-33
TDateUtil.java
src/main/java/com/mmc/oms/util/TDateUtil.java
+611
-0
LeaseOrderDao.xml
src/main/resources/mapper/lease/LeaseOrderDao.xml
+38
-0
没有找到文件。
src/main/java/com/mmc/oms/common/util/CodeUtil.java
浏览文件 @
c7a6a354
package
com
.
mmc
.
oms
.
common
.
util
;
package
com
.
mmc
.
oms
.
common
.
util
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Random
;
import
java.util.Random
;
import
java.util.concurrent.atomic.AtomicInteger
;
/**
/**
* @Author small
* @Author small
...
@@ -243,4 +246,14 @@ public class CodeUtil {
...
@@ -243,4 +246,14 @@ public class CodeUtil {
return
"AC"
+
CodeUtil
.
getRandomNum
(
5
);
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/lease/LeaseOrderController.java
0 → 100644
浏览文件 @
c7a6a354
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.vo.lease.AddLeaseOrderVO
;
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.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
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
));
}
}
src/main/java/com/mmc/oms/dao/lease/LeaseOrderDao.java
0 → 100644
浏览文件 @
c7a6a354
package
com
.
mmc
.
oms
.
dao
.
lease
;
import
com.mmc.oms.entity.lease.LeaseOrderDO
;
import
com.mmc.oms.entity.lease.LeaseOrderExpressDO
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author LW
* @date 2023/9/21 16:48
* 概要:
*/
@Mapper
public
interface
LeaseOrderDao
{
void
addOrder
(
LeaseOrderDO
leaseOrderDO
);
void
addAddress
(
LeaseOrderExpressDO
leaseOrderExpressDO
);
}
src/main/java/com/mmc/oms/entity/lease/LeaseOrderDO.java
0 → 100644
浏览文件 @
c7a6a354
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
;
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
).
sku
(
sku
).
skuImg
(
skuImg
).
build
();
}
}
src/main/java/com/mmc/oms/entity/lease/LeaseOrderExpressDO.java
0 → 100644
浏览文件 @
c7a6a354
package
com
.
mmc
.
oms
.
entity
.
lease
;
import
com.mmc.oms.entity.mall.UserAddressDO
;
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
Date
sendTime
;
/**
* 是否已签收
*/
private
Integer
isReceive
;
/**
* 收货人签收时间
*/
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
();
}
}
src/main/java/com/mmc/oms/enums/LeaseOrderStatus.java
0 → 100644
浏览文件 @
c7a6a354
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
,
"等待商家确认"
,
"等待商家确认"
),
COMPLETE_TRANSACTION
(
600
,
"交易完成"
,
"交易完成"
),
APPLY_REFUND
(
700
,
"申请退款"
,
"退款中"
),
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
浏览文件 @
c7a6a354
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/feign/PmsAppApi.java
浏览文件 @
c7a6a354
...
@@ -4,8 +4,12 @@ import com.mmc.oms.common.result.ResultBody;
...
@@ -4,8 +4,12 @@ import com.mmc.oms.common.result.ResultBody;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.feign.hystrix.PmsAppApiHystrix
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
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.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
;
import
java.util.List
;
...
@@ -20,4 +24,7 @@ public interface PmsAppApi {
...
@@ -20,4 +24,7 @@ public interface PmsAppApi {
@PostMapping
(
"app/goods/listPriceStock"
)
@PostMapping
(
"app/goods/listPriceStock"
)
List
<
UavCartDTO
>
listPriceStock
(
@RequestBody
List
<
PriceStockQO
>
priceStockQOS
);
List
<
UavCartDTO
>
listPriceStock
(
@RequestBody
List
<
PriceStockQO
>
priceStockQOS
);
@GetMapping
(
"app/lease/leaseGoodsDetails"
)
ResultBody
<
LeaseGoodsVO
>
leaseGoodsDetails
(
@RequestParam
Integer
id
);
}
}
src/main/java/com/mmc/oms/feign/hystrix/PmsAppApiHystrix.java
浏览文件 @
c7a6a354
...
@@ -5,8 +5,8 @@ import com.mmc.oms.common.result.ResultBody;
...
@@ -5,8 +5,8 @@ import com.mmc.oms.common.result.ResultBody;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.dto.uav.UavCartDTO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
com.mmc.oms.model.qo.uav.PriceStockQO
;
import
com.mmc.oms.model.vo.lease.LeaseGoodsVO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
import
java.util.List
;
...
@@ -18,7 +18,7 @@ import java.util.List;
...
@@ -18,7 +18,7 @@ import java.util.List;
public
class
PmsAppApiHystrix
implements
PmsAppApi
{
public
class
PmsAppApiHystrix
implements
PmsAppApi
{
@Override
@Override
public
ResultBody
feignLeaseGoodsInfoByAddressId
(
Integer
id
)
{
public
ResultBody
feignLeaseGoodsInfoByAddressId
(
Integer
id
)
{
log
.
info
(
"熔断:PmsAppApiHystrix.feignLeaseGoodsInfoByAddressId==error==>param:{}"
,
id
);
log
.
info
(
"熔断:PmsAppApiHystrix.feignLeaseGoodsInfoByAddressId==error==>param:{}"
,
id
);
return
null
;
return
null
;
}
}
...
@@ -27,4 +27,10 @@ public class PmsAppApiHystrix implements PmsAppApi {
...
@@ -27,4 +27,10 @@ public class PmsAppApiHystrix implements PmsAppApi {
log
.
info
(
"熔断:PmsAppApiHystrix.listPriceStock==error==>param:{}"
,
JSONObject
.
toJSONString
(
priceStockQOS
));
log
.
info
(
"熔断:PmsAppApiHystrix.listPriceStock==error==>param:{}"
,
JSONObject
.
toJSONString
(
priceStockQOS
));
return
null
;
return
null
;
}
}
@Override
public
ResultBody
<
LeaseGoodsVO
>
leaseGoodsDetails
(
Integer
id
)
{
log
.
info
(
"熔断:PmsAppApiHystrix.leaseGoodsDetails==error==>param:{}"
,
id
);
return
null
;
}
}
}
src/main/java/com/mmc/oms/model/dto/lease/LeaseOrderDTO.java
0 → 100644
浏览文件 @
c7a6a354
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
;
}
src/main/java/com/mmc/oms/model/vo/lease/AddLeaseOrderVO.java
0 → 100644
浏览文件 @
c7a6a354
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
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
浏览文件 @
c7a6a354
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/LeasePriceStockVO.java
0 → 100644
浏览文件 @
c7a6a354
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/service/lease/LeaseOrderService.java
0 → 100644
浏览文件 @
c7a6a354
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.vo.lease.AddLeaseOrderVO
;
/**
* @Author LW
* @date 2023/9/21 16:38
* 概要:
*/
public
interface
LeaseOrderService
{
ResultBody
<
LeaseOrderDTO
>
addLeaseOrder
(
AddLeaseOrderVO
param
,
BaseAccountDTO
currentAccount
);
}
src/main/java/com/mmc/oms/service/lease/impl/LeaseOrderServiceImpl.java
0 → 100644
浏览文件 @
c7a6a354
package
com
.
mmc
.
oms
.
service
.
lease
.
impl
;
import
com.mmc.oms.common.ResultEnum
;
import
com.mmc.oms.common.result.ResultBody
;
import
com.mmc.oms.common.util.CodeUtil
;
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.mall.UserAddressDO
;
import
com.mmc.oms.enums.LeaseOrderStatus
;
import
com.mmc.oms.enums.LeaseTermInfo
;
import
com.mmc.oms.feign.PmsAppApi
;
import
com.mmc.oms.feign.UserAppApi
;
import
com.mmc.oms.model.dto.lease.LeaseOrderDTO
;
import
com.mmc.oms.model.dto.uav.PayWalletDTO
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.vo.lease.AddLeaseOrderVO
;
import
com.mmc.oms.model.vo.lease.LeaseGoodsVO
;
import
com.mmc.oms.model.vo.lease.LeasePriceStockVO
;
import
com.mmc.oms.model.vo.uav.GoodsResourcesVO
;
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.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @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
;
@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
=
null
;
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
shareAmount
=
BigDecimal
.
ZERO
;
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
Integer
statusCode
=
null
;
// 获取用户钱包信息
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
(
otherAmount
.
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
// 抵扣云享金小于等于订单总额时,直接使用云享金
shareAmount
=
payWalletDTO
.
getCashAmt
();
}
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
())
>=
0
)
{
// 抵扣余额小于等于订单总额时,直接使用余额
salaryAmount
=
payWalletDTO
.
getSalaryAmt
();
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
salaryAmount
=
otherAmount
;
}
}
otherAmount
=
otherAmount
.
subtract
(
salaryAmount
);
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
LeaseOrderStatus
.
PAID
.
getCode
();
}
}
// 抵扣余额
uavOrderService
.
deductWallet
(
shareAmount
,
salaryAmount
,
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
());
if
(
priceStock
.
getSkuImage
()
!=
null
)
{
leaseOrderDO
.
setSkuImg
(
priceStock
.
getSkuImage
());
}
else
{
leaseOrderDO
.
setSkuImg
(
url
);
}
leaseOrderDO
.
setSalaryAmount
(
salaryAmount
);
leaseOrderDO
.
setSku
(
param
.
getSku
());
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
();
}
}
}
src/main/java/com/mmc/oms/service/uav/UavOrderService.java
浏览文件 @
c7a6a354
package
com
.
mmc
.
oms
.
service
.
uav
;
package
com
.
mmc
.
oms
.
service
.
uav
;
import
com.mmc.oms.common.result.ResultBody
;
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.user.BaseAccountDTO
;
import
com.mmc.oms.model.dto.user.BaseAccountDTO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.qo.uav.UavOrderQO
;
import
com.mmc.oms.model.vo.uav.*
;
import
com.mmc.oms.model.vo.uav.*
;
import
com.mmc.oms.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.oms.model.vo.wallet.TopUpOrderVO
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.
util.List
;
import
java.
math.BigDecimal
;
/**
/**
* @author: zj
* @author: zj
...
@@ -54,4 +51,7 @@ public interface UavOrderService {
...
@@ -54,4 +51,7 @@ public interface UavOrderService {
ResultBody
removeUavOrder
(
Integer
id
);
ResultBody
removeUavOrder
(
Integer
id
);
ResultBody
addOrderByCart
(
AddUavOrderByCartQO
orderByCartQO
,
BaseAccountDTO
currentAccount
);
ResultBody
addOrderByCart
(
AddUavOrderByCartQO
orderByCartQO
,
BaseAccountDTO
currentAccount
);
ResultBody
deductWallet
(
BigDecimal
allShareAmount
,
BigDecimal
allSalaryAmount
,
BaseAccountDTO
currentAccount
);
}
}
src/main/java/com/mmc/oms/service/uav/impl/UavOrderServiceImpl.java
浏览文件 @
c7a6a354
...
@@ -86,14 +86,14 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -86,14 +86,14 @@ public class UavOrderServiceImpl implements UavOrderService {
@Transactional
@Transactional
public
ResultBody
addOrder
(
AddUavOrderVO
param
,
BaseAccountDTO
currentAccount
)
{
public
ResultBody
addOrder
(
AddUavOrderVO
param
,
BaseAccountDTO
currentAccount
)
{
log
.
info
(
"user:{},addOrder param:{}"
,
currentAccount
.
getUserAccountId
(),
param
);
log
.
info
(
"user:{},addOrder param:{}"
,
currentAccount
.
getUserAccountId
(),
param
);
if
(
CollectionUtils
.
isEmpty
(
param
.
getSkuVOS
())){
if
(
CollectionUtils
.
isEmpty
(
param
.
getSkuVOS
()))
{
return
ResultBody
.
error
(
"至少选择一个规格!"
);
return
ResultBody
.
error
(
"至少选择一个规格!"
);
}
}
MallGoodsVO
mallGoodsVO
=
null
;
MallGoodsVO
mallGoodsVO
=
null
;
try
{
try
{
mallGoodsVO
=
pmsClient
.
mallGoodsDetails
(
param
.
getMallGoodsId
());
mallGoodsVO
=
pmsClient
.
mallGoodsDetails
(
param
.
getMallGoodsId
());
// 检验商品是否在卖
// 检验商品是否在卖
if
(
mallGoodsVO
==
null
||
!
mallGoodsVO
.
getShelfStatus
().
equals
(
1
)){
if
(
mallGoodsVO
==
null
||
!
mallGoodsVO
.
getShelfStatus
().
equals
(
1
))
{
return
ResultBody
.
error
(
"商品已下架"
);
return
ResultBody
.
error
(
"商品已下架"
);
}
}
// 找到对应的规格
// 找到对应的规格
...
@@ -107,11 +107,11 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -107,11 +107,11 @@ public class UavOrderServiceImpl implements UavOrderService {
break
;
break
;
}
}
}
}
if
(!
flag
){
if
(!
flag
)
{
return
ResultBody
.
error
(
"选择规格不存在"
);
return
ResultBody
.
error
(
"选择规格不存在"
);
}
}
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
@@ -129,31 +129,31 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -129,31 +129,31 @@ public class UavOrderServiceImpl implements UavOrderService {
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
BigDecimal
salaryAmount
=
BigDecimal
.
ZERO
;
Integer
statusCode
=
null
;
Integer
statusCode
=
null
;
// 正常订单可以抵扣云享金和余额、意向订单不能扣
// 正常订单可以抵扣云享金和余额、意向订单不能扣
if
(
param
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
())){
if
(
param
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
()))
{
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getCurrentUserPayWalletInfo
(
currentAccount
.
getToken
());
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
;
return
payResInfo
;
}
}
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
if
(
param
.
getDeductShareAmount
().
equals
(
1
)){
if
(
param
.
getDeductShareAmount
().
equals
(
1
))
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
// 抵扣云享金小于等于订单总额时,直接使用云享金
// 抵扣云享金小于等于订单总额时,直接使用云享金
shareAmount
=
payWalletDTO
.
getCashAmt
();
shareAmount
=
payWalletDTO
.
getCashAmt
();
}
else
{
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
// 余额超过订单金额时,订单总额使用余额支付
shareAmount
=
otherAmount
;
shareAmount
=
otherAmount
;
}
}
}
}
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
// 支付完成
// 支付完成
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
}
else
{
}
else
{
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
)){
if
(
param
.
getDeductSalaryAmount
().
equals
(
1
))
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>=
0
)
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>=
0
)
{
// 抵扣余额小于等于订单总额时,直接使用余额
// 抵扣余额小于等于订单总额时,直接使用余额
salaryAmount
=
payWalletDTO
.
getSalaryAmt
();
salaryAmount
=
payWalletDTO
.
getSalaryAmt
();
}
else
{
}
else
{
// 余额超过订单金额时,订单总额使用余额支付
// 余额超过订单金额时,订单总额使用余额支付
salaryAmount
=
otherAmount
;
salaryAmount
=
otherAmount
;
}
}
...
@@ -171,9 +171,9 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -171,9 +171,9 @@ public class UavOrderServiceImpl implements UavOrderService {
uavOrderDO
.
setOrderNo
(
orderNo
);
uavOrderDO
.
setOrderNo
(
orderNo
);
uavOrderDO
.
setOrderTotalAmount
(
orderTotalAmount
);
uavOrderDO
.
setOrderTotalAmount
(
orderTotalAmount
);
uavOrderDO
.
setOrderType
(
param
.
getOrderType
());
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
);
uavOrderDO
.
setStatusCode
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
?
UavOrderStatus
.
PAYING
.
getCode
()
:
statusCode
);
}
else
{
}
else
{
uavOrderDO
.
setStatusCode
(
UavOrderStatus
.
CONFIRM
.
getCode
());
uavOrderDO
.
setStatusCode
(
UavOrderStatus
.
CONFIRM
.
getCode
());
}
}
uavOrderDO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
uavOrderDO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
...
@@ -224,7 +224,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -224,7 +224,7 @@ public class UavOrderServiceImpl implements UavOrderService {
List
<
UavOrderPayDTO
>
collect
=
payDOS
.
stream
().
map
(
UavOrderPayDO:
:
buildUavOrderPayDTO
).
collect
(
Collectors
.
toList
());
List
<
UavOrderPayDTO
>
collect
=
payDOS
.
stream
().
map
(
UavOrderPayDO:
:
buildUavOrderPayDTO
).
collect
(
Collectors
.
toList
());
uavOrderDTO
.
setPayDTOList
(
collect
);
uavOrderDTO
.
setPayDTOList
(
collect
);
}
}
List
<
UavOrderSkuDO
>
skuDOS
=
uavOrderDao
.
listUavOrderSkuDO
(
id
);
List
<
UavOrderSkuDO
>
skuDOS
=
uavOrderDao
.
listUavOrderSkuDO
(
id
);
if
(
CollectionUtils
.
isNotEmpty
(
skuDOS
))
{
if
(
CollectionUtils
.
isNotEmpty
(
skuDOS
))
{
List
<
UavOrderSkuDTO
>
uavOrderSkuDTOS
=
skuDOS
.
stream
().
map
(
UavOrderSkuDO:
:
buildUavOrderSkuDTO
).
collect
(
Collectors
.
toList
());
List
<
UavOrderSkuDTO
>
uavOrderSkuDTOS
=
skuDOS
.
stream
().
map
(
UavOrderSkuDO:
:
buildUavOrderSkuDTO
).
collect
(
Collectors
.
toList
());
uavOrderDTO
.
setSkuDTOList
(
uavOrderSkuDTOS
);
uavOrderDTO
.
setSkuDTOList
(
uavOrderSkuDTOS
);
...
@@ -282,7 +282,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -282,7 +282,7 @@ public class UavOrderServiceImpl implements UavOrderService {
payUavWalletVO
.
setOrderStatus
(
1400
);
payUavWalletVO
.
setOrderStatus
(
1400
);
payUavWalletVO
.
setUserAccountId
(
uavOrderDO
.
getUserAccountId
());
payUavWalletVO
.
setUserAccountId
(
uavOrderDO
.
getUserAccountId
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
token
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
token
);
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())){
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
return
resultBody
;
}
}
}
}
...
@@ -306,7 +306,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -306,7 +306,7 @@ public class UavOrderServiceImpl implements UavOrderService {
@Override
@Override
public
ResultBody
list
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
)
{
public
ResultBody
list
(
UavOrderQO
uavOrderQO
,
BaseAccountDTO
currentAccount
)
{
if
(!
currentAccount
.
getRoleInfo
().
getSuperAdmin
().
equals
(
1
)){
if
(!
currentAccount
.
getRoleInfo
().
getSuperAdmin
().
equals
(
1
))
{
uavOrderQO
.
setThirdBackUserAccountId
(
currentAccount
.
getUserAccountId
());
uavOrderQO
.
setThirdBackUserAccountId
(
currentAccount
.
getUserAccountId
());
uavOrderQO
.
setOrderType
(
UavOrderType
.
PAY
.
getCode
());
uavOrderQO
.
setOrderType
(
UavOrderType
.
PAY
.
getCode
());
}
}
...
@@ -461,7 +461,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -461,7 +461,7 @@ public class UavOrderServiceImpl implements UavOrderService {
}
}
@Transactional
@Transactional
public
void
updateUavOrderStatus
(
Integer
id
,
UavOrderStatus
uavOrderStatus
){
public
void
updateUavOrderStatus
(
Integer
id
,
UavOrderStatus
uavOrderStatus
)
{
uavOrderDao
.
updateUavOrderStatus
(
id
,
uavOrderStatus
.
getNextCode
());
uavOrderDao
.
updateUavOrderStatus
(
id
,
uavOrderStatus
.
getNextCode
());
}
}
...
@@ -502,7 +502,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -502,7 +502,7 @@ public class UavOrderServiceImpl implements UavOrderService {
UavOrderPayDO
beforeUavOrderPayDO
=
uavOrderDao
.
getUavOrderPayById
(
uavOrderPayVO
.
getId
());
UavOrderPayDO
beforeUavOrderPayDO
=
uavOrderDao
.
getUavOrderPayById
(
uavOrderPayVO
.
getId
());
// 一个订单可能会多次上传付款凭证,因此单独审核
// 一个订单可能会多次上传付款凭证,因此单独审核
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detail
(
beforeUavOrderPayDO
.
getUavOrderId
());
UavOrderDO
uavOrderDO
=
uavOrderDao
.
detail
(
beforeUavOrderPayDO
.
getUavOrderId
());
if
(
uavOrderPayVO
.
getCheckStatus
().
equals
(
1
)){
if
(
uavOrderPayVO
.
getCheckStatus
().
equals
(
1
))
{
// 第一次审核通过,则要把订单状态改为待发货;意向订单还要生成采购订单
// 第一次审核通过,则要把订单状态改为待发货;意向订单还要生成采购订单
if
(
uavOrderDO
.
getStatusCode
().
equals
(
UavOrderStatus
.
FINISH_PAYING
.
getCode
()))
{
if
(
uavOrderDO
.
getStatusCode
().
equals
(
UavOrderStatus
.
FINISH_PAYING
.
getCode
()))
{
this
.
updateUavOrderStatus
(
beforeUavOrderPayDO
.
getUavOrderId
(),
UavOrderStatus
.
FINISH_PAYING
);
this
.
updateUavOrderStatus
(
beforeUavOrderPayDO
.
getUavOrderId
(),
UavOrderStatus
.
FINISH_PAYING
);
...
@@ -516,7 +516,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -516,7 +516,7 @@ public class UavOrderServiceImpl implements UavOrderService {
uavPurchaseOrderDO
.
setStatusCode
(
UavOrderStatus
.
CONFIRM
.
getCode
());
uavPurchaseOrderDO
.
setStatusCode
(
UavOrderStatus
.
CONFIRM
.
getCode
());
uavPODao
.
addPurchaseOrder
(
uavPurchaseOrderDO
);
uavPODao
.
addPurchaseOrder
(
uavPurchaseOrderDO
);
}
}
}
else
{
}
else
{
if
(
uavOrderDO
.
getStatusCode
().
equals
(
UavOrderStatus
.
FINISH_PAYING
.
getCode
()))
{
if
(
uavOrderDO
.
getStatusCode
().
equals
(
UavOrderStatus
.
FINISH_PAYING
.
getCode
()))
{
// 第一次未通过,需要走回上一步
// 第一次未通过,需要走回上一步
this
.
updateUavOrderStatus
(
beforeUavOrderPayDO
.
getUavOrderId
(),
UavOrderStatus
.
SIGN
);
this
.
updateUavOrderStatus
(
beforeUavOrderPayDO
.
getUavOrderId
(),
UavOrderStatus
.
SIGN
);
...
@@ -569,7 +569,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -569,7 +569,7 @@ public class UavOrderServiceImpl implements UavOrderService {
if
(
uavOrderDO
.
getOrderType
().
equals
(
UavOrderType
.
SIGN
.
getCode
()))
{
if
(
uavOrderDO
.
getOrderType
().
equals
(
UavOrderType
.
SIGN
.
getCode
()))
{
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getPayWalletInfo
(
uavOrderDO
.
getUserAccountId
(),
currentAccount
.
getToken
());
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getPayWalletInfo
(
uavOrderDO
.
getUserAccountId
(),
currentAccount
.
getToken
());
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payWalletDTO
==
null
){
if
(!
payResInfo
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())
||
payWalletDTO
==
null
)
{
return
payResInfo
;
return
payResInfo
;
}
}
// 要扣除的云享金
// 要扣除的云享金
...
@@ -581,11 +581,11 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -581,11 +581,11 @@ public class UavOrderServiceImpl implements UavOrderService {
// 根据订单总额确认扣除多少云享金
// 根据订单总额确认扣除多少云享金
if
(
uavOrderVO
.
getOrderTotalAmount
().
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
if
(
uavOrderVO
.
getOrderTotalAmount
().
compareTo
(
payWalletDTO
.
getCashAmt
())
>=
0
)
{
shareAmount
=
payWalletDTO
.
getCashAmt
();
shareAmount
=
payWalletDTO
.
getCashAmt
();
}
else
{
}
else
{
shareAmount
=
uavOrderVO
.
getOrderTotalAmount
();
shareAmount
=
uavOrderVO
.
getOrderTotalAmount
();
}
}
// 抵扣
// 抵扣
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
shareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setUserAccountId
(
uavOrderDO
.
getUserAccountId
());
payUavWalletVO
.
setUserAccountId
(
uavOrderDO
.
getUserAccountId
());
payUavWalletVO
.
setCashAmount
(
shareAmount
);
payUavWalletVO
.
setCashAmount
(
shareAmount
);
...
@@ -594,7 +594,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -594,7 +594,7 @@ public class UavOrderServiceImpl implements UavOrderService {
payUavWalletVO
.
setOrderStatus
(
100
);
payUavWalletVO
.
setOrderStatus
(
100
);
payUavWalletVO
.
setRemark
(
"商城确认订单抵扣"
);
payUavWalletVO
.
setRemark
(
"商城确认订单抵扣"
);
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())){
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
return
resultBody
;
return
resultBody
;
}
}
}
}
...
@@ -660,16 +660,16 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -660,16 +660,16 @@ public class UavOrderServiceImpl implements UavOrderService {
return
ResultBody
.
error
(
"意向订单仅限下单个商家的商品"
);
return
ResultBody
.
error
(
"意向订单仅限下单个商家的商品"
);
}
}
// 正常订单可以抵扣云享金和余额、意向订单不能扣
// 正常订单可以抵扣云享金和余额、意向订单不能扣
if
(
orderByCartQO
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
())){
if
(
orderByCartQO
.
getOrderType
().
equals
(
UavOrderType
.
PAY
.
getCode
()))
{
}
else
{
}
else
{
}
}
// 购物车id
// 购物车id
List
<
Integer
>
cartIds
=
new
ArrayList
<>();
List
<
Integer
>
cartIds
=
new
ArrayList
<>();
// 云享金、余额扣除相关
// 云享金、余额扣除相关
ResultBody
<
PayWalletDTO
>
payResInfo
=
userAppApi
.
getCurrentUserPayWalletInfo
(
currentAccount
.
getToken
());
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
;
return
payResInfo
;
}
}
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
PayWalletDTO
payWalletDTO
=
payResInfo
.
getResult
();
...
@@ -705,7 +705,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -705,7 +705,7 @@ public class UavOrderServiceImpl implements UavOrderService {
if
(
companyDTO
.
getDeductShareAmount
().
equals
(
1
)
&&
payWalletDTO
.
getCashAmt
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
companyDTO
.
getDeductShareAmount
().
equals
(
1
)
&&
payWalletDTO
.
getCashAmt
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
payWalletDTO
.
getCashAmt
().
compareTo
(
otherAmount
)
>
0
)
{
if
(
payWalletDTO
.
getCashAmt
().
compareTo
(
otherAmount
)
>
0
)
{
shareAmount
=
shareAmount
.
add
(
otherAmount
);
shareAmount
=
shareAmount
.
add
(
otherAmount
);
}
else
{
}
else
{
shareAmount
=
shareAmount
.
add
(
payWalletDTO
.
getCashAmt
());
shareAmount
=
shareAmount
.
add
(
payWalletDTO
.
getCashAmt
());
}
}
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
otherAmount
=
otherAmount
.
subtract
(
shareAmount
);
...
@@ -717,7 +717,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -717,7 +717,7 @@ public class UavOrderServiceImpl implements UavOrderService {
&&
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
&&
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>
0
)
{
if
(
otherAmount
.
compareTo
(
payWalletDTO
.
getSalaryAmt
())
>
0
)
{
salaryAmount
=
salaryAmount
.
add
(
payWalletDTO
.
getSalaryAmt
());
salaryAmount
=
salaryAmount
.
add
(
payWalletDTO
.
getSalaryAmt
());
}
else
{
}
else
{
salaryAmount
=
salaryAmount
.
add
(
otherAmount
);
salaryAmount
=
salaryAmount
.
add
(
otherAmount
);
}
}
otherAmount
=
otherAmount
.
subtract
(
salaryAmount
);
otherAmount
=
otherAmount
.
subtract
(
salaryAmount
);
...
@@ -726,7 +726,7 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -726,7 +726,7 @@ public class UavOrderServiceImpl implements UavOrderService {
}
}
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
if
(
otherAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
statusCode
=
UavOrderStatus
.
WAITING_DELIVER_GOODS
.
getCode
();
}
else
{
}
else
{
statusCode
=
UavOrderStatus
.
PAYING
.
getCode
();
statusCode
=
UavOrderStatus
.
PAYING
.
getCode
();
}
}
// 设置订单状态
// 设置订单状态
...
@@ -775,7 +775,8 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -775,7 +775,8 @@ public class UavOrderServiceImpl implements UavOrderService {
return
ResultBody
.
success
();
return
ResultBody
.
success
();
}
}
public
ResultBody
deductWallet
(
BigDecimal
allShareAmount
,
BigDecimal
allSalaryAmount
,
BaseAccountDTO
currentAccount
){
@Override
public
ResultBody
deductWallet
(
BigDecimal
allShareAmount
,
BigDecimal
allSalaryAmount
,
BaseAccountDTO
currentAccount
)
{
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
PayUavWalletVO
payUavWalletVO
=
new
PayUavWalletVO
();
payUavWalletVO
.
setCashAmount
(
allShareAmount
);
payUavWalletVO
.
setCashAmount
(
allShareAmount
);
payUavWalletVO
.
setSalaryAmount
(
allSalaryAmount
);
payUavWalletVO
.
setSalaryAmount
(
allSalaryAmount
);
...
@@ -783,8 +784,8 @@ public class UavOrderServiceImpl implements UavOrderService {
...
@@ -783,8 +784,8 @@ public class UavOrderServiceImpl implements UavOrderService {
payUavWalletVO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
payUavWalletVO
.
setUserAccountId
(
currentAccount
.
getUserAccountId
());
if
(
allShareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
allSalaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
allShareAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
||
allSalaryAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
ResultBody
resultBody
=
userAppApi
.
feignPayUavWallet
(
payUavWalletVO
,
currentAccount
.
getToken
());
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
())){
if
(!
resultBody
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getResultCode
()))
{
throw
new
RuntimeException
(
"余额抵扣失败!"
);
ResultBody
.
error
(
"余额抵扣失败!"
);
}
}
}
}
return
ResultBody
.
success
();
return
ResultBody
.
success
();
...
...
src/main/java/com/mmc/oms/util/TDateUtil.java
0 → 100644
浏览文件 @
c7a6a354
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/mapper/lease/LeaseOrderDao.xml
0 → 100644
浏览文件 @
c7a6a354
<?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,
end_date)
values (#{orderNo}, #{statusCode}, #{userAccountId}, #{leaseGoodsId}, #{companyName}, #{thirdBackUserAccountId},
#{orderName}, #{skuImg}, #{orderTotalAmount}, #{salaryAmount}, #{shareAmount}, #{otherAmount},
#{userAddressId},
#{payTime}, #{userRemark}, #{unitPrice}, #{wareNum}, #{deposit}, #{startDate}, #{endDate});
</insert>
<insert
id=
"addAddress"
>
insert into lease_order_express(lease_order_id, send_exp_no, send_exp_code, take_name, take_phone, take_region,
take_address, create_time)
values (#{leaseOrderId}, #{sendExpNo}, #{sendExpCode}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress},
NOW())
</insert>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论