3
0
Fork 0

## 购买博羚店主,添加推荐人升级高级店主处理;

This commit is contained in:
cabbage 2025-07-09 16:32:27 +08:00
parent eaeb2b98fe
commit bc63691d9f
25 changed files with 202 additions and 517 deletions

View File

@ -5,11 +5,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Description: 国家数据传输DTO * 国家数据传输DTO
* Author: jiang chao
* Time: 2022/8/31 16:56
* Classname: CountryDTO
* PackageName: com.hzs.system.base.dto
*/ */
@Data @Data
public class CountryDTO implements Serializable { public class CountryDTO implements Serializable {

View File

@ -21,7 +21,6 @@ import com.hzs.common.domain.member.detail.CuMemberServiceLogExt;
import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.system.config.BdAccount; import com.hzs.common.domain.system.config.BdAccount;
import com.hzs.common.domain.system.config.BdTransfer; import com.hzs.common.domain.system.config.BdTransfer;
import com.hzs.common.domain.system.config.BdTransferSpecial;
import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils; import com.hzs.common.util.TransactionUtils;
import com.hzs.member.account.dto.CuMemberRechargeAccountParam; import com.hzs.member.account.dto.CuMemberRechargeAccountParam;
@ -338,51 +337,6 @@ public class ApiCuMemberTransferController extends BaseController {
return (reference.equals(EYesNo.YES.getIntValue()) || transferStatus.equals(EYesNo.YES.getIntValue())) && !cuMemberTransferService.isBloodLine(pkMember, toPkMember); return (reference.equals(EYesNo.YES.getIntValue()) || transferStatus.equals(EYesNo.YES.getIntValue())) && !cuMemberTransferService.isBloodLine(pkMember, toPkMember);
} }
/**
* 转账的特殊配置
*
* @param pkMember 转出方ID
* @param transferMoney 转账金额
* @param toPkMember 转入方ID
* @return AjaxResult
*/
private AjaxResult transferSpecial(BdTransferSpecial transferSpecial, Long pkMember, BigDecimal transferMoney, Long toPkMember) {
//特殊配置
if (null != transferSpecial) {
//某个人的最低提现金额
BigDecimal minAmountMoney = transferSpecial.getMinAmountMoney();
if (transferMoney.compareTo(minAmountMoney) < 0) {
return AjaxResult.error("转账金额不能低于最低转账金额");
}
Integer specialConfig = transferSpecial.getSpecialConfig();
//不校验
if (specialConfig.equals(ETransferSpecial.NO_CONTROL.getValue())) {
return AjaxResult.success();
}
//推荐
if (specialConfig.equals(ETransferSpecial.BLOOD_ALL.getValue()) && !cuMemberTransferService.isBloodLine(pkMember, toPkMember)) {
return AjaxResult.error("接收方编号不在血缘线中");
}
if (specialConfig.equals(ETransferSpecial.BLOOD_ON_UMBRELLA.getValue()) && !cuMemberTransferService.isBloodKinshipOnUmbrella(pkMember, toPkMember)) {
return AjaxResult.error("接收方编号不在血缘伞上");
}
if (specialConfig.equals(ETransferSpecial.BLOOD_UNDER_UMBRELLA.getValue()) && !cuMemberTransferService.isBloodKinshipUnderUmbrella(pkMember, toPkMember)) {
return AjaxResult.error("接收方编号不在血缘伞下");
}
//安置
if (specialConfig.equals(ETransferSpecial.PLACE_ALL.getValue()) && !cuMemberTransferService.isPlaceSponsorOnline(pkMember, toPkMember)) {
return AjaxResult.error("接收方编号不在安置线中");
}
if (specialConfig.equals(ETransferSpecial.PLACE_ON_UMBRELLA.getValue()) && !cuMemberTransferService.isPlaceSponsorOnUmbrella(pkMember, toPkMember)) {
return AjaxResult.error("接收方编号不在安置伞上");
}
if (specialConfig.equals(ETransferSpecial.PLACE_UNDER_UMBRELLA.getValue()) && !cuMemberTransferService.isPlaceSponsorUnderUmbrella(pkMember, toPkMember)) {
return AjaxResult.error("接收方编号不在安置伞下");
}
}
return AjaxResult.success();
}
/** /**
* 计算手续费金额 * 计算手续费金额
* *

View File

@ -1,6 +1,5 @@
package com.hzs.member.account.mapper; package com.hzs.member.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.account.CuMemberTransfer; import com.hzs.common.domain.member.account.CuMemberTransfer;
import com.hzs.common.domain.member.account.CuMemberTransferExt; import com.hzs.common.domain.member.account.CuMemberTransferExt;
@ -9,12 +8,7 @@ import com.hzs.member.account.vo.CuMemberTransferVO;
import java.util.List; import java.util.List;
/** /**
* <p>
* 会员转账表 Mapper 接口 * 会员转账表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-09-06
*/ */
public interface CuMemberTransferMapper extends BaseMapper<CuMemberTransfer> { public interface CuMemberTransferMapper extends BaseMapper<CuMemberTransfer> {
@ -26,12 +20,4 @@ public interface CuMemberTransferMapper extends BaseMapper<CuMemberTransfer> {
*/ */
List<CuMemberTransferExt> selectMemberTransferList(CuMemberTransferVO cuMemberTransferVO); List<CuMemberTransferExt> selectMemberTransferList(CuMemberTransferVO cuMemberTransferVO);
/**
* 查询统计总充值金额
*
* @param cuMemberTransferVO 转账参数
* @return CuMemberTransferExt
*/
CuMemberTransferExt selectMemberTransferCount(CuMemberTransferVO cuMemberTransferVO);
} }

View File

@ -1,22 +1,13 @@
package com.hzs.member.account.service; package com.hzs.member.account.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.account.CuMemberTransfer; import com.hzs.common.domain.member.account.CuMemberTransfer;
import com.hzs.common.domain.member.account.CuMemberTransferExt;
import com.hzs.common.domain.system.config.BdTransfer; import com.hzs.common.domain.system.config.BdTransfer;
import com.hzs.member.account.vo.CuMemberTransferVO; import com.hzs.member.account.vo.CuMemberTransferVO;
/** /**
* <p>
* 会员转账表 服务类 * 会员转账表 服务类
* </p>
*
* @author hzs
* @since 2022-09-06
*/ */
public interface ICuMemberTransferService extends IService<CuMemberTransfer> { public interface ICuMemberTransferService extends IService<CuMemberTransfer> {
/** /**
@ -46,33 +37,6 @@ public interface ICuMemberTransferService extends IService<CuMemberTransfer> {
*/ */
Boolean isBloodKinshipUnderUmbrella(Long pkMember, Long toPkMember); Boolean isBloodKinshipUnderUmbrella(Long pkMember, Long toPkMember);
/**
* 查找安置人线上
*
* @param pkMember 转出方ID
* @param toPkMember 转入方ID
* @return Boolean
*/
Boolean isPlaceSponsorOnline(Long pkMember, Long toPkMember);
/**
* 查找安置人伞上
*
* @param pkMember 转出方ID
* @param toPkMember 转入方ID
* @return Boolean
*/
Boolean isPlaceSponsorOnUmbrella(Long pkMember, Long toPkMember);
/**
* 查找安置人伞下
*
* @param pkMember 转出方ID
* @param toPkMember 转入方ID
* @return Boolean
*/
Boolean isPlaceSponsorUnderUmbrella(Long pkMember, Long toPkMember);
/** /**
* 获取转账配置 * 获取转账配置
* *
@ -86,11 +50,11 @@ public interface ICuMemberTransferService extends IService<CuMemberTransfer> {
* 保存转账 * 保存转账
* *
* @param cuMemberTransfer 转账信息 * @param cuMemberTransfer 转账信息
* @param cuMemberAccount 转出的账户信息 * @param cuMemberAccount 转出的账户信息
* @param toMemberAccount 转入的账户信息 * @param toMemberAccount 转入的账户信息
* @return Integer * @return Integer
*/ */
Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount,CuMemberAccount toMemberAccount); Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount, CuMemberAccount toMemberAccount);
/** /**
* 根据条件查询转账列表 * 根据条件查询转账列表

View File

@ -34,32 +34,22 @@ import java.math.RoundingMode;
import java.util.*; import java.util.*;
/** /**
* <p>
* 会员转账表 服务实现类 * 会员转账表 服务实现类
* </p>
*
* @author hzs
* @since 2022-09-06
*/ */
@Service @Service
public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMapper, CuMemberTransfer> implements ICuMemberTransferService { public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMapper, CuMemberTransfer> implements ICuMemberTransferService {
@Autowired @Autowired
private ICuMemberService cuMemberService; private ICuMemberService cuMemberService;
@Autowired @Autowired
private ICuMemberAccountService cuMemberAccountService; private ICuMemberAccountService cuMemberAccountService;
@Autowired @Autowired
private ICuMemberTradeService cuMemberTradeService; private ICuMemberTradeService cuMemberTradeService;
@DubboReference
private ITransferServiceApi transferServiceApi;
@Autowired @Autowired
private ICuMemberBaseService cuMemberBaseService; private ICuMemberBaseService cuMemberBaseService;
@DubboReference
ITransferServiceApi transferServiceApi;
@Override @Override
public Boolean isBloodLine(Long pkMember, Long toPkMember) { public Boolean isBloodLine(Long pkMember, Long toPkMember) {
@ -91,29 +81,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
return downOptional.isPresent(); return downOptional.isPresent();
} }
@Override
public Boolean isPlaceSponsorOnline(Long pkMember, Long toPkMember) {
if (Boolean.TRUE.equals(isPlaceSponsorOnUmbrella(pkMember, toPkMember))) {
return true;
}
return isPlaceSponsorUnderUmbrella(pkMember, toPkMember);
}
@Override
public Boolean isPlaceSponsorOnUmbrella(Long pkMember, Long toPkMember) {
// TODO 此处会查询整颗树会出现问题
List<CuMemberExt> memberPlaceOn = cuMemberService.queryPlaceSponsorOnUmbrella(pkMember);
Optional<CuMemberExt> onPlaceOptional = memberPlaceOn.stream().filter(placeOn -> toPkMember.equals(placeOn.getPkId())).findFirst();
return onPlaceOptional.isPresent();
}
@Override
public Boolean isPlaceSponsorUnderUmbrella(Long pkMember, Long toPkMember) {
List<CuMemberExt> memberPlaceUnder = cuMemberService.queryPlaceSponsorUnderUmbrella(pkMember);
Optional<CuMemberExt> underPlaceOptional = memberPlaceUnder.stream().filter(placeUnder -> toPkMember.equals(placeUnder.getPkId())).findFirst();
return underPlaceOptional.isPresent();
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount, CuMemberAccount toMemberAccount) { public Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount, CuMemberAccount toMemberAccount) {
@ -231,7 +198,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
.tradeBalance(balance.add(amount)) .tradeBalance(balance.add(amount))
.sourceCode(cuMemberTransfer.getTransferCode()) .sourceCode(cuMemberTransfer.getTransferCode())
.tradeStatue(ETradeStatus.TAKE_EFFECT.getValue()) .tradeStatue(ETradeStatus.TAKE_EFFECT.getValue())
.remarks(getTransferRemarks(toMember, member, tradeAmount,ETransferType.TRANSFER_OUT)) .remarks(getTransferRemarks(toMember, member, tradeAmount, ETransferType.TRANSFER_OUT))
.build(); .build();
memberTrade.setPkCountry(cuMemberTransfer.getPkCountry()); memberTrade.setPkCountry(cuMemberTransfer.getPkCountry());
memberTrade.setPkCreator(cuMemberTransfer.getPkCreator()); memberTrade.setPkCreator(cuMemberTransfer.getPkCreator());
@ -267,7 +234,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
.tradeBalance(balance.add(tradeAmount)) .tradeBalance(balance.add(tradeAmount))
.sourceCode(cuMemberTransfer.getTransferCode()) .sourceCode(cuMemberTransfer.getTransferCode())
.tradeStatue(ETradeStatus.TAKE_EFFECT.getValue()) .tradeStatue(ETradeStatus.TAKE_EFFECT.getValue())
.remarks(getTransferRemarks(member, toMember, tradeAmount,ETransferType.TRANSFER_IN)) .remarks(getTransferRemarks(member, toMember, tradeAmount, ETransferType.TRANSFER_IN))
.build(); .build();
memberTrade.setPkCountry(cuMemberTransfer.getPkCountry()); memberTrade.setPkCountry(cuMemberTransfer.getPkCountry());
memberTrade.setPkCreator(cuMemberTransfer.getPkCreator()); memberTrade.setPkCreator(cuMemberTransfer.getPkCreator());
@ -304,8 +271,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
} }
@Override @Override
public Object[] selectMemberTransferList(CuMemberTransferVO cuMemberTransferVO) { public Object[] selectMemberTransferList(CuMemberTransferVO cuMemberTransferVO) {
CuMemberTransferVO memberTransferVO; CuMemberTransferVO memberTransferVO;
@ -319,8 +284,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
cuMemberTransferVOS.add(memberTransferVO); cuMemberTransferVOS.add(memberTransferVO);
} }
} }
Object[] objects = new Object[]{cuMemberTransferExts, cuMemberTransferVOS}; return new Object[]{cuMemberTransferExts, cuMemberTransferVOS};
return objects;
} }

View File

@ -605,7 +605,6 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*/ */
List<Long> checkMemberOrder(@Param("pkMemberList") List<Long> pkMemberList); List<Long> checkMemberOrder(@Param("pkMemberList") List<Long> pkMemberList);
/** /**
* 查询多会员是否在血缘伞下 * 查询多会员是否在血缘伞下
* *
@ -615,8 +614,15 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*/ */
BdTradeWhiteConfig selectMemberByUnderBlood(@Param("pkMember") Long pkMember, @Param("memberType") Integer memberType); BdTradeWhiteConfig selectMemberByUnderBlood(@Param("pkMember") Long pkMember, @Param("memberType") Integer memberType);
int validateCompanyCount(@Param("gradeValue") Integer gradeValue); int validateCompanyCount(@Param("gradeValue") Integer gradeValue);
int validateBranchOfficeCount(@Param("areaId") Integer areaId, @Param("userId") Long userId); int validateBranchOfficeCount(@Param("areaId") Integer areaId, @Param("userId") Long userId);
/**
* 查询博羚店主会员
*
* @return
*/
CuMember getShopkeeperMember(@Param("pkMember") Long pkMember);
} }

View File

@ -100,13 +100,6 @@ public interface ICuMemberService extends IService<CuMember> {
*/ */
boolean checkLowerMember(Long pkMember); boolean checkLowerMember(Long pkMember);
/**
* 查找安置人伞上
*
* @param memberId 安置人编号
*/
List<CuMemberExt> queryPlaceSponsorOnUmbrella(Long memberId);
/** /**
* 查找安置人伞上 * 查找安置人伞上
* *
@ -893,4 +886,12 @@ public interface ICuMemberService extends IService<CuMember> {
int validateCompanyCount(); int validateCompanyCount();
int validateBranchOfficeCount(Integer areaId, Long userId); int validateBranchOfficeCount(Integer areaId, Long userId);
/**
* 查询博羚店主会员
*
* @return
*/
CuMember getShopkeeperMember(Long pkMember);
} }

View File

@ -31,6 +31,7 @@ import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.system.config.BdAccount; import com.hzs.common.domain.system.config.BdAccount;
import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils; import com.hzs.common.util.TransactionUtils;
import com.hzs.member.account.dto.BusinessCommissionDTO; import com.hzs.member.account.dto.BusinessCommissionDTO;
import com.hzs.member.account.service.ICuMemberAccountService; import com.hzs.member.account.service.ICuMemberAccountService;
@ -50,10 +51,11 @@ import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAccountServiceApi; import com.hzs.system.config.IAccountServiceApi;
import com.hzs.system.config.IAreaCurrencyServiceApi; import com.hzs.system.config.IAreaCurrencyServiceApi;
import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IAwardsServiceApi;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.AreaCurrencyDTO; import com.hzs.system.config.dto.AreaCurrencyDTO;
import com.hzs.system.config.dto.GradeDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -76,6 +78,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@DubboReference @DubboReference
IAwardsServiceApi iAwardsServiceApi; IAwardsServiceApi iAwardsServiceApi;
@DubboReference @DubboReference
IGradeServiceApi iGradeServiceApi;
@DubboReference
ICurrencyServiceApi iCurrencyServiceApi; ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference @DubboReference
ISaOrderServiceApi iSaOrderServiceApi; ISaOrderServiceApi iSaOrderServiceApi;
@ -83,13 +87,11 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Autowired @Autowired
private MemberToolsHandler memberToolsHandler; private MemberToolsHandler memberToolsHandler;
@Autowired @Autowired
private ICuMemberAchieveService cuMemberAchieveService; private ICuMemberAchieveService iCuMemberAchieveService;
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private ICuMemberService iCuMemberService;
private ICuMemberService cuMemberService;
private ICuMemberRegisterService cuMemberRegisterService; private ICuMemberRegisterService cuMemberRegisterService;
@ -144,11 +146,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
this.cuMemberAccountService = cuMemberAccountService; this.cuMemberAccountService = cuMemberAccountService;
} }
@Autowired
public void setCuMemberService(ICuMemberService cuMemberService) {
this.cuMemberService = cuMemberService;
}
@Autowired @Autowired
public void setCuMemberRegisterService(ICuMemberRegisterService cuMemberRegisterService) { public void setCuMemberRegisterService(ICuMemberRegisterService cuMemberRegisterService) {
this.cuMemberRegisterService = cuMemberRegisterService; this.cuMemberRegisterService = cuMemberRegisterService;
@ -164,7 +161,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
public void updateCuMember(CuMember cuMember) { public void updateCuMember(CuMember cuMember) {
redisService.lockKeyMany(CacheConstants.UPD_MEMBER + cuMember.getMemberCode()); redisService.lockKeyMany(CacheConstants.UPD_MEMBER + cuMember.getMemberCode());
try { try {
cuMemberService.updateById(cuMember); iCuMemberService.updateById(cuMember);
} finally { } finally {
redisService.unlock(CacheConstants.UPD_MEMBER + cuMember.getMemberCode()); redisService.unlock(CacheConstants.UPD_MEMBER + cuMember.getMemberCode());
} }
@ -177,7 +174,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 当cuMember为空时代表为复购订单不更新会员表 // 当cuMember为空时代表为复购订单不更新会员表
if (cuMember != null) { if (cuMember != null) {
// 验证等级是否发生了变化海外存在累计升级的国家 // 验证等级是否发生了变化海外存在累计升级的国家
CuMember member = cuMemberService.getMember(cuMember.getPkId()); CuMember member = iCuMemberService.getMember(cuMember.getPkId());
if (!cuMember.getPkSettleGrade().equals(member.getPkSettleGrade())) { if (!cuMember.getPkSettleGrade().equals(member.getPkSettleGrade())) {
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, member.getPkSettleGrade()); saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, member.getPkSettleGrade());
} }
@ -260,10 +257,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (isPay) { if (isPay) {
updateCuMember(cuMember); updateCuMember(cuMember);
} else { } else {
if (cuMemberService.getMember(cuMember.getPkId()) != null) { if (iCuMemberService.getMember(cuMember.getPkId()) != null) {
updateCuMember(cuMember); updateCuMember(cuMember);
} else { } else {
cuMemberService.saveMember(cuMember); iCuMemberService.saveMember(cuMember);
} }
} }
// 代表在线支付在线支付先插入一条充值信息 // 代表在线支付在线支付先插入一条充值信息
@ -287,7 +284,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override @Override
public void saveShareMember(CuMember cuMember) { public void saveShareMember(CuMember cuMember) {
// 保存会员 // 保存会员
cuMemberService.saveMember(cuMember); iCuMemberService.saveMember(cuMember);
// 保存账户 // 保存账户
saveMemberAccount(cuMember); saveMemberAccount(cuMember);
// 用户注册信息 // 用户注册信息
@ -365,7 +362,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 扣款 扣款信息 // 扣款 扣款信息
Integer pkCountry = saOrder.getPkCountry(); Integer pkCountry = saOrder.getPkCountry();
Long pkMember = saOrder.getPkCreator(); Long pkMember = saOrder.getPkCreator();
CuMember cuMember = cuMemberService.getMember(saOrder.getPkCreator()); CuMember cuMember = iCuMemberService.getMember(saOrder.getPkCreator());
if (cuMember != null) { if (cuMember != null) {
pkCountry = cuMember.getPkSettleCountry(); pkCountry = cuMember.getPkSettleCountry();
pkMember = cuMember.getPkId(); pkMember = cuMember.getPkId();
@ -602,13 +599,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
// 会员账号 验证会员账户是否存在金额 // 会员账号 验证会员账户是否存在金额
CuMember member = cuMemberService.getMemberById(saOrder.getPkMember()); CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember());
// 会员变为死点 // 会员变为死点
member.setCategory(ECategory.LOGGED_OUT.getValue()); member.setCategory(ECategory.LOGGED_OUT.getValue());
member.setCustomerType(ECustomerType.DEAD_POINT.getValue()); member.setCustomerType(ECustomerType.DEAD_POINT.getValue());
member.setPkModified(saOrder.getPkModified()); member.setPkModified(saOrder.getPkModified());
member.setModifiedTime(DateUtils.currentDateTime()); member.setModifiedTime(DateUtils.currentDateTime());
cuMemberService.updateById(member); iCuMemberService.updateById(member);
// 撤销正常订单修改 cu_member_register 账户状态为死点 // 撤销正常订单修改 cu_member_register 账户状态为死点
CuMemberRegister cuMemberRegister = new CuMemberRegister(); CuMemberRegister cuMemberRegister = new CuMemberRegister();
cuMemberRegister.setPkMember(member.getPkId()); cuMemberRegister.setPkMember(member.getPkId());
@ -629,7 +626,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator()); CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
// 会员账号 验证会员账户是否存在金额 // 会员账号 验证会员账户是否存在金额
CuMember member = cuMemberService.getMember(saOrder.getPkMember()); CuMember member = iCuMemberService.getMember(saOrder.getPkMember());
//删除会员 //删除会员
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
@ -638,7 +635,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime()); updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime());
updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified()); updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified());
updateWrapper.eq(CuMember::getPkId, member.getPkId()); updateWrapper.eq(CuMember::getPkId, member.getPkId());
cuMemberService.update(updateWrapper); iCuMemberService.update(updateWrapper);
// 删除会员注册表 // 删除会员注册表
LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>();
@ -870,7 +867,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
// 回退奖衔,根据订单从 cu_member_awards查询 // 回退奖衔,根据订单从 cu_member_awards查询
cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime);
cuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime); iCuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime);
cuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime); cuMemberAccountService.deleteCuMemberAccountByPkMember(pkMember, pkApprove, currentDateTime);
// 撤销正常订单修改 cu_member_register 账户状态为死点 // 撤销正常订单修改 cu_member_register 账户状态为死点
CuMemberRegister cuMemberRegister = new CuMemberRegister(); CuMemberRegister cuMemberRegister = new CuMemberRegister();
@ -936,7 +933,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (saOrder.getUpdateFlag() != null && EYesNo.YES.getIntValue() == saOrder.getUpdateFlag()) { if (saOrder.getUpdateFlag() != null && EYesNo.YES.getIntValue() == saOrder.getUpdateFlag()) {
if (null != cuMember) { if (null != cuMember) {
// 更新会员信息 // 更新会员信息
cuMemberService.updateById(cuMember); iCuMemberService.updateById(cuMember);
} }
} }
@ -1241,7 +1238,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
memberUpdateWrapper.set(CuMember::getPkModified, userId); memberUpdateWrapper.set(CuMember::getPkModified, userId);
memberUpdateWrapper.set(CuMember::getModifiedTime, nowDate); memberUpdateWrapper.set(CuMember::getModifiedTime, nowDate);
memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue()); memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue());
cuMemberService.update(memberUpdateWrapper); iCuMemberService.update(memberUpdateWrapper);
// 添加会员信息修改记录 // 添加会员信息修改记录
CuMemberChangeLog cuMemberChangeLog = new CuMemberChangeLog(); CuMemberChangeLog cuMemberChangeLog = new CuMemberChangeLog();
cuMemberChangeLog.setPkMember(saOrder.getPkMember()); cuMemberChangeLog.setPkMember(saOrder.getPkMember());
@ -1260,7 +1257,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
memberUpdateWrapper.set(CuMember::getPkModified, userId); memberUpdateWrapper.set(CuMember::getPkModified, userId);
memberUpdateWrapper.set(CuMember::getModifiedTime, new Date()); memberUpdateWrapper.set(CuMember::getModifiedTime, new Date());
memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue()); memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue());
cuMemberService.update(memberUpdateWrapper); iCuMemberService.update(memberUpdateWrapper);
// 添加会员信息修改记录 // 添加会员信息修改记录
List<CuMemberChangeLog> cuMemberChangeLogList = new ArrayList<>(); List<CuMemberChangeLog> cuMemberChangeLogList = new ArrayList<>();
for (Long pkMember : pkMemberList) { for (Long pkMember : pkMemberList) {
@ -1403,12 +1400,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
Long pkMember = cuMember.getPkParent(); Long pkMember = cuMember.getPkParent();
Integer pkCountry = cuMember.getPkSettleCountry(); Integer pkCountry = cuMember.getPkSettleCountry();
// 获取推荐人的左右区 // 获取推荐人的左右区
CuMember parentMember = cuMemberService.queryMember(pkMember); CuMember parentMember = iCuMemberService.queryMember(pkMember);
int placeDept; int placeDept;
// 查询当前的业绩 // 查询当前的业绩
CuMemberAchieve cuMemberAchieve = cuMemberAchieveService.queryCuMemberAchieveByPkMember(pkMember, pkCountry); CuMemberAchieve cuMemberAchieve = iCuMemberAchieveService.queryCuMemberAchieveByPkMember(pkMember, pkCountry);
placeDept = getPlaceDept(isFirst, isFirstAchieve, cuMemberAchieve, parentMember.getPkId()); placeDept = getPlaceDept(isFirst, isFirstAchieve, cuMemberAchieve, parentMember.getPkId());
CuMemberExt cuMemberExt = cuMemberService.queryPlaceSponsorLastLeft(pkMember, placeDept); CuMemberExt cuMemberExt = iCuMemberService.queryPlaceSponsorLastLeft(pkMember, placeDept);
CuMember placeCuMember = new CuMember(); CuMember placeCuMember = new CuMember();
if (cuMemberExt != null) { if (cuMemberExt != null) {
placeCuMember.setPkPlaceParent(cuMemberExt.getPkId()); placeCuMember.setPkPlaceParent(cuMemberExt.getPkId());
@ -1460,7 +1457,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
} else { } else {
// 验证左右区人数放入人数少的 // 验证左右区人数放入人数少的
List<CuMember> personNumList = cuMemberService.queryMemberLeftRightCount(pkParent); List<CuMember> personNumList = iCuMemberService.queryMemberLeftRightCount(pkParent);
if (personNumList != null && personNumList.size() > 1) { if (personNumList != null && personNumList.size() > 1) {
long leftNum = 0; long leftNum = 0;
long rigthNum = 0; long rigthNum = 0;
@ -1486,7 +1483,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override @Override
public void saveRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) { public void saveRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) {
// 保存会员信息 // 保存会员信息
cuMemberService.saveMember(cuMember); iCuMemberService.saveMember(cuMember);
// 保存会员账户信息 // 保存会员账户信息
CuMemberAccount cuMemberAccount = CuMemberAccount.builder() CuMemberAccount cuMemberAccount = CuMemberAccount.builder()
@ -1503,6 +1500,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 保存会员等级变动 // 保存会员等级变动
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0); saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0);
// 判断推送MQ处理推荐人等级
handleParentUpgrade(cuMember, saOrder);
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
} }
@ -1517,6 +1516,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 保存会员等级变动如果旧等级和新等级相同则不记录 // 保存会员等级变动如果旧等级和新等级相同则不记录
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld()); saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
} }
// 判断推送MQ处理推荐人等级
handleParentUpgrade(cuMember, saOrder);
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
} }
@ -1543,7 +1544,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 更新会员信息 // 更新会员信息
updateWrapper.eq(CuMember::getPkId, cuMember.getPkId()); updateWrapper.eq(CuMember::getPkId, cuMember.getPkId());
updateWrapper.set(CuMember::getModifiedTime, new Date()); updateWrapper.set(CuMember::getModifiedTime, new Date());
cuMemberService.update(updateWrapper); iCuMemberService.update(updateWrapper);
} }
// if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) { // if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
@ -1574,4 +1575,39 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
} }
/**
* 判断推送MQ处理推荐人等级
*
* @param cuMember
*/
private void handleParentUpgrade(CuMember cuMember, SaOrderExt saOrder) {
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()) {
// 会员等级为 博羚店主推荐人如果也是博羚店主需要升级为高级店主
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent());
if (null != parentMember) {
// 记录升级历史
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData();
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(parentMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
.oldLevel(parentMember.getPkSettleGrade())
.newLevel(upgradeDTO.getPkId())
.upgradeTime(saOrder.getPayTime())
.pkOrder(saOrder.getPkId())
.build();
cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry());
cuMemberLevel.setPkCreator(cuMember.getPkId());
cuMemberLevelService.save(cuMemberLevel);
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getPkSettleGrade, upgradeDTO.getPkId());
updateWrapper.eq(CuMember::getPkId, parentMember.getPkId());
updateWrapper.set(CuMember::getPkModified, cuMember.getPkId());
updateWrapper.set(CuMember::getModifiedTime, new Date());
iCuMemberService.update(updateWrapper);
}
}
}
} }

View File

@ -77,7 +77,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -197,11 +196,6 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return this.count(queryWrapper) > 0; return this.count(queryWrapper) > 0;
} }
@Override
public List<CuMemberExt> queryPlaceSponsorOnUmbrella(Long memberId) {
return baseMapper.selectPlaceSponsorOnUmbrella(memberId, null, null);
}
@Override @Override
public List<CuMemberExt> queryPlaceSponsorOnUmbrella(Long memberId, String memberCode, String phone) { public List<CuMemberExt> queryPlaceSponsorOnUmbrella(Long memberId, String memberCode, String phone) {
return baseMapper.selectPlaceSponsorOnUmbrella(memberId, memberCode, phone); return baseMapper.selectPlaceSponsorOnUmbrella(memberId, memberCode, phone);
@ -3159,4 +3153,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return baseMapper.validateBranchOfficeCount(areaId, userId); return baseMapper.validateBranchOfficeCount(areaId, userId);
} }
@Override
public CuMember getShopkeeperMember(Long pkMember) {
return baseMapper.getShopkeeperMember(pkMember);
}
} }

View File

@ -26,31 +26,18 @@
<result column="ISSUED_AMOUNT" property="issuedAmount"/> <result column="ISSUED_AMOUNT" property="issuedAmount"/>
</resultMap> </resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEL_FLAG,
PK_CREATOR,
CREATION_TIME,
PK_MODIFIED,
MODIFIED_TIME,
PK_COUNTRY,
PK_ID, PK_MEMBER, TRANSFER_CODE, PK_ACCOUNT, TO_PK_MEMBER,
PK_TO_ACCOUNT, PK_RATE, TRANSFER_MONEY, REMARKS, APPROVE_STATE, APPROVER, APPROVE_TIME,
SERVICE_CHARGE,ISSUED_AMOUNT
</sql>
<sql id="select_base"> <sql id="select_base">
select r.*, select r.*,
m.member_code as memberCode, m.member_code as memberCode,
m.member_name as memberName, m.member_name as memberName,
t.member_code toMemberCode, t.member_code toMemberCode,
t.member_name toMemberName t.member_name toMemberName
from cu_member_transfer r from cu_member_transfer r
left join cu_member m left join cu_member m
on r.pk_member = m.pk_id on r.pk_member = m.pk_id
left join cu_member t left join cu_member t
on r.to_pk_member = t.pk_id on r.to_pk_member = t.pk_id
</sql> </sql>
<sql id="ids_where"> <sql id="ids_where">
@ -116,12 +103,4 @@
order by r.creation_time Desc order by r.creation_time Desc
</select> </select>
<select id="selectMemberTransferCount" resultType="com.hzs.common.domain.member.account.CuMemberTransferExt">
select NVL(sum(r.transfer_money), 0) as transferMoney
from cu_member_transfer r
left join cu_member m on r.pk_member = m.pk_id
<include refid="list_where"></include>
</select>
</mapper> </mapper>

View File

@ -207,13 +207,16 @@
,IS_ACTIVATE ,IS_ACTIVATE
</if> </if>
) )
VALUES (#{pkId,jdbcType=INTEGER}, #{memberCode}, #{memberName}, #{category}, #{customerType}, #{phone}, #{email, jdbcType=VARCHAR}, #{idCard, jdbcType=VARCHAR}, #{pkSettleCountry}, VALUES (#{pkId,jdbcType=INTEGER}, #{memberCode}, #{memberName}, #{category}, #{customerType}, #{phone}, #{email, jdbcType=VARCHAR},
#{pkParent}, #{pkPlaceParent,jdbcType=NUMERIC}, #{placeDept,jdbcType=INTEGER}, #{pkTeamCode,jdbcType=INTEGER}, #{pkCenterCode,jdbcType=INTEGER}, #{source}, #{pkRegisterGrade}, #{idCard, jdbcType=VARCHAR}, #{pkSettleCountry},
#{pkParent}, #{pkPlaceParent,jdbcType=NUMERIC}, #{placeDept,jdbcType=INTEGER}, #{pkTeamCode,jdbcType=INTEGER},
#{pkCenterCode,jdbcType=INTEGER}, #{source}, #{pkRegisterGrade},
#{pkSettleGrade}, #{pkAwards}, #{consumeMoney,jdbcType=NUMERIC}, #{consumeAchieve,jdbcType=NUMERIC}, #{payStatus}, #{loginPwd}, #{payPwd}, #{pkSettleGrade}, #{pkAwards}, #{consumeMoney,jdbcType=NUMERIC}, #{consumeAchieve,jdbcType=NUMERIC}, #{payStatus}, #{loginPwd}, #{payPwd},
#{loginPassword}, #{payPassword}, #{pkVertex,jdbcType=INTEGER}, #{accountStatus}, #{orderSource}, #{loginPassword}, #{payPassword}, #{pkVertex,jdbcType=INTEGER}, #{accountStatus}, #{orderSource},
#{pkCreator,jdbcType=INTEGER}, #{creationTime, jdbcType=TIMESTAMP}, #{pkCountry}, #{payTime, jdbcType=TIMESTAMP}, #{pkCreator,jdbcType=INTEGER}, #{creationTime, jdbcType=TIMESTAMP}, #{pkCountry}, #{payTime, jdbcType=TIMESTAMP},
#{globalCode, jdbcType=VARCHAR}, #{countryCode, jdbcType=VARCHAR}, #{registerAuthority,jdbcType=INTEGER}, #{globalCode, jdbcType=VARCHAR}, #{countryCode, jdbcType=VARCHAR}, #{registerAuthority,jdbcType=INTEGER},
#{expireDate, jdbcType=DATE}, #{stopDate, jdbcType=DATE}, #{isMakerGift,jdbcType=INTEGER}, #{makerGiftTime,jdbcType=TIMESTAMP}, #{nickName, jdbcType=VARCHAR} #{expireDate, jdbcType=DATE}, #{stopDate, jdbcType=DATE}, #{isMakerGift,jdbcType=INTEGER}, #{makerGiftTime,jdbcType=TIMESTAMP},
#{nickName, jdbcType=VARCHAR}
<if test="systemType != null"> <if test="systemType != null">
,#{systemType} ,#{systemType}
</if> </if>
@ -1459,7 +1462,8 @@
</select> </select>
<select id="parentList" resultType="com.hzs.member.base.vo.ParentMemberVo"> <select id="parentList" resultType="com.hzs.member.base.vo.ParentMemberVo">
select a.* from ( select cm.CONSUME_MONEY consumeMoney,cm.CONSUME_ACHIEVE consumeAchieve,cm.member_code memberCode,cm.member_name memberName,cm.PK_REGISTER_GRADE pkRegisterGrade, select a.* from ( select cm.CONSUME_MONEY consumeMoney,cm.CONSUME_ACHIEVE consumeAchieve,cm.member_code memberCode,cm.member_name
memberName,cm.PK_REGISTER_GRADE pkRegisterGrade,
cm.PK_SETTLE_GRADE pkSettleGrade, cm.PK_SETTLE_GRADE pkSettleGrade,
cm.CREATION_TIME creationTime, cm.CREATION_TIME creationTime,
cm.pk_vertex, cm.pk_vertex,
@ -1488,7 +1492,8 @@
union all union all
select cm.CONSUME_MONEY consumeMoney,cm.CONSUME_ACHIEVE consumeAchieve,cm.member_code memberCode,cm.member_name memberName,cm.PK_REGISTER_GRADE pkRegisterGrade, select cm.CONSUME_MONEY consumeMoney,cm.CONSUME_ACHIEVE consumeAchieve,cm.member_code memberCode,cm.member_name
memberName,cm.PK_REGISTER_GRADE pkRegisterGrade,
cm.PK_SETTLE_GRADE pkSettleGrade, cm.PK_SETTLE_GRADE pkSettleGrade,
cm.CREATION_TIME creationTime, cm.CREATION_TIME creationTime,
cm.pk_vertex, cm.pk_vertex,
@ -1895,25 +1900,25 @@
1 1
else else
0 0
end experience_center_show, end experience_center_show,
case case
when tmp2.pk_member is null then when tmp2.pk_member is null then
1 1
else else
0 0
end special_registration, end special_registration,
case case
when tmp10.store_level = 2 then when tmp10.store_level = 2 then
0 0
else else
1 1
end wholesale_show, end wholesale_show,
case case
when tmp10.store_level = 1 or tmp10.store_level = 0 then when tmp10.store_level = 1 or tmp10.store_level = 0 then
0 0
else else
1 1
end maker_space_show end maker_space_show
from cu_member cm from cu_member cm
left join BD_AREA area on cm.PK_AREA_ID = area.PK_ID left join BD_AREA area on cm.PK_AREA_ID = area.PK_ID
left join (select distinct cmsc.pk_member left join (select distinct cmsc.pk_member
@ -2422,10 +2427,26 @@
where rownum = 1 where rownum = 1
</select> </select>
<select id="validateCompanyCount" resultType="java.lang.Integer"> <select id="validateCompanyCount" resultType="java.lang.Integer">
select count(pk_id) from cu_member where PK_SETTLE_GRADE in (select pk_id from BD_GRADE where GRADE_VALUE = #{gradeValue}) select count(pk_id)
from cu_member
where PK_SETTLE_GRADE in (select pk_id from BD_GRADE where GRADE_VALUE = #{gradeValue})
</select> </select>
<select id="validateBranchOfficeCount" resultType="java.lang.Integer"> <select id="validateBranchOfficeCount" resultType="java.lang.Integer">
select count(pk_id) from cu_member where PK_AREA_ID is not null and pk_area_id = #{areaId} and pk_id != #{userId} select count(pk_id)
from cu_member
where PK_AREA_ID is not null
and pk_area_id = #{areaId}
and pk_id != #{userId}
</select>
<!-- 查询博羚店主会员 -->
<select id="getShopkeeperMember" resultType="com.hzs.common.domain.member.base.CuMember">
select cm.*
from cu_member cm
left join bd_grade bg
on bg.pk_id = cm.pk_settle_grade
where cm.pk_id = #{pkMember}
and bg.grade_value = 60
</select> </select>
</mapper> </mapper>

View File

@ -226,7 +226,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
public List<SaOrderItems> createSaOrderItems(RetailOrderParam orderParam, List<BdGrade> gradeList, public List<SaOrderItems> createSaOrderItems(RetailOrderParam orderParam, List<BdGrade> gradeList,
CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) { CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) {
// 需要查询盒数商品 // 需要查询盒数商品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(null); List<String> boxWaresList = BoxProductUtil.getBoxProductListBySystemType(null);
// 订单明细信息 // 订单明细信息
List<SaOrderItems> orderItemsList = new ArrayList<>(); List<SaOrderItems> orderItemsList = new ArrayList<>();
@ -244,8 +244,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 当前盒数 // 当前盒数
int boxNum = 0; int boxNum = 0;
// // 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件 // 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件
// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList); this.checkWaresLimit(cuMember, orderParam.getSpecialArea(), waresDetailExtList, boxWaresList, gradeList);
// 遍历生成订单明细数据 // 遍历生成订单明细数据
for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { for (BdWaresDetailExt waresDetailExt : waresDetailExtList) {
@ -261,7 +261,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems); saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
} }
if (boxProductList.contains(waresDetailExt.getWaresCode())) { if (boxWaresList.contains(waresDetailExt.getWaresCode())) {
// 商品是盒数商品需要累计数量 // 商品是盒数商品需要累计数量
boxNum += orderItems.getWaresQuantity(); boxNum += orderItems.getWaresQuantity();
} }
@ -782,22 +782,25 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
/** /**
* 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件 * 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件
* *
* @param pkMember 会员ID * @param cuMember 会员
* @param specialArea 所属专区 * @param specialArea 所属专区
* @param waresDetailExtList 购买商品列表 * @param waresDetailExtList 购买商品列表
* @param boxProductList 盒数商品列表 * @param boxWaresList 盒数商品列表
* @param gradeList 等级列表
* @return * @return
*/ */
private void checkWaresLimit(Long pkMember, Integer specialArea, List<BdWaresDetailExt> waresDetailExtList, List<String> boxProductList) { private void checkWaresLimit(CuMember cuMember, Integer specialArea, List<BdWaresDetailExt> waresDetailExtList, List<String> boxWaresList, List<BdGrade> gradeList) {
if (null == gradeList) {
return;
}
String limitDate = DateUtils.parseDateToFormat(DateUtils.YYYYMM, new Date()); String limitDate = DateUtils.parseDateToFormat(DateUtils.YYYYMM, new Date());
// 商品数量mapkey: 商品编号value: 商品数量 // 商品数量mapkey: 商品编号value: 商品数量
Map<String, Integer> waresNumMap = new HashMap<>(); Map<String, Integer> waresNumMap = new HashMap<>();
// 商品信息mapkey: 商品编号value: 商品名称 // 商品信息mapkey: 商品编号value: 商品名称
Map<String, String> waresNameMap = new HashMap<>(); Map<String, String> waresNameMap = new HashMap<>();
for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { for (BdWaresDetailExt waresDetailExt : waresDetailExtList) {
if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea)
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) && boxWaresList.contains(waresDetailExt.getWaresCode())
&& boxProductList.contains(waresDetailExt.getWaresCode())
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift() && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()
) { ) {
// 2025.03.11 添加需求复购专区重消专区指定盒数商品每月每人限购50件赠品排除 // 2025.03.11 添加需求复购专区重消专区指定盒数商品每月每人限购50件赠品排除
@ -807,19 +810,37 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
} }
if (!waresNumMap.isEmpty()) { if (!waresNumMap.isEmpty()) {
// 根据会员等级进行限购处理
BdGrade bdGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(cuMember.getPkSettleGrade())).findFirst().get();
// 会员VIP合伙人每月限购1套
Integer limitNum = RetailConstants.V1_LIMIT;
if (EGrade.VIP.getValue() == bdGrade.getGradeValue()
|| EGrade.S_VIP.getValue() == bdGrade.getGradeValue()) {
// 会员VIP合伙人每月限购10套
limitNum = RetailConstants.V4_LIMIT;
} else if (EGrade.BRANCH_COMPANY.getValue() == bdGrade.getGradeValue()) {
// 分公司每月限购25套
limitNum = RetailConstants.V6_LIMIT;
} else if (EGrade.COMPANY.getValue() == bdGrade.getGradeValue()) {
// 总公司不限购给一个很大的值
limitNum = RetailConstants.V7_LIMIT;
}
for (String key : waresNumMap.keySet()) { for (String key : waresNumMap.keySet()) {
if (waresNumMap.get(key) > 50) { if (waresNumMap.get(key) > limitNum) {
throw new ServiceException("商品【" + waresNameMap.get(key) + "】每月限购50件"); throw new ServiceException("商品【" + waresNameMap.get(key) + "】每月限购 " + limitNum + " ");
} }
} }
List<SaOrderWaresLimitExt> limitList = iSaOrderWaresLimitService.listWaresList(pkMember, specialArea, limitDate, new ArrayList<>(waresNumMap.keySet())); List<SaOrderWaresLimitExt> limitList = iSaOrderWaresLimitService.listWaresList(cuMember.getPkId(), specialArea, limitDate, new ArrayList<>(waresNumMap.keySet()));
if (CollectionUtil.isNotEmpty(limitList)) { if (CollectionUtil.isNotEmpty(limitList)) {
for (SaOrderWaresLimitExt waresLimitExt : limitList) { for (SaOrderWaresLimitExt waresLimitExt : limitList) {
Integer waresNum = waresNumMap.get(waresLimitExt.getWaresCode()); Integer waresNum = waresNumMap.get(waresLimitExt.getWaresCode());
if (null != waresNum if (null != waresNum
&& waresNum + waresLimitExt.getWaresQuantity() > 50) { && waresNum + waresLimitExt.getWaresQuantity() > limitNum) {
throw new ServiceException("商品【" + waresLimitExt.getWaresName() + "】每月限购50件"); throw new ServiceException("商品【" + waresLimitExt.getWaresName() + "】每月限购 \" + limitNum + \" ");
} }
} }
} }

View File

@ -1,51 +0,0 @@
package com.hzs.sale.index.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 我的市场一下详情VO
*
* @Description:
* @Author: ljc
* @Time: 2023/5/9 14:34
* @Classname: CuMemberMyMarketVO
* @Package_name: com.hzs.member.base.vo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberMyMarketDetailVO implements Serializable {
private static final long serialVersionUID = -2715842187394176784L;
/**
* 国家
*/
private Integer pkCountry;
/**
*
*/
private Integer province;
/**
*
*/
private Integer city;
/**
*
*/
private Integer county;
/**
* 点亮名称
*/
private String lightName;
}

View File

@ -1,54 +0,0 @@
package com.hzs.sale.index.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 我的市场VO
*
* @Description:
* @Author: ljc
* @Time: 2023/5/9 14:34
* @Classname: CuMemberMyMarketVO
* @Package_name: com.hzs.member.base.vo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberMyMarketVO implements Serializable {
private static final long serialVersionUID = -2715842187394176784L;
/**
* 国家数
*/
private Integer countryNum;
/**
* 地区数
*/
private Integer regionNum;
/**
* 我的国家数
*/
private Integer myCountryNum;
/**
* 我的地区数
*/
private Integer myRegionNum;
/**
* 国家点亮名称
*/
private String countryLightName;
/**
* 市场详情
*/
private List<CuMemberMyMarketDetailVO> myMarketDetailVOList;
}

View File

@ -5,8 +5,6 @@ import com.hzs.common.domain.sale.ext.SaDeliverItemsExt;
import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.sale.index.vo.CuMemberMyMarketDetailVO;
import com.hzs.sale.index.vo.CuMemberMyMarketVO;
import com.hzs.sale.order.param.*; import com.hzs.sale.order.param.*;
import com.hzs.sale.order.vo.*; import com.hzs.sale.order.vo.*;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -229,25 +227,6 @@ public interface SaOrderMapper extends BaseMapper<SaOrder> {
*/ */
List<Integer> queryOrderType(@Param("memberId") Long memberId, @Param("pkCountry") Integer pkCountry); List<Integer> queryOrderType(@Param("memberId") Long memberId, @Param("pkCountry") Integer pkCountry);
/**
* 会员首页我的市场
*
* @param pkMember 用户ID
* @param pkCountry 国家ID
* @return
*/
CuMemberMyMarketVO selectMyMarket(@Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry);
/**
* 会员首页我的市场
*
* @param pkMember 用户ID
* @param pkCountry 国家ID
* @return
*/
List<CuMemberMyMarketDetailVO> selectMyMarketDetail(@Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry);
/** /**
* 查询指定数量会员SEQ * 查询指定数量会员SEQ
* *

View File

@ -10,9 +10,6 @@ import java.util.List;
/** /**
* 会员商品限购 Mapper 接口 * 会员商品限购 Mapper 接口
*
* @author hzs
* @since 2025-03-11
*/ */
public interface SaOrderWaresLimitMapper extends BaseMapper<SaOrderWaresLimit> { public interface SaOrderWaresLimitMapper extends BaseMapper<SaOrderWaresLimit> {

View File

@ -9,7 +9,6 @@ import com.hzs.common.domain.sale.ext.*;
import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.order.SaOrderItems; import com.hzs.common.domain.sale.order.SaOrderItems;
import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.sale.index.vo.CuMemberMyMarketVO;
import com.hzs.sale.order.param.*; import com.hzs.sale.order.param.*;
import com.hzs.sale.order.vo.*; import com.hzs.sale.order.vo.*;
import com.hzs.system.config.dto.GradeDTO; import com.hzs.system.config.dto.GradeDTO;
@ -536,16 +535,6 @@ public interface ISaOrderService extends IService<SaOrder> {
*/ */
void waresSalesAccrual(List<WaresNumberParam> waresNumberParamList); void waresSalesAccrual(List<WaresNumberParam> waresNumberParamList);
/**
* 会员首页我的市场
*
* @param pkMember 用户ID
* @param pkCountry 国家ID
* @return
*/
CuMemberMyMarketVO selectMyMarket(Long pkMember, Integer pkCountry);
/** /**
* 查询指定数量会员SEQ * 查询指定数量会员SEQ
* *

View File

@ -47,8 +47,6 @@ import com.hzs.member.base.IMemberServiceApi;
import com.hzs.member.detail.ICuMemberDetailServiceApi; import com.hzs.member.detail.ICuMemberDetailServiceApi;
import com.hzs.member.detail.ICuMemberServiceLogServiceApi; import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
import com.hzs.sale.deliver.service.ISaDeliverItemsService; import com.hzs.sale.deliver.service.ISaDeliverItemsService;
import com.hzs.sale.index.vo.CuMemberMyMarketDetailVO;
import com.hzs.sale.index.vo.CuMemberMyMarketVO;
import com.hzs.sale.order.dto.OrderQueryChargeDTO; import com.hzs.sale.order.dto.OrderQueryChargeDTO;
import com.hzs.sale.order.mapper.SaOrderMapper; import com.hzs.sale.order.mapper.SaOrderMapper;
import com.hzs.sale.order.param.*; import com.hzs.sale.order.param.*;
@ -60,7 +58,6 @@ import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.base.ICountryServiceApi;
import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.ISystemConfigServiceApi; import com.hzs.system.base.ISystemConfigServiceApi;
import com.hzs.system.base.dto.CountryDTO;
import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAreaCurrencyServiceApi; import com.hzs.system.config.IAreaCurrencyServiceApi;
import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IAwardsServiceApi;
@ -1752,30 +1749,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} }
} }
@Override
public CuMemberMyMarketVO selectMyMarket(Long pkMember, Integer pkCountry) {
//查询全国市场
CuMemberMyMarketVO cuMemberMyMarketVO = baseMapper.selectMyMarket(null, pkCountry);
CountryDTO country = countryServiceApi.getCountry(pkCountry).getData();
//查询市场分布
List<CuMemberMyMarketDetailVO> cuMemberMyMarketDetailVOList = baseMapper.selectMyMarketDetail(pkMember, pkCountry);
cuMemberMyMarketVO.setMyMarketDetailVOList(cuMemberMyMarketDetailVOList);
//查询我的市场
if (CollectionUtil.isNotEmpty(cuMemberMyMarketDetailVOList)) {
List<Integer> countryNmus = cuMemberMyMarketDetailVOList.stream().map(CuMemberMyMarketDetailVO::getPkCountry).distinct().collect(Collectors.toList());
cuMemberMyMarketVO.setMyCountryNum(countryNmus.size());
cuMemberMyMarketVO.setMyRegionNum(cuMemberMyMarketDetailVOList.size());
} else {
cuMemberMyMarketVO.setMyCountryNum(1);
cuMemberMyMarketVO.setMyRegionNum(0);
}
//海外暂时点亮国家
if (!pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
cuMemberMyMarketVO.setMyMarketDetailVOList(Collections.singletonList(CuMemberMyMarketDetailVO.builder().lightName(country.getLightName()).build()));
}
return cuMemberMyMarketVO;
}
@Override @Override
public List<Long> querySeqList(Integer param) { public List<Long> querySeqList(Integer param) {
return baseMapper.querySeqList(param); return baseMapper.querySeqList(param);
@ -2208,8 +2181,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 当前会员等级 // 当前会员等级
BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get(); BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get();
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) { if (memberGrade.getGradeValue().compareTo(EGrade.BRANCH_COMPANY.getValue()) >= 0) {
// 会员等级大于等于V3卓越不能通过升级进行购买了 // 会员等级大于等于分公司不能通过升级进行购买了
throw new ServiceException("当前已经是可以购买的最高等级"); throw new ServiceException("当前已经是可以购买的最高等级");
} }
@ -2226,15 +2199,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return bdGrade; return bdGrade;
} }
/**
* 根据盒数计算等级
*
* @param boxTotal 总盒数
* @param gradeList 等级列表可为空
* @param memberGrade 当前等级 -- 为空则为注册不为空则为升级
* @param checkUpgrade 校验升级
* @return
*/
@Override @Override
public BdGrade getGradeByBox(final Integer boxTotal, List<BdGrade> gradeList, BdGrade memberGrade, boolean checkUpgrade) { public BdGrade getGradeByBox(final Integer boxTotal, List<BdGrade> gradeList, BdGrade memberGrade, boolean checkUpgrade) {
if (CollectionUtil.isEmpty(gradeList)) { if (CollectionUtil.isEmpty(gradeList)) {
@ -2243,9 +2207,11 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (null == memberGrade) { if (null == memberGrade) {
// 注册处理 // 注册处理
// 小于V4等级 并且 升级盒数小于购买盒数的最大一个等级为注册等级 // 小于总公司等级 并且 排除高级店主 并且 升级盒数小于购买盒数的最大一个等级为注册等级
return gradeList.stream() return gradeList.stream()
.filter(tmpGrade -> tmpGrade.getGradeValue() < EGrade.VIP.getValue() && tmpGrade.getBoxNumber() <= boxTotal) .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue()
&& tmpGrade.getGradeValue() < EGrade.COMPANY.getValue()
&& tmpGrade.getBoxNumber() <= boxTotal)
.max(Comparator.comparingInt(BdGrade::getGradeValue)).get(); .max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
} else { } else {
// 非注册处理 // 非注册处理
@ -2263,8 +2229,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// } // }
// } // }
// 查询等级比现在当前等级大的然后倒序排序再查询 购买盒数 <= 等级盒数 的第一个等级就是当前升级的等级 // 查询等级比现在当前等级大的 并且 排除高级店主然后倒序排序再查询 购买盒数 <= 等级盒数 的第一个等级就是当前升级的等级
Optional<BdGrade> gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue()) Optional<BdGrade> gradeOptional = gradeList.stream()
.filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() > memberGrade.getGradeValue())
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()) .sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
.filter(tmpGrade -> tmpGrade.getBoxNumber() != 0) .filter(tmpGrade -> tmpGrade.getBoxNumber() != 0)
.filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst(); .filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst();

View File

@ -12,9 +12,6 @@ import java.util.List;
/** /**
* 会员商品限购 服务实现类 * 会员商品限购 服务实现类
*
* @author hzs
* @since 2025-03-11
*/ */
@Service @Service
public class SaOrderWaresLimitServiceImpl extends ServiceImpl<SaOrderWaresLimitMapper, SaOrderWaresLimit> implements ISaOrderWaresLimitService { public class SaOrderWaresLimitServiceImpl extends ServiceImpl<SaOrderWaresLimitMapper, SaOrderWaresLimit> implements ISaOrderWaresLimitService {

View File

@ -1159,57 +1159,6 @@
order by order_type order by order_type
</select> </select>
<select id="selectMyMarket" resultType="com.hzs.sale.index.vo.CuMemberMyMarketVO">
select count(distinct o.pk_country) countryNum,
count(distinct o.rec_province) regionNum
from sa_order o
where o.del_flag = 0
and o.order_status = 1
<if test="pkMember != null">
and o.pk_member in
(select m.pk_id
from cu_member m
where m.del_flag = 0
and m.pay_status = 1
and m.category = 0
and m.pk_settle_country = #{pkCountry}
start with m.pk_id = #{pkMember}
connect by prior m.pk_id = m.pk_parent)
</if>
<if test="pkCountry != null">
and o.pk_country = #{pkCountry}
</if>
</select>
<select id="selectMyMarketDetail" resultType="com.hzs.sale.index.vo.CuMemberMyMarketDetailVO">
select distinct o.pk_country pkCountry,
o.rec_province province,
a.light_name lightName
from sa_order o
left join bd_area a
on o.rec_province = a.pk_id
and a.del_flag = 0
and a.enable_state = 0
where 1 = 1
<if test="pkMember != null">
and o.pk_member in
(select m.pk_id
from cu_member m
where m.del_flag = 0
and m.pay_status = 1
and m.category = 0
and m.pk_settle_country = #{pkCountry}
start with m.pk_id = #{pkMember}
connect by prior m.pk_id = m.pk_parent)
</if>
and o.del_flag = 0
and o.order_status = 1
and o.rec_province is not null
<if test="pkCountry != null">
and o.pk_country = #{pkCountry}
</if>
</select>
<!-- 查询指定数量订单SEQ --> <!-- 查询指定数量订单SEQ -->
<select id="querySeqList" resultType="long"> <select id="querySeqList" resultType="long">

View File

@ -2,19 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.system.base.mapper.BdAreaMapper"> <mapper namespace="com.hzs.system.base.mapper.BdAreaMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.base.BdArea">
<id column="PK_ID" property="pkId"/>
<result column="NAME" property="name"/>
<result column="CODE" property="code"/>
<result column="PARENT" property="parent"/>
<result column="ENABLE_STATE" property="enableState"/>
<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="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
</resultMap>
</mapper> </mapper>

View File

@ -10,9 +10,9 @@ import java.util.List;
public class RetailConstants { public class RetailConstants {
/** /**
* 直推拿80 * 直推拿
*/ */
public static final BigDecimal FIRST_DIRECT = new BigDecimal("80"); public static final BigDecimal FIRST_DIRECT = new BigDecimal("60");
/** /**
* 间推拿20 * 间推拿20
*/ */
@ -34,6 +34,22 @@ public class RetailConstants {
*/ */
public static final BigDecimal FIRST_COMPANY = new BigDecimal("20"); public static final BigDecimal FIRST_COMPANY = new BigDecimal("20");
/**
* 会员VIP合伙人 每月可购买1套4盒
*/
public static final Integer V1_LIMIT = 1;
/**
* 博羚店主高级店主 每月可购买10套40盒
*/
public static final Integer V4_LIMIT = 10;
/**
* 分公司 每月可购买25套100盒
*/
public static final Integer V6_LIMIT = 25;
/**
* 总公司 不限购给一个很大的值
*/
public static final Integer V7_LIMIT = 10000;
/** /**
* 盒数产品列表 * 盒数产品列表

View File

@ -50,7 +50,7 @@ public enum EGrade {
*/ */
VIP(5, 60, "V4", 0, EnumsPrefixConstants.GRADE + "60", MemberFrameworkConstants.VIP), VIP(5, 60, "V4", 0, EnumsPrefixConstants.GRADE + "60", MemberFrameworkConstants.VIP),
/** /**
* 高级店主 * 高级店主博羚店主 + 推荐1个博羚店主
*/ */
S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP), S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP),

View File

@ -11,12 +11,7 @@ import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* <p>
* 会员转账表 * 会员转账表
* </p>
*
* @author hzs
* @since 2022-09-06
*/ */
@Data @Data
@Builder @Builder

View File

@ -2,14 +2,9 @@ package com.hzs.common.domain.system.base;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import com.hzs.common.core.annotation.Excel; import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Data; import lombok.Data;
@ -61,15 +56,9 @@ public class BdArea extends BaseEntity {
private Integer enableState; private Integer enableState;
/** /**
* 是否点亮 0 1 * 可绑定数量区1市1省2直辖3
*/ */
@TableField("IS_ILLUMINATE") @TableField("BIND_NUM")
private Integer isIlluminate; private Integer bindNum;
/**
* 点亮名称
*/
@TableField("LIGHT_NAME")
private String lightName;
} }