Compare commits

..

2 Commits

7 changed files with 34 additions and 46 deletions

View File

@ -11,11 +11,7 @@ import java.math.BigDecimal;
import java.util.List;
/**
* @Description: 等级的dto
* @Author: sui q
* @Time: 2022/9/24 15:06
* @Classname: GradeDTO
* @PackageName: com.hzs.system.config.dto
* 等级的dto
*/
@Data
@Builder

View File

@ -1005,7 +1005,7 @@ public class SaOrderBusinessController extends BaseController {
}
/**
* 撤销订单并入库,全免
* 撤销订单并入库,全免 -- 现用撤单
*
* @param orderCancelParam 参数
*/

View File

@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.msg.ConfigMsgConstants;
import com.hzs.common.core.constant.msg.MemberMsgConstants;
@ -87,7 +86,6 @@ import java.math.RoundingMode;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -100,9 +98,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
@DubboReference
IMemberServiceApi memberServiceApi;
@DubboReference
IGradeServiceApi gradeServiceApi;
IGradeServiceApi iGradeServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
IAwardsServiceApi iAwardsServiceApi;
@DubboReference
IAreaServiceApi areaServiceApi;
@DubboReference
@ -127,8 +125,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
IMemberTradeServiceApi memberTradeServiceApi;
@DubboReference
ICuMemberDetailServiceApi iCuMemberDetailServiceApi;
@DubboReference
IGradeServiceApi iGradeServiceApi;
@Autowired
private IBdWaresService iBdWaresService;
@ -596,8 +592,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
cuMember.setPkSettleGradeValue(gradeDTO.getGradeValue());
// 判断奖衔原会员有奖衔的话判断哪个大使用大的
if (pkAwards != null && gradeDTO.getGradeValue() != null) {
BdAwards bdAwards = awardsServiceApi.getAwardsOne(pkAwards).getData();
BdAwards newAwards = awardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData();
BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(pkAwards).getData();
BdAwards newAwards = iAwardsServiceApi.getAwardsOne(gradeDTO.getPkAwards()).getData();
if (bdAwards.getAwardsValue() < newAwards.getAwardsValue()) {
cuMember.setPkAwards(gradeDTO.getPkAwards());
}
@ -852,7 +848,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
@Transactional(rollbackFor = Exception.class)
public Boolean payUpgradeSaOrder(SaOrderExt saOrderExt, CuMemberAccountExt cuMemberAccountExt) {
CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember());
GradeDTO oldGradeDTO = gradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
GradeDTO oldGradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
// 封装等级,重新计算会员等级
if (setLastCuMemberGrade(cuMember, saOrderExt)) {
return false;
@ -1077,7 +1073,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (orderParam.getIsEnough() != null && orderParam.getIsEnough()) {
orderReturn.setIsEnough(Boolean.TRUE);
CuMember member = getCuMemberByKey(orderParam.getCenterCodeId());
GradeDTO grade = gradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
orderReturn.setPkGrade(grade.getPkTransaction());
return orderReturn;
}
@ -1089,7 +1085,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} else {
member = getCuMemberByKey(orderParam.getCenterCodeId());
}
GradeDTO grade = gradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
GradeDTO grade = iGradeServiceApi.getGrade(member.getPkSettleGrade()).getData();
if (grade.getGradeValue() < gradeDTO.getGradeValue()) {
orderReturn.setIsEnough(Boolean.TRUE);
} else {
@ -2218,25 +2214,33 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
* @return
*/
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();
if (null != cuMemberLevel) {
return gradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
return iGradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
}
}
// 没有升级记录直接查会员注册信息表
CuMemberRegister cuMemberRegister = iCuMemberDetailServiceApi.getMemberRegister(cuMember.getPkId()).getData();
if (null == cuMemberRegister) {
throw new ServiceException("没有会员注册信息");
}
return gradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData();
return iGradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData();
}
/**
* 处理撤销升级订单
*
* @param saOrderExt 订单信息
* @param updSaOrder 升级订单
* @param updSaOrder 升级订单上一个升级订单
* @param pkApprove 操作人
* @param businessCommissionDTO 业务处理DTO
*/
@ -2394,6 +2398,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
}
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
// 升级专区一次性补差升级
// 2025.08.18 雨汐团队使用累计升级
if (boxNum.compareTo(BigDecimal.ZERO) == 0) {
// 不满足升级条件
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();
if (RetailConstants.VERTEX_PK_ID.equals(updateGradeMember.getPkVertex())) {
// 雨汐团队特殊处理
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) {
// 会员等级大于等于V3卓越不能通过升级进行购买了
throw new ServiceException("当前已经是可以购买的最高等级");
@ -2422,12 +2428,16 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (bdGrade.getGradeValue().equals(memberGrade.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
return null;
}
// 2025.08.01 非雨汐团队会多升2级
// 特殊等级处理
// 2025.08.01 非雨汐团队会多升2级
BdGrade tmpGrade = this.handleGradeEnd(gradeList, bdGrade.getPkId(), updateGradeMember.getPkVertex());
if (null != isPay && EYesNo.YES.getIntValue() == isPay) {
// 支付时才进行处理

View File

@ -1,6 +1,5 @@
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.order.SaOrder;
import lombok.AllArgsConstructor;
@ -13,11 +12,7 @@ import java.util.List;
import java.util.Map;
/**
* @Description: 验证撤单信息返回的实体
* @Author: sui q
* @Time: 2023/3/22 13:47
* @Classname: ValidateCancelOrderVO
* @PackageName: com.hzs.sale.order.vo
* 验证撤单信息返回的实体
*/
@Data
@Builder

View File

@ -1134,14 +1134,8 @@
<!-- 查询新零售购买指定商品数量(新) -->
<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
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
and so.order_status = 1
and so.pk_member = #{pkMember}
@ -1152,10 +1146,6 @@
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and bw.wares_code in
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
#{items}
</foreach>
<if test="payTime != null">
and so.pay_time > #{payTime}
</if>

View File

@ -19,7 +19,7 @@ public class RetailConstants {
public static final BigDecimal SAME_RATIO = new BigDecimal("0.005");
/**
* 特殊体系PK_ID: 150
* 特殊体系PK_ID: 150雨汐团队
* V4 500 100
* V5 2000 400
*/

View File

@ -17,9 +17,6 @@ import java.math.BigDecimal;
/**
* 等级配置表
*
* @author zhangjing
* @since 2022-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)