3
0
Fork 0

## 博羚购买博羚以上升高级;区域购买区域升董事;

This commit is contained in:
cabbage 2025-08-20 16:54:55 +08:00
parent ddec95414b
commit b1e16744e2
7 changed files with 83 additions and 55 deletions

View File

@ -604,7 +604,7 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*
* @return
*/
CuMember getShopkeeperMember(@Param("pkMember") Long pkMember);
CuMember getShopkeeperMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue);
/**
* 查询高级店主

View File

@ -873,7 +873,7 @@ public interface ICuMemberService extends IService<CuMember> {
*
* @return
*/
CuMember getShopkeeperMember(Long pkMember);
CuMember getShopkeeperMember(Long pkMember, Integer gradeValue);
/**
* 查询高级店主

View File

@ -918,7 +918,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 处理推荐人等级
this.handleParentLevel(saOrder, currentDateTime);
// 部分撤单 todo 发货后邮费不退未发货退邮费
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
// 钱包支付则需要回退金额
// 部分撤单
@ -1606,9 +1605,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (null == gradeDTO) {
gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
}
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()) {
// 会员等级 博羚店主推荐人如果也是博羚店主需要升级为高级店主
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent());
if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) {
// 会员等级大于等于 博羚店主推荐人如果也是博羚店主需要升级为高级店主
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue());
if (null != parentMember) {
// 记录升级历史
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData();
@ -1624,6 +1623,31 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
cuMemberLevel.setPkCreator(cuMember.getPkId());
iCuMemberLevelService.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);
}
} else if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) {
// 会员等级大于等于 区域代理推荐人如果也是区域代理需要升级为董事代理
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue());
if (null != parentMember) {
// 记录升级历史
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.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());
iCuMemberLevelService.save(cuMemberLevel);
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getPkSettleGrade, upgradeDTO.getPkId());
updateWrapper.eq(CuMember::getPkId, parentMember.getPkId());

View File

@ -116,7 +116,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
@Autowired
private ICuSettleCountryDetailedService iCuSettleCountryDetailedService;
@Autowired
private ICuMemberBusinessService cuMemberBusinessService;
private ICuMemberBusinessService iCuMemberBusinessService;
@Autowired
private RabbitTemplate rabbitTemplate;
@ -2292,7 +2292,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
cuMember.setPkRegisterGrade(gradeDTO.getPkId());
cuMember.setPkSettleGrade(gradeDTO.getPkId());
cuMember.setPkAwards(gradeDTO.getPkAwards());
cuMemberBusinessService.saveShareMember(cuMember);
iCuMemberBusinessService.saveShareMember(cuMember);
return cuMember;
}
@ -3139,8 +3139,8 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
}
@Override
public CuMember getShopkeeperMember(Long pkMember) {
return baseMapper.getShopkeeperMember(pkMember);
public CuMember getShopkeeperMember(Long pkMember, Integer gradeValue) {
return baseMapper.getShopkeeperMember(pkMember, gradeValue);
}
@Override

View File

@ -2379,7 +2379,7 @@
left join bd_grade bg
on bg.pk_id = cm.pk_settle_grade
where cm.pk_id = #{pkMember}
and bg.grade_value = 60
and bg.grade_value = #{gradeValue}
</select>
<!-- 查询高级店主 -->

View File

@ -236,7 +236,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
}
// TODO 2025.08.04 注册升级专区下单支付会员如果是分公司订单不需要发货直接放入提货中心
// 2025.08.04 注册升级专区下单支付会员如果是分公司订单不需要发货直接放入提货中心
CuMember createMember = orderParam.getCreatorMember();
if (null == createMember) {
createMember = iMemberServiceApi.getMember(orderParam.getPkCreator()).getData();
@ -961,49 +961,53 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
if (EYesNo.NO.getIntValue() == BdConfig.getProductSync()) {
return;
}
Map<Integer, BdProduct> productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null);
// 开启线程调用全网产品库存
// 请求参数
Map<String, Object> bodyMap = new HashMap<>();
bodyMap.put("source", BdConfig.getSysName());
bodyMap.put("orderCode", saOrderExt.getOrderCode());
List<Map<String, Object>> bodyDetailList = new ArrayList<>();
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
Map<String, Object> detailMap = new HashMap<>();
detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode());
detailMap.put("changeNum", saOrderItems.getQuantity());
bodyDetailList.add(detailMap);
}
bodyMap.put("detailList", bodyDetailList);
// 请求头
String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode());
ThreadUtils.threadPoolExecutor.submit(() -> {
log.info("同步产品,header: {}", header);
log.info("同步产品,bodyMap: {}", bodyMap);
HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl());
httpRequest.header("authorization", header);
httpRequest.body(JSONUtil.toJsonStr(bodyMap));
httpRequest.setReadTimeout(5000);
try {
// 同步产品接口返回
String resultStr = httpRequest.execute().body();
AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class);
log.info("同步产品,resultStr: {}", resultStr);
if (!ajaxResult.isSuccess()) {
// 同步产品失败250毫秒后重试
Thread.sleep(250);
resultStr = httpRequest.execute().body();
log.info("同步产品失败重试,resultStr: {}", resultStr);
}
} catch (Exception e) {
log.error("同步产品库存异常", e);
// 保存订单产品同步记录
iSaOrderSyncService.save(SaOrderSync.builder()
.orderCode(saOrderExt.getOrderCode())
.bodyDetail(JSONUtil.toJsonStr(bodyDetailList))
.build());
try {
Map<Integer, BdProduct> productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null);
// 开启线程调用全网产品库存
// 请求参数
Map<String, Object> bodyMap = new HashMap<>();
bodyMap.put("source", BdConfig.getSysName());
bodyMap.put("orderCode", saOrderExt.getOrderCode());
List<Map<String, Object>> bodyDetailList = new ArrayList<>();
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
Map<String, Object> detailMap = new HashMap<>();
detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode());
detailMap.put("changeNum", saOrderItems.getQuantity());
bodyDetailList.add(detailMap);
}
});
bodyMap.put("detailList", bodyDetailList);
// 请求头
String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode());
ThreadUtils.threadPoolExecutor.submit(() -> {
log.info("同步产品,header: {}", header);
log.info("同步产品,bodyMap: {}", bodyMap);
HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl());
httpRequest.header("authorization", header);
httpRequest.body(JSONUtil.toJsonStr(bodyMap));
httpRequest.setReadTimeout(5000);
try {
// 同步产品接口返回
String resultStr = httpRequest.execute().body();
AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class);
log.info("同步产品,resultStr: {}", resultStr);
if (!ajaxResult.isSuccess()) {
// 同步产品失败250毫秒后重试
Thread.sleep(250);
resultStr = httpRequest.execute().body();
log.info("同步产品失败重试,resultStr: {}", resultStr);
}
} catch (Exception e) {
log.error("同步产品库存异常", e);
// 保存订单产品同步记录
iSaOrderSyncService.save(SaOrderSync.builder()
.orderCode(saOrderExt.getOrderCode())
.bodyDetail(JSONUtil.toJsonStr(bodyDetailList))
.build());
}
});
} catch (Exception e) {
log.error("同步产品异常: ", e);
}
}
}

View File

@ -12,7 +12,7 @@ import lombok.Getter;
public enum EUpgradeType {
/**
* 1=自动升级 -- 目前只高级店主升级为自动升级
* 1=自动升级 -- 高级店主升级为自动升级董事代理为自动升级
*/
AUTO_UPGRADE(1, "自动升级", 0, EnumsPrefixConstants.UPGRADE_TYPE + 1),