Compare commits
	
		
			7 Commits
		
	
	
		
			6183f775c0
			...
			6267b5fb07
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						6267b5fb07 | |
| 
							
							
								
								 | 
						1174b87575 | |
| 
							
							
								
								 | 
						01beed1b10 | |
| 
							
							
								
								 | 
						111bd8cf49 | |
| 
							
							
								
								 | 
						464868338f | |
| 
							
							
								
								 | 
						97205a139d | |
| 
							
							
								
								 | 
						6278a2429e | 
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
package com.hzs.member.account.dto;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
| 
						 | 
				
			
			@ -8,12 +7,7 @@ import lombok.NoArgsConstructor;
 | 
			
		|||
import java.io.Serializable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 会员信息-银行卡信息
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2022-08-31
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,8 @@ package com.hzs.member.base;
 | 
			
		|||
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberRegister;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
| 
						 | 
				
			
			@ -29,6 +31,14 @@ public interface IMemberServiceApi {
 | 
			
		|||
     */
 | 
			
		||||
    R<LoginMember> getMemberInfo(String memberCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过会员编码查询分享会员信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param memberCode 会员编号
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    R<LoginMember> getShareMemberInfo(String memberCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据会员ID获取会员信息(查库)
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +97,6 @@ public interface IMemberServiceApi {
 | 
			
		|||
     *  撤销会员账户余额
 | 
			
		||||
     **/
 | 
			
		||||
    R<Boolean> cancelMemberAccount(Long pkMember, SaOrder saOrder);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查找安置人伞下
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -163,6 +172,13 @@ public interface IMemberServiceApi {
 | 
			
		|||
     */
 | 
			
		||||
    R<Boolean> saveMember(CuMember cuMember, SaOrderExt saOrder, Boolean isPay, CuMemberAccountExt cuMemberAccountExt);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理新会员,生成主键,跟会员编号
 | 
			
		||||
     *
 | 
			
		||||
     * @param cuMember 会员
 | 
			
		||||
     */
 | 
			
		||||
    R<CuMember> createMemberIdAndCode(CuMember cuMember);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建注册会员编号(放入会员编号批次占用)
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -204,6 +220,13 @@ public interface IMemberServiceApi {
 | 
			
		|||
     */
 | 
			
		||||
    R<List<CuMemberExt>> findMemberByMemberId(List<Long> pkMemberList, Integer pkCountry);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据会员主键查询会员注册信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkMember 会员主键
 | 
			
		||||
     */
 | 
			
		||||
    R<CuMemberRegister> queryCuMemberRegister(Long pkMember);
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     *  会员编号,账户类型,抽奖金额
 | 
			
		||||
     **/
 | 
			
		||||
| 
						 | 
				
			
			@ -363,4 +386,11 @@ public interface IMemberServiceApi {
 | 
			
		|||
     */
 | 
			
		||||
    R<String> checkRegisterRelation(String phone, String parentCode);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询分享会员
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkMember 主键
 | 
			
		||||
     */
 | 
			
		||||
    R<CuMemberShare> queryCuMemberShare(Long pkMember);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
package com.hzs.member.base.dto;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
| 
						 | 
				
			
			@ -63,6 +64,11 @@ public class LoginMember implements Serializable {
 | 
			
		|||
     */
 | 
			
		||||
    private CuMemberExt cuMember;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 分享会员信息(分享注册会员使用)
 | 
			
		||||
     */
 | 
			
		||||
    private CuMemberShare cuMemberShare;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 结算国家(此字段实体不存值,只做部分业务传递参数使用)
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,20 +5,15 @@ import com.hzs.third.bankcard.dto.BankCardParam;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * 银行卡四要素认证
 | 
			
		||||
 *
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * @Author: ljc
 | 
			
		||||
 * @Time: 2023/2/9 14:04
 | 
			
		||||
 * @Classname: BankCardService
 | 
			
		||||
 * @Package_name: com.hzs.third.bankCard
 | 
			
		||||
 */
 | 
			
		||||
public interface IBankCardServiceApi {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 银行卡四要素验证
 | 
			
		||||
     *
 | 
			
		||||
     * @param bankCardParam 银行卡入参
 | 
			
		||||
     * @return R
 | 
			
		||||
     */
 | 
			
		||||
    R verifyBankCard(BankCardParam bankCardParam);
 | 
			
		||||
    R<?> verifyBankCard(BankCardParam bankCardParam);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,12 +9,6 @@ import java.io.Serializable;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * 银行卡校验参数
 | 
			
		||||
 *
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * @Author: ljc
 | 
			
		||||
 * @Time: 2022/11/24 18:19
 | 
			
		||||
 * @Classname: BankCardVO
 | 
			
		||||
 * @Package_name: com.hz.bankCard.vo
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@Builder
 | 
			
		||||
| 
						 | 
				
			
			@ -28,12 +22,10 @@ public class BankCardParam implements Serializable {
 | 
			
		|||
     * 姓名
 | 
			
		||||
     */
 | 
			
		||||
    private String name;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 身份证号
 | 
			
		||||
     */
 | 
			
		||||
    private String idCard;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 手机号
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
package com.hzs.bonus.achieve.mapper;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 日结算阶段表 Mapper 接口
 | 
			
		||||
 */
 | 
			
		||||
public interface CuMemberRetailDetailMapper extends BaseMapper<CuMemberRetailDetail> {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,9 @@ package com.hzs.bonus.achieve.mapper;
 | 
			
		|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
| 
						 | 
				
			
			@ -82,4 +85,27 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
 | 
			
		|||
    void mergeCuMemberRetailRangeExt(@Param("rangeTableName") String rangeTableName, @Param("cuMemberRangeExtList") List<?> cuMemberRangeExtList);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 向上查找所有parentID
 | 
			
		||||
     * @param pkMember
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<CuMemberExt> findParentMemberList(@Param("pkMember") Long pkMember);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更新自己秒结
 | 
			
		||||
     * @param tableName
 | 
			
		||||
     * @param orderExt
 | 
			
		||||
     * @param cuMember
 | 
			
		||||
     */
 | 
			
		||||
    void updateMemberRetailSecondRangeSelf(@Param("tableName") String tableName, @Param("orderExt") SaOrderExt orderExt, @Param("cuMember") CuMember cuMember, @Param("updateType") Integer updateType, @Param("symbol") String symbol);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更新上级秒结
 | 
			
		||||
     * @param tableName
 | 
			
		||||
     * @param orderExt
 | 
			
		||||
     * @param memberList
 | 
			
		||||
     */
 | 
			
		||||
    void updateMemberRetailSecondRangeParent(@Param("tableName") String tableName, @Param("orderExt") SaOrderExt orderExt, @Param("memberList") List<CuMemberExt> memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,12 +21,26 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
 | 
			
		|||
    void createCuMemberTreeTable(String tableName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建会员网体结算记录表(按照日记录,每天一条,记录30天的)
 | 
			
		||||
     * 创建会员结算记录表(按照日记录,每天一条)
 | 
			
		||||
     *
 | 
			
		||||
     * @param tableName 日期
 | 
			
		||||
     */
 | 
			
		||||
    void createCuMemberSettleTable(String tableName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建结算明细表
 | 
			
		||||
     *
 | 
			
		||||
     * @param tableName
 | 
			
		||||
     */
 | 
			
		||||
    void createCuMemberRetailDetail(String tableName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建结算明细表会员索引
 | 
			
		||||
     *
 | 
			
		||||
     * @param tableName
 | 
			
		||||
     */
 | 
			
		||||
    void createCuMemberRetailDetailMemberIndex(String tableName);
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     *  创建会员网体复购极差结算表
 | 
			
		||||
     **/
 | 
			
		||||
| 
						 | 
				
			
			@ -111,16 +125,6 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
 | 
			
		|||
    void updateCuMemberRetailRangeAwardByDate(@Param("rangeTableName") String rangeTableName, @Param("settleDate") Date settleDate,
 | 
			
		||||
                                              @Param("awardType") Integer awardType);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 初始化期间奖衔
 | 
			
		||||
     */
 | 
			
		||||
    void updateCuMemberRetailRangeInitAward(@Param("rangeTableName") String rangeTableName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 初始化期间V5奖衔
 | 
			
		||||
     */
 | 
			
		||||
    void updateCuMemberRetailRangeInitV5Award(@Param("rangeTableName") String rangeTableName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据订单,查询出网体中记录的会员数据,推荐人、安置人
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
package com.hzs.bonus.achieve.service;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 日结算阶段表 服务类
 | 
			
		||||
 */
 | 
			
		||||
public interface ICuMemberRetailDetailService extends IService<CuMemberRetailDetail> {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,7 +3,10 @@ package com.hzs.bonus.achieve.service;
 | 
			
		|||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
| 
						 | 
				
			
			@ -70,4 +73,11 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
 | 
			
		|||
     * @param cuMemberTreeMap 树
 | 
			
		||||
     */
 | 
			
		||||
    void updateCuMemberSecondRange(String secondTableName, Map<Long, CuMemberRetailRangeExt> cuMemberTreeMap);
 | 
			
		||||
 | 
			
		||||
    List<CuMemberExt> findParentMemberList(Long pkMember);
 | 
			
		||||
 | 
			
		||||
    void updateMemberRetailSecondRangeSelf(String settleTableName, SaOrderExt orderExt, CuMember pkMember, Integer updateType, String symbol);
 | 
			
		||||
 | 
			
		||||
    void updateMemberRetailSecondRangeParent(String settleTableName, SaOrderExt orderExt, List<CuMemberExt> pkMemberList, Integer updateType, String symbol);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,11 +49,6 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
 | 
			
		|||
     **/
 | 
			
		||||
    void updateCuMemberRetailRangeAwardByDate(String rangeTableName, Date settleDate);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 初始化期间奖衔
 | 
			
		||||
     */
 | 
			
		||||
    void updateCuMemberRetailRangeInitAward(String rangeTableName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 删除日表数据
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,15 +99,15 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMappe
 | 
			
		|||
            cuMemberAchieve.setRepNewAmount(saOrder.getOrderAmount());
 | 
			
		||||
            cuMemberAchieve.setRepNewPv(saOrder.getOrderAchieve());
 | 
			
		||||
        }
 | 
			
		||||
        String payTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrder.getPayTime());
 | 
			
		||||
        int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(payTime).getPkId();
 | 
			
		||||
        String sourceTable = TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(payTime);
 | 
			
		||||
        for (int i = 7; i > 0; i--) {
 | 
			
		||||
            String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(i, ChronoUnit.DAYS));
 | 
			
		||||
            int settlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
 | 
			
		||||
            String targetTable = TableNameConstants.CU_MEMBER_SETTLE + settlePeriod;
 | 
			
		||||
            baseMapper.chargeBackSaOrder(targetTable, sourceTable, period, cuMemberAchieve);
 | 
			
		||||
        }
 | 
			
		||||
//        String payTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrder.getPayTime());
 | 
			
		||||
//        int period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(payTime).getPkId();
 | 
			
		||||
//        String sourceTable = TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(payTime);
 | 
			
		||||
//        for (int i = 7; i > 0; i--) {
 | 
			
		||||
//            String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(i, ChronoUnit.DAYS));
 | 
			
		||||
//            int settlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
 | 
			
		||||
//            String targetTable = TableNameConstants.CU_MEMBER_SETTLE + settlePeriod;
 | 
			
		||||
//            baseMapper.chargeBackSaOrder(targetTable, sourceTable, period, cuMemberAchieve);
 | 
			
		||||
//        }
 | 
			
		||||
        return Boolean.TRUE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
package com.hzs.bonus.achieve.service.impl;
 | 
			
		||||
 | 
			
		||||
import com.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailDetail;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 日结算阶段表 服务实现类
 | 
			
		||||
 */
 | 
			
		||||
@Service
 | 
			
		||||
public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailDetailMapper, CuMemberRetailDetail> implements ICuMemberRetailDetailService {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		|||
import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
 | 
			
		||||
import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		||||
import com.hzs.common.core.enums.EOrderType;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
 | 
			
		||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -97,6 +101,21 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
 | 
			
		|||
        treeList.forEach(list -> baseMapper.mergeCuMemberSecondRange(secondTableName, list));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberExt> findParentMemberList(Long pkMember) {
 | 
			
		||||
        return baseMapper.findParentMemberList(pkMember);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void updateMemberRetailSecondRangeSelf(String settleTableName, SaOrderExt orderExt, CuMember cuMember, Integer updateType, String symbol) {
 | 
			
		||||
        baseMapper.updateMemberRetailSecondRangeSelf(settleTableName, orderExt, cuMember, updateType, symbol);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void updateMemberRetailSecondRangeParent(String settleTableName, SaOrderExt orderExt, List<CuMemberExt> pkMemberList, Integer updateType, String symbol) {
 | 
			
		||||
        baseMapper.updateMemberRetailSecondRangeParent(settleTableName, orderExt, pkMemberList, updateType, symbol);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<List<?>> setUpdCuMemberTreeLists(Map<Long, CuMemberRetailRangeExt> cuMemberTreeMap) {
 | 
			
		||||
        List<CuMemberRetailRangeExt> cuMemberTreeList = new ArrayList<>();
 | 
			
		||||
        cuMemberTreeMap.forEach((key, value) -> cuMemberTreeList.add(value));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,11 +38,11 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
 | 
			
		|||
        Integer number = baseMapper.queryExistOracleTable(settleTableName);
 | 
			
		||||
        if (number == null || number <= 0) {
 | 
			
		||||
            baseMapper.createCuMemberSettleTable(settleTableName);
 | 
			
		||||
            baseMapper.createCuMemberTreeDayOnlyIndex(settleTableName);
 | 
			
		||||
            baseMapper.createCuMemberTreeParentIndex(settleTableName);
 | 
			
		||||
            baseMapper.createCuMemberTreePlaceIndex(settleTableName);
 | 
			
		||||
//            baseMapper.createCuMemberTreeDayOnlyIndex(settleTableName);
 | 
			
		||||
//            baseMapper.createCuMemberTreeParentIndex(settleTableName);
 | 
			
		||||
//            baseMapper.createCuMemberTreePlaceIndex(settleTableName);
 | 
			
		||||
        }
 | 
			
		||||
        // 创建新零售级差结算记录表
 | 
			
		||||
        // 创建结算记录表
 | 
			
		||||
        String retailRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
 | 
			
		||||
        number = baseMapper.queryExistOracleTable(retailRangeTableName);
 | 
			
		||||
        if (number == null || number <= 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +54,13 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
 | 
			
		|||
        if (number == null || number <= 0) {
 | 
			
		||||
            baseMapper.insertCuMemberRetailRangeByMember(retailRangeTableName);
 | 
			
		||||
        }
 | 
			
		||||
        // 创建结算明细表
 | 
			
		||||
        String retailRangeTableDetailName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + period;;
 | 
			
		||||
        number = baseMapper.queryExistOracleTable(retailRangeTableDetailName);
 | 
			
		||||
        if (number == null || number <= 0) {
 | 
			
		||||
            baseMapper.createCuMemberRetailDetail(retailRangeTableDetailName);
 | 
			
		||||
            baseMapper.createCuMemberRetailDetailMemberIndex(retailRangeTableDetailName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 创建月表记录表
 | 
			
		||||
        createMonthTreeTableName(date);
 | 
			
		||||
| 
						 | 
				
			
			@ -114,12 +121,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
 | 
			
		|||
        baseMapper.updateCuMemberRetailRangeAwardByDate(rangeTableName, settleDate, EAwardsType.SHARE_TYPE.getValue());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void updateCuMemberRetailRangeInitAward(String rangeTableName) {
 | 
			
		||||
        baseMapper.updateCuMemberRetailRangeInitAward(rangeTableName);
 | 
			
		||||
        baseMapper.updateCuMemberRetailRangeInitV5Award(rangeTableName);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void truncateCuMemberTreeTable(String tableName) {
 | 
			
		||||
        baseMapper.truncateCuMemberTreeTable(tableName);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,4 +22,10 @@ public interface IBonusSettleService {
 | 
			
		|||
     */
 | 
			
		||||
    void calculateCuMemberRetailRangeBonusBySaOrder(String orderCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 计算秒结表数据
 | 
			
		||||
     * @param orderExt
 | 
			
		||||
     */
 | 
			
		||||
    void calculateCuMemberRetailRangeBySaOrder(SaOrderExt orderExt);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -295,12 +295,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
        iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
 | 
			
		||||
 | 
			
		||||
        if (retailOrderList.size() > 0) {
 | 
			
		||||
            // 复购订单级差数据map(key:订单ID,value:订单明细+级差)
 | 
			
		||||
            Map<Long, List<SaOrderItemsExt>> rangeOrderMap = new HashMap<>();
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(repurchaseOrderList)) {
 | 
			
		||||
                rangeOrderMap = iBonusOrderService.getWaresRange(repurchaseOrderList);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 按照血缘,查询该会员所有伞上会员
 | 
			
		||||
            List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,10 @@
 | 
			
		|||
package com.hzs.bonus.bonus.service.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
 | 
			
		||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
 | 
			
		||||
import com.hzs.bonus.base.service.ICuMemberService;
 | 
			
		||||
import com.hzs.bonus.bonus.service.*;
 | 
			
		||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
 | 
			
		||||
import com.hzs.bonus.order.service.IBonusOrderService;
 | 
			
		||||
| 
						 | 
				
			
			@ -9,7 +12,9 @@ import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		|||
import com.hzs.common.core.constant.TableNameConstants;
 | 
			
		||||
import com.hzs.common.core.enums.*;
 | 
			
		||||
import com.hzs.common.core.utils.DateUtils;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.bonus.*;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import com.hzs.system.config.IBonusItemsServiceApi;
 | 
			
		||||
import com.hzs.system.config.dto.BonusConfigDTO;
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +52,11 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private ICuMemberBonusDetailService cuMemberBonusDetailService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberRetailRangeService iCuMemberRetailRangeService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberService cuMemberService;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 保存会员奖金
 | 
			
		||||
| 
						 | 
				
			
			@ -155,6 +165,29 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void calculateCuMemberRetailRangeBySaOrder(SaOrderExt orderExt) {
 | 
			
		||||
        Integer updateType = null;
 | 
			
		||||
        String symbol = orderExt.getCancelBool() ? "-" : "+";
 | 
			
		||||
        if(orderExt.getOrderType().equals(EOrderType.RETAIL_REGISTER.getValue())){
 | 
			
		||||
            updateType = 1;
 | 
			
		||||
        }else if(orderExt.getOrderType().equals(EOrderType.RETAIL_REPURCHASE.getValue())){
 | 
			
		||||
            updateType = 2;
 | 
			
		||||
        }
 | 
			
		||||
        if(ObjectUtil.isEmpty(updateType)){
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        // 今天结算期数
 | 
			
		||||
        String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderExt.getPayTime());
 | 
			
		||||
        int currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
 | 
			
		||||
        // 秒结表名
 | 
			
		||||
        String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
 | 
			
		||||
        List<CuMemberExt> memberList = iCuMemberRetailRangeService.findParentMemberList(orderExt.getPkMember());
 | 
			
		||||
        CuMember self = cuMemberService.getById(orderExt.getPkId());
 | 
			
		||||
        iCuMemberRetailRangeService.updateMemberRetailSecondRangeSelf(secondRangeTableName, orderExt, self, updateType, symbol);
 | 
			
		||||
        iCuMemberRetailRangeService.updateMemberRetailSecondRangeParent(secondRangeTableName, orderExt, memberList, updateType, symbol);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 计算每天的奖金入库
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,12 +39,6 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName) {
 | 
			
		||||
        if (settleDate.endsWith("01")) {
 | 
			
		||||
            // 每月1号初始化结算表奖衔(月度奖衔归0,V5给S1奖衔)
 | 
			
		||||
            iCuMemberTreeService.updateCuMemberRetailRangeInitAward(rangeTableName);
 | 
			
		||||
            // 每月1号初始化会员表奖衔(月度奖衔归0,V5给S1奖衔)
 | 
			
		||||
            iCuMemberService.updateCuMemberRetailRangeInitAward();
 | 
			
		||||
        }
 | 
			
		||||
        // 回退结算表奖衔
 | 
			
		||||
        iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period);
 | 
			
		||||
        // 回退会员表奖衔
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,10 +47,10 @@ public class SaOrderSecondListener {
 | 
			
		|||
        if (saOrderExt.getCancelBool() != null && saOrderExt.getCancelBool()) {
 | 
			
		||||
            cuMemberRetailLog.setCancelStatus(EYesNo.YES.getIntValue());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            Thread.sleep(1000);
 | 
			
		||||
            iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(saOrderExt.getOrderCode());
 | 
			
		||||
//            iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(saOrderExt.getOrderCode());
 | 
			
		||||
            iBonusSettleService.calculateCuMemberRetailRangeBySaOrder(saOrderExt);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            cuMemberRetailLog.setEnableStatus(EYesNo.NO.getIntValue());
 | 
			
		||||
            cuMemberRetailLog.setMsg(e.getMessage());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,12 +41,4 @@ public interface BonusOrderMapper {
 | 
			
		|||
                                    @Param("endDate") Date endDate,
 | 
			
		||||
                                    @Param("orderType") List<Integer> orderType);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询订单商品级差数据
 | 
			
		||||
     *
 | 
			
		||||
     * @param orderList 订单列表
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<SaOrderItemsExt> listOrderWaresRange(@Param("orderList") List<SaOrderExt> orderList);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,12 +32,4 @@ public interface IBonusOrderService {
 | 
			
		|||
     */
 | 
			
		||||
    List<SaOrder> listSaOrderByTime(Date startDate, Date endDate, List<Integer> orderType);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询商品级差数据
 | 
			
		||||
     *
 | 
			
		||||
     * @param orderList
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    Map<Long, List<SaOrderItemsExt>> getWaresRange(List<SaOrderExt> orderList);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,26 +41,4 @@ public class BonusOrderServiceImpl implements IBonusOrderService {
 | 
			
		|||
        return bonusOrderMapper.listSaOrderByTime(startDate, endDate, orderType);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Map<Long, List<SaOrderItemsExt>> getWaresRange(List<SaOrderExt> orderList) {
 | 
			
		||||
        Map<Long, List<SaOrderItemsExt>> resultMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        List<SaOrderItemsExt> resultList = new ArrayList<>();
 | 
			
		||||
        List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(orderList, MagicNumberConstants.BATCH_UPDATE_NUM);
 | 
			
		||||
        handleCutList.forEach(list -> {
 | 
			
		||||
            resultList.addAll(bonusOrderMapper.listOrderWaresRange(orderList));
 | 
			
		||||
        });
 | 
			
		||||
        for (SaOrderItemsExt saOrderItemsExt : resultList) {
 | 
			
		||||
            if (resultMap.containsKey(saOrderItemsExt.getPkOrder())) {
 | 
			
		||||
                resultMap.get(saOrderItemsExt.getPkOrder()).add(saOrderItemsExt);
 | 
			
		||||
            } else {
 | 
			
		||||
                List<SaOrderItemsExt> tmpList = new ArrayList<>();
 | 
			
		||||
                tmpList.add(saOrderItemsExt);
 | 
			
		||||
                resultMap.put(saOrderItemsExt.getPkOrder(), tmpList);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return resultMap;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
<?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.hzs.bonus.achieve.mapper.CuMemberRetailDetailMapper">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,6 @@
 | 
			
		|||
        <result column="TEAM_MONTH_AMOUNT" property="teamMonthAmount"/>
 | 
			
		||||
        <result column="RECOMMEND_NUM" property="recommendNum"/>
 | 
			
		||||
        <result column="TEAM_NUM" property="teamNum"/>
 | 
			
		||||
        <result column="REGION_ADDRESS" property="regionAddress"/>
 | 
			
		||||
        <result column="GRADE_VALUE" property="gradeValue"/>
 | 
			
		||||
        <result column="GRADE_NAME" property="gradeName"/>
 | 
			
		||||
        <result column="AWARDS_NAME" property="awardsName"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -50,12 +49,10 @@
 | 
			
		|||
        <result column="BENEFIT_SHARE_RATIO" property="benefitShareRatio"/>
 | 
			
		||||
        <result column="coach_algebra" property="coachAlgebra"/>
 | 
			
		||||
        <result column="coach_ratio" property="coachRatio"/>
 | 
			
		||||
        <result column="COUNTRY_NAME" property="countryName"/>
 | 
			
		||||
        <result column="big_team_pv" property="bigTeamPv"/>
 | 
			
		||||
        <result column="small_team_pv" property="smallTeamPv"/>
 | 
			
		||||
        <result column="region_vertex_pk_id" property="regionVertexPkId"/>
 | 
			
		||||
 | 
			
		||||
        <result column="all_new_consume_pv" property="allNewConsumePv"/>
 | 
			
		||||
        <result column="all_team_new_pv" property="allTeamNewPv"/>
 | 
			
		||||
        <result column="all_team_consume_pv" property="allTeamConsumePv"/>
 | 
			
		||||
        <result column="all_team_month_pv" property="allTeamMonthPv"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -76,12 +73,8 @@
 | 
			
		|||
            team_num = 0,
 | 
			
		||||
            enable_status = 1,
 | 
			
		||||
            pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20),
 | 
			
		||||
            region_address = 0,
 | 
			
		||||
            big_team_pv = 0,
 | 
			
		||||
            small_team_pv = 0,
 | 
			
		||||
            all_team_new_pv = 0,
 | 
			
		||||
            all_team_consume_pv = 0,
 | 
			
		||||
            all_team_month_pv = 0
 | 
			
		||||
            small_team_pv = 0
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <update id="mergeMemberRetailRangeByYesterday">
 | 
			
		||||
| 
						 | 
				
			
			@ -92,8 +85,7 @@
 | 
			
		|||
        team_new_pv, team_consume_pv, team_month_pv,
 | 
			
		||||
        team_new_amount, team_consume_amount, team_month_amount,
 | 
			
		||||
        recommend_num, team_num,
 | 
			
		||||
        big_team_pv, small_team_pv,
 | 
			
		||||
        all_team_new_pv, all_team_consume_pv, all_team_month_pv
 | 
			
		||||
        big_team_pv, small_team_pv
 | 
			
		||||
        from ${yesterdayRangeTableName}
 | 
			
		||||
        ) b
 | 
			
		||||
        on (a.pk_member = b.pk_member)
 | 
			
		||||
| 
						 | 
				
			
			@ -105,14 +97,11 @@
 | 
			
		|||
        a.recommend_num = b.recommend_num, a.team_num = b.team_num,
 | 
			
		||||
        a.pk_grade = b.pk_grade,
 | 
			
		||||
        a.enable_status = b.enable_status,
 | 
			
		||||
        a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
 | 
			
		||||
        a.all_team_new_pv = b.all_team_new_pv,
 | 
			
		||||
        a.all_team_consume_pv = b.all_team_consume_pv
 | 
			
		||||
        a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv
 | 
			
		||||
        <if test="isSameMonth == 0">
 | 
			
		||||
            ,a.month_consume_pv = b.month_consume_pv
 | 
			
		||||
            ,a.team_month_pv = b.team_month_pv
 | 
			
		||||
            ,a.team_month_amount = b.team_month_amount
 | 
			
		||||
            ,a.all_team_month_pv = b.all_team_month_pv
 | 
			
		||||
        </if>
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -124,10 +113,7 @@
 | 
			
		|||
            #{item.newConsumePv} new_consume_pv, #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
 | 
			
		||||
            #{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv,
 | 
			
		||||
            #{item.teamNewAmount} team_new_amount, #{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount,
 | 
			
		||||
            #{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status,
 | 
			
		||||
            #{item.allTeamNewPv} all_team_new_pv,
 | 
			
		||||
            #{item.allTeamConsumePv} all_team_consume_pv,
 | 
			
		||||
            #{item.allTeamMonthPv} all_team_month_pv
 | 
			
		||||
            #{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status
 | 
			
		||||
            from dual
 | 
			
		||||
        </foreach>
 | 
			
		||||
        ) b
 | 
			
		||||
| 
						 | 
				
			
			@ -137,10 +123,7 @@
 | 
			
		|||
        a.new_consume_pv = b.new_consume_pv, a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv,
 | 
			
		||||
        a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv,
 | 
			
		||||
        a.team_new_amount = b.team_new_amount, a.team_consume_amount = b.team_consume_amount, a.team_month_amount = b.team_month_amount,
 | 
			
		||||
        a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status,
 | 
			
		||||
        a.all_team_new_pv = b.all_team_new_pv,
 | 
			
		||||
        a.all_team_consume_pv = b.all_team_consume_pv,
 | 
			
		||||
        a.all_team_month_pv = b.all_team_month_pv
 | 
			
		||||
        a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <!-- 当前网体更新极差秒接表 -->
 | 
			
		||||
| 
						 | 
				
			
			@ -204,9 +187,7 @@
 | 
			
		|||
            #{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards,
 | 
			
		||||
            #{item.newConsumePv} new_consume_pv,
 | 
			
		||||
            #{item.teamNewPv} team_new_pv,
 | 
			
		||||
            #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status,
 | 
			
		||||
            #{item.allNewConsumePv} all_new_consume_pv,
 | 
			
		||||
            #{item.allTeamNewPv} all_team_new_pv
 | 
			
		||||
            #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
 | 
			
		||||
            from dual
 | 
			
		||||
        </foreach>
 | 
			
		||||
        ) b
 | 
			
		||||
| 
						 | 
				
			
			@ -216,9 +197,7 @@
 | 
			
		|||
        a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
 | 
			
		||||
        a.new_consume_pv = b.new_consume_pv,
 | 
			
		||||
        a.team_new_pv = b.team_new_pv,
 | 
			
		||||
        a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status,
 | 
			
		||||
        a.all_new_consume_pv = b.all_new_consume_pv,
 | 
			
		||||
        a.all_team_new_pv = b.all_team_new_pv
 | 
			
		||||
        a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <update id="mergeMemberRetailGradeByMember">
 | 
			
		||||
| 
						 | 
				
			
			@ -236,6 +215,43 @@
 | 
			
		|||
            , a.pk_share_awards = b.pk_range_awards
 | 
			
		||||
        </if>
 | 
			
		||||
    </update>
 | 
			
		||||
    <update id="updateMemberRetailSecondRangeSelf">
 | 
			
		||||
        UPDATE ${tableName}
 | 
			
		||||
        SET
 | 
			
		||||
            PK_GRADE = ${cuMember.pkSettleGrade},
 | 
			
		||||
            PK_AWARDS = ${cuMember.pkAwards},
 | 
			
		||||
            <if test="updateType != null and updateType == 1">
 | 
			
		||||
                REG_CONSUME_NEW_AMOUNT = REG_CONSUME_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
 | 
			
		||||
                REG_CONSUME_NEW_PV = REG_CONSUME_NEW_PV ${symbol} #{orderExt.orderAchieve},
 | 
			
		||||
            </if>
 | 
			
		||||
            <if test="updateType != null and updateType == 2">
 | 
			
		||||
                REP_CONSUME_NEW_AMOUNT = REP_CONSUME_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
 | 
			
		||||
                REP_CONSUME_NEW_PV = REP_CONSUME_NEW_PV ${symbol} #{orderExt.orderAchieve},
 | 
			
		||||
            </if>
 | 
			
		||||
            ALL_CONSUME_NEW_AMOUNT = ALL_CONSUME_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
 | 
			
		||||
            ALL_CONSUME_NEW_PV = ALL_CONSUME_NEW_PV ${symbol} #{orderExt.orderAchieve}
 | 
			
		||||
        WHERE
 | 
			
		||||
            PK_MEMBER = #{pkMember}
 | 
			
		||||
    </update>
 | 
			
		||||
    <update id="updateMemberRetailSecondRangeParent">
 | 
			
		||||
        UPDATE ${tableName}
 | 
			
		||||
        SET
 | 
			
		||||
        <if test="updateType != null and updateType == 1">
 | 
			
		||||
            REG_TEAM_NEW_AMOUNT = REG_TEAM_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
 | 
			
		||||
            REG_TEAM_NEW_PV = REG_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve},
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="updateType != null and updateType == 2">
 | 
			
		||||
            REP_TEAM_NEW_AMOUNT = REP_TEAM_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
 | 
			
		||||
            REP_TEAM_NEW_PV = REP_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve},
 | 
			
		||||
        </if>
 | 
			
		||||
        ALL_TEAM_NEW_AMOUNT = ALL_TEAM_NEW_AMOUNT ${symbol} #{orderExt.orderAmount},
 | 
			
		||||
        ALL_TEAM_NEW_PV = ALL_TEAM_NEW_PV ${symbol} #{orderExt.orderAchieve},
 | 
			
		||||
        WHERE
 | 
			
		||||
        PK_MEMBER in
 | 
			
		||||
        <foreach collection="memberList" item="member" separator="," open="(" close=")">
 | 
			
		||||
            #{member.pkId}
 | 
			
		||||
        </foreach>
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <select id="queryCuMemberRetailRangeParent" resultMap="CuMemberRetailRangeExt">
 | 
			
		||||
        <foreach collection="saOrderExtList" item="item" close=" " open=" " separator="union">
 | 
			
		||||
| 
						 | 
				
			
			@ -277,14 +293,10 @@
 | 
			
		|||
            bwa.awards_value share_awards_value,
 | 
			
		||||
            a.big_team_pv,
 | 
			
		||||
            a.small_team_pv,
 | 
			
		||||
            a.all_team_new_pv,
 | 
			
		||||
            a.all_team_consume_pv,
 | 
			
		||||
            a.all_team_month_pv,
 | 
			
		||||
            bw.range_ratio,
 | 
			
		||||
            bw.month_repurchase_ratio,
 | 
			
		||||
            bw.benefit_avg_ratio,
 | 
			
		||||
            bw.benefit_share_ratio,
 | 
			
		||||
            br.name country_name,
 | 
			
		||||
            a.pk_vertex,
 | 
			
		||||
            bv.region_vertex_pk_id
 | 
			
		||||
            from (
 | 
			
		||||
| 
						 | 
				
			
			@ -298,8 +310,6 @@
 | 
			
		|||
            on bw.pk_id = a.pk_awards
 | 
			
		||||
            left join bd_awards bwa
 | 
			
		||||
            on bwa.pk_id = a.pk_share_awards and bwa.del_flag = 0
 | 
			
		||||
            left join bd_area br
 | 
			
		||||
            on br.pk_id = a.region_address and br.del_flag = 0
 | 
			
		||||
            left join bd_vertex bv
 | 
			
		||||
            on bv.pk_id = a.pk_vertex
 | 
			
		||||
            where ba.del_flag = 0 and bw.del_flag = 0
 | 
			
		||||
| 
						 | 
				
			
			@ -327,8 +337,6 @@
 | 
			
		|||
               a.big_team_pv,
 | 
			
		||||
               a.small_team_pv,
 | 
			
		||||
               a.system_type,
 | 
			
		||||
               a.all_team_consume_pv,
 | 
			
		||||
               a.all_team_month_pv,
 | 
			
		||||
               new_consume_pv,
 | 
			
		||||
               consume_pv,
 | 
			
		||||
               month_consume_pv,
 | 
			
		||||
| 
						 | 
				
			
			@ -348,8 +356,7 @@
 | 
			
		|||
               bw.range_ratio,
 | 
			
		||||
               bw.month_repurchase_ratio,
 | 
			
		||||
               bw.benefit_avg_ratio,
 | 
			
		||||
               bw.benefit_share_ratio,
 | 
			
		||||
               br.name          country_name
 | 
			
		||||
               bw.benefit_share_ratio
 | 
			
		||||
        from ${tableName} a
 | 
			
		||||
                 inner join bd_grade ba
 | 
			
		||||
                            on a.pk_grade = ba.pk_id
 | 
			
		||||
| 
						 | 
				
			
			@ -357,8 +364,6 @@
 | 
			
		|||
                            on bw.pk_id = a.pk_awards and bw.del_flag = 0
 | 
			
		||||
                 inner join bd_awards bws
 | 
			
		||||
                           on bws.pk_id = a.pk_share_awards and bws.del_flag = 0
 | 
			
		||||
                 left join bd_area br
 | 
			
		||||
                           on br.pk_id = a.region_address and br.del_flag = 0
 | 
			
		||||
        where ba.del_flag = 0
 | 
			
		||||
          and a.pk_parent = #{pkParent}
 | 
			
		||||
    </select>
 | 
			
		||||
| 
						 | 
				
			
			@ -391,10 +396,6 @@
 | 
			
		|||
               nvl(b.big_team_pv, 0)                                          big_team_pv,
 | 
			
		||||
               nvl(b.small_team_pv, 0)                                        small_team_pv,
 | 
			
		||||
               a.system_type,
 | 
			
		||||
               a.all_new_consume_pv,
 | 
			
		||||
               a.all_team_new_pv,
 | 
			
		||||
               nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_consume_pv,
 | 
			
		||||
               nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0)        all_team_month_pv,
 | 
			
		||||
               bg.grade_value,
 | 
			
		||||
               bg.grade_name,
 | 
			
		||||
               bw.awards_value,
 | 
			
		||||
| 
						 | 
				
			
			@ -404,8 +405,6 @@
 | 
			
		|||
               bw.benefit_avg_ratio,
 | 
			
		||||
               bw.benefit_share_ratio,
 | 
			
		||||
               bws.awards_value                                               share_awards_value,
 | 
			
		||||
               br.name                                                        country_name,
 | 
			
		||||
               cr.county                                                      region_address,
 | 
			
		||||
               bv.region_vertex_pk_id
 | 
			
		||||
        from (
 | 
			
		||||
                 select *
 | 
			
		||||
| 
						 | 
				
			
			@ -422,10 +421,6 @@
 | 
			
		|||
                            on bws.pk_id = a.pk_share_awards and bws.del_flag = 0
 | 
			
		||||
                 inner join bd_grade bg
 | 
			
		||||
                            on bg.pk_id = a.pk_grade
 | 
			
		||||
                 left join cu_member_retail_region cr
 | 
			
		||||
                           on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
 | 
			
		||||
                 left join bd_area br
 | 
			
		||||
                           on br.pk_id = cr.county and br.del_flag = 0
 | 
			
		||||
                 left join bd_vertex bv
 | 
			
		||||
                           on bv.pk_id = cm.pk_vertex
 | 
			
		||||
                 inner join bd_currency bt
 | 
			
		||||
| 
						 | 
				
			
			@ -437,9 +432,7 @@
 | 
			
		|||
        select cm.pk_id                                                       pk_member,
 | 
			
		||||
               cm.pk_parent,
 | 
			
		||||
               nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0)          month_consume_pv,
 | 
			
		||||
               nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0)                team_month_pv,
 | 
			
		||||
               nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_consume_pv,
 | 
			
		||||
               nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0)        all_team_month_pv
 | 
			
		||||
               nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0)                team_month_pv
 | 
			
		||||
        from cu_member cm
 | 
			
		||||
                 left join ${secondTableName} a
 | 
			
		||||
                           on cm.pk_id = a.pk_member
 | 
			
		||||
| 
						 | 
				
			
			@ -462,11 +455,16 @@
 | 
			
		|||
               team_consume_amount,
 | 
			
		||||
               team_month_amount,
 | 
			
		||||
               big_team_pv,
 | 
			
		||||
               small_team_pv,
 | 
			
		||||
               all_team_consume_pv,
 | 
			
		||||
               all_team_month_pv
 | 
			
		||||
               small_team_pv
 | 
			
		||||
        from ${tableName}
 | 
			
		||||
        where pk_parent = #{pkParent}
 | 
			
		||||
    </select>
 | 
			
		||||
    <select id="findParentMemberList" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
 | 
			
		||||
        select cm.*
 | 
			
		||||
        from cu_member cm
 | 
			
		||||
            start with cm.pk_id = #{pkMember}
 | 
			
		||||
        connect by cm.pk_id = prior cm.pk_parent
 | 
			
		||||
        order by level
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,8 +104,7 @@
 | 
			
		|||
 | 
			
		||||
    <!-- 会员网体月表数据,用于查询 网体跟业绩分开 横向分表-->
 | 
			
		||||
    <sql id="CuMemberTreeColumn">
 | 
			
		||||
        period
 | 
			
		||||
        NUMBER(6) default 0 not null,
 | 
			
		||||
        period  NUMBER(6) default 0 not null,
 | 
			
		||||
        pk_member         NUMBER(20) not null,
 | 
			
		||||
        pk_parent         NUMBER(20) not null,
 | 
			
		||||
        pk_place_parent   NUMBER(20),
 | 
			
		||||
| 
						 | 
				
			
			@ -289,6 +288,60 @@
 | 
			
		|||
        )
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <!-- 创建结算明细表 -->
 | 
			
		||||
    <update id="createCuMemberRetailDetail">
 | 
			
		||||
        create table ${tableName}
 | 
			
		||||
        (
 | 
			
		||||
            pk_id           NUMBER(20) primary key,
 | 
			
		||||
            pk_member       NUMBER(20) not null,
 | 
			
		||||
            child_node      NUMBER(8) not null,
 | 
			
		||||
            pk_parent       NUMBER(20) not null,
 | 
			
		||||
            stage           NUMBER(1) default 1 not null,
 | 
			
		||||
            stage_status    NUMBER(1) default 1 not null,
 | 
			
		||||
            stage_date      DATE,
 | 
			
		||||
            point_11        NUMBER(20),
 | 
			
		||||
            point_12        NUMBER(20),
 | 
			
		||||
            point_21        NUMBER(20),
 | 
			
		||||
            point_22        NUMBER(20),
 | 
			
		||||
            point_23        NUMBER(20),
 | 
			
		||||
            point_24        NUMBER(20),
 | 
			
		||||
            point_31        NUMBER(20),
 | 
			
		||||
            point_32        NUMBER(20),
 | 
			
		||||
            point_33        NUMBER(20),
 | 
			
		||||
            point_34        NUMBER(20),
 | 
			
		||||
            point_35        NUMBER(20),
 | 
			
		||||
            point_36        NUMBER(20),
 | 
			
		||||
            point_37        NUMBER(20),
 | 
			
		||||
            point_38        NUMBER(20),
 | 
			
		||||
            point_member_11 NUMBER(20),
 | 
			
		||||
            point_member_12 NUMBER(20),
 | 
			
		||||
            point_member_21 NUMBER(20),
 | 
			
		||||
            point_member_22 NUMBER(20),
 | 
			
		||||
            point_member_23 NUMBER(20),
 | 
			
		||||
            point_member_24 NUMBER(20),
 | 
			
		||||
            point_member_31 NUMBER(20),
 | 
			
		||||
            point_member_32 NUMBER(20),
 | 
			
		||||
            point_member_33 NUMBER(20),
 | 
			
		||||
            point_member_34 NUMBER(20),
 | 
			
		||||
            point_member_35 NUMBER(20),
 | 
			
		||||
            point_member_36 NUMBER(20),
 | 
			
		||||
            point_member_37 NUMBER(20),
 | 
			
		||||
            point_member_38 NUMBER(20),
 | 
			
		||||
            point_type      NUMBER(1) default 0 not null,
 | 
			
		||||
            point_gift      NUMBER(1) default 0 not null,
 | 
			
		||||
            creation_time   DATE
 | 
			
		||||
        )
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <!-- 创建结算明细表会员索引 -->
 | 
			
		||||
    <update id="createCuMemberRetailDetailMemberIndex">
 | 
			
		||||
        create index ${tableName}_MEMBER
 | 
			
		||||
        on ${tableName}
 | 
			
		||||
        (
 | 
			
		||||
        PK_MEMBER
 | 
			
		||||
        )
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <update id="createCuMemberTreeParentIndex">
 | 
			
		||||
        create index ${tableName}_parent
 | 
			
		||||
        on
 | 
			
		||||
| 
						 | 
				
			
			@ -330,7 +383,7 @@
 | 
			
		|||
                                        customer_type, phone, pk_grade, pk_awards, account_status, pay_status, category,
 | 
			
		||||
                                        purchase_status, income_status, pk_team_code,
 | 
			
		||||
                                        pk_center_code, pk_vertex, pk_settle_country, is_real_name,
 | 
			
		||||
                                        pk_country, pk_rate, pay_time, region_address, system_type, enable_status)
 | 
			
		||||
                                        pk_country, pk_rate, pay_time, system_type, enable_status)
 | 
			
		||||
        select cm.pk_id,
 | 
			
		||||
               pk_parent,
 | 
			
		||||
               member_code,
 | 
			
		||||
| 
						 | 
				
			
			@ -352,7 +405,6 @@
 | 
			
		|||
               cm.pk_country,
 | 
			
		||||
               nvl(bc.pk_id, -1) pk_rate,
 | 
			
		||||
               cm.pay_time,
 | 
			
		||||
               nvl(cr.county, 0) country,
 | 
			
		||||
               cm.system_type,
 | 
			
		||||
               cm.is_activate
 | 
			
		||||
        from cu_member cm
 | 
			
		||||
| 
						 | 
				
			
			@ -365,8 +417,6 @@
 | 
			
		|||
              and effective_date <= sysdate
 | 
			
		||||
            group by pk_country) bc
 | 
			
		||||
                           on cm.pk_settle_country = bc.pk_country
 | 
			
		||||
                 left join cu_member_retail_region cr
 | 
			
		||||
                           on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
 | 
			
		||||
        where cm.del_flag = 0
 | 
			
		||||
    </insert>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -441,25 +491,6 @@
 | 
			
		|||
        </if>
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <!-- 初始化期间奖衔 -->
 | 
			
		||||
    <update id="updateCuMemberRetailRangeInitAward">
 | 
			
		||||
        update ${rangeTableName}
 | 
			
		||||
        set pk_awards = (select pk_id from bd_awards where awards_value = 0),
 | 
			
		||||
            pk_share_awards = (select pk_id from bd_awards where awards_value = 0)
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <!-- 初始化期间V5奖衔 -->
 | 
			
		||||
    <update id="updateCuMemberRetailRangeInitV5Award">
 | 
			
		||||
        update ${rangeTableName}
 | 
			
		||||
        set pk_awards = (select pk_id from bd_awards where awards_value = 5),
 | 
			
		||||
            pk_share_awards = (select pk_id from bd_awards where awards_value = 5)
 | 
			
		||||
        where pk_grade = (
 | 
			
		||||
            select pk_id
 | 
			
		||||
            from bd_grade
 | 
			
		||||
            where grade_value = 70 and del_flag = 0
 | 
			
		||||
        )
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <update id="createCuMemberRetailRangeSecondTable">
 | 
			
		||||
        CREATE TABLE ${tableName}
 | 
			
		||||
        (
 | 
			
		||||
| 
						 | 
				
			
			@ -512,20 +543,30 @@
 | 
			
		|||
            new_consume_pv         number(17,6) default 0 not null,
 | 
			
		||||
            consume_pv             number(17,6) default 0 not null,
 | 
			
		||||
            month_consume_pv       number(17,6) default 0 not null,
 | 
			
		||||
            new_consume_amount     number(17,6) default 0 not null,
 | 
			
		||||
            consume_amount         number(17,6) default 0 not null,
 | 
			
		||||
            month_consume_amount   number(17,6) default 0 not null,
 | 
			
		||||
 | 
			
		||||
            team_new_pv            number(17,6) default 0 not null,
 | 
			
		||||
            team_consume_pv        number(17,6) default 0 not null,
 | 
			
		||||
            team_month_pv          number(17,6) default 0 not null,
 | 
			
		||||
            team_new_amount        number(17,6) default 0 not null,
 | 
			
		||||
            team_consume_amount    number(17,6) default 0 not null,
 | 
			
		||||
            team_month_amount      number(17,6) default 0 not null,
 | 
			
		||||
 | 
			
		||||
            recommend_num          number(8) default 0 not null,
 | 
			
		||||
            team_num               number(8) default 0 not null,
 | 
			
		||||
            region_address         number(8) default 0 not null,
 | 
			
		||||
            big_team_pv            number(17,6) default 0 not null,
 | 
			
		||||
            small_team_pv          number(17,6) default 0 not null,
 | 
			
		||||
            all_team_new_pv        number(17,6) default 0 not null,
 | 
			
		||||
            all_team_consume_pv    number(17,6) default 0 not null,
 | 
			
		||||
            all_team_month_pv      number(17,6) default 0 not null
 | 
			
		||||
 | 
			
		||||
            reg_consume_new_amount number(17,6) default 0 not null,
 | 
			
		||||
            reg_consume_new_pv     number(17,6) default 0 not null,
 | 
			
		||||
            reg_team_new_amount    number(17,6) default 0 not null,
 | 
			
		||||
            reg_team_new_pv        number(17,6) default 0 not null,
 | 
			
		||||
            rep_consume_new_amount number(17,6) default 0 not null,
 | 
			
		||||
            rep_consume_new_pv     number(17,6) default 0 not null,
 | 
			
		||||
            rep_team_new_amount    number(17,6) default 0 not null,
 | 
			
		||||
            rep_team_new_pv        number(17,6) default 0 not null
 | 
			
		||||
        )
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -328,72 +328,4 @@
 | 
			
		|||
        and #{endDate} > so.pay_time
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <!-- 通用查询映射结果 -->
 | 
			
		||||
    <resultMap id="SaOrderItems" type="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
 | 
			
		||||
        <result column="PK_ORDER" property="pkOrder"/>
 | 
			
		||||
        <result column="PK_ID" property="pkId"/>
 | 
			
		||||
        <result column="PRICE" property="price"/>
 | 
			
		||||
        <result column="WARES_QUANTITY" property="waresQuantity"/>
 | 
			
		||||
        <result column="PK_WARES" property="pkWares"/>
 | 
			
		||||
        <result column="PK_PRODUCT" property="pkProduct"/>
 | 
			
		||||
        <result column="PK_WARES_DETAIL" property="pkWaresDetail"/>
 | 
			
		||||
        <result column="PK_WARES_SPECS_SKU" property="pkWaresSpecsSku"/>
 | 
			
		||||
        <collection property="waresRangeTmpList" ofType="com.hzs.common.domain.sale.wares.ext.WaresRangeTmp">
 | 
			
		||||
            <result column="RANGE_PRICE" property="rangePrice"/>
 | 
			
		||||
            <result column="RANGE_VALUE" property="rangeValue"/>
 | 
			
		||||
        </collection>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <!-- 查询商品级差数据 -->
 | 
			
		||||
    <select id="listOrderWaresRange" resultMap="SaOrderItems">
 | 
			
		||||
        select soi.pk_order,
 | 
			
		||||
        soi.pk_id,
 | 
			
		||||
        soi.price,
 | 
			
		||||
        soi.wares_quantity,
 | 
			
		||||
        bwr.pk_wares,
 | 
			
		||||
        bwr.pk_product,
 | 
			
		||||
        bwr.pk_wares_detail,
 | 
			
		||||
        bwr.pk_wares_specs_sku,
 | 
			
		||||
        bwr.price range_price,
 | 
			
		||||
        br.range_value
 | 
			
		||||
        from (select so.pk_id pk_order,
 | 
			
		||||
        soi.pk_id,
 | 
			
		||||
        soi.pk_wares,
 | 
			
		||||
        soi.pk_product,
 | 
			
		||||
        soi.pk_wares_detail,
 | 
			
		||||
        soi.pk_wares_specs_sku,
 | 
			
		||||
        soi.price,
 | 
			
		||||
        max(soi.wares_quantity) wares_quantity
 | 
			
		||||
        from sa_order so
 | 
			
		||||
        left join sa_order_items soi
 | 
			
		||||
        on soi.pk_order = so.pk_id
 | 
			
		||||
        where so.del_flag = 0
 | 
			
		||||
        and soi.del_flag = 0
 | 
			
		||||
        and soi.is_gift = 1
 | 
			
		||||
        and so.order_code in
 | 
			
		||||
        <foreach collection="orderList" item="items" open="(" separator="," close=")">
 | 
			
		||||
            #{items.orderCode}
 | 
			
		||||
        </foreach>
 | 
			
		||||
        group by so.pk_id,
 | 
			
		||||
        soi.pk_id,
 | 
			
		||||
        soi.pk_wares,
 | 
			
		||||
        soi.pk_product,
 | 
			
		||||
        soi.pk_wares_detail,
 | 
			
		||||
        soi.pk_wares_specs_sku,
 | 
			
		||||
        soi.price) soi
 | 
			
		||||
        left join bd_wares_range bwr
 | 
			
		||||
        on bwr.pk_wares = soi.pk_wares
 | 
			
		||||
        and bwr.pk_product = soi.pk_product
 | 
			
		||||
        and bwr.pk_wares_detail = soi.pk_wares_detail
 | 
			
		||||
        and bwr.pk_wares_specs_sku = soi.pk_wares_specs_sku
 | 
			
		||||
        left join bd_range br
 | 
			
		||||
        on br.pk_id = bwr.pk_range
 | 
			
		||||
        and br.del_flag = 0
 | 
			
		||||
        order by bwr.pk_wares,
 | 
			
		||||
        bwr.pk_product,
 | 
			
		||||
        bwr.pk_wares_detail,
 | 
			
		||||
        bwr.pk_wares_specs_sku,
 | 
			
		||||
        br.range_value
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,21 +2,14 @@ package com.hzs.member.account.controller.api;
 | 
			
		|||
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
 | 
			
		||||
import com.hzs.common.core.constant.CountryConstants;
 | 
			
		||||
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
import com.hzs.common.core.enums.EBusinessModule;
 | 
			
		||||
import com.hzs.common.core.enums.EYesNo;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.web.controller.BaseController;
 | 
			
		||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.domain.member.account.CuMemberBank;
 | 
			
		||||
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
 | 
			
		||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		||||
import com.hzs.common.util.TransactionUtils;
 | 
			
		||||
import com.hzs.member.account.dto.CuMemberBankParam;
 | 
			
		||||
import com.hzs.member.account.service.ICuMemberBankService;
 | 
			
		||||
import com.hzs.member.account.service.ICuMemberBaseService;
 | 
			
		||||
import com.hzs.member.account.service.ICuMemberWithdrawService;
 | 
			
		||||
import com.hzs.member.account.vo.CuMemberBankVO;
 | 
			
		||||
import com.hzs.member.sms.service.IApiAliSmsService;
 | 
			
		||||
| 
						 | 
				
			
			@ -37,184 +30,144 @@ import java.util.List;
 | 
			
		|||
public class ApiCuMemberBankController extends BaseController {
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBankService cuMemberBankService;
 | 
			
		||||
    private ICuMemberBankService iCuMemberBankService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBaseService iCuMemberBaseService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberWithdrawService cuMemberWithdrawService;
 | 
			
		||||
    private ICuMemberWithdrawService iCuMemberWithdrawService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private IApiAliSmsService iApiAliSmsService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IBankCardServiceApi bankCardServiceApi;
 | 
			
		||||
 | 
			
		||||
    IBankCardServiceApi iBankCardServiceApi;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否绑定银行卡
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     * 银行卡列表
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/is-bind")
 | 
			
		||||
    public AjaxResult isBindBank() {
 | 
			
		||||
    @GetMapping("/list")
 | 
			
		||||
    public AjaxResult getBankCardList() {
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        CuMemberBankVO cuMemberBank = cuMemberBankService.isBindBank(pkMember, pkCountry);
 | 
			
		||||
        String flag = null == cuMemberBank.getDefaultCard() ? EYesNo.NO.getValue() : EYesNo.YES.getValue();
 | 
			
		||||
        return AjaxResult.success().put("flag", flag);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 解绑银行卡
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/unbind-bank")
 | 
			
		||||
    public AjaxResult unbindBank(Long pkId) {
 | 
			
		||||
        Assert.notNull(pkId, TransactionUtils.getContent(FinanceMsgConstants.BANK_CARD_CANNOT_EMPTY));
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        //查询默认银行卡
 | 
			
		||||
        CuMemberBankVO cuMemberBankVO = cuMemberBankService.selectCuMemberBankById(pkId);
 | 
			
		||||
        //解绑默认银行卡需校验是否有进行的提现
 | 
			
		||||
        if (null != cuMemberBankVO) {
 | 
			
		||||
            List<Long> pkIds = cuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
 | 
			
		||||
            if (CollUtil.isNotEmpty(pkIds)) {
 | 
			
		||||
                return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_APPROVAL));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(cuMemberBankService.unbindBank(pkId, pkMember));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验开户名
 | 
			
		||||
     *
 | 
			
		||||
     * @param accountName 开户名
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/check-account-name")
 | 
			
		||||
    public AjaxResult checkAccountName(String accountName) {
 | 
			
		||||
        Assert.notNull(accountName, TransactionUtils.getContent(FinanceMsgConstants.ACCOUNT_NAME_CANNOT_EMPTY));
 | 
			
		||||
        String memberCode = SecurityUtils.getMemberCode();
 | 
			
		||||
        String flag = memberCode.equals(accountName) ? EYesNo.YES.getValue() : EYesNo.NO.getValue();
 | 
			
		||||
        return AjaxResult.success().put("flag", flag);
 | 
			
		||||
        return AjaxResult.success(iCuMemberBankService.selectBankCardByPkMember(pkMember, pkCountry));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 银行卡四要素验证
 | 
			
		||||
     *
 | 
			
		||||
     * @param memberBankParam 银行卡信息
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/verify-bank-card")
 | 
			
		||||
    public AjaxResult verifyBankCard(@RequestBody CuMemberBankParam memberBankParam) {
 | 
			
		||||
        BankCardParam bankCard = BankCardParam.builder().name(memberBankParam.getAccountName())
 | 
			
		||||
                .idCard(memberBankParam.getIdCard()).mobile(memberBankParam.getPhone())
 | 
			
		||||
                .bankCard(StringUtils.deleteWhitespace(memberBankParam.getCardNumber())).build();
 | 
			
		||||
        R result = bankCardServiceApi.verifyBankCard(bankCard);
 | 
			
		||||
        if (StringUtils.isEmpty(memberBankParam.getCardNumber())) {
 | 
			
		||||
            return AjaxResult.error("银行卡号不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(memberBankParam.getIdCard())) {
 | 
			
		||||
            return AjaxResult.error("身份证号码不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(memberBankParam.getAccountName())) {
 | 
			
		||||
            return AjaxResult.error("开户姓名不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(memberBankParam.getPhone())) {
 | 
			
		||||
            return AjaxResult.error("手机号不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        BankCardParam bankCard = BankCardParam.builder()
 | 
			
		||||
                .name(memberBankParam.getAccountName())
 | 
			
		||||
                .idCard(memberBankParam.getIdCard())
 | 
			
		||||
                .mobile(memberBankParam.getPhone())
 | 
			
		||||
                .bankCard(StringUtils.deleteWhitespace(memberBankParam.getCardNumber()))
 | 
			
		||||
                .build();
 | 
			
		||||
        R<?> result = iBankCardServiceApi.verifyBankCard(bankCard);
 | 
			
		||||
        return result.isSuccess() ? AjaxResult.success() : AjaxResult.error(result.getMsg());
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 绑定银行卡
 | 
			
		||||
     *
 | 
			
		||||
     * @param cuMemberBankParam 银行卡入参
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/add")
 | 
			
		||||
    @RepeatSubmitSimple
 | 
			
		||||
    public AjaxResult addBankInfo(@RequestBody CuMemberBankParam cuMemberBankParam) {
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        //是否配置提现白名单
 | 
			
		||||
        String configWhite = getConfigWhite(pkCountry, pkMember);
 | 
			
		||||
        //海外不校验验证码、四要素 国内配置了提现白名单不校验
 | 
			
		||||
        if (pkCountry.equals(CountryConstants.CHINA_COUNTRY) && configWhite.equals(EYesNo.NO.getValue())) {
 | 
			
		||||
            String verificationCode = cuMemberBankParam.getVerificationCode();
 | 
			
		||||
            if (StringUtils.isEmpty(verificationCode)) {
 | 
			
		||||
                return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
 | 
			
		||||
            }
 | 
			
		||||
            //支行名称
 | 
			
		||||
            String subBankName = cuMemberBankParam.getSubBankName();
 | 
			
		||||
            if (StringUtils.isEmpty(subBankName)) {
 | 
			
		||||
                return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.OPENING_BRANCH_CANNOT_EMPTY));
 | 
			
		||||
            }
 | 
			
		||||
            //银行卡号去空格
 | 
			
		||||
            String cardNumber = cuMemberBankParam.getCardNumber();
 | 
			
		||||
            cuMemberBankParam.setCardNumber(StringUtils.deleteWhitespace(cardNumber));
 | 
			
		||||
 | 
			
		||||
            String message = iApiAliSmsService.checkCode(cuMemberBankParam.getPhone(), verificationCode, null, pkMember);
 | 
			
		||||
            if (null != message) {
 | 
			
		||||
                return AjaxResult.error(message);
 | 
			
		||||
            }
 | 
			
		||||
        if (null == cuMemberBankParam.getPkBank()) {
 | 
			
		||||
            return AjaxResult.error("银行名称不能为空");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(cuMemberBankParam.getSubBankName())) {
 | 
			
		||||
            return AjaxResult.error("开户支行不能为空");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(cuMemberBankParam.getCardNumber())) {
 | 
			
		||||
            return AjaxResult.error("银行卡号不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(cuMemberBankParam.getAccountName())) {
 | 
			
		||||
            return AjaxResult.error("开户姓名不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(cuMemberBankParam.getIdCard())) {
 | 
			
		||||
            return AjaxResult.error("证件号码不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(cuMemberBankParam.getPhone())) {
 | 
			
		||||
            return AjaxResult.error("联系方式不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        String verificationCode = cuMemberBankParam.getVerificationCode();
 | 
			
		||||
        if (StringUtils.isEmpty(verificationCode)) {
 | 
			
		||||
            return AjaxResult.error("验证码不能为空!");
 | 
			
		||||
        }
 | 
			
		||||
        String message = iApiAliSmsService.checkCode(cuMemberBankParam.getPhone(), verificationCode, null, pkMember);
 | 
			
		||||
        if (null != message) {
 | 
			
		||||
            return AjaxResult.error(message);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 银行卡号去空格
 | 
			
		||||
        String cardNumber = cuMemberBankParam.getCardNumber();
 | 
			
		||||
        cuMemberBankParam.setCardNumber(StringUtils.deleteWhitespace(cardNumber));
 | 
			
		||||
        cuMemberBankParam.setPkCountry(pkCountry);
 | 
			
		||||
        cuMemberBankParam.setPkMember(pkMember);
 | 
			
		||||
        return toAjax(cuMemberBankService.saveMemberBank(cuMemberBankParam));
 | 
			
		||||
        return toAjax(iCuMemberBankService.saveMemberBank(cuMemberBankParam));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/list")
 | 
			
		||||
    public AjaxResult getBankCardList() {
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
    /**
 | 
			
		||||
     * 解绑银行卡
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/unbind-bank")
 | 
			
		||||
    public AjaxResult unbindBank(Long pkId) {
 | 
			
		||||
        Assert.notNull(pkId, "银行卡号不能为空!");
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        return AjaxResult.success(cuMemberBankService.selectBankCardByPkMember(pkMember, pkCountry));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/default-bank")
 | 
			
		||||
    public AjaxResult getDefaultBankCard() {
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        return AjaxResult.success(cuMemberBankService.isBindBank(pkMember, pkCountry));
 | 
			
		||||
        // 查询默认银行卡
 | 
			
		||||
        CuMemberBankVO cuMemberBankVO = iCuMemberBankService.selectCuMemberBankById(pkId);
 | 
			
		||||
        // 解绑默认银行卡需校验是否有进行的提现
 | 
			
		||||
        if (null != cuMemberBankVO) {
 | 
			
		||||
            List<Long> pkIds = iCuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
 | 
			
		||||
            if (CollUtil.isNotEmpty(pkIds)) {
 | 
			
		||||
                return AjaxResult.error("提现正在审批中,请稍后再试");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(iCuMemberBankService.unbindBank(pkId, pkMember));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改默认银行卡
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkId ID
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/update-default")
 | 
			
		||||
    public AjaxResult updateDefault(Long pkId) {
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        //查询银行卡
 | 
			
		||||
        CuMemberBank cuMemberBank = cuMemberBankService.getById(pkId);
 | 
			
		||||
        //解绑默认银行卡需校验是否有进行的提现
 | 
			
		||||
        // 查询银行卡
 | 
			
		||||
        CuMemberBank cuMemberBank = iCuMemberBankService.getById(pkId);
 | 
			
		||||
        // 解绑默认银行卡需校验是否有进行的提现
 | 
			
		||||
        if (null != cuMemberBank) {
 | 
			
		||||
            List<Long> pkIds = cuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
 | 
			
		||||
            List<Long> pkIds = iCuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
 | 
			
		||||
            if (CollUtil.isNotEmpty(pkIds)) {
 | 
			
		||||
                return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_APPROVAL));
 | 
			
		||||
                return AjaxResult.error("提现正在审批中,请稍后再试");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return toAjax(cuMemberBankService.updateDefault(pkId, pkMember, pkCountry));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询是否设置提现白名单
 | 
			
		||||
     *
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/is-white-list")
 | 
			
		||||
    public AjaxResult isWhiteList() {
 | 
			
		||||
        String flag = getConfigWhite(SecurityUtils.getPkCountry(), SecurityUtils.getUserId());
 | 
			
		||||
        return AjaxResult.success().put("flag", flag);
 | 
			
		||||
        return toAjax(iCuMemberBankService.updateDefault(pkId, pkMember, pkCountry));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询提现白名单配置
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkCountry 国家ID
 | 
			
		||||
     * @param pkMember  会员ID
 | 
			
		||||
     * @return String
 | 
			
		||||
     * 默认银行卡
 | 
			
		||||
     */
 | 
			
		||||
    private String getConfigWhite(Integer pkCountry, Long pkMember) {
 | 
			
		||||
        BdTradeWhiteConfig bdTradeWhiteConfig = iCuMemberBaseService.selectConfigWhite(pkMember, pkCountry, EBusinessModule.WITHDRAWAL.getValue());
 | 
			
		||||
        return null == bdTradeWhiteConfig ? EYesNo.NO.getValue() : EYesNo.YES.getValue();
 | 
			
		||||
    @GetMapping("/default-bank")
 | 
			
		||||
    public AjaxResult getDefaultBankCard() {
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        return AjaxResult.success(iCuMemberBankService.isBindBank(pkMember, pkCountry));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -313,10 +313,15 @@ public class ApiCuMemberTransferController extends BaseController {
 | 
			
		|||
        Integer toPkAccount = accountServiceApi.getPkAccount(pkAccount).getData();
 | 
			
		||||
 | 
			
		||||
        CuMemberTransfer cuMemberTransfer = CuMemberTransfer.builder().pkMember(pkMember)
 | 
			
		||||
                .pkAccount(pkAccount).transferCode(code).toPkMember(toPkMember)
 | 
			
		||||
                .pkToAccount(toPkAccount).pkRate(currencyDTO.getPkId())
 | 
			
		||||
                .transferMoney(transferMoney).remarks(cuMemberTransferParam.getRemarks())
 | 
			
		||||
                .serviceCharge(serviceRatio).issuedAmount(issuedAmount)
 | 
			
		||||
                .pkAccount(pkAccount)
 | 
			
		||||
                .transferCode(code)
 | 
			
		||||
                .toPkMember(toPkMember)
 | 
			
		||||
                .pkToAccount(toPkAccount)
 | 
			
		||||
                .pkRate(currencyDTO.getPkId())
 | 
			
		||||
                .transferMoney(transferMoney)
 | 
			
		||||
                .remarks(cuMemberTransferParam.getRemarks())
 | 
			
		||||
                .serviceCharge(serviceRatio)
 | 
			
		||||
                .issuedAmount(issuedAmount)
 | 
			
		||||
                .build();
 | 
			
		||||
        cuMemberTransfer.setPkCountry(pkCountry);
 | 
			
		||||
        cuMemberTransfer.setPkCreator(pkMember);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,6 @@ package com.hzs.member.account.controller.api;
 | 
			
		|||
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
 | 
			
		||||
import com.hzs.common.core.constant.CountryConstants;
 | 
			
		||||
import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		||||
import com.hzs.common.core.constant.MemberFieldConstants;
 | 
			
		||||
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
 | 
			
		||||
| 
						 | 
				
			
			@ -25,6 +24,7 @@ import com.hzs.member.account.service.ICuMemberAccountService;
 | 
			
		|||
import com.hzs.member.account.service.ICuMemberBankService;
 | 
			
		||||
import com.hzs.member.account.service.ICuMemberBaseService;
 | 
			
		||||
import com.hzs.member.account.service.ICuMemberWithdrawService;
 | 
			
		||||
import com.hzs.member.account.vo.CuMemberBankVO;
 | 
			
		||||
import com.hzs.member.account.vo.CuMemberWithdrawVO;
 | 
			
		||||
import com.hzs.member.account.vo.CuMemberWithdrawalAddVO;
 | 
			
		||||
import com.hzs.member.base.service.ICuMemberService;
 | 
			
		||||
| 
						 | 
				
			
			@ -45,18 +45,18 @@ import java.util.List;
 | 
			
		|||
public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBankService cuMemberBankService;
 | 
			
		||||
    private ICuMemberBankService iCuMemberBankService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberService cuMemberService;
 | 
			
		||||
    private ICuMemberService iCuMemberService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBaseService baseService;
 | 
			
		||||
    private ICuMemberBaseService iCuMemberBaseService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberAccountService cuMemberAccountService;
 | 
			
		||||
    private ICuMemberAccountService iCuMemberAccountService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberWithdrawService cuMemberWithdrawService;
 | 
			
		||||
    private ICuMemberWithdrawService iCuMemberWithdrawService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IWithdrawalServiceApi withdrawalServiceApi;
 | 
			
		||||
    IWithdrawalServiceApi iWithdrawalServiceApi;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现时展示信息
 | 
			
		||||
| 
						 | 
				
			
			@ -74,18 +74,18 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ENTER_WITHDRAWAL_AMOUNT));
 | 
			
		||||
        }
 | 
			
		||||
        //提现配置信息
 | 
			
		||||
        BdWithdrawal bdWithdrawal = withdrawalServiceApi.queryWithdrawal(pkCountry, pkAccount).getData();
 | 
			
		||||
        BdWithdrawal bdWithdrawal = iWithdrawalServiceApi.queryWithdrawal(pkCountry, pkAccount).getData();
 | 
			
		||||
        if (null == bdWithdrawal) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.CONFIGURE_WITHDRAWAL_INFO));
 | 
			
		||||
        }
 | 
			
		||||
        CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
 | 
			
		||||
        Integer accountValue = baseService.getAccountValueById(pkAccount);
 | 
			
		||||
        CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
 | 
			
		||||
        Integer accountValue = iCuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
        //余额
 | 
			
		||||
        BigDecimal balance = ReflectUtils.invokeGetter(cuMemberAccount, MemberFieldConstants.ACCOUNT + accountValue);
 | 
			
		||||
        //可用金额
 | 
			
		||||
        BigDecimal availableBalance = getAvailableBalance(accountValue, cuMemberAccount);
 | 
			
		||||
        //手续费金额
 | 
			
		||||
        BigDecimal serviceChargeAmount = accountValue.equals(EAccount.BONUS.getValue()) ? cuMemberWithdrawService.computeServiceCharge(pkCountry, cashAmount) : BigDecimal.ZERO;
 | 
			
		||||
        BigDecimal serviceChargeAmount = accountValue.equals(EAccount.BONUS.getValue()) ? iCuMemberWithdrawService.computeServiceCharge(pkCountry, cashAmount) : BigDecimal.ZERO;
 | 
			
		||||
 | 
			
		||||
        CuMemberWithdrawalAddVO cuMemberWithdrawalAddVO = CuMemberWithdrawalAddVO.builder()
 | 
			
		||||
                .minAmount(bdWithdrawal.getMinAmount()).maxAmount(bdWithdrawal.getMaxAmount())
 | 
			
		||||
| 
						 | 
				
			
			@ -100,84 +100,83 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
     * @param cuMemberWithdrawParam 提现入参
 | 
			
		||||
     * @return AjaxResult
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/add")
 | 
			
		||||
    @RepeatSubmitSimple
 | 
			
		||||
    @PostMapping("/add")
 | 
			
		||||
    public AjaxResult addWithdrawInfo(@RequestBody CuMemberWithdrawParam cuMemberWithdrawParam) {
 | 
			
		||||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        Long pkMember = SecurityUtils.getUserId();
 | 
			
		||||
        String memberCode = SecurityUtils.getMemberCode();
 | 
			
		||||
 | 
			
		||||
        CuMemberExt cuMemberLoginExt = cuMemberService.getMemberByCode(memberCode);
 | 
			
		||||
        CuMemberExt cuMemberLoginExt = iCuMemberService.getMemberById(pkMember);
 | 
			
		||||
        if (null == cuMemberLoginExt) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.RECHAGER_USER_NOT_EXIST));
 | 
			
		||||
            return AjaxResult.error("会员不存在,请核对后再操作!");
 | 
			
		||||
        }
 | 
			
		||||
        //获取银行卡信息
 | 
			
		||||
//        Long pkBank = cuMemberWithdrawParam.getPkBank();
 | 
			
		||||
//        CuMemberBankVO memberBank = cuMemberBankService.selectCuMemberBankById(pkBank);
 | 
			
		||||
//        if (null == memberBank) {
 | 
			
		||||
//            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.BIND_BANK_CARD));
 | 
			
		||||
//        }
 | 
			
		||||
        Long pkBank = cuMemberWithdrawParam.getPkBank();
 | 
			
		||||
        CuMemberBankVO memberBank = iCuMemberBankService.selectCuMemberBankById(pkBank);
 | 
			
		||||
        if (null == memberBank) {
 | 
			
		||||
            return AjaxResult.error("请绑定银行卡");
 | 
			
		||||
        }
 | 
			
		||||
        //校验支付密码
 | 
			
		||||
        String payPwd = cuMemberLoginExt.getPayPwd();
 | 
			
		||||
        if (StringUtils.isEmpty(payPwd) || !SecurityUtils.matchesPassword(cuMemberWithdrawParam.getPayPwd(), payPwd)) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.PAYMENT_PASSWORD_ERROR));
 | 
			
		||||
            return AjaxResult.error("支付密码错误!");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //查询提现账户
 | 
			
		||||
        Integer pkAccount = cuMemberWithdrawParam.getPkAccount();
 | 
			
		||||
        if (null == pkAccount) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECT_WITHDRAWAL_ACCOUNT));
 | 
			
		||||
            return AjaxResult.error("请选择提现账户");
 | 
			
		||||
        }
 | 
			
		||||
        Integer accountsType = baseService.getAccountValueById(pkAccount);
 | 
			
		||||
        Integer accountsType = iCuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
 | 
			
		||||
        //校验是否实名
 | 
			
		||||
        Boolean existRealName = baseService.isExistRealName(pkMember, pkCountry, EBusinessModule.WITHDRAWAL.getValue());
 | 
			
		||||
        // 校验是否实名
 | 
			
		||||
        Boolean existRealName = iCuMemberBaseService.isExistRealName(pkMember, pkCountry, EBusinessModule.WITHDRAWAL.getValue());
 | 
			
		||||
        if (!existRealName) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.REAL_NAME_NOT_EXIST));
 | 
			
		||||
            return AjaxResult.error("请先实名认证");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //查询账户信息
 | 
			
		||||
        CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
 | 
			
		||||
        CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
 | 
			
		||||
        //是否可提现
 | 
			
		||||
        Integer isWithdraw = cuMemberAccount.getIsWithdraw();
 | 
			
		||||
        //不允许提现
 | 
			
		||||
        if (isWithdraw.equals(EYesNo.NO.getIntValue())) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.NOT_ALLOWED_WITHDRAWAL));
 | 
			
		||||
            return AjaxResult.error("不允许提现");
 | 
			
		||||
        }
 | 
			
		||||
        //提现配置信息
 | 
			
		||||
        BdWithdrawal bdWithdrawal = withdrawalServiceApi.queryWithdrawal(pkCountry, pkAccount).getData();
 | 
			
		||||
        BdWithdrawal bdWithdrawal = iWithdrawalServiceApi.queryWithdrawal(pkCountry, pkAccount).getData();
 | 
			
		||||
        //提现次数
 | 
			
		||||
        Integer withdrawalNumber = bdWithdrawal.getWithdrawalNumber();
 | 
			
		||||
        // 只能发起配置项次数待审核提现 必须通过或者驳回之后才能发起下一笔
 | 
			
		||||
        List<CuMemberWithdraw> memberWithdraws = cuMemberWithdrawService.getWithdrawTimes(pkMember);
 | 
			
		||||
        List<CuMemberWithdraw> memberWithdraws = iCuMemberWithdrawService.getWithdrawTimes(pkMember);
 | 
			
		||||
        if (CollUtil.isNotEmpty(memberWithdraws) && memberWithdraws.size() >= withdrawalNumber) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.EXCEEDING_WITHDRAWALS_NUMBER));
 | 
			
		||||
            return AjaxResult.error("超过提现次数");
 | 
			
		||||
        }
 | 
			
		||||
        //提现金额校验
 | 
			
		||||
        BigDecimal minAmount = bdWithdrawal.getMinAmount();
 | 
			
		||||
        BigDecimal maxAmount = bdWithdrawal.getMaxAmount();
 | 
			
		||||
        if (null == minAmount || null == maxAmount) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.CONFIGURE_WITHDRAWAL_AMOUNT_LIMIT));
 | 
			
		||||
            return AjaxResult.error("请配置提现金额限制");
 | 
			
		||||
        }
 | 
			
		||||
        BigDecimal cashAmount = cuMemberWithdrawParam.getCashAmount();
 | 
			
		||||
        if (null == cashAmount) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ENTER_WITHDRAWAL_AMOUNT));
 | 
			
		||||
            return AjaxResult.error("请输入提现金额");
 | 
			
		||||
        }
 | 
			
		||||
        //提现金额是否输入整数值
 | 
			
		||||
        Integer isRounding = bdWithdrawal.getIsRounding();
 | 
			
		||||
        if (isRounding.equals(EYesNo.YES.getIntValue()) && Boolean.TRUE.equals(!isIntegerValue(cashAmount))) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ENTER_INTEGER_VALUE));
 | 
			
		||||
            return AjaxResult.error("请输入整数值");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (cashAmount.compareTo(minAmount) < 0) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_AMOUNT_GREATER_MINIMUM_AMOUNT));
 | 
			
		||||
            return AjaxResult.error("提现金额必须大于最低提现金额");
 | 
			
		||||
        }
 | 
			
		||||
        if (cashAmount.compareTo(maxAmount) > 0) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_AMOUNT_LESS_MAXIMUM_AMOUNT));
 | 
			
		||||
            return AjaxResult.error("提现金额必须小于最高提现金额");
 | 
			
		||||
        }
 | 
			
		||||
        //校验倍数
 | 
			
		||||
        if (pkCountry.equals(CountryConstants.CHINA_COUNTRY) && !remainder(cashAmount)) {
 | 
			
		||||
            return AjaxResult.error(FinanceMsgConstants.WITHDRAW_AMOUNT_MULTIPLE);
 | 
			
		||||
        if (!remainder(cashAmount)) {
 | 
			
		||||
            return AjaxResult.error("提现金额必须为100的整数倍");
 | 
			
		||||
        }
 | 
			
		||||
        //本次应缴个税
 | 
			
		||||
        BigDecimal payIncomeTax = BigDecimal.ZERO;
 | 
			
		||||
| 
						 | 
				
			
			@ -189,42 +188,48 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
        //奖金账户余额(兼容奖金账户奖金余额小于可提现金额时)
 | 
			
		||||
        if (accountsType.equals(EAccount.BONUS.getValue())) {
 | 
			
		||||
            //账户余额
 | 
			
		||||
            BigDecimal accountBalance = cuMemberWithdrawService.getAccountBalance(accountsType, cuMemberAccount);
 | 
			
		||||
            BigDecimal accountBalance = iCuMemberWithdrawService.getAccountBalance(accountsType, cuMemberAccount);
 | 
			
		||||
            //可提现余额
 | 
			
		||||
            BigDecimal balance = getAvailableBalance(accountsType, cuMemberAccount);
 | 
			
		||||
            //余额不足
 | 
			
		||||
            if (balance.compareTo(cashAmount) < 0 || accountBalance.compareTo(cashAmount) < 0) {
 | 
			
		||||
                return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.BALANCE_NOT_ENOUGH));
 | 
			
		||||
                return AjaxResult.error("余额不足");
 | 
			
		||||
            }
 | 
			
		||||
            //奖金账户个税、手续费根据配置、其它用户暂不收取
 | 
			
		||||
            //本次应缴个税
 | 
			
		||||
            payIncomeTax = cuMemberWithdrawService.computeIncomeTaxValue(pkMember, cashAmount, pkCountry, minAmount);
 | 
			
		||||
            payIncomeTax = iCuMemberWithdrawService.computeIncomeTaxValue(pkMember, cashAmount, pkCountry, minAmount);
 | 
			
		||||
            //手续费金额
 | 
			
		||||
            serviceChargeAmount = cuMemberWithdrawService.computeServiceCharge(pkCountry, cashAmount);
 | 
			
		||||
            serviceChargeAmount = iCuMemberWithdrawService.computeServiceCharge(pkCountry, cashAmount);
 | 
			
		||||
            issuedAmount = cashAmount.subtract(payIncomeTax).subtract(serviceChargeAmount);
 | 
			
		||||
        } else { //其它用户的余额
 | 
			
		||||
            BigDecimal balance = getAvailableBalance(accountsType, cuMemberAccount);
 | 
			
		||||
            //余额不足
 | 
			
		||||
            if (balance.compareTo(cashAmount) < 0) {
 | 
			
		||||
                return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.BALANCE_NOT_ENOUGH));
 | 
			
		||||
                return AjaxResult.error("余额不足");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        String code = CommonUtil.createSerialNumber(EOrderPrefix.WITHDRAWAL_CODE.getValue());
 | 
			
		||||
        //汇率
 | 
			
		||||
        CurrencyDTO currencyDTO = baseService.getCurrency(pkCountry);
 | 
			
		||||
        CurrencyDTO currencyDTO = iCuMemberBaseService.getCurrency(pkCountry);
 | 
			
		||||
 | 
			
		||||
        CuMemberWithdraw cuMemberWithdraw = CuMemberWithdraw.builder().pkMember(pkMember)
 | 
			
		||||
//                .pkAccount(pkAccount).pkBank(pkBank).remarks(cuMemberWithdrawParam.getRemarks())
 | 
			
		||||
                .pkAccount(pkAccount).pkBank(0L).remarks(cuMemberWithdrawParam.getRemarks())
 | 
			
		||||
                .pkRate(currencyDTO.getPkId()).cashAmount(cashAmount)
 | 
			
		||||
                .serviceCharge(serviceChargeAmount).incomeTax(payIncomeTax)
 | 
			
		||||
                .issuedAmount(issuedAmount).withdrawCode(code).build();
 | 
			
		||||
        CuMemberWithdraw cuMemberWithdraw = CuMemberWithdraw.builder()
 | 
			
		||||
                .pkMember(pkMember)
 | 
			
		||||
                .pkAccount(pkAccount)
 | 
			
		||||
                .pkBank(pkBank)
 | 
			
		||||
                .remarks(cuMemberWithdrawParam.getRemarks())
 | 
			
		||||
                .pkRate(currencyDTO.getPkId())
 | 
			
		||||
                .cashAmount(cashAmount)
 | 
			
		||||
                .serviceCharge(serviceChargeAmount)
 | 
			
		||||
                .incomeTax(payIncomeTax)
 | 
			
		||||
                .issuedAmount(issuedAmount)
 | 
			
		||||
                .withdrawCode(code)
 | 
			
		||||
                .build();
 | 
			
		||||
        cuMemberWithdraw.setApproveState(EApproveStatus.WAIT_SUBMIT.getValue());
 | 
			
		||||
        cuMemberWithdraw.setDelFlag(EDelFlag.UN_DELETE.getValue());
 | 
			
		||||
        cuMemberWithdraw.setPkCountry(pkCountry);
 | 
			
		||||
        cuMemberWithdraw.setPkCreator(pkMember);
 | 
			
		||||
        return toAjax(cuMemberWithdrawService.saveMemberWithdrawInfo(cuMemberWithdraw));
 | 
			
		||||
        return toAjax(iCuMemberWithdrawService.saveMemberWithdrawInfo(cuMemberWithdraw));
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -242,7 +247,6 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
        return Boolean.FALSE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取余额
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -261,7 +265,7 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            //其它配置账户余额
 | 
			
		||||
            balance = cuMemberWithdrawService.getAccountBalance(accountsType, cuMemberAccount);
 | 
			
		||||
            balance = iCuMemberWithdrawService.getAccountBalance(accountsType, cuMemberAccount);
 | 
			
		||||
        }
 | 
			
		||||
        return balance;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -292,7 +296,7 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
    @GetMapping("/list-detail")
 | 
			
		||||
    public TableDataInfo memberWithdrawDetail() {
 | 
			
		||||
        startPage();
 | 
			
		||||
        Object[] objects = cuMemberWithdrawService.selectMemberWithdrawListByPkMember(SecurityUtils.getUserId(), SecurityUtils.getPkCountry());
 | 
			
		||||
        Object[] objects = iCuMemberWithdrawService.selectMemberWithdrawListByPkMember(SecurityUtils.getUserId(), SecurityUtils.getPkCountry());
 | 
			
		||||
        //处理分页
 | 
			
		||||
        TableDataInfo tableDataInfo = getDataTable((List<CuMemberWithdrawExt>) objects[0]);
 | 
			
		||||
        tableDataInfo.setRows((List<CuMemberWithdrawVO>) objects[1]);
 | 
			
		||||
| 
						 | 
				
			
			@ -301,13 +305,12 @@ public class ApiCuMemberWithdrawController extends BaseController {
 | 
			
		|||
 | 
			
		||||
    @GetMapping("/cancel")
 | 
			
		||||
    public AjaxResult cancelMemberWithdrawD(Long pkId) {
 | 
			
		||||
        CuMemberWithdraw cuMemberWithdraw = cuMemberWithdrawService.getById(pkId);
 | 
			
		||||
        CuMemberWithdraw cuMemberWithdraw = iCuMemberWithdrawService.getById(pkId);
 | 
			
		||||
        if (cuMemberWithdraw.getApproveState().equals(EApproveStatus.WAIT_SUBMIT.getValue()) && cuMemberWithdraw.getStatus().equals(EWithdrawStatus.NORMAL.getValue())) {
 | 
			
		||||
            return toAjax(cuMemberWithdrawService.updateWithdrawStatusByPkId(pkId, SecurityUtils.getUserId()));
 | 
			
		||||
            return toAjax(iCuMemberWithdrawService.updateWithdrawStatusByPkId(pkId, SecurityUtils.getUserId()));
 | 
			
		||||
        } else {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_NOT_CANCEL));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,30 +35,22 @@ import java.util.*;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * 会员提现表 前端控制器
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2022-09-06
 | 
			
		||||
 */
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/manager/withdraw")
 | 
			
		||||
public class CuMemberWithdrawController extends BaseController {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private UserTokenService userTokenService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBaseService baseService;
 | 
			
		||||
 | 
			
		||||
    private ICuMemberBaseService iCuMemberBaseService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberWithdrawService cuMemberWithdrawService;
 | 
			
		||||
 | 
			
		||||
    ICuMemberWithdrawService iCuMemberWithdrawService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ITransactionCommonService iTransactionCommonService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IMenuColumnServiceApi menuColumnServiceApi;
 | 
			
		||||
 | 
			
		||||
    IMenuColumnServiceApi iMenuColumnServiceApi;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发起签呈显示
 | 
			
		||||
| 
						 | 
				
			
			@ -72,11 +64,11 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
        if (CollUtil.isEmpty(pkIds)) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECT_INITIATING_SIGNATURE_RECORD));
 | 
			
		||||
        }
 | 
			
		||||
        List<CuMemberWithdrawVO> cuMemberWithdrawList = cuMemberWithdrawService.checkWithdrawPetitionByState(pkIds, EApproveStatus.WAIT_SUBMIT.getValue());
 | 
			
		||||
        List<CuMemberWithdrawVO> cuMemberWithdrawList = iCuMemberWithdrawService.checkWithdrawPetitionByState(pkIds, EApproveStatus.WAIT_SUBMIT.getValue());
 | 
			
		||||
        if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECTED_RECORD_DUPLICATE_SIGNATURE_RECORD));
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(cuMemberWithdrawService.showMemberWithdrawPetition(pkIds, null));
 | 
			
		||||
        return AjaxResult.success(iCuMemberWithdrawService.showMemberWithdrawPetition(pkIds, null));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +83,7 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
        LoginUser loginUser = userTokenService.getLoginUser();
 | 
			
		||||
        cuMemberPetitionVO.setLoginUser(loginUser);
 | 
			
		||||
        cuMemberPetitionVO.setPkCreat(SecurityUtils.getUserId());
 | 
			
		||||
        return AjaxResult.success(cuMemberWithdrawService.confirmWithdrawPetition(cuMemberPetitionVO));
 | 
			
		||||
        return AjaxResult.success(iCuMemberWithdrawService.confirmWithdrawPetition(cuMemberPetitionVO));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +109,7 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
        startPage();
 | 
			
		||||
        Object[] objects = cuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO);
 | 
			
		||||
        Object[] objects = iCuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO);
 | 
			
		||||
        //处理分页
 | 
			
		||||
        TableDataInfo tableDataInfo = getDataTable((List<CuMemberWithdrawExt>) objects[0]);
 | 
			
		||||
        tableDataInfo.setRows((List<CuMemberWithdrawVO>) objects[1]);
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +118,7 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 充值明细列表导出
 | 
			
		||||
     * 明细列表导出
 | 
			
		||||
     *
 | 
			
		||||
     * @param response           入参
 | 
			
		||||
     * @param cuMemberWithdrawVO 查询入参
 | 
			
		||||
| 
						 | 
				
			
			@ -137,18 +129,18 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
        Integer pkCountry = SecurityUtils.getPkCountry();
 | 
			
		||||
        cuMemberWithdrawVO.setPkCountry(pkCountry);
 | 
			
		||||
        cuMemberWithdrawVO.setSystemType(SecurityUtils.getSystemType());
 | 
			
		||||
        List<CuMemberWithdrawVO> cuMemberWithdrawList = (List<CuMemberWithdrawVO>) cuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO)[1];
 | 
			
		||||
        List<CuMemberWithdrawVO> cuMemberWithdrawList = (List<CuMemberWithdrawVO>) iCuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO)[1];
 | 
			
		||||
        //枚举翻译
 | 
			
		||||
        Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveStatus.values(), EWithdrawStatus.values());
 | 
			
		||||
        if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
 | 
			
		||||
            for (CuMemberWithdrawVO memberWithdraw : cuMemberWithdrawList) {
 | 
			
		||||
                Integer pkAccount = memberWithdraw.getPkAccount();
 | 
			
		||||
                memberWithdraw.setPkAccountVal(baseService.getAccountTranslateFromDataBase(pkAccount));
 | 
			
		||||
                memberWithdraw.setPkAccountVal(iCuMemberBaseService.getAccountTranslateFromDataBase(pkAccount));
 | 
			
		||||
                memberWithdraw.setApproveStateVal(transactionMap.get(EnumsPrefixConstants.APPROVE_STATUS + memberWithdraw.getApproveState()));
 | 
			
		||||
                memberWithdraw.setStatusVal(transactionMap.get(EnumsPrefixConstants.ENU_WITHDRAW_STATUS + memberWithdraw.getStatus()));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        ExcelUtil<CuMemberWithdrawVO> util = new ExcelUtil<>(CuMemberWithdrawVO.class, menuColumnServiceApi.queryMenuColumn("CashDetails", SecurityUtils.getUserId()).getData());
 | 
			
		||||
        ExcelUtil<CuMemberWithdrawVO> util = new ExcelUtil<>(CuMemberWithdrawVO.class, iMenuColumnServiceApi.queryMenuColumn("CashDetails", SecurityUtils.getUserId()).getData());
 | 
			
		||||
        util.exportExcel(response, cuMemberWithdrawList, TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_DETAILS_EXPORT));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -162,7 +154,7 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
    @GetMapping("/details")
 | 
			
		||||
    public AjaxResult findWithdrawDetails(Long pkId) {
 | 
			
		||||
        Assert.notNull(pkId, TransactionUtils.getContent(FinanceMsgConstants.SELECT_WITHDRAWAL_RECORD));
 | 
			
		||||
        CuMemberWithdrawVO cuMemberRechargeDetailVO = cuMemberWithdrawService.queryCuMemberWithdrawDetail(pkId);
 | 
			
		||||
        CuMemberWithdrawVO cuMemberRechargeDetailVO = iCuMemberWithdrawService.queryCuMemberWithdrawDetail(pkId);
 | 
			
		||||
        return AjaxResult.success(cuMemberRechargeDetailVO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -178,7 +170,7 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
    public AjaxResult withdrawPayment(@RequestBody CuMemberWithdrawVO memberWithdrawVO) {
 | 
			
		||||
        List<Long> pkIds = memberWithdrawVO.getPkIds();
 | 
			
		||||
        Assert.notNull(pkIds, TransactionUtils.getContent(FinanceMsgConstants.SELECT_PAID_RECORD));
 | 
			
		||||
        List<CuMemberWithdraw> withdrawApproveStateByIds = cuMemberWithdrawService.getWithdrawApproveStateByIds(pkIds, EApproveStatus.FINISH.getValue());
 | 
			
		||||
        List<CuMemberWithdraw> withdrawApproveStateByIds = iCuMemberWithdrawService.getWithdrawApproveStateByIds(pkIds, EApproveStatus.FINISH.getValue());
 | 
			
		||||
        if (CollUtil.isNotEmpty(withdrawApproveStateByIds)) {
 | 
			
		||||
            return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.DATA_UNAPPROVED_DATA));
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -188,7 +180,7 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
        memberWithdrawVO.setPayer(pkMember);
 | 
			
		||||
        memberWithdrawVO.setPaymentTime(new Date());
 | 
			
		||||
        memberWithdrawVO.setPkModified(pkMember);
 | 
			
		||||
        return toAjax(cuMemberWithdrawService.withdrawPaymentByPkId(memberWithdrawVO));
 | 
			
		||||
        return toAjax(iCuMemberWithdrawService.withdrawPaymentByPkId(memberWithdrawVO));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -207,13 +199,13 @@ public class CuMemberWithdrawController extends BaseController {
 | 
			
		|||
        memberWithdrawVO.setPayer(SecurityUtils.getUserId());
 | 
			
		||||
        memberWithdrawVO.setPayerRemarks(memberWithdrawVO.getPayerRemarks());
 | 
			
		||||
        memberWithdrawVO.setPaymentTime(new Date());
 | 
			
		||||
        return toAjax(cuMemberWithdrawService.withdrawPaymentPositiveByPkId(memberWithdrawVO));
 | 
			
		||||
        return toAjax(iCuMemberWithdrawService.withdrawPaymentPositiveByPkId(memberWithdrawVO));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Log(module = EOperationModule.WITHDRAWAL_DETAIL, business = EOperationBusiness.WITHDRAWAL_DETAIL, method = EOperationMethod.REJECT)
 | 
			
		||||
    @PostMapping("/reject")
 | 
			
		||||
    public AjaxResult reject(@RequestBody CuMemberWithdrawRejectParam param) {
 | 
			
		||||
        cuMemberWithdrawService.withdrawReject(param);
 | 
			
		||||
        iCuMemberWithdrawService.withdrawReject(param);
 | 
			
		||||
        return AjaxResult.success();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,13 +8,8 @@ import java.io.Serializable;
 | 
			
		|||
import java.math.BigDecimal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Description: 提现参数类
 | 
			
		||||
 * @Author: ljc
 | 
			
		||||
 * @Time: 2022/9/27 15:32
 | 
			
		||||
 * @Classname: CuMemberWithdrawParam
 | 
			
		||||
 * @Package_name: com.hzs.member.account.param
 | 
			
		||||
 * 提现参数类
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,14 +8,10 @@ import org.apache.ibatis.annotations.Param;
 | 
			
		|||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 会员信息-银行卡信息 Mapper 接口
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2022-08-31
 | 
			
		||||
 */
 | 
			
		||||
public interface CuMemberBankMapper extends BaseMapper<CuMemberBank> {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据会员批量重置银行卡
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
package com.hzs.member.account.service.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.core.enums.EBankCardStatus;
 | 
			
		||||
import com.hzs.common.core.enums.EDefault;
 | 
			
		||||
| 
						 | 
				
			
			@ -20,56 +20,44 @@ import java.util.Date;
 | 
			
		|||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 会员信息-银行卡信息 服务实现类
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2022-08-31
 | 
			
		||||
 */
 | 
			
		||||
@Service
 | 
			
		||||
public class CuMemberBankServiceImpl extends ServiceImpl<CuMemberBankMapper, CuMemberBank> implements ICuMemberBankService {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberBankVO selectCuMemberBankById(Long pkId) {
 | 
			
		||||
        QueryWrapper<CuMemberBank> queryWrapper = new QueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq("PK_ID", pkId);
 | 
			
		||||
        queryWrapper.eq("DEFAULT_CARD", EDefault.YES.getValue());
 | 
			
		||||
        LambdaQueryWrapper<CuMemberBank> queryWrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq(CuMemberBank::getPkId, pkId);
 | 
			
		||||
        queryWrapper.eq(CuMemberBank::getDefaultCard, EDefault.YES.getValue());
 | 
			
		||||
        CuMemberBank cuMemberBank = this.getOne(queryWrapper);
 | 
			
		||||
        return cuMemberBank == null ? null : BeanUtil.copyProperties(cuMemberBank, CuMemberBankVO.class);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberBankVO isBindBank(Long pkMember, Integer pkCountry) {
 | 
			
		||||
        QueryWrapper<CuMemberBank> queryWrapper = new QueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq("PK_COUNTRY", pkCountry);
 | 
			
		||||
        queryWrapper.eq("PK_MEMBER", pkMember);
 | 
			
		||||
        queryWrapper.eq("DEFAULT_CARD", EDefault.YES.getValue());
 | 
			
		||||
        LambdaQueryWrapper<CuMemberBank> queryWrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq(CuMemberBank::getPkCountry, pkCountry);
 | 
			
		||||
        queryWrapper.eq(CuMemberBank::getPkMember, pkMember);
 | 
			
		||||
        queryWrapper.eq(CuMemberBank::getDefaultCard, EDefault.YES.getValue());
 | 
			
		||||
        return BeanUtil.copyProperties(this.getOne(queryWrapper), CuMemberBankVO.class);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Boolean unbindBank(Long pkId, Long pkMember) {
 | 
			
		||||
        UpdateWrapper<CuMemberBank> updateWrapper = new UpdateWrapper<>();
 | 
			
		||||
        updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue())
 | 
			
		||||
                .set("MODIFIED_TIME", new Date())
 | 
			
		||||
                .set("PK_MODIFIED", pkMember)
 | 
			
		||||
                .eq("PK_ID", pkId);
 | 
			
		||||
        LambdaUpdateWrapper<CuMemberBank> updateWrapper = new LambdaUpdateWrapper<>();
 | 
			
		||||
        updateWrapper.set(CuMemberBank::getDelFlag, EDelFlag.DELETE.getValue())
 | 
			
		||||
                .set(CuMemberBank::getModifiedTime, new Date())
 | 
			
		||||
                .set(CuMemberBank::getPkModified, pkMember)
 | 
			
		||||
                .eq(CuMemberBank::getPkId, pkId);
 | 
			
		||||
        return update(updateWrapper);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Integer saveMemberBank(CuMemberBankParam cuMemberBankParam) {
 | 
			
		||||
        CuMemberBank cuMemberBank = new CuMemberBank();
 | 
			
		||||
        BeanUtil.copyProperties(cuMemberBankParam, cuMemberBank);
 | 
			
		||||
        //是否绑定银行卡
 | 
			
		||||
        Long pkMember = cuMemberBankParam.getPkMember();
 | 
			
		||||
        Integer pkCountry = cuMemberBankParam.getPkCountry();
 | 
			
		||||
        CuMemberBankVO bindCard = isBindBank(pkMember, pkCountry);
 | 
			
		||||
        CuMemberBankVO bindCard = isBindBank(cuMemberBankParam.getPkMember(), cuMemberBankParam.getPkCountry());
 | 
			
		||||
        int isDefault = null != bindCard.getDefaultCard() ? EBankCardStatus.NO.getValue() : EBankCardStatus.YES.getValue();
 | 
			
		||||
        CuMemberBank cuMemberBank = BeanUtil.copyProperties(cuMemberBankParam, CuMemberBank.class);
 | 
			
		||||
        cuMemberBank.setDefaultCard(isDefault);
 | 
			
		||||
        cuMemberBank.setPkCreator(cuMemberBankParam.getPkMember());
 | 
			
		||||
        return baseMapper.insert(cuMemberBank);
 | 
			
		||||
| 
						 | 
				
			
			@ -83,26 +71,16 @@ public class CuMemberBankServiceImpl extends ServiceImpl<CuMemberBankMapper, CuM
 | 
			
		|||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public Boolean updateDefault(Long pkId, Long pkMember, Integer pkCountry) {
 | 
			
		||||
        updateMemberBankCardToDefault(pkMember, pkCountry);
 | 
			
		||||
        UpdateWrapper<CuMemberBank> updateWrapper = new UpdateWrapper<>();
 | 
			
		||||
        updateWrapper.set("DEFAULT_CARD", EBankCardStatus.YES.getValue()).eq("PK_ID", pkId);
 | 
			
		||||
        return update(updateWrapper);
 | 
			
		||||
    }
 | 
			
		||||
        LambdaUpdateWrapper<CuMemberBank> updateWrapper = new LambdaUpdateWrapper<>();
 | 
			
		||||
        updateWrapper.set(CuMemberBank::getDefaultCard, EBankCardStatus.NO.getValue())
 | 
			
		||||
                .eq(CuMemberBank::getDefaultCard, EBankCardStatus.YES.getValue())
 | 
			
		||||
                .eq(CuMemberBank::getPkMember, pkMember)
 | 
			
		||||
                .eq(CuMemberBank::getPkCountry, pkCountry);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 绑定的银行卡更新为非默认
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkMember  会员ID
 | 
			
		||||
     * @param pkCountry 国家ID
 | 
			
		||||
     * @return Boolean
 | 
			
		||||
     */
 | 
			
		||||
    public Boolean updateMemberBankCardToDefault(Long pkMember, Integer pkCountry) {
 | 
			
		||||
        UpdateWrapper<CuMemberBank> updateWrapper = new UpdateWrapper<>();
 | 
			
		||||
        updateWrapper.set("DEFAULT_CARD", EBankCardStatus.NO.getValue())
 | 
			
		||||
                .eq("DEFAULT_CARD", EBankCardStatus.YES.getValue())
 | 
			
		||||
                .eq("PK_MEMBER", pkMember)
 | 
			
		||||
                .eq("PK_COUNTRY", pkCountry);
 | 
			
		||||
        return update(updateWrapper);
 | 
			
		||||
        LambdaUpdateWrapper<CuMemberBank> newUpdateWrapper = new LambdaUpdateWrapper<>();
 | 
			
		||||
        newUpdateWrapper.set(CuMemberBank::getDefaultCard, EBankCardStatus.YES.getValue())
 | 
			
		||||
                .eq(CuMemberBank::getPkId, pkId);
 | 
			
		||||
        return update(newUpdateWrapper);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 | 
			
		|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
 | 
			
		||||
import com.hzs.common.core.enums.*;
 | 
			
		||||
import com.hzs.common.core.exception.ServiceException;
 | 
			
		||||
import com.hzs.common.core.utils.CommonUtil;
 | 
			
		||||
import com.hzs.common.domain.member.account.CuMemberAccount;
 | 
			
		||||
import com.hzs.common.domain.member.account.CuMemberTrade;
 | 
			
		||||
| 
						 | 
				
			
			@ -83,9 +84,16 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
 | 
			
		|||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    @Override
 | 
			
		||||
    public Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount, CuMemberAccount toMemberAccount) {
 | 
			
		||||
        Integer row = baseMapper.insert(cuMemberTransfer);
 | 
			
		||||
        this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_OUT.getValue());
 | 
			
		||||
        this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_IN.getValue());
 | 
			
		||||
        int row = baseMapper.insert(cuMemberTransfer);
 | 
			
		||||
        if (row == 0) {
 | 
			
		||||
            throw new ServiceException("转账失败,请确认后重试");
 | 
			
		||||
        }
 | 
			
		||||
        if (this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_OUT.getValue()) == 0) {
 | 
			
		||||
            throw new ServiceException("转账失败,请确认后重试");
 | 
			
		||||
        }
 | 
			
		||||
        if (this.updateTradeAndBalancd(cuMemberTransfer, ETransferType.TRANSFER_IN.getValue()) == 0) {
 | 
			
		||||
            throw new ServiceException("转账失败,请确认后重试");
 | 
			
		||||
        }
 | 
			
		||||
        ChargingBonusDetail(cuMemberTransfer, cuMemberAccount, toMemberAccount);
 | 
			
		||||
        return row;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -159,11 +167,14 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
 | 
			
		|||
        BigDecimal amount = type == (ETransferType.TRANSFER_OUT.getValue()) ? transferMoney.negate() : transferMoney;
 | 
			
		||||
        Integer pkAccountValue = iCuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
 | 
			
		||||
        CuMemberAccountParam param = CuMemberAccountParam.builder().pkMember(memberId)
 | 
			
		||||
                .accountType(pkAccountValue).amount(amount).pkModified(cuMemberTransfer.getPkCreator())
 | 
			
		||||
                .accountClassify(ETradeClassify.TRANSFER.getValue()).pkCountry(cuMemberTransfer.getPkCountry())
 | 
			
		||||
        CuMemberAccountParam param = CuMemberAccountParam.builder()
 | 
			
		||||
                .pkMember(memberId)
 | 
			
		||||
                .accountType(pkAccountValue)
 | 
			
		||||
                .amount(amount)
 | 
			
		||||
                .pkModified(cuMemberTransfer.getPkCreator())
 | 
			
		||||
                .accountClassify(ETradeClassify.TRANSFER.getValue())
 | 
			
		||||
                .pkCountry(cuMemberTransfer.getPkCountry())
 | 
			
		||||
                .transferType(type).build();
 | 
			
		||||
 | 
			
		||||
        return iCuMemberAccountService.updateMemberAccountByMemberCode(param);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,6 @@ import cn.hutool.core.util.ObjectUtil;
 | 
			
		|||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.hutool.json.JSONUtil;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.core.constant.MemberFieldConstants;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +31,6 @@ import com.hzs.member.account.service.*;
 | 
			
		|||
import com.hzs.member.account.vo.CuMemberPetitionVO;
 | 
			
		||||
import com.hzs.member.account.vo.CuMemberTradeVO;
 | 
			
		||||
import com.hzs.member.account.vo.CuMemberWithdrawVO;
 | 
			
		||||
import com.hzs.member.base.service.ICuMemberService;
 | 
			
		||||
import com.hzs.system.base.dto.CurrencyDTO;
 | 
			
		||||
import com.hzs.system.config.IWithdrawalProcessServiceApi;
 | 
			
		||||
import com.hzs.system.config.IWithdrawalTaxServiceApi;
 | 
			
		||||
| 
						 | 
				
			
			@ -58,29 +56,19 @@ import java.util.stream.Collectors;
 | 
			
		|||
@Slf4j
 | 
			
		||||
public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMapper, CuMemberWithdraw> implements ICuMemberWithdrawService {
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberTradeService iCuMemberTradeService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberAccountService iCuMemberAccountService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBaseService iCuMemberBaseService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IWithdrawalTaxServiceApi withdrawalTaxServiceApi;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberTradeService cuMemberTradeService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberAccountService cuMemberAccountService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberBaseService cuMemberBaseService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberBankService cuMemberBankService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    ICuMemberService cuMemberService;
 | 
			
		||||
 | 
			
		||||
    IWithdrawalTaxServiceApi iWithdrawalTaxServiceApi;
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IWithdrawalProcessServiceApi withdrawalProcessServiceApi;
 | 
			
		||||
    IWithdrawalProcessServiceApi iWithdrawalProcessServiceApi;
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IApprovalServiceApi approvalServiceApi;
 | 
			
		||||
    IApprovalServiceApi iApprovalServiceApi;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			@ -91,8 +79,8 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
    @Override
 | 
			
		||||
    public List<CuMemberWithdraw> selectWithdrawByBatch(String batchNO) {
 | 
			
		||||
        //根据单号查询充值信息
 | 
			
		||||
        QueryWrapper<CuMemberWithdraw> queryWrapper = new QueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq("BATCH", batchNO);
 | 
			
		||||
        LambdaQueryWrapper<CuMemberWithdraw> queryWrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq(CuMemberWithdraw::getBatch, batchNO);
 | 
			
		||||
        return baseMapper.selectList(queryWrapper);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -125,10 +113,11 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    @Override
 | 
			
		||||
    public Integer saveMemberWithdrawInfo(CuMemberWithdraw cuMemberWithdraw) {
 | 
			
		||||
        Integer row = baseMapper.insert(cuMemberWithdraw);
 | 
			
		||||
        this.updateTradeAndBalancd(cuMemberWithdraw, EOperationMethod.INSERT);
 | 
			
		||||
        int row = baseMapper.insert(cuMemberWithdraw);
 | 
			
		||||
        if (this.updateTradeAndBalancd(cuMemberWithdraw, EOperationMethod.INSERT) == 0) {
 | 
			
		||||
            throw new ServiceException("提现失败,请确认后重试");
 | 
			
		||||
        }
 | 
			
		||||
        return row;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -139,18 +128,23 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
     */
 | 
			
		||||
    public Integer updateTradeAndBalancd(CuMemberWithdraw cuMemberWithdraw, EOperationMethod eMethodType) {
 | 
			
		||||
        CuMemberTrade cuMemberTrade = this.getCuMemberTrade(cuMemberWithdraw, eMethodType);
 | 
			
		||||
        cuMemberTradeService.save(cuMemberTrade);
 | 
			
		||||
        iCuMemberTradeService.save(cuMemberTrade);
 | 
			
		||||
        //更新余额表
 | 
			
		||||
        Integer pkAccount = cuMemberWithdraw.getPkAccount();
 | 
			
		||||
        int accountType = cuMemberBaseService.getAccount(pkAccount).getFieldValue();
 | 
			
		||||
        int accountType = iCuMemberBaseService.getAccount(pkAccount).getFieldValue();
 | 
			
		||||
        //提现金额
 | 
			
		||||
        BigDecimal cashAmount = cuMemberWithdraw.getCashAmount();
 | 
			
		||||
        BigDecimal amount = eMethodType.equals(EOperationMethod.INSERT) ? cashAmount.negate() : cashAmount;
 | 
			
		||||
        CuMemberAccountParam param = CuMemberAccountParam.builder().pkMember(cuMemberWithdraw.getPkMember())
 | 
			
		||||
                .accountType(accountType).amount(amount).pkModified(cuMemberWithdraw.getPkCreator())
 | 
			
		||||
                .accountClassify(ETradeClassify.WITHDRAWAL.getValue()).pkCountry(cuMemberWithdraw.getPkCountry())
 | 
			
		||||
                .transferType(ETransferType.TRANSFER_IN.getValue()).build();
 | 
			
		||||
        return cuMemberAccountService.updateMemberAccountByMemberCode(param);
 | 
			
		||||
        CuMemberAccountParam param = CuMemberAccountParam.builder()
 | 
			
		||||
                .pkMember(cuMemberWithdraw.getPkMember())
 | 
			
		||||
                .accountType(accountType)
 | 
			
		||||
                .amount(amount)
 | 
			
		||||
                .pkModified(cuMemberWithdraw.getPkCreator())
 | 
			
		||||
                .accountClassify(ETradeClassify.WITHDRAWAL.getValue())
 | 
			
		||||
                .pkCountry(cuMemberWithdraw.getPkCountry())
 | 
			
		||||
                .transferType(ETransferType.TRANSFER_IN.getValue())
 | 
			
		||||
                .build();
 | 
			
		||||
        return iCuMemberAccountService.updateMemberAccountByMemberCode(param);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -172,9 +166,9 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        Integer tradeType = eMethodType.equals(EOperationMethod.INSERT) ? ETradeType.WITHDRAW.getValue() : ETradeType.WITHDRAWAL_REFUSED.getValue();
 | 
			
		||||
        Integer pkAccount = cuMemberWithdraw.getPkAccount();
 | 
			
		||||
        //账户值
 | 
			
		||||
        Integer accountValue = cuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
        Integer accountValue = iCuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
        //查询余额
 | 
			
		||||
        BigDecimal balance = cuMemberAccountService.selectBalanceByMemberCode(pkMember, accountValue);
 | 
			
		||||
        BigDecimal balance = iCuMemberAccountService.selectBalanceByMemberCode(pkMember, accountValue);
 | 
			
		||||
        CuMemberTrade memberTrade = CuMemberTrade.builder().pkMember(pkMember)
 | 
			
		||||
                .tradeCode(tradeCode)
 | 
			
		||||
                .pkAccount(pkAccount)
 | 
			
		||||
| 
						 | 
				
			
			@ -240,18 +234,18 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        Integer pkRate = memberWithdraw.getPkRate();
 | 
			
		||||
        if (null != pkRate) {
 | 
			
		||||
            //汇率
 | 
			
		||||
            exchangeRate = cuMemberBaseService.getCurrencyById(memberWithdraw.getPkRate()).getInExchangeRate();
 | 
			
		||||
            exchangeRate = iCuMemberBaseService.getCurrencyById(memberWithdraw.getPkRate()).getInExchangeRate();
 | 
			
		||||
        } else {
 | 
			
		||||
            //取最新的汇率
 | 
			
		||||
            CurrencyDTO currencyDTO = cuMemberBaseService.getCurrency(cuMemberWithdrawVO.getPkCountry());
 | 
			
		||||
            CurrencyDTO currencyDTO = iCuMemberBaseService.getCurrency(cuMemberWithdrawVO.getPkCountry());
 | 
			
		||||
            exchangeRate = currencyDTO.getInExchangeRate();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //查询提现账户
 | 
			
		||||
        Integer pkAccount = memberWithdraw.getPkAccount();
 | 
			
		||||
        Integer accountsType = cuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
        Integer accountsType = iCuMemberBaseService.getAccountValueById(pkAccount);
 | 
			
		||||
        //查询账户余额
 | 
			
		||||
        CuMemberAccount cuMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(memberWithdraw.getPkMember());
 | 
			
		||||
        CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(memberWithdraw.getPkMember());
 | 
			
		||||
        BigDecimal availableBalance;
 | 
			
		||||
        if (accountsType.equals(EAccount.BONUS.getValue())) {
 | 
			
		||||
            BigDecimal balance = ReflectUtils.invokeGetter(cuMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + accountsType);
 | 
			
		||||
| 
						 | 
				
			
			@ -283,7 +277,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        cuMemberWithdrawVO.setSettleServiceCharge(settleServiceCharge);
 | 
			
		||||
        cuMemberWithdrawVO.setSettleCashAmount(settleCashAmount);
 | 
			
		||||
        cuMemberWithdrawVO.setSettleIssuedAmount(settleIssuedAmount);
 | 
			
		||||
        cuMemberWithdrawVO.setPkAccount(cuMemberBaseService.translateAccountValue(pkAccount));
 | 
			
		||||
        cuMemberWithdrawVO.setPkAccount(iCuMemberBaseService.translateAccountValue(pkAccount));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -320,27 +314,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        return row;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取余额
 | 
			
		||||
     *
 | 
			
		||||
     * @param accountsType    账户值
 | 
			
		||||
     * @param cuMemberAccount 账户信息
 | 
			
		||||
     * @return BigDecimal
 | 
			
		||||
     */
 | 
			
		||||
    private BigDecimal getAvailableBalance(Integer accountsType, CuMemberAccount cuMemberAccount) {
 | 
			
		||||
        //账户余额
 | 
			
		||||
        BigDecimal accountBalance = getAccountBalance(accountsType, cuMemberAccount);
 | 
			
		||||
        //可提现账户余额
 | 
			
		||||
        BigDecimal withdrawBalance = ReflectUtils.invokeGetter(cuMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + accountsType);
 | 
			
		||||
        withdrawBalance = withdrawBalance == null ? BigDecimal.ZERO : withdrawBalance;
 | 
			
		||||
        BigDecimal lockAccount = ReflectUtils.invokeGetter(cuMemberAccount, MemberFieldConstants.LOCK_WITHDRAW_ACCOUNT + accountsType);
 | 
			
		||||
        if (null != lockAccount && lockAccount.compareTo(BigDecimal.ZERO) > 0) {
 | 
			
		||||
            withdrawBalance = withdrawBalance.subtract(lockAccount);
 | 
			
		||||
        }
 | 
			
		||||
        //取最小余额
 | 
			
		||||
        return accountBalance.compareTo(withdrawBalance) < 0 ? accountBalance : withdrawBalance;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取账户余额
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -365,7 +338,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
    @Override
 | 
			
		||||
    public BigDecimal computeIncomeTaxValue(Long pkMember, BigDecimal cashAmount, Integer pkCountry, BigDecimal minAmount) {
 | 
			
		||||
        //获取个税配置
 | 
			
		||||
        R<BdWithdrawalTaxExt> bdWithdrawalTaxExtR = withdrawalTaxServiceApi.queryWithdrawalTax(pkCountry);
 | 
			
		||||
        R<BdWithdrawalTaxExt> bdWithdrawalTaxExtR = iWithdrawalTaxServiceApi.queryWithdrawalTax(pkCountry);
 | 
			
		||||
        BdWithdrawalTaxExt withdrawalTax = bdWithdrawalTaxExtR.getData();
 | 
			
		||||
        if (null == withdrawalTax) {
 | 
			
		||||
            return BigDecimal.ZERO;
 | 
			
		||||
| 
						 | 
				
			
			@ -398,7 +371,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    public BigDecimal computeServiceCharge(Integer pkCountry, BigDecimal cashAmount) {
 | 
			
		||||
        BdWithdrawalProcess withdrawalProcess = withdrawalProcessServiceApi.queryBdWithdrawalProcess(pkCountry).getData();
 | 
			
		||||
        BdWithdrawalProcess withdrawalProcess = iWithdrawalProcessServiceApi.queryBdWithdrawalProcess(pkCountry).getData();
 | 
			
		||||
        //手续费类型
 | 
			
		||||
        Integer serviceType = withdrawalProcess.getServiceType();
 | 
			
		||||
        BigDecimal serviceRatio = withdrawalProcess.getServiceRatio();
 | 
			
		||||
| 
						 | 
				
			
			@ -411,7 +384,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
            //手续费金额 = 本次提现金额 * 手续费比例
 | 
			
		||||
            return cashAmount.multiply(serviceChargeeRatio).setScale(4, BigDecimal.ROUND_HALF_UP);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			@ -425,13 +397,11 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        return roundIngAmount;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberWithdraw> getWithdrawApproveStateByIds(List<Long> pkIds, Integer approveState) {
 | 
			
		||||
        return baseMapper.getWithdrawApproveStateByIds(pkIds, approveState);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberPetitionVO showMemberWithdrawPetition(List<Long> pkIds, Integer approveState) {
 | 
			
		||||
        CuMemberPetitionVO memberPetitionVo = new CuMemberPetitionVO();
 | 
			
		||||
| 
						 | 
				
			
			@ -444,7 +414,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        return memberPetitionVo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<CuMemberWithdrawVO> checkWithdrawPetitionByState(List<Long> pkIds, Integer approveState) {
 | 
			
		||||
        return BeanUtil.copyToList(baseMapper.showMemberWithdrawPetition(pkIds, approveState), CuMemberWithdrawVO.class);
 | 
			
		||||
| 
						 | 
				
			
			@ -468,7 +437,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        List<String> withdrawCodeList = cuMemberWithdrawExts.stream().map(CuMemberWithdrawExt::getWithdrawCode).collect(Collectors.toList());
 | 
			
		||||
        CuMemberTradeVO memberTradeVO = CuMemberTradeVO.builder().sourceCode(businessNo)
 | 
			
		||||
                .tradeCodes(withdrawCodeList).pkModified(loginUser.getUserId()).build();
 | 
			
		||||
        cuMemberTradeService.updateSourceCodeByTradeCode(memberTradeVO);
 | 
			
		||||
        iCuMemberTradeService.updateSourceCodeByTradeCode(memberTradeVO);
 | 
			
		||||
 | 
			
		||||
        List<CuMemberWithdrawVO> memberWithdrawList = memberPetitionVo.getMemberWithdrawList();
 | 
			
		||||
        //提交提现用户
 | 
			
		||||
| 
						 | 
				
			
			@ -481,7 +450,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
                .remark(memberPetitionVo.getDescription())
 | 
			
		||||
                .pkMemberList(pkMembers).build();
 | 
			
		||||
        //调用审批接口
 | 
			
		||||
        R<String> submit = approvalServiceApi.submit(approvalSubmitDTO, loginUser);
 | 
			
		||||
        R<String> submit = iApprovalServiceApi.submit(approvalSubmitDTO, loginUser);
 | 
			
		||||
        if (!submit.isSuccess()) {
 | 
			
		||||
            throw new RuntimeException(submit.getMsg());
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -517,7 +486,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
                        .freeSignFlag(false).build();
 | 
			
		||||
            }
 | 
			
		||||
            businessLogDTOList.add(businessLog);
 | 
			
		||||
            cuMemberBaseService.operationLogMQ(businessLogDTOList);
 | 
			
		||||
            iCuMemberBaseService.operationLogMQ(businessLogDTOList);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -528,7 +497,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        List<CuMemberWithdrawExt> cuMemberWithdrawList = baseMapper.selectMemberWithdrawListByPkMember(pkMember, pkCountry);
 | 
			
		||||
        if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
 | 
			
		||||
            //查询币种值
 | 
			
		||||
            List<BdAccount> allAccounts = cuMemberBaseService.getAccountByCountryId(pkCountry);
 | 
			
		||||
            List<BdAccount> allAccounts = iCuMemberBaseService.getAccountByCountryId(pkCountry);
 | 
			
		||||
            Map<Integer, BdAccount> map = allAccounts.stream().collect(Collectors.toMap(BdAccount::getPkId, o -> o));
 | 
			
		||||
            for (CuMemberWithdrawExt ext : cuMemberWithdrawList) {
 | 
			
		||||
                cuMemberWithdrawVO = BeanUtil.copyProperties(ext, CuMemberWithdrawVO.class);
 | 
			
		||||
| 
						 | 
				
			
			@ -550,18 +519,18 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
        BigDecimal backAmount = cuMemberWithdraw.getCashAmount();
 | 
			
		||||
        if (backAmount.compareTo(BigDecimal.ZERO) > 0) {
 | 
			
		||||
            //插入交易明细表
 | 
			
		||||
            cuMemberTradeService.save(getCuMemberTradeInfo(cuMemberWithdraw));
 | 
			
		||||
            iCuMemberTradeService.save(getCuMemberTradeInfo(cuMemberWithdraw));
 | 
			
		||||
            //更新余额表
 | 
			
		||||
            CuMemberAccount cuMemberAccount = this.getCuMemberAccount(cuMemberWithdraw, backAmount);
 | 
			
		||||
            cuMemberAccount.setPkCountry(cuMemberWithdraw.getPkCountry());
 | 
			
		||||
            cuMemberAccountService.updateMemberAccount(cuMemberAccount, pkModified);
 | 
			
		||||
            iCuMemberAccountService.updateMemberAccount(cuMemberAccount, pkModified);
 | 
			
		||||
        }
 | 
			
		||||
        return baseMapper.updateWithdrawStatusByPkId(pkId, pkModified);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private CuMemberAccount getCuMemberAccount(CuMemberWithdraw cuMemberWithdraw, BigDecimal backAmount) {
 | 
			
		||||
        Integer pkAccount = cuMemberWithdraw.getPkAccount();
 | 
			
		||||
        BdAccount account = cuMemberBaseService.getAccount(pkAccount);
 | 
			
		||||
        BdAccount account = iCuMemberBaseService.getAccount(pkAccount);
 | 
			
		||||
        if (account.getFieldValue().equals(EAccount.BONUS.getValue())) {
 | 
			
		||||
            return CuMemberAccount.builder()
 | 
			
		||||
                    .account4(backAmount)
 | 
			
		||||
| 
						 | 
				
			
			@ -585,11 +554,11 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
    private CuMemberTrade getCuMemberTradeInfo(CuMemberWithdraw cuMemberWithdraw) {
 | 
			
		||||
        Long pkMember = cuMemberWithdraw.getPkMember();
 | 
			
		||||
        Integer pkAccount = cuMemberWithdraw.getPkAccount();
 | 
			
		||||
        BdAccount account = cuMemberBaseService.getAccount(pkAccount);
 | 
			
		||||
        BdAccount account = iCuMemberBaseService.getAccount(pkAccount);
 | 
			
		||||
        //交易金额
 | 
			
		||||
        BigDecimal tradeAmount = cuMemberWithdraw.getCashAmount();
 | 
			
		||||
        //查询余额
 | 
			
		||||
        BigDecimal balance = cuMemberAccountService.selectBalanceByMemberCode(pkMember, account.getFieldValue());
 | 
			
		||||
        BigDecimal balance = iCuMemberAccountService.selectBalanceByMemberCode(pkMember, account.getFieldValue());
 | 
			
		||||
        CuMemberTrade memberTrade = CuMemberTrade.builder().pkMember(pkMember)
 | 
			
		||||
                .tradeCode(CommonUtil.createSerialNumber(EOrderPrefix.WITHDRAWAL_CODE.getValue()))
 | 
			
		||||
                .pkAccount(pkAccount)
 | 
			
		||||
| 
						 | 
				
			
			@ -640,7 +609,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
 | 
			
		|||
                        .tradeCode(cuMemberWithdraw.getWithdrawCode()).pkCountry(pkCountry)
 | 
			
		||||
                        .tradeType(EApprovalBusiness.WITHDRAWAL.getValue())
 | 
			
		||||
                        .pkCreator(SecurityUtils.getUserId()).build();
 | 
			
		||||
                cuMemberTradeService.businessCommissionReject(businessCommissionDTO);
 | 
			
		||||
                iCuMemberTradeService.businessCommissionReject(businessCommissionDTO);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,5 @@
 | 
			
		|||
package com.hzs.member.account.vo;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
			
		||||
import com.hzs.common.core.annotation.Transaction;
 | 
			
		||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +16,6 @@ import java.io.Serializable;
 | 
			
		|||
@NoArgsConstructor
 | 
			
		||||
public class CuMemberBankVO implements Serializable {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 银行主键
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,15 +13,8 @@ import java.util.Date;
 | 
			
		|||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 会员提现表
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2022-09-06
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
@Data
 | 
			
		||||
@Builder
 | 
			
		||||
| 
						 | 
				
			
			@ -121,7 +114,6 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
 | 
			
		|||
    /**
 | 
			
		||||
     * 汇率
 | 
			
		||||
     */
 | 
			
		||||
    @Excel(name = "汇率", scale = 4)
 | 
			
		||||
    @BigDecimalFormat("#0.0000")
 | 
			
		||||
    private BigDecimal exchangeRate;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -160,13 +152,11 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
 | 
			
		|||
    /**
 | 
			
		||||
     * 开户支行省
 | 
			
		||||
     */
 | 
			
		||||
    @Excel(name = "开户支行省")
 | 
			
		||||
    private String accountProvince;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 开户支行市
 | 
			
		||||
     */
 | 
			
		||||
    @Excel(name = "开户支行市")
 | 
			
		||||
    private String accountCity;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -185,12 +175,10 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
 | 
			
		|||
     * 有效期起始日期
 | 
			
		||||
     */
 | 
			
		||||
    @JsonFormat(pattern = "yyyy-MM-dd")
 | 
			
		||||
    @Excel(name = "有效期起始日期", width = 30, dateFormat = "yyyy-MM-dd")
 | 
			
		||||
    private Date validStartDate;
 | 
			
		||||
    /**
 | 
			
		||||
     * 有效期截止日期
 | 
			
		||||
     */
 | 
			
		||||
    @Excel(name = "有效期截止日期")
 | 
			
		||||
    private String validEndDate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -317,7 +305,7 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
 | 
			
		|||
    /**
 | 
			
		||||
     * 查询状态
 | 
			
		||||
     */
 | 
			
		||||
    private  Integer queryStatus;
 | 
			
		||||
    private Integer queryStatus;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员编号集合
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +1,20 @@
 | 
			
		|||
package com.hzs.member.base.controller.api;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.codec.Base64Decoder;
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
 | 
			
		||||
import com.hzs.common.core.config.BdConfig;
 | 
			
		||||
import com.hzs.common.core.constant.CacheConstants;
 | 
			
		||||
import com.hzs.common.core.constant.msg.CommonMsgConstants;
 | 
			
		||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
 | 
			
		||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
 | 
			
		||||
import com.hzs.common.core.domain.FileResult;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
import com.hzs.common.core.enums.*;
 | 
			
		||||
import com.hzs.common.core.service.RedisService;
 | 
			
		||||
import com.hzs.common.core.utils.DateUtils;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.utils.uuid.IdUtils;
 | 
			
		||||
import com.hzs.common.core.web.controller.BaseController;
 | 
			
		||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.core.web.page.TableDataInfo;
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +40,7 @@ import org.springframework.web.multipart.MultipartFile;
 | 
			
		|||
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 会员控制器
 | 
			
		||||
| 
						 | 
				
			
			@ -51,6 +57,9 @@ public class ApiMemberController extends BaseController {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private IApiAliSmsService iApiAliSmsService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private RedisService redisService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IGradeServiceApi iGradeServiceApi;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -366,4 +375,56 @@ public class ApiMemberController extends BaseController {
 | 
			
		|||
        return getDataTable(list);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询推荐人编号 -- 188分享注册
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkParent 推荐人(加密)
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/fans-convert-code/{pkParent}")
 | 
			
		||||
    public AjaxResult fansConvertCode(@PathVariable("pkParent") String pkParent) {
 | 
			
		||||
        // 验证必输项
 | 
			
		||||
        if (pkParent == null) {
 | 
			
		||||
            return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY);
 | 
			
		||||
        }
 | 
			
		||||
        CuMember cuMember = iCuMemberService.getMemberById(Long.parseLong(new String(Base64Decoder.decode(pkParent))));
 | 
			
		||||
        if (null != cuMember) {
 | 
			
		||||
            return AjaxResult.success("", cuMember.getMemberCode());
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.error();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据订单查询会员信息 -- 188分享注册
 | 
			
		||||
     *
 | 
			
		||||
     * @param orderCode 订单编号
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
//    @RepeatSubmitSimple(intervalTime = 2L)
 | 
			
		||||
    @GetMapping("/fans-order/{orderCode}")
 | 
			
		||||
    public AjaxResult fansOrder(@PathVariable("orderCode") String orderCode) {
 | 
			
		||||
        CuMemberExt cuMemberExt = iCuMemberService.queryFansOrder(orderCode);
 | 
			
		||||
        if (null == cuMemberExt) {
 | 
			
		||||
            return AjaxResult.error("注册会员失败,请联系客服处理");
 | 
			
		||||
        }
 | 
			
		||||
        // 自动登录 uuid 标记
 | 
			
		||||
        String uuid = IdUtils.simpleUUID();
 | 
			
		||||
        // 根据会员编号放一个登录 uuid 做为自动登录校验使用(120分钟有效)
 | 
			
		||||
        redisService.setCacheObject(CacheConstants.AUTO_LOGIN + cuMemberExt.getMemberCode(), uuid, CacheConstants.LOGIN_TOKEN_REFRESH_TIME * 2, TimeUnit.MINUTES);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        return AjaxResult.success(MemberShare.builder()
 | 
			
		||||
                .memberName(cuMemberExt.getMemberName())
 | 
			
		||||
                .memberCode(cuMemberExt.getMemberCode())
 | 
			
		||||
                .phone(cuMemberExt.getPhone())
 | 
			
		||||
                .loginPassword(cuMemberExt.getLoginPassword())
 | 
			
		||||
                .payPassword(cuMemberExt.getPayPassword())
 | 
			
		||||
                .urlAddress(BdConfig.getPc())
 | 
			
		||||
//                .gzh(BdConfig.getGzh())
 | 
			
		||||
//                .ios(BdConfig.getIos())
 | 
			
		||||
//                .android(BdConfig.getAndroid())
 | 
			
		||||
                .uuid(uuid)
 | 
			
		||||
                .build());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -599,4 +599,12 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
 | 
			
		|||
     */
 | 
			
		||||
    List<MemberMeritsSummaryVo> queryDateBySummary(CensusSummaryParam censusSummaryParam);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询海粉订单
 | 
			
		||||
     *
 | 
			
		||||
     * @param orderCode 订单编号
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    CuMemberExt queryFansOrder(@Param("orderCode") String orderCode);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,15 @@
 | 
			
		|||
package com.hzs.member.base.provider;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
import com.hzs.common.core.enums.ELoginType;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberRegister;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import com.hzs.common.domain.sale.order.SaOrder;
 | 
			
		||||
import com.hzs.member.account.dto.BusinessCommissionDTO;
 | 
			
		||||
| 
						 | 
				
			
			@ -16,6 +20,8 @@ import com.hzs.member.base.service.*;
 | 
			
		|||
import com.hzs.member.base.IMemberServiceApi;
 | 
			
		||||
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
 | 
			
		||||
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
 | 
			
		||||
import com.hzs.member.swing.param.CuMemberSwingNetParam;
 | 
			
		||||
import com.hzs.member.swing.service.ICuMemberSwingNetService;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.apache.dubbo.config.annotation.DubboService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
| 
						 | 
				
			
			@ -34,8 +40,12 @@ public class MemberServiceProvider implements IMemberServiceApi {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private ICuMemberService iCuMemberService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberShareService iCuMemberShareService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberBusinessService iCuMemberBusinessService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberRegisterService iCuMemberRegisterService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +62,20 @@ public class MemberServiceProvider implements IMemberServiceApi {
 | 
			
		|||
        return R.ok(loginMember);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<LoginMember> getShareMemberInfo(String memberCode) {
 | 
			
		||||
        LambdaQueryWrapper<CuMemberShare> queryWrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq(CuMemberShare::getMemberCode, memberCode);
 | 
			
		||||
        CuMemberShare cuMemberShare = iCuMemberShareService.getOne(queryWrapper);
 | 
			
		||||
        if (null == cuMemberShare) {
 | 
			
		||||
            return R.fail("用户名或密码错误");
 | 
			
		||||
        }
 | 
			
		||||
        LoginMember loginMember = new LoginMember();
 | 
			
		||||
        loginMember.setLoginType(ELoginType.SHARE_MEMBER.getValue());
 | 
			
		||||
        loginMember.setCuMemberShare(cuMemberShare);
 | 
			
		||||
        return R.ok(loginMember);
 | 
			
		||||
    }
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<CuMemberExt> getMemberById(Long memberId) {
 | 
			
		||||
        return R.ok(iCuMemberService.getMemberById(memberId));
 | 
			
		||||
| 
						 | 
				
			
			@ -191,6 +215,11 @@ public class MemberServiceProvider implements IMemberServiceApi {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<CuMember> createMemberIdAndCode(CuMember cuMember) {
 | 
			
		||||
        return R.ok(iCuMemberService.createMemberIdAndCode(cuMember));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<CuMember> createRegisterMemberCode(CuMember cuMember) {
 | 
			
		||||
        return R.ok(iCuMemberService.createRegisterMemberCode(cuMember));
 | 
			
		||||
| 
						 | 
				
			
			@ -216,6 +245,11 @@ public class MemberServiceProvider implements IMemberServiceApi {
 | 
			
		|||
        return R.ok(iCuMemberService.findMemberByMemberId(pkMemberList, pkCountry));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<CuMemberRegister> queryCuMemberRegister(Long pkMember) {
 | 
			
		||||
        return R.ok(iCuMemberRegisterService.queryCuMemberRegister(pkMember));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<Boolean> updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney) {
 | 
			
		||||
        try {
 | 
			
		||||
| 
						 | 
				
			
			@ -344,4 +378,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
 | 
			
		|||
        return R.ok(iCuMemberService.checkRegisterRelation(phone, parentCode));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public R<CuMemberShare> queryCuMemberShare(Long pkMember) {
 | 
			
		||||
        return R.ok(iCuMemberShareService.queryCuMemberShare(pkMember));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,13 @@ public interface ICuMemberRegisterService extends IService<CuMemberRegister> {
 | 
			
		|||
     */
 | 
			
		||||
    List<CuMemberVO> queryCuMemberRegisterExeByCondition(MemberParam memberParam);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据会员主键查询会员注册信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkMember 会员主键
 | 
			
		||||
     */
 | 
			
		||||
    CuMemberRegister queryCuMemberRegister(Long pkMember);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 将用户注册表信息更改为死点
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -155,7 +155,15 @@ public interface ICuMemberService extends IService<CuMember> {
 | 
			
		|||
     * @param digit     编号数字位数
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    String createUserNameByPremix(Integer pkCountry, Integer digit);
 | 
			
		||||
    String createUserNameByPremix(Integer pkCountry, Integer digit);    /**
 | 
			
		||||
     * 生成会员编号
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkCountry 所属国家
 | 
			
		||||
     * @param isHaiFun
 | 
			
		||||
     * @param digit     编号数字位数
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    String createUserNameByPremix(Integer pkCountry, Boolean isHaiFun, Integer digit);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 批量生成会员编号
 | 
			
		||||
| 
						 | 
				
			
			@ -771,7 +779,7 @@ public interface ICuMemberService extends IService<CuMember> {
 | 
			
		|||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    CuMember getRetailTopMember(Long pkMember, String memberCode, Long topPkMember, String topMemberCode);
 | 
			
		||||
 | 
			
		||||
    String createRetailMemberCode(String prefix);
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验注册关系(是否跨团队)
 | 
			
		||||
     * 2024.12.24 修改为校验手机号必须唯一(9035)
 | 
			
		||||
| 
						 | 
				
			
			@ -869,4 +877,12 @@ public interface ICuMemberService extends IService<CuMember> {
 | 
			
		|||
     */
 | 
			
		||||
    List<CensusSummaryVo> selectCensusSummary(CensusSummaryParam censusSummaryParam, List<String> days);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询海粉订单
 | 
			
		||||
     *
 | 
			
		||||
     * @param orderCode 订单编号
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    CuMemberExt queryFansOrder(String orderCode);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,5 +22,10 @@ public interface ICuMemberShareService extends IService<CuMemberShare> {
 | 
			
		|||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<SeaFlourVo> seaFlourList(SeaFlourParam seaFlourParam);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询会员分享
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkMember 会员主键
 | 
			
		||||
     */
 | 
			
		||||
    CuMemberShare queryCuMemberShare(Long pkMember);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
package com.hzs.member.base.service.impl;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.core.utils.DateUtils;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberRegister;
 | 
			
		||||
| 
						 | 
				
			
			@ -26,6 +27,15 @@ public class CuMemberRegisterServiceImpl extends ServiceImpl<CuMemberRegisterMap
 | 
			
		|||
        return baseMapper.queryCuMemberRegisterExeByCondition(memberParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberRegister queryCuMemberRegister(Long pkMember) {
 | 
			
		||||
        LambdaQueryWrapper<CuMemberRegister> queryWrapper = new LambdaQueryWrapper<>();
 | 
			
		||||
        queryWrapper.eq(CuMemberRegister::getPkMember, pkMember);
 | 
			
		||||
        queryWrapper.orderByAsc(CuMemberRegister::getPayTime);
 | 
			
		||||
        List<CuMemberRegister> cuMemberRegisters = baseMapper.selectList(queryWrapper);
 | 
			
		||||
        return cuMemberRegisters.get(0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void updateCuMemberRegister(CuMemberRegister cuMemberRegister) {
 | 
			
		||||
        baseMapper.updateCuMemberRegister(cuMemberRegister);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1556,6 +1556,34 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
 | 
			
		|||
        return memberCode;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String createUserNameByPremix(Integer pkCountry, Boolean isHaiFun, Integer digit) {
 | 
			
		||||
        String prefix;
 | 
			
		||||
        if (isHaiFun) {
 | 
			
		||||
            prefix = SysConstants.HAI_FUN_PREFIX;
 | 
			
		||||
        } else {
 | 
			
		||||
            CountryDTO country = iCountryServiceApi.getCountry(pkCountry).getData();
 | 
			
		||||
            prefix = country.getCode();
 | 
			
		||||
        }
 | 
			
		||||
        if (StringUtils.isEmpty(prefix)) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        // 生成loginName
 | 
			
		||||
        String memberCode = this.createMemberCode(prefix, digit);
 | 
			
		||||
 | 
			
		||||
        CuMember cuMemberByKey = getMember(memberCode);
 | 
			
		||||
        if (cuMemberByKey != null && cuMemberByKey.getPkId() > 0) {
 | 
			
		||||
            // 用户名已经存在,则继续尝试
 | 
			
		||||
            return this.createUserNameByPremix(pkCountry, isHaiFun, digit);
 | 
			
		||||
        } else {
 | 
			
		||||
            // 验证空单注册里面是否存在编号
 | 
			
		||||
            List<CuMemberEmptyCode> cuMemberEmptyDetails = iCuMemberEmptyCodeService.queryCuMemberEmptyCode(memberCode);
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(cuMemberEmptyDetails)) {
 | 
			
		||||
                return this.createUserNameByPremix(pkCountry, isHaiFun, digit);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return memberCode;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建会员编号
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -3009,6 +3037,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
 | 
			
		|||
     * @param prefix 会员编号前缀
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public String createRetailMemberCode(String prefix) {
 | 
			
		||||
        if (StringUtils.isEmpty(prefix)) {
 | 
			
		||||
            prefix = SysConstants.RETAIL_PREFIX;
 | 
			
		||||
| 
						 | 
				
			
			@ -3196,7 +3225,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
 | 
			
		|||
        // 根据类型查询所有人各类型的订单业绩汇总
 | 
			
		||||
        List<CensusSummaryVo> censusSummaryList = new ArrayList<>();
 | 
			
		||||
        for (String day : days) {
 | 
			
		||||
            censusSummaryParam.setTime(day);
 | 
			
		||||
            censusSummaryParam.setTime(day);// 将体系转换成集合类型
 | 
			
		||||
            if (censusSummaryParam.getPkBdVertexStr() != null) {
 | 
			
		||||
                censusSummaryParam.setPkBdVertexStrList(Arrays.stream(censusSummaryParam.getPkBdVertexStr().split(","))
 | 
			
		||||
                        .map(Integer::valueOf)
 | 
			
		||||
                        .collect(Collectors.toList()));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            List<MemberMeritsSummaryVo> memberMeritsSummaryVoList = baseMapper.queryDateBySummary(censusSummaryParam);
 | 
			
		||||
            Map<Integer, MemberMeritsSummaryVo> memberMeritsSummaryMap = memberMeritsSummaryVoList.stream().collect(Collectors.toMap(MemberMeritsSummaryVo::getOrderType, Function.identity()));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3248,4 +3283,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
 | 
			
		|||
        return censusSummaryList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberExt queryFansOrder(String orderCode) {
 | 
			
		||||
        return baseMapper.queryFansOrder(orderCode);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
package com.hzs.member.base.service.impl;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.member.base.mapper.CuMemberShareMapper;
 | 
			
		||||
| 
						 | 
				
			
			@ -30,4 +31,10 @@ public class CuMemberShareServiceImpl extends ServiceImpl<CuMemberShareMapper, C
 | 
			
		|||
        return baseMapper.seaFlourList(seaFlourParam);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CuMemberShare queryCuMemberShare(Long pkMember) {
 | 
			
		||||
        QueryWrapper<CuMemberShare> queryWrapper = new QueryWrapper<>();
 | 
			
		||||
        queryWrapper.select("PK_ID,MEMBER_CODE,MEMBER_NAME,PHONE,PK_PARENT");
 | 
			
		||||
        return baseMapper.selectById(pkMember);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,5 +51,9 @@ public class CensusSummaryParam {
 | 
			
		|||
     * 体系
 | 
			
		||||
     */
 | 
			
		||||
    private String pkBdVertexStr;
 | 
			
		||||
    /**
 | 
			
		||||
     * 体系集合
 | 
			
		||||
     */
 | 
			
		||||
    private List<Integer> pkBdVertexStrList;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,4 +21,13 @@ public interface IMemberLoginService {
 | 
			
		|||
     **/
 | 
			
		||||
    LoginMember passwordFreelogin(String username);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 分享登录
 | 
			
		||||
     *
 | 
			
		||||
     * @param username 用户名
 | 
			
		||||
     * @param password 密码
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    LoginMember shareLogin(String username, String password);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@ import com.hzs.common.core.utils.ServletUtils;
 | 
			
		|||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.utils.ip.IpUtils;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.detail.CuMemberLogin;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		||||
| 
						 | 
				
			
			@ -157,6 +158,35 @@ public class MemberLoginServiceImpl implements IMemberLoginService {
 | 
			
		|||
        return loginMember;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public LoginMember shareLogin(String username, String password) {
 | 
			
		||||
        // 用户名或密码为空 错误
 | 
			
		||||
        if (StringUtils.isAnyBlank(username, password)) {
 | 
			
		||||
            // 用户/密码必须填写
 | 
			
		||||
            throw new ServiceException(TransactionUtils.getContent(SystemMsgConstants.USER_REQUIRED));
 | 
			
		||||
        }
 | 
			
		||||
        // 查询用户信息
 | 
			
		||||
        R<LoginMember> memberResult = iMemberServiceApi.getShareMemberInfo(username);
 | 
			
		||||
 | 
			
		||||
        if (R.FAIL == memberResult.getCode()) {
 | 
			
		||||
            throw new ServiceException(memberResult.getMsg());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (StringUtils.isNull(memberResult.getData())) {
 | 
			
		||||
            // 登录用户: %s 不存在
 | 
			
		||||
            throw new ServiceException(TransactionUtils.getContent(SystemMsgConstants.USER_NOT_EXIST, username));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        LoginMember loginMember = memberResult.getData();
 | 
			
		||||
        CuMemberShare cuMemberShare = loginMember.getCuMemberShare();
 | 
			
		||||
        // 密码校验
 | 
			
		||||
        if (!SecurityUtils.matchesPassword(password, cuMemberShare.getLoginPwd())) {
 | 
			
		||||
            // 用户不存在/密码错误
 | 
			
		||||
            throw new ServiceException(TransactionUtils.getContent(SystemMsgConstants.USER_ERROR, username));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return loginMember;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 记录登录信息
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -174,4 +174,30 @@ public class ApiShareController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取188分享码(H5)
 | 
			
		||||
     *
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/fans-code-h5")
 | 
			
		||||
    public AjaxResult fansCodeH5() {
 | 
			
		||||
        Long userId = SecurityUtils.getUserId();
 | 
			
		||||
        // 188注册分享人就是自己
 | 
			
		||||
        R<String> resultR = iShareServiceApi.queryShareCode(ShareServiceDTO.builder()
 | 
			
		||||
                .eShareType(EShareType.FANS)
 | 
			
		||||
                .pkBusiness(userId)
 | 
			
		||||
                .pkCountry(SecurityUtils.getPkCountry())
 | 
			
		||||
                .userId(userId)
 | 
			
		||||
                .build());
 | 
			
		||||
        if (resultR.isSuccess()) {
 | 
			
		||||
            Map<String, String> resultMap = new HashMap<>();
 | 
			
		||||
            resultMap.put("dataUrl", resultR.getData());
 | 
			
		||||
            // 前端无法根据URL生成海报,此处需要转一下base64
 | 
			
		||||
            resultMap.put("dataStr", Base64Util.toUrlBase64(resultR.getData()));
 | 
			
		||||
            return AjaxResult.success(resultMap);
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.error();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,22 @@
 | 
			
		|||
package com.hzs.retail.login.controller;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.codec.Base64Decoder;
 | 
			
		||||
import com.hzs.common.core.constant.CacheConstants;
 | 
			
		||||
import com.hzs.common.core.constant.MagicNumberConstants;
 | 
			
		||||
import com.hzs.common.core.constant.SysConstants;
 | 
			
		||||
import com.hzs.common.core.service.RedisService;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.security.auth.AuthMemberUtil;
 | 
			
		||||
import com.hzs.common.security.service.MemberTokenService;
 | 
			
		||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		||||
import com.hzs.member.base.dto.LoginMember;
 | 
			
		||||
import com.hzs.member.base.service.ICuMemberService;
 | 
			
		||||
import com.hzs.member.base.service.ICuMemberShareService;
 | 
			
		||||
import com.hzs.member.login.param.AutoLoginParam;
 | 
			
		||||
import com.hzs.member.login.service.IMemberLoginService;
 | 
			
		||||
import com.hzs.retail.login.param.RetailAutoLoginParam;
 | 
			
		||||
import com.hzs.retail.login.param.RetailLoginParam;
 | 
			
		||||
import com.hzs.retail.login.service.IRetailMemberLoginService;
 | 
			
		||||
| 
						 | 
				
			
			@ -28,6 +37,13 @@ import javax.validation.Valid;
 | 
			
		|||
@RestController
 | 
			
		||||
public class RetailMemberTokenController {
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberService iCuMemberService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ICuMemberShareService iCuMemberShareService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private IMemberLoginService iMemberLoginService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private MemberTokenService memberTokenService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
| 
						 | 
				
			
			@ -50,14 +66,16 @@ public class RetailMemberTokenController {
 | 
			
		|||
        return AjaxResult.success(memberTokenService.createToken(loginMember));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 新零售会员自动登录
 | 
			
		||||
     * 新零售会员自动登录-分享注册后自动登录
 | 
			
		||||
     *
 | 
			
		||||
     * @param param 自助登录参数
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/auto-login")
 | 
			
		||||
    public AjaxResult autoLogin(@Valid @RequestBody RetailAutoLoginParam param) {
 | 
			
		||||
    @PostMapping("/registered-auto-login")
 | 
			
		||||
    public AjaxResult registeredAutoLogin(@Valid @RequestBody RetailAutoLoginParam param) {
 | 
			
		||||
        String tmpUuid = redisService.getCacheObject(CacheConstants.AUTO_LOGIN + param.getUsername());
 | 
			
		||||
        if (!param.getUuid().equals(tmpUuid)) {
 | 
			
		||||
            // 没有自动登录标记 或者 标记不对,则不能自动登录
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +88,60 @@ public class RetailMemberTokenController {
 | 
			
		|||
        return AjaxResult.success(memberTokenService.createToken(loginMember));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 新零售会员自动登录
 | 
			
		||||
     *
 | 
			
		||||
     * @param param 自助登录参数
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/auto-login")
 | 
			
		||||
//    public AjaxResult autoLogin(@Valid @RequestBody RetailAutoLoginParam param) {
 | 
			
		||||
//        String tmpUuid = redisService.getCacheObject(CacheConstants.AUTO_LOGIN + param.getUsername());
 | 
			
		||||
//        if (!param.getUuid().equals(tmpUuid)) {
 | 
			
		||||
//            // 没有自动登录标记 或者 标记不对,则不能自动登录
 | 
			
		||||
//            return AjaxResult.error("当前会员已不能快递登录");
 | 
			
		||||
//        }
 | 
			
		||||
//
 | 
			
		||||
//        // 用户登录
 | 
			
		||||
//        LoginMember loginMember = iRetailMemberLoginService.login(param.getUsername(), param.getPassword());
 | 
			
		||||
//        // 获取登录token
 | 
			
		||||
//        return AjaxResult.success(memberTokenService.createToken(loginMember));
 | 
			
		||||
//    }
 | 
			
		||||
    public AjaxResult autoLogin(@RequestBody AutoLoginParam param) {
 | 
			
		||||
        if (StringUtils.isEmpty(param.getPkParent())) {
 | 
			
		||||
            return AjaxResult.error("缺少注册信息!");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 上级编码(推荐人)
 | 
			
		||||
        Long pkParent = Long.parseLong(new String(Base64Decoder.decode(param.getPkParent())));
 | 
			
		||||
        // 查询上级信息
 | 
			
		||||
        CuMemberExt parentCuMember = iCuMemberService.getMemberById(pkParent);
 | 
			
		||||
        if (null == parentCuMember) {
 | 
			
		||||
            return AjaxResult.error("二维码已经失效!");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 生成的会员编号
 | 
			
		||||
        String memberCode = iCuMemberService.createRetailMemberCode(SysConstants.RETAIL_PREFIX);
 | 
			
		||||
//                iCuMemberService.createUserNameByPremix(parentCuMember.getPkSettleCountry(), MagicNumberConstants.DIGIT);
 | 
			
		||||
 | 
			
		||||
        CuMemberShare cuMemberShare = new CuMemberShare();
 | 
			
		||||
        cuMemberShare.setMemberCode(memberCode);
 | 
			
		||||
        cuMemberShare.setPkParent(pkParent);
 | 
			
		||||
        cuMemberShare.setLoginPassword(SysConstants.LOGIN_PASSWORD);
 | 
			
		||||
        cuMemberShare.setLoginPwd(SecurityUtils.encryptPassword(SysConstants.LOGIN_PASSWORD));
 | 
			
		||||
        cuMemberShare.setPayPassword(SysConstants.PAY_PASSWORD);
 | 
			
		||||
        cuMemberShare.setPayPwd(SecurityUtils.encryptPassword(SysConstants.PAY_PASSWORD));
 | 
			
		||||
        cuMemberShare.setPkCreator(pkParent);
 | 
			
		||||
        cuMemberShare.setPkCountry(parentCuMember.getPkSettleCountry());
 | 
			
		||||
        if (iCuMemberShareService.save(cuMemberShare)) {
 | 
			
		||||
            // 会员登录
 | 
			
		||||
            LoginMember loginMember = iMemberLoginService.shareLogin(memberCode, SysConstants.LOGIN_PASSWORD);
 | 
			
		||||
 | 
			
		||||
            // 获取登录token
 | 
			
		||||
            return AjaxResult.success(memberTokenService.createToken(loginMember));
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.error();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员登出
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,6 +233,9 @@
 | 
			
		|||
        <if test="account2 != null">
 | 
			
		||||
            and account2 + #{account2} >= 0
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="account4 != null">
 | 
			
		||||
            and account4 + #{account4} >= 0
 | 
			
		||||
        </if>
 | 
			
		||||
    </update>
 | 
			
		||||
 | 
			
		||||
    <select id="queryMemberAccountByMemberCode" resultType="com.hzs.member.account.dto.CuMemberRechargeAccountParam">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,27 +4,27 @@
 | 
			
		|||
 | 
			
		||||
    <!-- 通用查询映射结果 -->
 | 
			
		||||
    <resultMap id="BaseResultMap" type="com.hzs.common.domain.member.account.CuMemberBank">
 | 
			
		||||
        <id column="PK_ID" property="pkId" />
 | 
			
		||||
        <result column="DEL_FLAG" property="delFlag" />
 | 
			
		||||
        <result column="PK_CREATOR" property="pkCreator" />
 | 
			
		||||
        <result column="CREATION_TIME" property="creationTime" />
 | 
			
		||||
        <result column="PK_MODIFIED" property="pkModified" />
 | 
			
		||||
        <result column="MODIFIED_TIME" property="modifiedTime" />
 | 
			
		||||
        <result column="PK_COUNTRY" property="pkCountry" />
 | 
			
		||||
        <id column="PK_ID" property="pkId"/>
 | 
			
		||||
        <result column="DEL_FLAG" property="delFlag"/>
 | 
			
		||||
        <result column="PK_CREATOR" property="pkCreator"/>
 | 
			
		||||
        <result column="CREATION_TIME" property="creationTime"/>
 | 
			
		||||
        <result column="PK_MODIFIED" property="pkModified"/>
 | 
			
		||||
        <result column="MODIFIED_TIME" property="modifiedTime"/>
 | 
			
		||||
        <result column="PK_COUNTRY" property="pkCountry"/>
 | 
			
		||||
        <result column="PK_MEMBER" property="pkMember"/>
 | 
			
		||||
        <result column="BANK_NAME" property="bankName" />
 | 
			
		||||
        <result column="SUB_BANK_NAME" property="subBankName" />
 | 
			
		||||
        <result column="ACCOUNT_NAME" property="accountName" />
 | 
			
		||||
        <result column="CARD_NUMBER" property="cardNumber" />
 | 
			
		||||
        <result column="ID_CARD" property="idCard" />
 | 
			
		||||
        <result column="PHONE" property="phone" />
 | 
			
		||||
        <result column="PK_BANK" property="pkBank" />
 | 
			
		||||
        <result column="DEFAULT_CARD" property="defaultCard" />
 | 
			
		||||
        <result column="ACCOUNT_PROVINCE" property="accountProvince" />
 | 
			
		||||
        <result column="ACCOUNT_CITY" property="accountCity" />
 | 
			
		||||
        <result column="VALID_START_DATE" property="validStartDate" />
 | 
			
		||||
        <result column="VALID_END_DATE" property="validEndDate" />
 | 
			
		||||
        <result column="IS_LONG_TERM" property="isLongTerm" />
 | 
			
		||||
        <result column="BANK_NAME" property="bankName"/>
 | 
			
		||||
        <result column="SUB_BANK_NAME" property="subBankName"/>
 | 
			
		||||
        <result column="ACCOUNT_NAME" property="accountName"/>
 | 
			
		||||
        <result column="CARD_NUMBER" property="cardNumber"/>
 | 
			
		||||
        <result column="ID_CARD" property="idCard"/>
 | 
			
		||||
        <result column="PHONE" property="phone"/>
 | 
			
		||||
        <result column="PK_BANK" property="pkBank"/>
 | 
			
		||||
        <result column="DEFAULT_CARD" property="defaultCard"/>
 | 
			
		||||
        <result column="ACCOUNT_PROVINCE" property="accountProvince"/>
 | 
			
		||||
        <result column="ACCOUNT_CITY" property="accountCity"/>
 | 
			
		||||
        <result column="VALID_START_DATE" property="validStartDate"/>
 | 
			
		||||
        <result column="VALID_END_DATE" property="validEndDate"/>
 | 
			
		||||
        <result column="IS_LONG_TERM" property="isLongTerm"/>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <update id="batchUpdateBankBypkMembers">
 | 
			
		||||
| 
						 | 
				
			
			@ -37,22 +37,22 @@
 | 
			
		|||
    </update>
 | 
			
		||||
 | 
			
		||||
    <select id="selectBankCardByPkMember" resultType="com.hzs.common.domain.member.account.CuMemberBankExt">
 | 
			
		||||
          select mb.pk_id         pkId,
 | 
			
		||||
        select mb.pk_id         pkId,
 | 
			
		||||
               mb.card_number   cardNumber,
 | 
			
		||||
               mb.default_card  defaultCard,
 | 
			
		||||
               b.pk_transaction pkBank,
 | 
			
		||||
               b.background_img backgroundImg,
 | 
			
		||||
               b.bank_name bankName,
 | 
			
		||||
               b.bank_name      bankName,
 | 
			
		||||
               b.logo
 | 
			
		||||
          from cu_member_bank mb
 | 
			
		||||
          left join bd_bank b
 | 
			
		||||
            on mb.pk_bank = b.pk_id
 | 
			
		||||
           and b.del_flag = 0
 | 
			
		||||
           and b.enable_state = 0
 | 
			
		||||
         where mb.del_flag = 0
 | 
			
		||||
           and mb.pk_country = #{pkCountry}
 | 
			
		||||
           and mb.pk_member = #{pkMember}
 | 
			
		||||
         order by mb.default_card desc
 | 
			
		||||
        from cu_member_bank mb
 | 
			
		||||
                 left join bd_bank b
 | 
			
		||||
                           on mb.pk_bank = b.pk_id
 | 
			
		||||
                               and b.del_flag = 0
 | 
			
		||||
                               and b.enable_state = 0
 | 
			
		||||
        where mb.del_flag = 0
 | 
			
		||||
          and mb.pk_country = #{pkCountry}
 | 
			
		||||
          and mb.pk_member = #{pkMember}
 | 
			
		||||
        order by mb.default_card desc
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,19 +34,6 @@
 | 
			
		|||
        <result column="BATCH" property="batch"/>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <!-- 通用查询结果列 -->
 | 
			
		||||
    <sql id="Base_Column_List">
 | 
			
		||||
        DEL_FLAG
 | 
			
		||||
        ,
 | 
			
		||||
        PK_COUNTRY,
 | 
			
		||||
        PK_CREATOR,
 | 
			
		||||
        CREATION_TIME,
 | 
			
		||||
        PK_MODIFIED,
 | 
			
		||||
        MODIFIED_TIME,
 | 
			
		||||
        PK_ID, PK_MEMBER, WITHDRAW_CODE, PK_ACCOUNT, PK_BANK, PK_RATE, CASH_AMOUNT, SERVICE_CHARGE, INCOME_TAX,
 | 
			
		||||
        ISSUED_AMOUNT,APPROVE_STATE, PAYMENT_TIME, PAYER, REMARKS, APPROVER, APPROVE_TIME, PK_ROLE, ROLE_NAME,STATUS,PAYER_REMARKS,APPROVE_REMARKS
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
    <sql id="select_base">
 | 
			
		||||
        SELECT r.*,
 | 
			
		||||
               m.member_code      memberCode,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -483,8 +483,8 @@
 | 
			
		|||
            currentMonth.ENABLE_STATUS,
 | 
			
		||||
            NVL( NVL( currentDay.ALL_NEW_CONSUME_PV, 0 ) + NVL( currentDay.ALL_TEAM_NEW_PV, 0 ), 0 ) todayPv,
 | 
			
		||||
            NVL( NVL( currentMonth.NEW_CONSUME_PV, 0 ) + NVL( currentMonth.TEAM_NEW_PV, 0 ), 0 ) yesterdayPv,
 | 
			
		||||
            NVL( NVL( currentMonth.MONTH_CONSUME_PV, 0 ) + NVL( currentMonth.ALL_TEAM_MONTH_PV, 0 ) + NVL( currentDay.ALL_NEW_CONSUME_PV, 0 ) + NVL( currentDay.ALL_TEAM_NEW_PV, 0 ), 0 ) currentMonthPv,
 | 
			
		||||
            NVL( lastMonth.MONTH_CONSUME_PV, 0 ) + NVL( lastMonth.ALL_TEAM_MONTH_PV, 0 ) lastMonthPv
 | 
			
		||||
            NVL( NVL( currentMonth.MONTH_CONSUME_PV, 0 ) + NVL( currentMonth.TEAM_MONTH_PV, 0 ) + NVL( currentDay.ALL_NEW_CONSUME_PV, 0 ) + NVL( currentDay.ALL_TEAM_NEW_PV, 0 ), 0 ) currentMonthPv,
 | 
			
		||||
            NVL( lastMonth.MONTH_CONSUME_PV, 0 ) + NVL( lastMonth.TEAM_MONTH_PV, 0 ) lastMonthPv
 | 
			
		||||
        FROM
 | 
			
		||||
            cu_member cu
 | 
			
		||||
                LEFT JOIN ${param.currentDayTableName} currentDay ON cu.PK_ID = currentDay.PK_MEMBER
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2368,9 +2368,9 @@
 | 
			
		|||
        and sa.del_flag = 0
 | 
			
		||||
        and to_char(sa.pay_time, 'yyyy-mm-dd') = #{time}
 | 
			
		||||
        and sa.pk_country = #{pkCountry}
 | 
			
		||||
        <if test="pkVertex != null and pkVertex.size > 0 ">
 | 
			
		||||
        <if test="pkBdVertexStrList != null and pkBdVertexStrList.size > 0 ">
 | 
			
		||||
            and cm.pk_vertex in
 | 
			
		||||
            <foreach collection="pkVertex" item="item" open="(" close=")" separator=",">
 | 
			
		||||
            <foreach collection="pkBdVertexStrList" item="item" open="(" close=")" separator=",">
 | 
			
		||||
                #{item}
 | 
			
		||||
            </foreach>
 | 
			
		||||
        </if>
 | 
			
		||||
| 
						 | 
				
			
			@ -2378,4 +2378,19 @@
 | 
			
		|||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- 查询海粉订单 -->
 | 
			
		||||
    <select id="queryFansOrder" resultMap="MemberResultMap">
 | 
			
		||||
        select cm.member_code,
 | 
			
		||||
               cm.member_name,
 | 
			
		||||
               cm.phone,
 | 
			
		||||
               cm.login_password,
 | 
			
		||||
               cm.pay_password
 | 
			
		||||
        from sa_order so
 | 
			
		||||
                 inner join cu_member cm
 | 
			
		||||
                            on cm.pk_id = so.pk_creator
 | 
			
		||||
        where so.del_flag = 0
 | 
			
		||||
          and so.order_type = 41
 | 
			
		||||
          and so.order_code = #{orderCode}
 | 
			
		||||
    </select>
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,16 +6,23 @@ import com.hzs.common.core.annotation.RepeatSubmit;
 | 
			
		|||
import com.hzs.common.core.config.BdConfig;
 | 
			
		||||
import com.hzs.common.core.constant.CacheConstants;
 | 
			
		||||
import com.hzs.common.core.domain.R;
 | 
			
		||||
import com.hzs.common.core.enums.EGrade;
 | 
			
		||||
import com.hzs.common.core.enums.EOrderPrefix;
 | 
			
		||||
import com.hzs.common.core.enums.ESpecialArea;
 | 
			
		||||
import com.hzs.common.core.enums.EYesNo;
 | 
			
		||||
import com.hzs.common.core.exception.ServiceException;
 | 
			
		||||
import com.hzs.common.core.service.RedisService;
 | 
			
		||||
import com.hzs.common.core.utils.CommonUtil;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
import com.hzs.common.domain.sale.wares.BdWares;
 | 
			
		||||
import com.hzs.common.domain.system.config.BdGrade;
 | 
			
		||||
import com.hzs.common.security.service.MemberTokenService;
 | 
			
		||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		||||
import com.hzs.member.base.IMemberServiceApi;
 | 
			
		||||
import com.hzs.retail.sale.controller.service.IRetailOrderService;
 | 
			
		||||
| 
						 | 
				
			
			@ -23,10 +30,13 @@ import com.hzs.retail.sale.param.*;
 | 
			
		|||
import com.hzs.retail.sale.vo.*;
 | 
			
		||||
import com.hzs.sale.order.param.*;
 | 
			
		||||
import com.hzs.sale.order.service.ISaOrderService;
 | 
			
		||||
import com.hzs.sale.order.service.ISaOrderShareTmpService;
 | 
			
		||||
import com.hzs.sale.shopping.service.IShoppingCartService;
 | 
			
		||||
import com.hzs.sale.shopping.vo.ProductGroup;
 | 
			
		||||
import com.hzs.sale.shopping.vo.ShoppingCartRedis;
 | 
			
		||||
import com.hzs.sale.shopping.vo.ShoppingCartVO;
 | 
			
		||||
import com.hzs.sale.wares.service.IBdWaresService;
 | 
			
		||||
import com.hzs.sale.wares.service.IBdWaresSpecsSkuService;
 | 
			
		||||
import com.hzs.system.base.IAreaServiceApi;
 | 
			
		||||
import com.hzs.system.config.IGradeServiceApi;
 | 
			
		||||
import com.hzs.system.config.dto.GradeDTO;
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +50,7 @@ import java.math.BigDecimal;
 | 
			
		|||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 新零售订单控制器
 | 
			
		||||
| 
						 | 
				
			
			@ -58,12 +69,21 @@ public class ApiRetailOrderController {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    private RedisService redisService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private IBdWaresService iBdWaresService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private IBdWaresSpecsSkuService iBdWaresSpecsSkuService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ISaOrderShareTmpService iSaOrderShareTmpService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IMemberServiceApi iMemberServiceApi;
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IGradeServiceApi iGradeServiceApi;
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    IAreaServiceApi iAreaServiceApi;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private MemberTokenService memberTokenService;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验会员等级
 | 
			
		||||
| 
						 | 
				
			
			@ -590,4 +610,111 @@ public class ApiRetailOrderController {
 | 
			
		|||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 确认注册订单
 | 
			
		||||
     *
 | 
			
		||||
     * @param registerParam 订单入参
 | 
			
		||||
     * @param source        数据来源
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @RepeatSubmit
 | 
			
		||||
    @PostMapping("/fans-confirm-order")
 | 
			
		||||
    public AjaxResult fansConfirmOrder(@RequestBody RetailOrderRegisterParam registerParam,
 | 
			
		||||
                                           @RequestHeader("Source") Integer source) {
 | 
			
		||||
        // 设置数据来源
 | 
			
		||||
        registerParam.setSource(source);
 | 
			
		||||
        // 会员ID
 | 
			
		||||
        registerParam.setPkCreator(SecurityUtils.getUserId());
 | 
			
		||||
        // 新零售注册专区
 | 
			
		||||
        registerParam.setSpecialArea(ESpecialArea.RETAIL_REGISTER.getValue());
 | 
			
		||||
        // 系统类型
 | 
			
		||||
        registerParam.setSystemType(SecurityUtils.getSystemType());
 | 
			
		||||
 | 
			
		||||
        // 获取等级列表
 | 
			
		||||
        List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
 | 
			
		||||
        // 校验注册权限等
 | 
			
		||||
//        String checkStr = this.checkRegistrationPermission(registerParam, gradeList);
 | 
			
		||||
//        if (null != checkStr) {
 | 
			
		||||
//            return AjaxResult.error(checkStr);
 | 
			
		||||
//        }
 | 
			
		||||
 | 
			
		||||
        // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断
 | 
			
		||||
//        // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一
 | 
			
		||||
//        String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
 | 
			
		||||
//        if (relationStr != null) {
 | 
			
		||||
//            return AjaxResult.error(relationStr);
 | 
			
		||||
//        }
 | 
			
		||||
 | 
			
		||||
        // 购物车中获取商品信息
 | 
			
		||||
//        registerParam.setOrderItemsParams(convertShoppingCarToSku(registerParam.getPkCreator(), registerParam.getShopList()));
 | 
			
		||||
 | 
			
		||||
        // 遍历商品,封装订单明细
 | 
			
		||||
        // 订单金额
 | 
			
		||||
        BigDecimal orderAmount = BigDecimal.ZERO;
 | 
			
		||||
 | 
			
		||||
        // 生成订单编号
 | 
			
		||||
        String orderCode = CommonUtil.createSerialNumber(EOrderPrefix.ORDER_CODE);
 | 
			
		||||
        List<OrderItemsParam> orderItemsParams = new ArrayList<>();
 | 
			
		||||
        for (FansConfirmOrderWaresParam waresParam : registerParam.getWaresList()) {
 | 
			
		||||
            // 遍历sku
 | 
			
		||||
            // 产品价格等map
 | 
			
		||||
            Map<Long, BdWaresSpecsSkuExt> skuMap = iBdWaresSpecsSkuService.queryWaresSpecsSkuList(waresParam.getSkuList().stream().map(FansConfirmOrderSkuParam::getPkWaresSku).collect(Collectors.toList()));
 | 
			
		||||
 | 
			
		||||
            // 查询商品
 | 
			
		||||
            BdWares bdWares = iBdWaresService.getWares(waresParam.getPkWares());
 | 
			
		||||
 | 
			
		||||
            // 缓存数据
 | 
			
		||||
            List<WaresItemsParam> itemsParamList = new ArrayList<>(waresParam.getSkuList().size());
 | 
			
		||||
            // 遍历产品信息
 | 
			
		||||
            for (FansConfirmOrderSkuParam skuParam : waresParam.getSkuList()) {
 | 
			
		||||
                BdWaresSpecsSkuExt specsSku = skuMap.get(skuParam.getPkWaresSku());
 | 
			
		||||
                orderAmount = orderAmount.add(specsSku.getPrice().multiply(new BigDecimal(skuParam.getQuantity() * waresParam.getQuantity())));
 | 
			
		||||
 | 
			
		||||
                itemsParamList.add(WaresItemsParam.builder()
 | 
			
		||||
                        .pkWaresSpecsSku(skuParam.getPkWaresSku().intValue())
 | 
			
		||||
                        .quantity(skuParam.getQuantity())
 | 
			
		||||
                        .build());
 | 
			
		||||
            }
 | 
			
		||||
            orderItemsParams.add(OrderItemsParam.builder()
 | 
			
		||||
                    .waresCode(bdWares.getWaresCode())
 | 
			
		||||
                    .quantity(waresParam.getQuantity())
 | 
			
		||||
                    .waresItemsParamList(itemsParamList)
 | 
			
		||||
                    .build());
 | 
			
		||||
        }
 | 
			
		||||
        registerParam.setOrderItemsParams(orderItemsParams);
 | 
			
		||||
        CuMemberShare memberShare = memberTokenService.getLoginMember().getCuMemberShare();
 | 
			
		||||
        registerParam.setCuMemberShare(memberShare);
 | 
			
		||||
//        registerParam.setPkCreator(memberShare.getPkParent());
 | 
			
		||||
        // 确认订单
 | 
			
		||||
        String str = iRetailOrderService.confirmRegOrder(registerParam, gradeList);
 | 
			
		||||
        // redis 拿金额
 | 
			
		||||
        SaOrderExt saOrder = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode());
 | 
			
		||||
        return confirmSharedOrderReturn(str, registerParam.getPkCreator(), registerParam.getShopList(), registerParam.getOrderCode(), saOrder.getOrderAmount());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 确认订单返回
 | 
			
		||||
     *
 | 
			
		||||
     * @param str       提示信息(null 为成功)
 | 
			
		||||
     * @param pkCreator 订单创建人
 | 
			
		||||
     * @param shopList  购物车ID
 | 
			
		||||
     * @param orderCode 订单编号
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    private AjaxResult confirmSharedOrderReturn(String str, Long pkCreator, List<ShoppingCartRedis> shopList, String orderCode, BigDecimal orderAmount) {
 | 
			
		||||
        if (null == str) {
 | 
			
		||||
            // 删除购物车商品数据
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(shopList)) {
 | 
			
		||||
                shoppingCartService.batchDelShopping(pkCreator, ShoppingCartVO.builder()
 | 
			
		||||
                        .deleteList(shopList)
 | 
			
		||||
                        .build());
 | 
			
		||||
            }
 | 
			
		||||
            return AjaxResult.success(RetailOrderVO.builder()
 | 
			
		||||
                    .orderCode(orderCode)
 | 
			
		||||
                            .orderAmount(orderAmount)
 | 
			
		||||
                    .build());
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.error(str);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ package com.hzs.retail.sale.controller.service.impl;
 | 
			
		|||
import cn.hutool.core.codec.Base64Encoder;
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.lang.Validator;
 | 
			
		||||
import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import cn.hutool.http.HttpRequest;
 | 
			
		||||
import cn.hutool.http.HttpUtil;
 | 
			
		||||
import cn.hutool.json.JSONUtil;
 | 
			
		||||
| 
						 | 
				
			
			@ -17,6 +18,7 @@ import com.hzs.common.core.utils.*;
 | 
			
		|||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.domain.member.account.CuMemberAccount;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
			
		||||
| 
						 | 
				
			
			@ -447,8 +449,15 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
 | 
			
		|||
        cuMember.setCreationTime(new Date());
 | 
			
		||||
        cuMember.setPkCreator(orderParam.getPkCreator());
 | 
			
		||||
 | 
			
		||||
        boolean isShared = false;
 | 
			
		||||
        if (null == orderParam.getCreatorMember()) {
 | 
			
		||||
            orderParam.setCreatorMember(iMemberServiceApi.getRetailMember(orderParam.getPkCreator(), null).getData());
 | 
			
		||||
            if(ObjectUtil.isNotEmpty(orderParam.getCuMemberShare())){
 | 
			
		||||
                orderParam.setCreatorMember(iMemberServiceApi.getRetailMember(orderParam.getCuMemberShare().getPkParent(), null).getData());
 | 
			
		||||
                cuMember.setPkParent(orderParam.getCuMemberShare().getPkParent());
 | 
			
		||||
                isShared = true;
 | 
			
		||||
            }else{
 | 
			
		||||
                orderParam.setCreatorMember(iMemberServiceApi.getRetailMember(orderParam.getPkCreator(), null).getData());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        cuMember.setPkVertex(orderParam.getCreatorMember().getPkVertex());
 | 
			
		||||
        cuMember.setPkTeamCode(orderParam.getCreatorMember().getPkTeamCode());
 | 
			
		||||
| 
						 | 
				
			
			@ -456,7 +465,12 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
 | 
			
		|||
        cuMember.setSystemType(orderParam.getCreatorMember().getSystemType());
 | 
			
		||||
 | 
			
		||||
        // 获取会员编号、会员主键
 | 
			
		||||
        cuMember = iMemberServiceApi.createRetailMemberIdAndCode(cuMember).getData();
 | 
			
		||||
        if(isShared){
 | 
			
		||||
            cuMember.setPkId(orderParam.getCuMemberShare().getPkId());
 | 
			
		||||
            cuMember.setMemberCode(orderParam.getCuMemberShare().getMemberCode());
 | 
			
		||||
        }else{
 | 
			
		||||
            cuMember = iMemberServiceApi.createRetailMemberIdAndCode(cuMember).getData();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return cuMember;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -592,7 +606,13 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
 | 
			
		|||
            }
 | 
			
		||||
            // 封装会员信息
 | 
			
		||||
            CuMember newMember = this.packageCuMember(registerParam);
 | 
			
		||||
            newMember.setPkSettleGrade(registerParam.getPkGrade());
 | 
			
		||||
            newMember.setPkAwards(registerParam.getPkAwards());
 | 
			
		||||
            saOrderExt.setPkMember(newMember.getPkId());
 | 
			
		||||
            if(ObjectUtil.isNotEmpty(registerParam.getCuMemberShare())){
 | 
			
		||||
               saOrderExt.setPkReference(registerParam.getCuMemberShare().getPkParent());
 | 
			
		||||
               saOrderExt.setOrderType(EOrderType.RETAIL_REGISTER.getValue());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            resultStr = this.payRegOrder(saOrderExt, newMember, null);
 | 
			
		||||
        } else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ import com.hzs.common.core.constant.CountryConstants;
 | 
			
		|||
import com.hzs.common.core.enums.EDelivery;
 | 
			
		||||
import com.hzs.common.core.enums.ETransportType;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMemberShare;
 | 
			
		||||
import com.hzs.sale.order.param.OrderItemsParam;
 | 
			
		||||
import com.hzs.sale.shopping.vo.ShoppingCartRedis;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
| 
						 | 
				
			
			@ -113,6 +114,9 @@ public class RetailOrderParam implements Serializable {
 | 
			
		|||
    @JsonIgnore
 | 
			
		||||
    private CuMember creatorMember;
 | 
			
		||||
 | 
			
		||||
//    @JsonIgnore
 | 
			
		||||
    private CuMemberShare cuMemberShare;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 订单编号
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,12 @@
 | 
			
		|||
package com.hzs.retail.sale.param;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
import com.hzs.sale.order.param.FansConfirmOrderWaresParam;
 | 
			
		||||
import lombok.*;
 | 
			
		||||
 | 
			
		||||
import javax.validation.constraints.NotEmpty;
 | 
			
		||||
import javax.validation.constraints.Size;
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 新零售注册订单入参
 | 
			
		||||
| 
						 | 
				
			
			@ -33,4 +34,9 @@ public class RetailOrderRegisterParam extends RetailOrderParam implements Serial
 | 
			
		|||
    @Size(max = 20, message = "推荐编号不能超过20位")
 | 
			
		||||
    private String parentCode;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品列表
 | 
			
		||||
     */
 | 
			
		||||
    private List<FansConfirmOrderWaresParam> waresList;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ import lombok.Data;
 | 
			
		|||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 新零售订单返回VO
 | 
			
		||||
| 
						 | 
				
			
			@ -48,4 +49,9 @@ public class RetailOrderVO implements Serializable {
 | 
			
		|||
     */
 | 
			
		||||
    private String urlAddress;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 待支付金额
 | 
			
		||||
     */
 | 
			
		||||
    private BigDecimal orderAmount;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
package com.hzs.retail.wares.controller.api;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import cn.hutool.core.codec.Base64Decoder;
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.date.DateUtil;
 | 
			
		||||
import com.alibaba.fastjson.JSONObject;
 | 
			
		||||
| 
						 | 
				
			
			@ -10,10 +11,13 @@ import com.hzs.common.core.domain.R;
 | 
			
		|||
import com.hzs.common.core.enums.EAccount;
 | 
			
		||||
import com.hzs.common.core.enums.ELabelType;
 | 
			
		||||
import com.hzs.common.core.enums.ESpecialArea;
 | 
			
		||||
import com.hzs.common.core.enums.EWaresType;
 | 
			
		||||
import com.hzs.common.core.utils.ComputeUtil;
 | 
			
		||||
import com.hzs.common.core.utils.DistinctByKeyUtil;
 | 
			
		||||
import com.hzs.common.core.utils.StringUtils;
 | 
			
		||||
import com.hzs.common.core.web.controller.BaseController;
 | 
			
		||||
import com.hzs.common.core.web.domain.AjaxResult;
 | 
			
		||||
import com.hzs.common.domain.member.base.CuMember;
 | 
			
		||||
import com.hzs.common.domain.member.ext.CuMemberExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.BdWaresExt;
 | 
			
		||||
import com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt;
 | 
			
		||||
| 
						 | 
				
			
			@ -25,8 +29,11 @@ import com.hzs.member.base.IMemberServiceApi;
 | 
			
		|||
import com.hzs.member.base.dto.ShowWaresDTO;
 | 
			
		||||
import com.hzs.retail.wares.param.RetailWaresDetailParam;
 | 
			
		||||
import com.hzs.retail.wares.param.RetailWaresParam;
 | 
			
		||||
import com.hzs.retail.wares.param.WaresShareParam;
 | 
			
		||||
import com.hzs.retail.wares.vo.RetailWaresDetailVO;
 | 
			
		||||
import com.hzs.retail.wares.vo.RetailWaresVO;
 | 
			
		||||
import com.hzs.sale.order.service.ISaOrderService;
 | 
			
		||||
import com.hzs.sale.wares.param.CuWaresParams;
 | 
			
		||||
import com.hzs.sale.wares.service.IBdWaresLabelService;
 | 
			
		||||
import com.hzs.sale.wares.service.IBdWaresRangeService;
 | 
			
		||||
import com.hzs.sale.wares.service.IBdWaresService;
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +45,7 @@ import com.hzs.system.config.dto.AreaCurrencyDTO;
 | 
			
		|||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.apache.dubbo.config.annotation.DubboReference;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
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 org.springframework.web.bind.annotation.*;
 | 
			
		||||
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
| 
						 | 
				
			
			@ -64,6 +68,8 @@ public class ApiRetailWaresController extends BaseController {
 | 
			
		|||
    private IBdWaresSpecsSkuService iBdWaresSpecsSkuService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private IBdWaresRangeService iBdWaresRangeService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ISaOrderService iSaOrderService;
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    ICurrencyServiceApi iCurrencyServiceApi;
 | 
			
		||||
| 
						 | 
				
			
			@ -378,4 +384,147 @@ public class ApiRetailWaresController extends BaseController {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 188分享专区商品列表
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/list-wares-share")
 | 
			
		||||
    public AjaxResult listWaresShare(WaresShareParam param) {
 | 
			
		||||
        param.setSpecialArea(ESpecialArea.REGISTER_AREA.getValue());
 | 
			
		||||
        param.setIsMakerGift(EWaresType.ORDINARY.getValue());
 | 
			
		||||
        param.setPkCountry(CountryConstants.CHINA_COUNTRY);
 | 
			
		||||
 | 
			
		||||
        // 返回数据
 | 
			
		||||
        List<CuWaresParams> waresParamsList = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        // 查询商品列表
 | 
			
		||||
        List<BdWaresExt> bdWaresExtList = iBdWaresService.listWaresShare(param.getSpecialArea(), param.getIsMakerGift(), param.getPkCountry());
 | 
			
		||||
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(bdWaresExtList)) {
 | 
			
		||||
            // 商品主键列表
 | 
			
		||||
            List<Integer> waresIdList = bdWaresExtList.stream().map(BdWares::getPkId).collect(Collectors.toList());
 | 
			
		||||
 | 
			
		||||
            if (StringUtils.isNotEmpty(param.getShareMemberCode())) {
 | 
			
		||||
                // 分享人ID
 | 
			
		||||
                Long pkMember = Long.parseLong(new String(Base64Decoder.decode(param.getShareMemberCode())));
 | 
			
		||||
                CuMember cuMember = iSaOrderService.getCuMemberByKey(pkMember);
 | 
			
		||||
                // 当前会员编号
 | 
			
		||||
                String memberCode = cuMember.getMemberCode();
 | 
			
		||||
 | 
			
		||||
                // 检验商品团队信息
 | 
			
		||||
                Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
 | 
			
		||||
                List<ShowWaresDTO> showWaresList = bdWaresExtList.stream().map(we -> getShowWares(we.getPkId(), pkMember, memberCode, waresAuthorityMap)).collect(Collectors.toList());
 | 
			
		||||
                R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
 | 
			
		||||
                Map<Integer, Boolean> waresShowMap = waresShowMapDto.getData();
 | 
			
		||||
 | 
			
		||||
                // 商品标签列表
 | 
			
		||||
                BdWaresLabel waresLabel = new BdWaresLabel();
 | 
			
		||||
                waresLabel.setPkIdList(waresIdList);
 | 
			
		||||
                List<BdLabelExt> list = iBdWaresLabelService.selectByList(waresLabel);
 | 
			
		||||
                // 标签
 | 
			
		||||
                for (BdWaresExt bdWaresExt : bdWaresExtList) {
 | 
			
		||||
                    // 保证标签
 | 
			
		||||
                    List<BdLabel> ensureLabelList = new ArrayList<>();
 | 
			
		||||
                    // 卖点标签
 | 
			
		||||
                    List<BdLabel> sellingLabelList = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
                    for (BdLabelExt bdLabel : list) {
 | 
			
		||||
                        if (ELabelType.PREFIX.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 前缀标签
 | 
			
		||||
                            bdWaresExt.setPrefixLabelTarget(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (ELabelType.COOL.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 酷炫标签
 | 
			
		||||
                            bdWaresExt.setCoolLabelTarget(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (ELabelType.ENSURE.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 保证标签
 | 
			
		||||
                            ensureLabelList.add(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (ELabelType.SELLING.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 卖点标签
 | 
			
		||||
                            sellingLabelList.add(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    bdWaresExt.setEnsureLabelList(ensureLabelList.stream().filter(DistinctByKeyUtil.distinctByKey(BdLabel::getPkId)).collect(Collectors.toList()));
 | 
			
		||||
                    bdWaresExt.setSellingLabelList(sellingLabelList.stream().filter(DistinctByKeyUtil.distinctByKey(BdLabel::getPkId)).collect(Collectors.toList()));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 查询商品sku 最小值 和数量
 | 
			
		||||
                List<BdWaresSpecsSkuExt> waresSpecsSkuArray = iBdWaresSpecsSkuService.selectByMinWaresSpecsSkuByPkWaresList(waresIdList);
 | 
			
		||||
                Map<Integer, List<BdWaresSpecsSkuExt>> waresSpecsSkuMap = waresSpecsSkuArray.stream().collect(Collectors.groupingBy(BdWaresSpecsSkuExt::getPkWares));
 | 
			
		||||
 | 
			
		||||
                // 查询默认规格
 | 
			
		||||
                List<BdWaresSpecsSkuExt> waresSpecsSkuList = iBdWaresSpecsSkuService.selectByWaresSpecsSku(waresIdList);
 | 
			
		||||
 | 
			
		||||
                for (BdWaresExt waresExt : bdWaresExtList) {
 | 
			
		||||
                    // 校验团队信息
 | 
			
		||||
                    Boolean isShowWares = waresShowMap.get(waresExt.getPkId());
 | 
			
		||||
                    if (null == isShowWares || !isShowWares) {
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    CuWaresParams waresParams = BeanUtil.copyProperties(waresExt, CuWaresParams.class);
 | 
			
		||||
                    // 价格
 | 
			
		||||
                    BigDecimal waresPrice = BigDecimal.ZERO;
 | 
			
		||||
                    // 业绩
 | 
			
		||||
                    BigDecimal waresAchieve = BigDecimal.ZERO;
 | 
			
		||||
 | 
			
		||||
                    List<BdWaresSpecsSkuExt> waresSpecsSku = waresSpecsSkuMap.get(waresExt.getPkId());
 | 
			
		||||
                    waresSpecsSku = waresSpecsSku.stream().peek(a -> a.setProductGift(a.getPkProduct() + "" + a.getIsGift())).collect(Collectors.toList());
 | 
			
		||||
                    Map<String, List<BdWaresSpecsSkuExt>> col = waresSpecsSku.stream().collect(Collectors.groupingBy(BdWaresSpecsSkuExt::getProductGift));
 | 
			
		||||
                    for (Map.Entry<String, List<BdWaresSpecsSkuExt>> integerListEntry : col.entrySet()) {
 | 
			
		||||
                        // 取得每一个商品价格最小值
 | 
			
		||||
                        Optional<BdWaresSpecsSkuExt> minBdWaresSpecsSkuExt = integerListEntry.getValue().stream().filter(Objects::nonNull).min(Comparator.comparing(BdWaresSpecsSkuExt::getPrice));
 | 
			
		||||
                        BdWaresSpecsSkuExt bdWaresSpecsSkuExt = minBdWaresSpecsSkuExt.get();
 | 
			
		||||
                        waresPrice = waresPrice.add(bdWaresSpecsSkuExt.getPrice().multiply(new BigDecimal(bdWaresSpecsSkuExt.getQuantity())));
 | 
			
		||||
                        waresAchieve = waresAchieve.add(bdWaresSpecsSkuExt.getAchieve().multiply(new BigDecimal(bdWaresSpecsSkuExt.getQuantity())));
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    // 计算商品列表价格和业绩最小值
 | 
			
		||||
                    waresParams.setWaresPrice(waresPrice);
 | 
			
		||||
                    waresParams.setWaresAchieve(waresAchieve);
 | 
			
		||||
                    // 商品业绩计算汇率
 | 
			
		||||
                    if (waresParams.getWaresAchieve() != null) {
 | 
			
		||||
                        waresParams.setWaresAchieve(waresParams.getWaresAchieve());
 | 
			
		||||
                        waresParams.setWaresPrice(waresParams.getWaresPrice());
 | 
			
		||||
                    } else {
 | 
			
		||||
                        waresParams.setWaresAchieve(BigDecimal.ZERO);
 | 
			
		||||
                        waresParams.setWaresPrice(BigDecimal.ZERO);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    // 查询默认规格
 | 
			
		||||
                    JSONArray jsonArray = new JSONArray();
 | 
			
		||||
                    List<BdWaresSpecsSkuExt> collect = waresSpecsSkuList.stream().filter(DistinctByKeyUtil.distinctByKey(BdWaresSpecsSku::getPkWaresDetail)).collect(Collectors.toList());
 | 
			
		||||
                    for (BdWaresSpecsSkuExt bdWaresSpecsSku : collect) {
 | 
			
		||||
                        if (bdWaresSpecsSku.getPkWares().equals(waresExt.getPkId())) {
 | 
			
		||||
                            JSONObject js = new JSONObject();
 | 
			
		||||
                            js.put("pkProduct", bdWaresSpecsSku.getPkProduct());
 | 
			
		||||
                            js.put("pkSkuId", bdWaresSpecsSku.getPkId());
 | 
			
		||||
                            js.put("quantity", bdWaresSpecsSku.getQuantity());
 | 
			
		||||
                            jsonArray.add(js);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    waresParams.setProductGroup(jsonArray);
 | 
			
		||||
                    waresParamsList.add(waresParams);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(waresParamsList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询团队配置是否展示该商品
 | 
			
		||||
     *
 | 
			
		||||
     * @param pkWares
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public ShowWaresDTO getShowWares(Integer pkWares, Long loginMember, String loginMemberCode, Map<Integer, List<BdWaresAuthority>> waresAuthorityMap) {
 | 
			
		||||
        ShowWaresDTO showWaresDTO = new ShowWaresDTO();
 | 
			
		||||
        showWaresDTO.setPkWares(pkWares);
 | 
			
		||||
        showWaresDTO.setLoginMember(loginMember);
 | 
			
		||||
        showWaresDTO.setLoginMemberCode(loginMemberCode);
 | 
			
		||||
        showWaresDTO.setWaresAuthorityList(waresAuthorityMap.get(pkWares));
 | 
			
		||||
        return showWaresDTO;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
package com.hzs.retail.wares.param;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 分享商品查询条件
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class WaresShareParam {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 分享会员编号
 | 
			
		||||
     */
 | 
			
		||||
    private String shareMemberCode;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 所属专区
 | 
			
		||||
     */
 | 
			
		||||
    private Integer specialArea;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品类型
 | 
			
		||||
     */
 | 
			
		||||
    private Integer isMakerGift;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 国家
 | 
			
		||||
     */
 | 
			
		||||
    private Integer pkCountry;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -108,6 +108,10 @@ public class SaDeliverUnhandledController extends BaseController {
 | 
			
		|||
        param.setAreaScopeList(userAuthorityDTO.getRoleAreaScopeList());
 | 
			
		||||
        param.setVertexIdList(userAuthorityDTO.getVertexIdList());
 | 
			
		||||
        param.setTeamList(userAuthorityDTO.getUserTeamList());
 | 
			
		||||
        // 兼容调换货产品
 | 
			
		||||
        if (CollectionUtil.isEmpty(param.getPkWaresList())) {
 | 
			
		||||
            param.setPkWaresList(Collections.singletonList(0));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        startPage();
 | 
			
		||||
        List<DeliverUnhandledVO> resultList = iSaOrderItemsService.queryDeliverUnhandledList(param, pkCountry);
 | 
			
		||||
| 
						 | 
				
			
			@ -151,6 +155,10 @@ public class SaDeliverUnhandledController extends BaseController {
 | 
			
		|||
        param.setAreaScopeList(userAuthorityDTO.getRoleAreaScopeList());
 | 
			
		||||
        param.setVertexIdList(userAuthorityDTO.getVertexIdList());
 | 
			
		||||
        param.setTeamList(userAuthorityDTO.getUserTeamList());
 | 
			
		||||
        // 兼容调换货产品
 | 
			
		||||
        if (CollectionUtil.isEmpty(param.getPkWaresList())) {
 | 
			
		||||
            param.setPkWaresList(Collections.singletonList(0));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        List<DeliverUnhandledVO> resultList = iSaOrderItemsService.queryDeliverUnhandledList(param, pkCountry);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
package com.hzs.sale.order.param;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 海粉确认订单入参
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class FansConfirmOrderParam {
 | 
			
		||||
 | 
			
		||||
    /***
 | 
			
		||||
     * 自然国
 | 
			
		||||
     */
 | 
			
		||||
    private Integer pkCountry;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员姓名
 | 
			
		||||
     */
 | 
			
		||||
    private String memberName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 联系方式
 | 
			
		||||
     */
 | 
			
		||||
    private String phone;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 收货人
 | 
			
		||||
     */
 | 
			
		||||
    private String recName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 收货电话
 | 
			
		||||
     */
 | 
			
		||||
    private String recPhone;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 收货省
 | 
			
		||||
     */
 | 
			
		||||
    private Integer recProvince;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 收货市
 | 
			
		||||
     */
 | 
			
		||||
    private Integer recCity;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 收货县
 | 
			
		||||
     */
 | 
			
		||||
    private Integer recCounty;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 收货地址
 | 
			
		||||
     */
 | 
			
		||||
    private String recAddress;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 备注
 | 
			
		||||
     */
 | 
			
		||||
    private String remark;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品列表
 | 
			
		||||
     */
 | 
			
		||||
    private List<FansConfirmOrderWaresParam> waresList;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
package com.hzs.sale.order.param;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 海粉确认订单产品入参
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class FansConfirmOrderSkuParam {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * SKU ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long pkWaresSku;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 产品数量
 | 
			
		||||
     */
 | 
			
		||||
    private Integer quantity;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
package com.hzs.sale.order.param;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 海粉确认订单商品入参
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class FansConfirmOrderWaresParam {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品ID
 | 
			
		||||
     */
 | 
			
		||||
    private Integer pkWares;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品数量
 | 
			
		||||
     */
 | 
			
		||||
    private Integer quantity;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 产品列表
 | 
			
		||||
     */
 | 
			
		||||
    private List<FansConfirmOrderSkuParam> skuList;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -4,21 +4,15 @@ import com.hzs.common.domain.sale.order.SaOrder;
 | 
			
		|||
import com.hzs.system.sys.dto.LoginUser;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Description: 撤单的service
 | 
			
		||||
 * @Author: sui q
 | 
			
		||||
 * @Time: 2022/10/27 10:49
 | 
			
		||||
 * @Classname: ISaOrderRevokeService
 | 
			
		||||
 * @PackageName: com.hzs.sale.order.service
 | 
			
		||||
 * 撤单的service
 | 
			
		||||
 */
 | 
			
		||||
public interface ISaOrderRevokeService {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 撤销订单
 | 
			
		||||
     * @param saOrder 需要销售的订单信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param saOrder   需要销售的订单信息
 | 
			
		||||
     * @param loginUser 登录用户
 | 
			
		||||
    * @return: void
 | 
			
		||||
    * @Author: sui q
 | 
			
		||||
    * @Date: 2022/10/27 10:51
 | 
			
		||||
    */
 | 
			
		||||
     */
 | 
			
		||||
    void revokeSaOrder(SaOrder saOrder, LoginUser loginUser);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -573,12 +573,12 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
 | 
			
		|||
        // 查询订单信息
 | 
			
		||||
        SaOrderExt saOrder = iSaOrderService.queryOrderByCode(orderCode, pkCountry);
 | 
			
		||||
        if (null == saOrder) {
 | 
			
		||||
            return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + ":" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
 | 
			
		||||
            return CommonMsgConstants.OPERATION_FAILED + ":" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
 | 
			
		||||
        }
 | 
			
		||||
        // 订单支付日期 < 当前日期-7天
 | 
			
		||||
        Date beforeDate = DateUtils.addDate(DateUtils.getStartTime(nowDate), -7);
 | 
			
		||||
        if (beforeDate.compareTo(saOrder.getPayTime()) > 0) {
 | 
			
		||||
            return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_SETTLED);
 | 
			
		||||
            return DocumentMsgConstants.DOCUMENT_ORDER_SETTLED;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 操作日志内容
 | 
			
		||||
| 
						 | 
				
			
			@ -644,16 +644,14 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
 | 
			
		|||
            return "订单已经发货,不能进行调换货物";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 是否扣款
 | 
			
		||||
        boolean orderCostFlag = false;
 | 
			
		||||
 | 
			
		||||
        // 修改前的订单金额 + 邮费
 | 
			
		||||
        BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
			
		||||
        // 修改后的订单金额 + 邮费
 | 
			
		||||
        BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
			
		||||
        // 对比修改前后订单价格处理是否补差价
 | 
			
		||||
        // 校验订单原订单价格和调换完货之后的价格不相同不进行换货
 | 
			
		||||
        if (beforeAmount.compareTo(afterAmount) != 0) {
 | 
			
		||||
            // 修改前后金额不相同则进行处理
 | 
			
		||||
            orderCostFlag = true;
 | 
			
		||||
            return CommonMsgConstants.OPERATION_FAILED + ":" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -662,13 +660,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
 | 
			
		|||
                    changeIdList, noChangeIdList,
 | 
			
		||||
                    userId, pkCountry, nowDate);
 | 
			
		||||
 | 
			
		||||
            if (orderCostFlag) {
 | 
			
		||||
                // 订单调换货物扣费处理
 | 
			
		||||
                R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto);
 | 
			
		||||
                if (!resultR.isSuccess()) {
 | 
			
		||||
                    throw new BaseException(resultR.getMsg());
 | 
			
		||||
                }
 | 
			
		||||
            } else if (null != dto) {
 | 
			
		||||
            if (null != dto) {
 | 
			
		||||
                // 订单总价未变化,但是需要手续费
 | 
			
		||||
                R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto);
 | 
			
		||||
                if (!resultR.isSuccess()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -701,12 +693,12 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
 | 
			
		|||
        // 查询订单收货地址信息
 | 
			
		||||
        SaOrderExt saOrder = iSaOrderService.queryOrderByCode(orderCode, pkCountry);
 | 
			
		||||
        if (null == saOrder) {
 | 
			
		||||
            return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + ":" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
 | 
			
		||||
            return CommonMsgConstants.OPERATION_FAILED + ":" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
 | 
			
		||||
        }
 | 
			
		||||
        // 订单支付日期 < 当前日期-7天
 | 
			
		||||
        Date beforeDate = DateUtils.addDate(DateUtils.getStartTime(nowDate), -7);
 | 
			
		||||
        if (beforeDate.compareTo(saOrder.getPayTime()) > 0) {
 | 
			
		||||
            return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_SETTLED);
 | 
			
		||||
            return DocumentMsgConstants.DOCUMENT_ORDER_SETTLED;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 涉及会员ID列表
 | 
			
		||||
| 
						 | 
				
			
			@ -751,24 +743,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
 | 
			
		|||
        BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
			
		||||
        // 修改后的订单金额 + 邮费
 | 
			
		||||
        BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
			
		||||
        // 对比修改前后订单价格处理是否补差价
 | 
			
		||||
        if (beforeAmount.compareTo(afterAmount) < 0) {
 | 
			
		||||
            // 存在差额
 | 
			
		||||
            // 封装订单数据
 | 
			
		||||
            SaOrder updateOrder = BeanUtil.copyProperties(saOrder, SaOrder.class);
 | 
			
		||||
            updateOrder.setPkId(saOrder.getPkId());
 | 
			
		||||
            updateOrder.setOrderAmount(afterData.getOrderAmount());
 | 
			
		||||
            updateOrder.setOrderAchieve(afterData.getOrderAchieve());
 | 
			
		||||
            updateOrder.setOrderAssAchieve(afterData.getOrderAssAchieve());
 | 
			
		||||
            updateOrder.setPostage(param.getPostage());
 | 
			
		||||
            updateOrder.setPkModified(userId);
 | 
			
		||||
            updateOrder.setModifiedTime(nowDate);
 | 
			
		||||
 | 
			
		||||
            // 校验订单支付金额是否足够
 | 
			
		||||
            R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder);
 | 
			
		||||
            if (!resultR.isSuccess()) {
 | 
			
		||||
                return resultR.getMsg();
 | 
			
		||||
            }
 | 
			
		||||
        //校验订单原订单价格和调换完货之后的价格不相同不进行换货
 | 
			
		||||
        if (beforeAmount.compareTo(afterAmount) != 0) {
 | 
			
		||||
            return CommonMsgConstants.OPERATION_FAILED + ":" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -782,7 +759,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
 | 
			
		|||
            }
 | 
			
		||||
            return submitStr;
 | 
			
		||||
        }
 | 
			
		||||
        return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED);
 | 
			
		||||
        return CommonMsgConstants.OPERATION_FAILED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,8 @@
 | 
			
		|||
package com.hzs.sale.order.service.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.json.JSONUtil;
 | 
			
		||||
import com.google.gson.JsonObject;
 | 
			
		||||
import com.hzs.common.core.enums.EApprovalBusiness;
 | 
			
		||||
import com.hzs.common.domain.sale.order.SaOrder;
 | 
			
		||||
import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		||||
import com.hzs.sale.order.service.ISaOrderRevokeService;
 | 
			
		||||
import com.hzs.system.sys.IApprovalServiceApi;
 | 
			
		||||
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
 | 
			
		||||
| 
						 | 
				
			
			@ -13,17 +11,13 @@ import org.apache.dubbo.config.annotation.DubboReference;
 | 
			
		|||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Description: 撤单逻辑类
 | 
			
		||||
 * @Author: sui q
 | 
			
		||||
 * @Time: 2022/10/27 10:50
 | 
			
		||||
 * @Classname: SaOrderRevokeServiceImpl
 | 
			
		||||
 * @PackageName: com.hzs.sale.order.service.impl
 | 
			
		||||
 * 撤单逻辑类
 | 
			
		||||
 */
 | 
			
		||||
@Service
 | 
			
		||||
public class SaOrderRevokeServiceImpl implements ISaOrderRevokeService {
 | 
			
		||||
 | 
			
		||||
    @DubboReference
 | 
			
		||||
    private IApprovalServiceApi approvalServiceApi;
 | 
			
		||||
    IApprovalServiceApi iApprovalServiceApi;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void revokeSaOrder(SaOrder saOrder, LoginUser loginUser) {
 | 
			
		||||
| 
						 | 
				
			
			@ -32,6 +26,6 @@ public class SaOrderRevokeServiceImpl implements ISaOrderRevokeService {
 | 
			
		|||
                .businessCode(saOrder.getOrderCode())
 | 
			
		||||
                .businessData(JSONUtil.toJsonStr(saOrder))
 | 
			
		||||
                .build();
 | 
			
		||||
        approvalServiceApi.submit(approvalSubmitDTO, loginUser);
 | 
			
		||||
        iApprovalServiceApi.submit(approvalSubmitDTO, loginUser);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
package com.hzs.sale.wares.controller.api;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import cn.hutool.core.codec.Base64Decoder;
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.date.DateUtil;
 | 
			
		||||
import com.alibaba.fastjson.JSONObject;
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +28,7 @@ import com.hzs.common.security.utils.SecurityUtils;
 | 
			
		|||
import com.hzs.common.util.TransactionUtils;
 | 
			
		||||
import com.hzs.member.base.IMemberServiceApi;
 | 
			
		||||
import com.hzs.member.base.dto.ShowWaresDTO;
 | 
			
		||||
import com.hzs.retail.wares.param.WaresShareParam;
 | 
			
		||||
import com.hzs.sale.order.service.ISaOrderService;
 | 
			
		||||
import com.hzs.sale.shopping.service.IShoppingCartService;
 | 
			
		||||
import com.hzs.sale.shopping.vo.WaresItemWaresInfo;
 | 
			
		||||
| 
						 | 
				
			
			@ -87,6 +89,133 @@ public class ApiBdWaresController extends BaseController {
 | 
			
		|||
    @Autowired
 | 
			
		||||
    protected StringRedisTemplate redisTemplate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 188分享专区商品列表
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/list-wares-share")
 | 
			
		||||
    public AjaxResult listWaresShare(WaresShareParam param) {
 | 
			
		||||
        param.setSpecialArea(ESpecialArea.RETAIL_REGISTER.getValue());
 | 
			
		||||
        param.setIsMakerGift(EWaresType.ORDINARY.getValue());
 | 
			
		||||
        param.setPkCountry(CountryConstants.CHINA_COUNTRY);
 | 
			
		||||
 | 
			
		||||
        // 返回数据
 | 
			
		||||
        List<CuWaresParams> waresParamsList = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        // 查询商品列表
 | 
			
		||||
        List<BdWaresExt> bdWaresExtList = iBdWaresService.listWaresShare(param.getSpecialArea(), param.getIsMakerGift(), param.getPkCountry());
 | 
			
		||||
 | 
			
		||||
        if (CollectionUtil.isNotEmpty(bdWaresExtList)) {
 | 
			
		||||
            // 商品主键列表
 | 
			
		||||
            List<Integer> waresIdList = bdWaresExtList.stream().map(BdWares::getPkId).collect(Collectors.toList());
 | 
			
		||||
 | 
			
		||||
            if (StringUtils.isNotEmpty(param.getShareMemberCode())) {
 | 
			
		||||
                // 分享人ID
 | 
			
		||||
                Long pkMember = Long.parseLong(new String(Base64Decoder.decode(param.getShareMemberCode())));
 | 
			
		||||
                CuMember cuMember = iSaOrderService.getCuMemberByKey(pkMember);
 | 
			
		||||
                // 当前会员编号
 | 
			
		||||
                String memberCode = cuMember.getMemberCode();
 | 
			
		||||
 | 
			
		||||
                // 检验商品团队信息
 | 
			
		||||
                Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
 | 
			
		||||
                List<ShowWaresDTO> showWaresList = bdWaresExtList.stream().map(we -> getShowWares(we.getPkId(), pkMember, memberCode, waresAuthorityMap)).collect(Collectors.toList());
 | 
			
		||||
                R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
 | 
			
		||||
                Map<Integer, Boolean> waresShowMap = waresShowMapDto.getData();
 | 
			
		||||
 | 
			
		||||
                // 商品标签列表
 | 
			
		||||
                BdWaresLabel waresLabel = new BdWaresLabel();
 | 
			
		||||
                waresLabel.setPkIdList(waresIdList);
 | 
			
		||||
                List<BdLabelExt> list = iBdWaresLabelService.selectByList(waresLabel);
 | 
			
		||||
                // 标签
 | 
			
		||||
                for (BdWaresExt bdWaresExt : bdWaresExtList) {
 | 
			
		||||
                    // 保证标签
 | 
			
		||||
                    List<BdLabel> ensureLabelList = new ArrayList<>();
 | 
			
		||||
                    // 卖点标签
 | 
			
		||||
                    List<BdLabel> sellingLabelList = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
                    for (BdLabelExt bdLabel : list) {
 | 
			
		||||
                        if (ELabelType.PREFIX.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 前缀标签
 | 
			
		||||
                            bdWaresExt.setPrefixLabelTarget(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (ELabelType.COOL.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 酷炫标签
 | 
			
		||||
                            bdWaresExt.setCoolLabelTarget(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (ELabelType.ENSURE.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 保证标签
 | 
			
		||||
                            ensureLabelList.add(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (ELabelType.SELLING.getValue() == bdLabel.getLabelType() && bdLabel.getPkWares().equals(bdWaresExt.getPkId())) {
 | 
			
		||||
                            // 卖点标签
 | 
			
		||||
                            sellingLabelList.add(bdLabel);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    bdWaresExt.setEnsureLabelList(ensureLabelList.stream().filter(DistinctByKeyUtil.distinctByKey(BdLabel::getPkId)).collect(Collectors.toList()));
 | 
			
		||||
                    bdWaresExt.setSellingLabelList(sellingLabelList.stream().filter(DistinctByKeyUtil.distinctByKey(BdLabel::getPkId)).collect(Collectors.toList()));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 查询商品sku 最小值 和数量
 | 
			
		||||
                List<BdWaresSpecsSkuExt> waresSpecsSkuArray = iBdWaresSpecsSkuService.selectByMinWaresSpecsSkuByPkWaresList(waresIdList);
 | 
			
		||||
                Map<Integer, List<BdWaresSpecsSkuExt>> waresSpecsSkuMap = waresSpecsSkuArray.stream().collect(Collectors.groupingBy(BdWaresSpecsSkuExt::getPkWares));
 | 
			
		||||
 | 
			
		||||
                // 查询默认规格
 | 
			
		||||
                List<BdWaresSpecsSkuExt> waresSpecsSkuList = iBdWaresSpecsSkuService.selectByWaresSpecsSku(waresIdList);
 | 
			
		||||
 | 
			
		||||
                for (BdWaresExt waresExt : bdWaresExtList) {
 | 
			
		||||
                    // 校验团队信息
 | 
			
		||||
                    Boolean isShowWares = waresShowMap.get(waresExt.getPkId());
 | 
			
		||||
                    if (null == isShowWares || !isShowWares) {
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    CuWaresParams waresParams = BeanUtil.copyProperties(waresExt, CuWaresParams.class);
 | 
			
		||||
                    // 价格
 | 
			
		||||
                    BigDecimal waresPrice = BigDecimal.ZERO;
 | 
			
		||||
                    // 业绩
 | 
			
		||||
                    BigDecimal waresAchieve = BigDecimal.ZERO;
 | 
			
		||||
 | 
			
		||||
                    List<BdWaresSpecsSkuExt> waresSpecsSku = waresSpecsSkuMap.get(waresExt.getPkId());
 | 
			
		||||
                    waresSpecsSku = waresSpecsSku.stream().peek(a -> a.setProductGift(a.getPkProduct() + "" + a.getIsGift())).collect(Collectors.toList());
 | 
			
		||||
                    Map<String, List<BdWaresSpecsSkuExt>> col = waresSpecsSku.stream().collect(Collectors.groupingBy(BdWaresSpecsSkuExt::getProductGift));
 | 
			
		||||
                    for (Map.Entry<String, List<BdWaresSpecsSkuExt>> integerListEntry : col.entrySet()) {
 | 
			
		||||
                        // 取得每一个商品价格最小值
 | 
			
		||||
                        Optional<BdWaresSpecsSkuExt> minBdWaresSpecsSkuExt = integerListEntry.getValue().stream().filter(Objects::nonNull).min(Comparator.comparing(BdWaresSpecsSkuExt::getPrice));
 | 
			
		||||
                        BdWaresSpecsSkuExt bdWaresSpecsSkuExt = minBdWaresSpecsSkuExt.get();
 | 
			
		||||
                        waresPrice = waresPrice.add(bdWaresSpecsSkuExt.getPrice().multiply(new BigDecimal(bdWaresSpecsSkuExt.getQuantity())));
 | 
			
		||||
                        waresAchieve = waresAchieve.add(bdWaresSpecsSkuExt.getAchieve().multiply(new BigDecimal(bdWaresSpecsSkuExt.getQuantity())));
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    // 计算商品列表价格和业绩最小值
 | 
			
		||||
                    waresParams.setWaresPrice(waresPrice);
 | 
			
		||||
                    waresParams.setWaresAchieve(waresAchieve);
 | 
			
		||||
                    // 商品业绩计算汇率
 | 
			
		||||
                    if (waresParams.getWaresAchieve() != null) {
 | 
			
		||||
                        waresParams.setWaresAchieve(waresParams.getWaresAchieve());
 | 
			
		||||
                        waresParams.setWaresPrice(waresParams.getWaresPrice());
 | 
			
		||||
                    } else {
 | 
			
		||||
                        waresParams.setWaresAchieve(BigDecimal.ZERO);
 | 
			
		||||
                        waresParams.setWaresPrice(BigDecimal.ZERO);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    // 查询默认规格
 | 
			
		||||
                    JSONArray jsonArray = new JSONArray();
 | 
			
		||||
                    List<BdWaresSpecsSkuExt> collect = waresSpecsSkuList.stream().filter(DistinctByKeyUtil.distinctByKey(BdWaresSpecsSku::getPkWaresDetail)).collect(Collectors.toList());
 | 
			
		||||
                    for (BdWaresSpecsSkuExt bdWaresSpecsSku : collect) {
 | 
			
		||||
                        if (bdWaresSpecsSku.getPkWares().equals(waresExt.getPkId())) {
 | 
			
		||||
                            JSONObject js = new JSONObject();
 | 
			
		||||
                            js.put("pkProduct", bdWaresSpecsSku.getPkProduct());
 | 
			
		||||
                            js.put("pkSkuId", bdWaresSpecsSku.getPkId());
 | 
			
		||||
                            js.put("quantity", bdWaresSpecsSku.getQuantity());
 | 
			
		||||
                            jsonArray.add(js);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    waresParams.setProductGroup(jsonArray);
 | 
			
		||||
                    waresParamsList.add(waresParams);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(waresParamsList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据专区查找专区的商品
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -129,6 +129,7 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
 | 
			
		|||
     */
 | 
			
		||||
    List<BdWaresExt> listRetailWaresByCondition(@Param("param") RetailWaresParam param);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询非在售商品
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -137,4 +138,16 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
 | 
			
		|||
     */
 | 
			
		||||
    List<BdWaresExt> listWaresNoSale(@Param("param") WaresNoSaleParam param);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件查询商品信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param specialArea 专区
 | 
			
		||||
     * @param specialArea 专区
 | 
			
		||||
     * @param pkCountry   所属国家
 | 
			
		||||
     * @return: List<BdWaresExt>
 | 
			
		||||
     */
 | 
			
		||||
    List<BdWaresExt> listWaresShare(@Param("specialArea") Integer specialArea,
 | 
			
		||||
                                    @Param("isMakerGift") Integer isMakerGift,
 | 
			
		||||
                                    @Param("pkCountry") Integer pkCountry);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,4 +109,12 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
 | 
			
		|||
     */
 | 
			
		||||
    List<BdWaresSpecsSkuExt> selectByMinWaresSpecsSkuByPkWaresList(@Param("pkWaresIds") List<Integer> pkWaresIds);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询SKU价格等信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param skuIdList skuID列表
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<BdWaresSpecsSkuExt> queryWaresSpecsSkuList(@Param("skuIdList") List<Long> skuIdList);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -203,4 +203,14 @@ public interface IBdWaresService extends IService<BdWares> {
 | 
			
		|||
     */
 | 
			
		||||
    List<BdWaresExt> listWaresNoSale(WaresNoSaleParam param);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件查询商品信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param specialArea 专区
 | 
			
		||||
     * @param specialArea 专区
 | 
			
		||||
     * @param pkCountry   所属国家
 | 
			
		||||
     * @return: List<BdWaresExt>
 | 
			
		||||
     */
 | 
			
		||||
    List<BdWaresExt> listWaresShare(Integer specialArea, Integer isMakerGift, Integer pkCountry);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ import com.hzs.sale.wares.param.CuWaresParams;
 | 
			
		|||
import com.hzs.sale.wares.param.SpecsSkuParam;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 规格sku表 服务类
 | 
			
		||||
| 
						 | 
				
			
			@ -107,4 +108,12 @@ public interface IBdWaresSpecsSkuService extends IService<BdWaresSpecsSku> {
 | 
			
		|||
     */
 | 
			
		||||
    RetailWaresDetailVO queryWaresDetail(RetailWaresDetailParam param, Integer pkGrade);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查询SKU价格等信息
 | 
			
		||||
     *
 | 
			
		||||
     * @param skuIdList skuID列表
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    Map<Long, BdWaresSpecsSkuExt> queryWaresSpecsSkuList(List<Long> skuIdList);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1161,4 +1161,9 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
 | 
			
		|||
        return baseMapper.listWaresNoSale(param);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<BdWaresExt> listWaresShare(Integer specialArea, Integer isMakerGift, Integer pkCountry) {
 | 
			
		||||
        return baseMapper.listWaresShare(specialArea, isMakerGift, pkCountry);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -578,4 +578,15 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Map<Long, BdWaresSpecsSkuExt> queryWaresSpecsSkuList(List<Long> skuIdList) {
 | 
			
		||||
        Map<Long, BdWaresSpecsSkuExt> resultMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        List<BdWaresSpecsSkuExt> list = baseMapper.queryWaresSpecsSkuList(skuIdList);
 | 
			
		||||
        for (BdWaresSpecsSkuExt waresSpecsSku : list) {
 | 
			
		||||
            resultMap.put(waresSpecsSku.getPkId().longValue(), waresSpecsSku);
 | 
			
		||||
        }
 | 
			
		||||
        return resultMap;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -471,4 +471,35 @@
 | 
			
		|||
        order by bw.wares_name
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- 分享商品列表 -->
 | 
			
		||||
    <select id="listWaresShare" resultMap="BaseResultMap">
 | 
			
		||||
        select bw.PK_COUNTRY, bw.PK_ID, be.pk_id PK_WARES_EXTEND,
 | 
			
		||||
        be.IS_MAKER_GIFT, bw.WARES_CODE, bw.WARES_NAME,
 | 
			
		||||
        PK_AREA_CLASSIFY, COVER, COVER1, COVER2,
 | 
			
		||||
        bw.WARES_PRICE, bw.WARES_ACHIEVE,
 | 
			
		||||
        SORT, SPECIAL_AREA,
 | 
			
		||||
        IS_PUT_ON, PRE_SALE_STATUS,
 | 
			
		||||
        PREFIX_LABEL, COOL_LABEL, S_LABEL,
 | 
			
		||||
        SALES, IS_SALE, ARRIVAL_TIME, WARN_MESSAGE,
 | 
			
		||||
        be.PK_SPECIAL_CURRENCY
 | 
			
		||||
        from bd_wares bw
 | 
			
		||||
        inner join bd_wares_extend be
 | 
			
		||||
        on bw.pk_id = be.pk_wares
 | 
			
		||||
        where bw.del_flag = 0
 | 
			
		||||
        and be.del_flag = 0
 | 
			
		||||
        and be.is_put_on = 0
 | 
			
		||||
        <!-- 商品必须通过审核后才能显示 -->
 | 
			
		||||
        and bw.wares_status = 5
 | 
			
		||||
        <if test="specialArea != null">
 | 
			
		||||
            and bw.special_area = #{specialArea}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="isMakerGift != null">
 | 
			
		||||
            and be.is_maker_gift = #{isMakerGift}
 | 
			
		||||
        </if>
 | 
			
		||||
        <if test="pkCountry != null">
 | 
			
		||||
            and bw.pk_country = #{pkCountry}
 | 
			
		||||
        </if>
 | 
			
		||||
        order by bw.SORT_STATUS desc , bw.sort desc, bw.WARES_PRICE ,bw.CREATION_TIME desc
 | 
			
		||||
    </select>
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -357,4 +357,23 @@
 | 
			
		|||
        </foreach>
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <!-- 查询SKU价格等信息 -->
 | 
			
		||||
    <select id="queryWaresSpecsSkuList" resultType="com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt">
 | 
			
		||||
        select bwss.pk_id,
 | 
			
		||||
        bwd.pk_product,
 | 
			
		||||
        bwss.pk_wares_detail,
 | 
			
		||||
        bwss.price,
 | 
			
		||||
        bwss.achieve,
 | 
			
		||||
        bwss.ass_achieve
 | 
			
		||||
        from bd_wares_specs_sku bwss
 | 
			
		||||
        left join BD_WARES_DETAIL bwd
 | 
			
		||||
        on bwd.del_flag = 0
 | 
			
		||||
        and bwd.pk_id = bwss.pk_wares_detail
 | 
			
		||||
        where bwss.del_flag = 0
 | 
			
		||||
        and bwss.pk_id in
 | 
			
		||||
        <foreach collection="skuIdList" item="item" open="(" close=")" separator=",">
 | 
			
		||||
            #{item}
 | 
			
		||||
        </foreach>
 | 
			
		||||
    </select>
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,12 +13,6 @@ import java.util.List;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * 交易配置
 | 
			
		||||
 *
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * @Author: ljc
 | 
			
		||||
 * @Time: 2023/8/18 11:14
 | 
			
		||||
 * @Classname: BdTradeConfigVO
 | 
			
		||||
 * @Package_name: com.hzs.system.config.vo
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +36,6 @@ public class BdTradeConfigVO implements Serializable {
 | 
			
		|||
    /**
 | 
			
		||||
     * 1:提现 2:转账 (来源枚举EBusinessModule)
 | 
			
		||||
     */
 | 
			
		||||
    @Transaction(transactionKey = EnumsPrefixConstants.BUSINESS_MODULE)
 | 
			
		||||
    private Integer businessModule;
 | 
			
		||||
 | 
			
		||||
    private String businessModuleVal;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2305,15 +2305,6 @@ public class EnumsController extends BaseController {
 | 
			
		|||
        return AjaxResult.success(enumEntityList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/get-grant-way")
 | 
			
		||||
    public AjaxResult getGrantWay() {
 | 
			
		||||
        List<EnumEntity> enumEntityList = new ArrayList<>();
 | 
			
		||||
        for (EGrantWay value : EGrantWay.values()) {
 | 
			
		||||
            enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.GRANT_WAY_TYPE));
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(enumEntityList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 数据类型(安置)
 | 
			
		||||
| 
						 | 
				
			
			@ -2410,7 +2401,7 @@ public class EnumsController extends BaseController {
 | 
			
		|||
    public AjaxResult businessModule() {
 | 
			
		||||
        List<EnumEntity> enumEntityList = new ArrayList<>();
 | 
			
		||||
        for (EBusinessModule value : EBusinessModule.values()) {
 | 
			
		||||
            enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.BUSINESS_MODULE));
 | 
			
		||||
            enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
 | 
			
		||||
        }
 | 
			
		||||
        return AjaxResult.success(enumEntityList);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -576,11 +576,6 @@ public class EnumsInitController {
 | 
			
		|||
            initList.add(this.createData(value.getKey(), value.getLabel()));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 交易配置 业务类型
 | 
			
		||||
        for (EBusinessModule value : EBusinessModule.values()) {
 | 
			
		||||
            initList.add(this.createData(value.getKey(), value.getLabel()));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 点位状态
 | 
			
		||||
        for (EPointStatus value : EPointStatus.values()) {
 | 
			
		||||
            initList.add(this.createData(value.getKey(), value.getLabel()));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,27 +2,4 @@
 | 
			
		|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 | 
			
		||||
<mapper namespace="com.hzs.system.config.mapper.BdWithdrawalAutoMapper">
 | 
			
		||||
 | 
			
		||||
    <!-- 通用查询映射结果 -->
 | 
			
		||||
    <resultMap id="BaseResultMap" type="com.hzs.common.domain.system.config.BdWithdrawalAuto">
 | 
			
		||||
        <id column="PK_ID" property="pkId" />
 | 
			
		||||
    <result column="DEL_FLAG" property="delFlag" />
 | 
			
		||||
    <result column="PK_COUNTRY" property="pkCountry" />
 | 
			
		||||
    <result column="PK_CREATOR" property="pkCreator" />
 | 
			
		||||
    <result column="CREATION_TIME" property="creationTime" />
 | 
			
		||||
    <result column="PK_MODIFIED" property="pkModified" />
 | 
			
		||||
    <result column="MODIFIED_TIME" property="modifiedTime" />
 | 
			
		||||
        <result column="PK_WITHDRAWAL" property="pkWithdrawal" />
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <!-- 通用查询结果列 -->
 | 
			
		||||
    <sql id="Base_Column_List">
 | 
			
		||||
        DEL_FLAG,
 | 
			
		||||
        PK_COUNTRY,
 | 
			
		||||
        PK_CREATOR,
 | 
			
		||||
        CREATION_TIME,
 | 
			
		||||
        PK_MODIFIED,
 | 
			
		||||
        MODIFIED_TIME,
 | 
			
		||||
        PK_ID, PK_WITHDRAWAL, LOWER_BOUND, UPPER_BOUND
 | 
			
		||||
    </sql>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,11 +23,7 @@ import java.util.Map;
 | 
			
		|||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Description: 防止表单重复提交处理
 | 
			
		||||
 * @Author: jiang chao
 | 
			
		||||
 * @Time: 2023/6/15 9:24
 | 
			
		||||
 * @Classname: RepeatSubmitOldAspectAdvice
 | 
			
		||||
 * @PackageName: com.hzs.common.core.aspect
 | 
			
		||||
 * 防止表单重复提交处理
 | 
			
		||||
 */
 | 
			
		||||
@Slf4j
 | 
			
		||||
@Aspect
 | 
			
		||||
| 
						 | 
				
			
			@ -67,7 +63,7 @@ public class RepeatSubmitSimpleAspectAdvice {
 | 
			
		|||
 | 
			
		||||
        Map<String, Object> nowDataMap = new HashMap<>();
 | 
			
		||||
        nowDataMap.put(REPEAT_PARAMS, nowParams);
 | 
			
		||||
        nowDataMap.put(REPEAT_TIME, System.currentTimeMillis());
 | 
			
		||||
        nowDataMap.put(REPEAT_TIME, System.currentTimeMillis() / 1000);
 | 
			
		||||
 | 
			
		||||
        // 请求地址(作为存放cache的key值)
 | 
			
		||||
        String url = request.getRequestURI();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,18 +24,18 @@ public class BdConfig {
 | 
			
		|||
     * PC地址
 | 
			
		||||
     */
 | 
			
		||||
    private static String pc;
 | 
			
		||||
//    /**
 | 
			
		||||
//     * 公众号地址
 | 
			
		||||
//     */
 | 
			
		||||
//    private static String gzh;
 | 
			
		||||
//    /**
 | 
			
		||||
//     * IOS地址
 | 
			
		||||
//     */
 | 
			
		||||
//    private static String ios;
 | 
			
		||||
//    /**
 | 
			
		||||
//     * android地址
 | 
			
		||||
//     */
 | 
			
		||||
//    private static String android;
 | 
			
		||||
    /**
 | 
			
		||||
     * 公众号地址
 | 
			
		||||
     */
 | 
			
		||||
    private static String gzh;
 | 
			
		||||
    /**
 | 
			
		||||
     * IOS地址
 | 
			
		||||
     */
 | 
			
		||||
    private static String ios;
 | 
			
		||||
    /**
 | 
			
		||||
     * android地址
 | 
			
		||||
     */
 | 
			
		||||
    private static String android;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品同步是否开启(0=开启,1=不开启)
 | 
			
		||||
| 
						 | 
				
			
			@ -70,29 +70,30 @@ public class BdConfig {
 | 
			
		|||
        BdConfig.pc = pc;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//    public static String getGzh() {
 | 
			
		||||
//        return gzh;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    public void setGzh(String gzh) {
 | 
			
		||||
//        HzsConfig.gzh = gzh;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    public static String getIos() {
 | 
			
		||||
//        return ios;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    public void setIos(String ios) {
 | 
			
		||||
//        HzsConfig.ios = ios;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    public static String getAndroid() {
 | 
			
		||||
//        return android;
 | 
			
		||||
//    }
 | 
			
		||||
//
 | 
			
		||||
//    public void setAndroid(String android) {
 | 
			
		||||
//        HzsConfig.android = android;
 | 
			
		||||
//    }
 | 
			
		||||
 | 
			
		||||
    public static String getGzh() {
 | 
			
		||||
        return gzh;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setGzh(String gzh) {
 | 
			
		||||
        BdConfig.gzh = gzh;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getIos() {
 | 
			
		||||
        return ios;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setIos(String ios) {
 | 
			
		||||
        BdConfig.ios = ios;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getAndroid() {
 | 
			
		||||
        return android;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setAndroid(String android) {
 | 
			
		||||
        BdConfig.android = android;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Integer getProductSync() {
 | 
			
		||||
        return productSync;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -816,11 +816,6 @@ public class EnumsPrefixConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String RATIO_TYPE = "ENU_R_T_";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 抽奖奖品发放方式
 | 
			
		||||
     */
 | 
			
		||||
    public static final String GRANT_WAY_TYPE = "GRANT_WAY_TYPE_";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 数据类型(业绩查询)
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -831,11 +826,6 @@ public class EnumsPrefixConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String RECOMMEND_DADA_TYPE = "ENU_R_D_T_";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 交易配置 业务类型
 | 
			
		||||
     */
 | 
			
		||||
    public static final String BUSINESS_MODULE = "ENU_B_M_";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位状态
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,11 @@ import java.util.List;
 | 
			
		|||
 */
 | 
			
		||||
public class SysConstants {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 嗨粉前缀
 | 
			
		||||
     */
 | 
			
		||||
    public static final String HAI_FUN_PREFIX = "HF";
 | 
			
		||||
    /**
 | 
			
		||||
     * 众康系统前缀
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,14 +31,13 @@ public class TableNameConstants {
 | 
			
		|||
    public static final String CU_MEMBER_SETTLE = "cu_member_settle";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员级差计算表
 | 
			
		||||
     */
 | 
			
		||||
    public static final String CU_MEMBER_RANGE = "CU_MEMBER_RANGE";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员级差计算表
 | 
			
		||||
     * 会员结算表
 | 
			
		||||
     */
 | 
			
		||||
    public static final String CU_MEMBER_RETAIL_RANGE = "CU_MEMBER_RETAIL";
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员结算明细表
 | 
			
		||||
     */
 | 
			
		||||
    public static final String CU_MEMBER_RETAIL_RANGE_DETAIL = "CU_MEMBER_RETAIL_DETAIL";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员结算秒结表
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,11 +125,6 @@ public class FinanceMsgConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String RECHAGER_IMPOR_CODE_ERROR = "编号导入有误,请核对!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 导入的编号未支付,请核对! -- 导入的编号未支付,请核对!
 | 
			
		||||
     */
 | 
			
		||||
    public static final String RECHAGER_NO_PAY = "导入的编号未支付,请核对!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 钱包明细导出 -- 钱包明细导出
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -198,56 +193,16 @@ public class FinanceMsgConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String CONFIGURE_WITHDRAWAL_INFO = "请配置提现信息";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 请绑定银行卡 -- 请绑定银行卡
 | 
			
		||||
     */
 | 
			
		||||
    public static final String BIND_BANK_CARD = "请绑定银行卡";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 暂时不请允许提现,请先升级 -- 暂时不请允许提现,请先升级
 | 
			
		||||
     */
 | 
			
		||||
    public static final String NOT_WITHDRAWAL_UPGRADE = "暂时不请允许提现,请先升级";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 请选择提现账户 -- 请选择提现账户
 | 
			
		||||
     */
 | 
			
		||||
    public static final String SELECT_WITHDRAWAL_ACCOUNT = "请选择提现账户";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 不允许提现 -- 不允许提现
 | 
			
		||||
     */
 | 
			
		||||
    public static final String NOT_ALLOWED_WITHDRAWAL = "不允许提现";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 超过提现次数 -- 超过提现次数
 | 
			
		||||
     */
 | 
			
		||||
    public static final String EXCEEDING_WITHDRAWALS_NUMBER = "超过提现次数";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 请配置提现金额限制 -- 请配置提现金额限制
 | 
			
		||||
     */
 | 
			
		||||
    public static final String CONFIGURE_WITHDRAWAL_AMOUNT_LIMIT = "请配置提现金额限制";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 请输入提现金额 -- 请输入提现金额
 | 
			
		||||
     */
 | 
			
		||||
    public static final String ENTER_WITHDRAWAL_AMOUNT = "请输入提现金额";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 请输入整数值 -- 请输入整数值
 | 
			
		||||
     */
 | 
			
		||||
    public static final String ENTER_INTEGER_VALUE = "请输入整数值";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现金额必须大于最低提现金额 -- 提现金额必须大于最低提现金额
 | 
			
		||||
     */
 | 
			
		||||
    public static final String WITHDRAWAL_AMOUNT_GREATER_MINIMUM_AMOUNT = "提现金额必须大于最低提现金额";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现金额必须小于最高提现金额 -- 提现金额必须小于最高提现金额
 | 
			
		||||
     */
 | 
			
		||||
    public static final String WITHDRAWAL_AMOUNT_LESS_MAXIMUM_AMOUNT = "提现金额必须小于最高提现金额";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 余额不足 -- 余额不足
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -263,11 +218,6 @@ public class FinanceMsgConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String TRANSFER_OUT_ACCOUNT_NOT_EMPTY = "请选择要转出的账户";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 转账金额有误 -- 转账金额有误
 | 
			
		||||
     */
 | 
			
		||||
    public static final String INCORRECT_TRANSFER_AMOUNT = "转账金额有误";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 转账金额不能低于0且小数位数最多只能有2位
 | 
			
		||||
| 
						 | 
				
			
			@ -293,11 +243,6 @@ public class FinanceMsgConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String NOT_ALLOWED_TRANSFER = "该账号不允许转账";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 请先实名认证 -- 请先实名认证
 | 
			
		||||
     */
 | 
			
		||||
    public static final String REAL_NAME_NOT_EXIST = "请先实名认证";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 实名认证的真实姓名与营业执照的法人姓名是不一致 -- 法人姓名与实名认证的真实姓名不一致
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -331,26 +276,11 @@ public class FinanceMsgConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String RECHARGE_DETAILS_EXPORT = "充值明细导出";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 银行卡号不能为空 -- 银行卡号不能为空!
 | 
			
		||||
     */
 | 
			
		||||
    public static final String BANK_CARD_CANNOT_EMPTY = "银行卡号不能为空!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 开户名不能为空 -- 开户名不能为空!
 | 
			
		||||
     */
 | 
			
		||||
    public static final String ACCOUNT_NAME_CANNOT_EMPTY = "开户名不能为空!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 验证码不能为空 -- 验证码不能为空!
 | 
			
		||||
     */
 | 
			
		||||
    public static final String VERIFICATION_CODE_CANNOT_EMPTY = "验证码不能为空!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 开户支行不能为空 -- 开户支行不能为空!
 | 
			
		||||
     */
 | 
			
		||||
    public static final String OPENING_BRANCH_CANNOT_EMPTY = "开户支行不能为空!";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 开户支行不能为空 -- 真实姓名不能为空!
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -444,16 +374,6 @@ public class FinanceMsgConstants {
 | 
			
		|||
     */
 | 
			
		||||
    public static final String BUSINESS_LICENSE_REFUSE_RESET = "营业执照审核未通过,请勿操作重置";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现正在审批中,请稍后再试 -- 提现正在审批中,请稍后再试
 | 
			
		||||
     */
 | 
			
		||||
    public static final String WITHDRAWAL_APPROVAL = "提现正在审批中,请稍后再试";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 提现金额必须为100的整数倍
 | 
			
		||||
     */
 | 
			
		||||
    public static final String WITHDRAW_AMOUNT_MULTIPLE = "提现金额必须为100的整数倍";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 身份证的图片地址不能为空
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -172,5 +172,9 @@ public class SaOrderMsgConstants {
 | 
			
		|||
     * 商品预售数量不足
 | 
			
		||||
     */
 | 
			
		||||
    public static final String WARES_PRE_SALE_QUANTITY_LACK = "商品预售数量不足";
 | 
			
		||||
    /**
 | 
			
		||||
     * 原订单价格和调换完货之后的价格不相同 -- 不允许货物调换
 | 
			
		||||
     */
 | 
			
		||||
    public static final String PRODUCT_CONFIRM_PRICE = "原订单价格和调换完货之后的价格不相同";
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,12 +5,6 @@ import lombok.Getter;
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * 银行卡默认状态
 | 
			
		||||
 *
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * @Author: ljc
 | 
			
		||||
 * @Time: 2023/2/9 15:14
 | 
			
		||||
 * @Classname: EBankCardStatus
 | 
			
		||||
 * @Package_name: com.hzs.common.core.enums
 | 
			
		||||
 */
 | 
			
		||||
@Getter
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +1,10 @@
 | 
			
		|||
package com.hzs.common.core.enums;
 | 
			
		||||
 | 
			
		||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 交易配置 业务类型
 | 
			
		||||
 *
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * @Author: ljc
 | 
			
		||||
 * @Time: 2023/8/18 10:01
 | 
			
		||||
 * @Classname: EBusinessModule
 | 
			
		||||
 * @Package_name: com.hzs.common.core.enums
 | 
			
		||||
 */
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@Getter
 | 
			
		||||
| 
						 | 
				
			
			@ -20,11 +13,11 @@ public enum EBusinessModule {
 | 
			
		|||
    /**
 | 
			
		||||
     * 1=提现
 | 
			
		||||
     */
 | 
			
		||||
    WITHDRAWAL(1, "提现", 0, EnumsPrefixConstants.BUSINESS_MODULE + "1"),
 | 
			
		||||
    WITHDRAWAL(1, "提现", 0),
 | 
			
		||||
    /**
 | 
			
		||||
     * 2=转账
 | 
			
		||||
     */
 | 
			
		||||
    TRANSFER_ACCOUNTS(2, "转账", 0, EnumsPrefixConstants.BUSINESS_MODULE + "2"),
 | 
			
		||||
    TRANSFER_ACCOUNTS(2, "转账", 0),
 | 
			
		||||
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -40,9 +33,5 @@ public enum EBusinessModule {
 | 
			
		|||
     * 是否启用(0=是,1=否) -- 来源EYesNo
 | 
			
		||||
     */
 | 
			
		||||
    private final int enable;
 | 
			
		||||
    /**
 | 
			
		||||
     * 国际化翻译key值
 | 
			
		||||
     */
 | 
			
		||||
    private final String key;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,49 +0,0 @@
 | 
			
		|||
package com.hzs.common.core.enums;
 | 
			
		||||
 | 
			
		||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @Description:
 | 
			
		||||
 * @Author: yuhui
 | 
			
		||||
 * @Time: 2023/5/15 10:57
 | 
			
		||||
 * @Classname: EGrantWay
 | 
			
		||||
 * @PackageName: com.hzs.common.core.enums
 | 
			
		||||
 */
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@Getter
 | 
			
		||||
public enum EGrantWay {
 | 
			
		||||
    /**
 | 
			
		||||
     * 商品展示
 | 
			
		||||
     */
 | 
			
		||||
    TYPE_0(0, "实物", 0, EnumsPrefixConstants.GRANT_WAY_TYPE + "0"),
 | 
			
		||||
 | 
			
		||||
    TYPE_1(1, "消费账户", 0, EnumsPrefixConstants.GRANT_WAY_TYPE + "1"),
 | 
			
		||||
 | 
			
		||||
    TYPE_2(2, "现金账户", 0, EnumsPrefixConstants.GRANT_WAY_TYPE + "2"),
 | 
			
		||||
 | 
			
		||||
    TYPE_6(6, "积分账户", 0, EnumsPrefixConstants.GRANT_WAY_TYPE + "6"),
 | 
			
		||||
 | 
			
		||||
    TYPE_8(8, "复购券", 0, EnumsPrefixConstants.GRANT_WAY_TYPE + "8"),
 | 
			
		||||
 | 
			
		||||
    TYPE_11(11, "直播代金券", 0, EnumsPrefixConstants.GRANT_WAY_TYPE + "11");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 实际值
 | 
			
		||||
     */
 | 
			
		||||
    private final int value;
 | 
			
		||||
    /**
 | 
			
		||||
     * 显示标签
 | 
			
		||||
     */
 | 
			
		||||
    private final String label;
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否启用(0=是,1=否) -- 来源EYesNo
 | 
			
		||||
     */
 | 
			
		||||
    private final int enable;
 | 
			
		||||
    /**
 | 
			
		||||
     * 国际化翻译key值
 | 
			
		||||
     */
 | 
			
		||||
    private final String key;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
package com.hzs.common.core.enums;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 订单扩展类型枚举类
 | 
			
		||||
 */
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@Getter
 | 
			
		||||
public enum EOrderTypeExtend {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 正常
 | 
			
		||||
     */
 | 
			
		||||
    NORMAL(0, "正常", 0),
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 注册转复购
 | 
			
		||||
     */
 | 
			
		||||
    REG_REP(1, "注册转复购", 0),
 | 
			
		||||
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 实际值
 | 
			
		||||
     */
 | 
			
		||||
    private final int value;
 | 
			
		||||
    /**
 | 
			
		||||
     * 显示标签
 | 
			
		||||
     */
 | 
			
		||||
    private final String label;
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否启用(0=是,1=否) -- 来源EYesNo
 | 
			
		||||
     */
 | 
			
		||||
    private final int enable;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -19,6 +19,11 @@ public enum EShareType {
 | 
			
		|||
     */
 | 
			
		||||
    SHARE(1, "分享注册"),
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 188注册
 | 
			
		||||
     */
 | 
			
		||||
    FANS(2, "188注册"),
 | 
			
		||||
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,12 +11,7 @@ import lombok.experimental.Accessors;
 | 
			
		|||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * <p>
 | 
			
		||||
 * 会员信息-银行卡信息
 | 
			
		||||
 * </p>
 | 
			
		||||
 *
 | 
			
		||||
 * @author hzs
 | 
			
		||||
 * @since 2022-08-31
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,255 @@
 | 
			
		|||
package com.hzs.common.domain.member.achieve;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.KeySequence;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
			
		||||
import com.hzs.common.core.annotation.Excel;
 | 
			
		||||
import com.hzs.common.core.web.domain.BaseEntity;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
import lombok.experimental.Accessors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 日结算阶段表
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
@Accessors(chain = true)
 | 
			
		||||
@KeySequence("CU_MEMBER_RETAIL_DETAIL_SEQ")
 | 
			
		||||
@TableName("CU_MEMBER_RETAIL_DETAIL")
 | 
			
		||||
public class CuMemberRetailDetail extends BaseEntity {
 | 
			
		||||
 | 
			
		||||
    private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
    @TableId("PK_ID")
 | 
			
		||||
    private Long pkId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员ID
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("PK_MEMBER")
 | 
			
		||||
    private Long pkMember;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 会员子节点
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("CHILD_NODE")
 | 
			
		||||
    private Integer childNode;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 推荐人
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("PK_PARENT")
 | 
			
		||||
    private Long pkParent;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 三个阶段(1、2、3)
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("STAGE")
 | 
			
		||||
    private Integer stage;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 阶段状态(0=已完成,1=未完成)
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("STAGE_STATUS")
 | 
			
		||||
    private Integer stageStatus;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 阶段完成时间
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("STAGE_DATE")
 | 
			
		||||
    private Date stageDate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-1
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_11")
 | 
			
		||||
    private Long point11;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-2
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_12")
 | 
			
		||||
    private Long point12;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-1
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_21")
 | 
			
		||||
    private Long point21;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-2
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_22")
 | 
			
		||||
    private Long point22;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-3
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_23")
 | 
			
		||||
    private Long point23;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-4
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_24")
 | 
			
		||||
    private Long point24;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-1
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_31")
 | 
			
		||||
    private Long point31;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-2
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_32")
 | 
			
		||||
    private Long point32;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-3
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_33")
 | 
			
		||||
    private Long point33;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-4
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_34")
 | 
			
		||||
    private Long point34;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-5
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_35")
 | 
			
		||||
    private Long point35;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-6
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_36")
 | 
			
		||||
    private Long point36;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-7
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_37")
 | 
			
		||||
    private Long point37;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-8
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_38")
 | 
			
		||||
    private Long point38;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-1会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_11")
 | 
			
		||||
    private Long pointMember11;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位1-2会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_12")
 | 
			
		||||
    private Long pointMember12;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-1会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_21")
 | 
			
		||||
    private Long pointMember21;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-2会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_22")
 | 
			
		||||
    private Long pointMember22;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-3会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_23")
 | 
			
		||||
    private Long pointMember23;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位2-4会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_24")
 | 
			
		||||
    private Long pointMember24;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-1会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_31")
 | 
			
		||||
    private Long pointMember31;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-2会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_32")
 | 
			
		||||
    private Long pointMember32;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-3会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_33")
 | 
			
		||||
    private Long pointMember33;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-4会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_34")
 | 
			
		||||
    private Long pointMember34;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-5会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_35")
 | 
			
		||||
    private Long pointMember35;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-6会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_36")
 | 
			
		||||
    private Long pointMember36;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-7会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_37")
 | 
			
		||||
    private Long pointMember37;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位3-8会员
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_MEMBER_38")
 | 
			
		||||
    private Long pointMember38;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 点位类型(0=普通,1=赠送点位)
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_TYPE")
 | 
			
		||||
    private Integer pointType;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 赠点数量(三阶段走完赠送几个点位)
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("POINT_GIFT")
 | 
			
		||||
    private Integer pointGift;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建时间
 | 
			
		||||
     */
 | 
			
		||||
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 | 
			
		||||
    @TableField("CREATION_TIME")
 | 
			
		||||
    private Date creationTime;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -107,12 +107,6 @@ public class CuMemberRetailRange extends BaseEntity {
 | 
			
		|||
    @TableField("PK_RATE")
 | 
			
		||||
    private Integer pkRate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 系统类型(2=新零售)
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("SYSTEM_TYPE")
 | 
			
		||||
    private Integer systemType;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 本人当天新消费pv
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -173,12 +167,6 @@ public class CuMemberRetailRange extends BaseEntity {
 | 
			
		|||
    @TableField("TEAM_NUM")
 | 
			
		||||
    private Integer teamNum;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 县级区域地址
 | 
			
		||||
     */
 | 
			
		||||
    @TableField("REGION_ADDRESS")
 | 
			
		||||
    private Integer regionAddress;
 | 
			
		||||
 | 
			
		||||
    @TableField("big_team_pv")
 | 
			
		||||
    private BigDecimal bigTeamPv;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,11 +72,6 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange {
 | 
			
		|||
     */
 | 
			
		||||
    private BigDecimal coachRatio;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 县级名称
 | 
			
		||||
     */
 | 
			
		||||
    private String countryName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 团队累计消费pv(不管激活,全累计) -- 日结使用
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue