Compare commits
	
		
			2 Commits
		
	
	
		
			bcc88e162a
			...
			665f6a503e
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						665f6a503e | |
| 
							
							
								
								 | 
						8d7603a1fe | 
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1005,7 +1005,7 @@ public class SaOrderBusinessController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 撤销订单并入库,全免
 | 
			
		||||
     * 撤销订单并入库,全免 -- 现用撤单
 | 
			
		||||
     *
 | 
			
		||||
     * @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.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) {
 | 
			
		||||
        // 查询会员升级记录表最终数据
 | 
			
		||||
        CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData();
 | 
			
		||||
        if (null != cuMemberLevel) {
 | 
			
		||||
            return gradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
 | 
			
		||||
        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 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) {
 | 
			
		||||
                // 支付时才进行处理
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,9 +17,6 @@ import java.math.BigDecimal;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * 等级配置表
 | 
			
		||||
 *
 | 
			
		||||
 * @author zhangjing
 | 
			
		||||
 * @since 2022-09-08
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue