8.13优化
This commit is contained in:
@ -92,7 +92,7 @@ public interface ErrorCodeConstants {
|
||||
|
||||
ErrorCode DIVIDE_NOT_EXISTS = new ErrorCode(1_007_902_001, "分账单不存在");
|
||||
ErrorCode ORDER_NOT_COMPLETE = new ErrorCode(1_007_902_002, "还有订单尚未结算");
|
||||
ErrorCode WX_ACCOUNT_NO = new ErrorCode(1_007_902_002, "微信充值金额已用完");
|
||||
ErrorCode WX_ACCOUNT_NO = new ErrorCode(1_007_902_002, "微信充值金额不足");
|
||||
|
||||
|
||||
ErrorCode DIVIDE_COMPANY_NOT_EXISTS = new ErrorCode(1_007_903_001, "分账公司不存在");
|
||||
|
@ -10,7 +10,7 @@ public class DrawMoneyVO {
|
||||
@Schema(description = "用户编号")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "总金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "30938")
|
||||
@Schema(description = "总金额,单位:分")
|
||||
//@NotNull(message = "总金额,单位:分不能为空")
|
||||
private Integer totalPrice;
|
||||
/**
|
||||
|
@ -31,9 +31,12 @@ public interface DivideMapper extends BaseMapperX<DivideDO> {
|
||||
.orderByDesc(DivideDO::getId));
|
||||
}
|
||||
|
||||
@Select("select sum(total_money) from member_dish_order where DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)")
|
||||
@Select("select sum(wx_amount) from member_dish_order where DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)")
|
||||
BigDecimal getToday();
|
||||
|
||||
@Select("select money from member_refund_log where DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)")
|
||||
BigDecimal getRefund();
|
||||
|
||||
@Select("select wx_amount from member_card where user_id = #{userId} order by create_time desc limit 1")
|
||||
BigDecimal getWxAmount(Long userId);
|
||||
|
||||
|
@ -172,16 +172,24 @@ public class DivideServiceImpl implements DivideService {
|
||||
public int startDivide() {
|
||||
|
||||
BigDecimal today = divideMapper.getToday();
|
||||
|
||||
if (today == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//转换单位 元-->分
|
||||
int money = today.multiply(new BigDecimal("100")).intValue();
|
||||
|
||||
//去除当天退款
|
||||
BigDecimal refundToday = divideMapper.getRefund();
|
||||
if (refundToday == null) {
|
||||
refundToday = BigDecimal.ZERO;
|
||||
}
|
||||
int refund = refundToday.multiply(new BigDecimal("100")).intValue();
|
||||
money = money-refund;
|
||||
|
||||
//查询29天内的充值订单,原因:微信30天自动解冻,订单将不能分账
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime thirtyDaysAgo = now.minusDays(30);
|
||||
|
||||
|
||||
LocalDateTime thirtyDaysAgo = now.minusDays(29);
|
||||
List<DivideDO> divideDOS = divideMapper.selectList(Wrappers.<DivideDO>lambdaQuery()
|
||||
.eq(DivideDO::getStatus, PayDivideStatusRespEnum.WAITING.getStatus())
|
||||
.eq(DivideDO::getUnfreezeStatus,"0")
|
||||
@ -374,10 +382,19 @@ public class DivideServiceImpl implements DivideService {
|
||||
throw new ServiceException(WX_ACCOUNT_NO);
|
||||
}
|
||||
|
||||
//判断是否有金额可退款
|
||||
|
||||
int money = wxAmount.multiply(new BigDecimal("100")).intValue();
|
||||
if (money <= 0) {
|
||||
if (money <= 0 ) {
|
||||
throw new ServiceException(WX_ACCOUNT_NO);
|
||||
}
|
||||
//指定金额
|
||||
if(drawMoneyVO.getTotalPrice()!=null){
|
||||
if (money < drawMoneyVO.getTotalPrice() ) {
|
||||
throw new ServiceException(WX_ACCOUNT_NO);
|
||||
}
|
||||
money = drawMoneyVO.getTotalPrice();
|
||||
}
|
||||
LocalDateTime now = LocalDateTime.now(); // 获取当前时间
|
||||
LocalDateTime threeYearsAgo = now.minusDays(365);
|
||||
|
||||
@ -712,6 +729,7 @@ public class DivideServiceImpl implements DivideService {
|
||||
DivideCardDO lastCardDO = divideCardMapper.selectOne(Wrappers.<DivideCardDO>lambdaQuery()
|
||||
.eq(DivideCardDO::getUserId, userId)
|
||||
.orderByDesc(DivideCardDO::getCreateTime)
|
||||
.orderByDesc(DivideCardDO::getId)
|
||||
.last("limit 1"));
|
||||
|
||||
BigDecimal changeMoney = new BigDecimal(amount).divide(new BigDecimal("100"));
|
||||
|
@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.pay.controller.admin.divideinfo.vo.DivideInfoSave
|
||||
import cn.iocoder.yudao.module.pay.dal.dataobject.divideinfo.DivideInfoDO;
|
||||
import cn.iocoder.yudao.module.pay.dal.mysql.divideinfo.DivideInfoMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@ -72,12 +73,15 @@ public class DivideInfoServiceImpl implements DivideInfoService {
|
||||
PageResult<DivideInfoDO> divideInfoDOPageResult = divideInfoMapper.selectPage(pageReqVO);
|
||||
List<DivideInfoDO> list = divideInfoDOPageResult.getList();
|
||||
for (DivideInfoDO divideInfoDO:list){
|
||||
// 解析时间字符串
|
||||
ZonedDateTime zonedDateTime = ZonedDateTime.parse(divideInfoDO.getDFinishTime());
|
||||
// 定义所需的时间格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// 格式化时间字符串
|
||||
divideInfoDO.setDFinishTime(zonedDateTime.format(formatter));
|
||||
if(StringUtils.isNotBlank(divideInfoDO.getDFinishTime())){
|
||||
// 解析时间字符串
|
||||
ZonedDateTime zonedDateTime = ZonedDateTime.parse(divideInfoDO.getDFinishTime());
|
||||
// 定义所需的时间格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// 格式化时间字符串
|
||||
divideInfoDO.setDFinishTime(zonedDateTime.format(formatter));
|
||||
}
|
||||
|
||||
}
|
||||
return divideInfoDOPageResult;
|
||||
}
|
||||
|
Reference in New Issue
Block a user