Compare commits
2 Commits
bcc88e162a
...
665f6a503e
| Author | SHA1 | Date |
|---|---|---|
|
|
665f6a503e | |
|
|
8d7603a1fe |
|
|
@ -11,11 +11,7 @@ import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 等级的dto
|
* 等级的dto
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2022/9/24 15:06
|
|
||||||
* @Classname: GradeDTO
|
|
||||||
* @PackageName: com.hzs.system.config.dto
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
|
|
||||||
|
|
@ -1005,7 +1005,7 @@ public class SaOrderBusinessController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 撤销订单并入库,全免
|
* 撤销订单并入库,全免 -- 现用撤单
|
||||||
*
|
*
|
||||||
* @param orderCancelParam 参数
|
* @param orderCancelParam 参数
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.activity.pick.service.IAcRetailPickService;
|
import com.hzs.activity.pick.service.IAcRetailPickService;
|
||||||
import com.hzs.common.core.config.BdConfig;
|
|
||||||
import com.hzs.common.core.constant.*;
|
import com.hzs.common.core.constant.*;
|
||||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||||
|
|
@ -87,7 +86,6 @@ import java.math.RoundingMode;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -100,9 +98,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IMemberServiceApi memberServiceApi;
|
IMemberServiceApi memberServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IGradeServiceApi gradeServiceApi;
|
IGradeServiceApi iGradeServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IAwardsServiceApi awardsServiceApi;
|
IAwardsServiceApi iAwardsServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
IAreaServiceApi areaServiceApi;
|
IAreaServiceApi areaServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
|
|
@ -127,8 +125,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
IMemberTradeServiceApi memberTradeServiceApi;
|
IMemberTradeServiceApi memberTradeServiceApi;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
ICuMemberDetailServiceApi iCuMemberDetailServiceApi;
|
ICuMemberDetailServiceApi iCuMemberDetailServiceApi;
|
||||||
@DubboReference
|
|
||||||
IGradeServiceApi iGradeServiceApi;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBdWaresService iBdWaresService;
|
private IBdWaresService iBdWaresService;
|
||||||
|
|
@ -596,8 +592,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
cuMember.setPkSettleGradeValue(gradeDTO.getGradeValue());
|
cuMember.setPkSettleGradeValue(gradeDTO.getGradeValue());
|
||||||
// 判断奖衔,原会员有奖衔的话判断哪个大,使用大的
|
// 判断奖衔,原会员有奖衔的话判断哪个大,使用大的
|
||||||
if (pkAwards != null && gradeDTO.getGradeValue() != null) {
|
if (pkAwards != null && gradeDTO.getGradeValue() != null) {
|
||||||
BdAwards bdAwards = awardsServiceApi.getAwardsOne(pkAwards).getData();
|
BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(pkAwards).getData();
|
||||||
BdAwards newAwards = awardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData();
|
BdAwards newAwards = iAwardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData();
|
||||||
if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) {
|
if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) {
|
||||||
cuMember.setPkAwards(gradeDTO.getPkAwards());
|
cuMember.setPkAwards(gradeDTO.getPkAwards());
|
||||||
}
|
}
|
||||||
|
|
@ -852,7 +848,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean payUpgradeSaOrder(SaOrderExt saOrderExt, CuMemberAccountExt cuMemberAccountExt) {
|
public Boolean payUpgradeSaOrder(SaOrderExt saOrderExt, CuMemberAccountExt cuMemberAccountExt) {
|
||||||
CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember());
|
CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember());
|
||||||
GradeDTO oldGradeDTO = gradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
GradeDTO oldGradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||||
// 封装等级,重新计算会员等级
|
// 封装等级,重新计算会员等级
|
||||||
if (setLastCuMemberGrade(cuMember, saOrderExt)) {
|
if (setLastCuMemberGrade(cuMember, saOrderExt)) {
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -1077,7 +1073,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
if (orderParam.getIsEnough() != null && orderParam.getIsEnough()) {
|
if (orderParam.getIsEnough() != null && orderParam.getIsEnough()) {
|
||||||
orderReturn.setIsEnough(Boolean.TRUE);
|
orderReturn.setIsEnough(Boolean.TRUE);
|
||||||
CuMember member = getCuMemberByKey(orderParam.getCenterCodeId());
|
CuMember member = getCuMemberByKey(orderParam.getCenterCodeId());
|
||||||
GradeDTO grade = gradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
|
GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
|
||||||
orderReturn.setPkGrade(grade.getPkTransaction());
|
orderReturn.setPkGrade(grade.getPkTransaction());
|
||||||
return orderReturn;
|
return orderReturn;
|
||||||
}
|
}
|
||||||
|
|
@ -1089,7 +1085,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
} else {
|
} else {
|
||||||
member = getCuMemberByKey(orderParam.getCenterCodeId());
|
member = getCuMemberByKey(orderParam.getCenterCodeId());
|
||||||
}
|
}
|
||||||
GradeDTO grade = gradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
|
GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
|
||||||
if (grade.getGradeValue() < gradeDTO.getGradeValue()) {
|
if (grade.getGradeValue() < gradeDTO.getGradeValue()) {
|
||||||
orderReturn.setIsEnough(Boolean.TRUE);
|
orderReturn.setIsEnough(Boolean.TRUE);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -2218,25 +2214,33 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private GradeDTO calculateRetailCancelGrade(CuMember cuMember, SaOrder saOrder) {
|
private GradeDTO calculateRetailCancelGrade(CuMember cuMember, SaOrder saOrder) {
|
||||||
|
if (RetailConstants.VERTEX_PK_ID.equals(cuMember.getPkVertex())) {
|
||||||
|
// 2025.08.18 雨汐体系改为累计升级,撤单需要单独处理等级计算
|
||||||
|
GradeDTO memberGrade = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||||
|
if (memberGrade.getGradeValue() > EGrade.MAKER.getValue()) {
|
||||||
|
// 会员等级大于卓越,直接返回当前等级
|
||||||
|
return memberGrade;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
// 查询会员升级记录表最终数据
|
// 查询会员升级记录表最终数据
|
||||||
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData();
|
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData();
|
||||||
if (null != cuMemberLevel) {
|
if (null != cuMemberLevel) {
|
||||||
return gradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
|
return iGradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 没有升级记录,直接查会员注册信息表
|
// 没有升级记录,直接查会员注册信息表
|
||||||
CuMemberRegister cuMemberRegister = iCuMemberDetailServiceApi.getMemberRegister(cuMember.getPkId()).getData();
|
CuMemberRegister cuMemberRegister = iCuMemberDetailServiceApi.getMemberRegister(cuMember.getPkId()).getData();
|
||||||
if (null == cuMemberRegister) {
|
if (null == cuMemberRegister) {
|
||||||
throw new ServiceException("没有会员注册信息");
|
throw new ServiceException("没有会员注册信息");
|
||||||
}
|
}
|
||||||
return gradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData();
|
return iGradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理撤销升级订单
|
* 处理撤销升级订单
|
||||||
*
|
*
|
||||||
* @param saOrderExt 订单信息
|
* @param saOrderExt 订单信息
|
||||||
* @param updSaOrder 升级订单
|
* @param updSaOrder 升级订单(上一个升级订单)
|
||||||
* @param pkApprove 操作人
|
* @param pkApprove 操作人
|
||||||
* @param businessCommissionDTO 业务处理DTO
|
* @param businessCommissionDTO 业务处理DTO
|
||||||
*/
|
*/
|
||||||
|
|
@ -2394,6 +2398,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
}
|
}
|
||||||
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
|
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
|
||||||
// 升级专区,一次性补差升级
|
// 升级专区,一次性补差升级
|
||||||
|
// 2025.08.18 雨汐团队,使用累计升级
|
||||||
if (boxNum.compareTo(BigDecimal.ZERO) == 0) {
|
if (boxNum.compareTo(BigDecimal.ZERO) == 0) {
|
||||||
// 不满足升级条件
|
// 不满足升级条件
|
||||||
throw new ServiceException("不满足升级条件");
|
throw new ServiceException("不满足升级条件");
|
||||||
|
|
@ -2402,6 +2407,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
// 当前会员等级
|
// 当前会员等级
|
||||||
BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get();
|
BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get();
|
||||||
if (RetailConstants.VERTEX_PK_ID.equals(updateGradeMember.getPkVertex())) {
|
if (RetailConstants.VERTEX_PK_ID.equals(updateGradeMember.getPkVertex())) {
|
||||||
|
// 雨汐团队特殊处理
|
||||||
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) {
|
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) {
|
||||||
// 会员等级大于等于V3(卓越),不能通过升级进行购买了
|
// 会员等级大于等于V3(卓越),不能通过升级进行购买了
|
||||||
throw new ServiceException("当前已经是可以购买的最高等级");
|
throw new ServiceException("当前已经是可以购买的最高等级");
|
||||||
|
|
@ -2422,12 +2428,16 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
if (bdGrade.getGradeValue().equals(memberGrade.getGradeValue())
|
if (bdGrade.getGradeValue().equals(memberGrade.getGradeValue())
|
||||||
&& (EGrade.HAI_FAN.getValue() == bdGrade.getGradeValue() || EGrade.YOU_KE.getValue() == bdGrade.getGradeValue())
|
&& (EGrade.HAI_FAN.getValue() == bdGrade.getGradeValue() || EGrade.YOU_KE.getValue() == bdGrade.getGradeValue())
|
||||||
) {
|
) {
|
||||||
|
if (RetailConstants.VERTEX_PK_ID.equals(updateGradeMember.getPkVertex())) {
|
||||||
|
// 雨汐团队特殊处理,雨汐团队使用累计升级,可以进行购买
|
||||||
|
return bdGrade;
|
||||||
|
}
|
||||||
// 旧等级与新等级相同 并且 旧等级为V1或V2
|
// 旧等级与新等级相同 并且 旧等级为V1或V2
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2025.08.01 非雨汐团队会多升2级
|
|
||||||
// 特殊等级处理
|
// 特殊等级处理
|
||||||
|
// 2025.08.01 非雨汐团队会多升2级
|
||||||
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade.getPkId(), updateGradeMember.getPkVertex());
|
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade.getPkId(), updateGradeMember.getPkVertex());
|
||||||
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
|
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
|
||||||
// 支付时才进行处理
|
// 支付时才进行处理
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.hzs.sale.order.vo;
|
package com.hzs.sale.order.vo;
|
||||||
|
|
||||||
import com.hzs.common.domain.member.account.CuMemberAccount;
|
|
||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||||
import com.hzs.common.domain.sale.order.SaOrder;
|
import com.hzs.common.domain.sale.order.SaOrder;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
@ -13,11 +12,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 验证撤单信息,返回的实体
|
* 验证撤单信息,返回的实体
|
||||||
* @Author: sui q
|
|
||||||
* @Time: 2023/3/22 13:47
|
|
||||||
* @Classname: ValidateCancelOrderVO
|
|
||||||
* @PackageName: com.hzs.sale.order.vo
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
|
|
||||||
|
|
@ -1134,14 +1134,8 @@
|
||||||
|
|
||||||
<!-- 查询新零售购买指定商品数量(新) -->
|
<!-- 查询新零售购买指定商品数量(新) -->
|
||||||
<select id="getRetailWaresQuantityNew" resultType="decimal">
|
<select id="getRetailWaresQuantityNew" resultType="decimal">
|
||||||
select sum(nvl(soi.wares_quantity, 0) * bw.box_num) wares_quantity
|
select sum(so.box_num) wares_quantity
|
||||||
from sa_order so
|
from sa_order so
|
||||||
left join sa_order_items soi
|
|
||||||
on soi.pk_order = so.pk_id
|
|
||||||
and soi.del_flag = 0
|
|
||||||
and soi.is_gift = 1
|
|
||||||
left join bd_wares bw
|
|
||||||
on bw.pk_id = soi.pk_wares
|
|
||||||
where so.del_flag = 0
|
where so.del_flag = 0
|
||||||
and so.order_status = 1
|
and so.order_status = 1
|
||||||
and so.pk_member = #{pkMember}
|
and so.pk_member = #{pkMember}
|
||||||
|
|
@ -1152,10 +1146,6 @@
|
||||||
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
|
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
and bw.wares_code in
|
|
||||||
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
|
|
||||||
#{items}
|
|
||||||
</foreach>
|
|
||||||
<if test="payTime != null">
|
<if test="payTime != null">
|
||||||
and so.pay_time > #{payTime}
|
and so.pay_time > #{payTime}
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public class RetailConstants {
|
||||||
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
|
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 特殊体系PK_ID: 150
|
* 特殊体系PK_ID: 150(雨汐团队)
|
||||||
* V4:总 500,小 100
|
* V4:总 500,小 100
|
||||||
* V5:总 2000,小 400
|
* V5:总 2000,小 400
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,6 @@ import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 等级配置表
|
* 等级配置表
|
||||||
*
|
|
||||||
* @author zhangjing
|
|
||||||
* @since 2022-09-08
|
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue