forked from angelo/java-retail-app
## 博羚购买博羚以上升高级;区域购买区域升董事;
This commit is contained in:
parent
ddec95414b
commit
b1e16744e2
|
@ -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);
|
||||
|
||||
/**
|
||||
* 查询高级店主
|
||||
|
|
|
@ -873,7 +873,7 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
CuMember getShopkeeperMember(Long pkMember);
|
||||
CuMember getShopkeeperMember(Long pkMember, Integer gradeValue);
|
||||
|
||||
/**
|
||||
* 查询高级店主
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
<!-- 查询高级店主 -->
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ import lombok.Getter;
|
|||
public enum EUpgradeType {
|
||||
|
||||
/**
|
||||
* 1=自动升级 -- 目前只高级店主升级为自动升级
|
||||
* 1=自动升级 -- 高级店主升级为自动升级、董事代理为自动升级
|
||||
*/
|
||||
AUTO_UPGRADE(1, "自动升级", 0, EnumsPrefixConstants.UPGRADE_TYPE + 1),
|
||||
|
||||
|
|
Loading…
Reference in New Issue