Authored by chenchao

fix

... ... @@ -57,6 +57,9 @@ public class SellerEnterApplyService {
@Autowired
private SellerLevelFuncMapper sellerLevelFuncMapper;
@Autowired
private ProductProxyService productProxyService;
/**
* 申请成为超级卖家
* 对于未支付的某一种身份申请做订单号替换
... ... @@ -263,24 +266,38 @@ public class SellerEnterApplyService {
uid, orderCode);
}else if (Objects.equals(currentEnterType, EntrySellerType.SUPER_ENTRY.getCode())){
//超级卖家
sellerWrapper.buildSuperEnterStageLevel(sellerLevelFuncMapper::selectByPrimaryKey);
SuperEnterStageLevel sesl = sellerBo.getSuperEnterStageLevel();
Integer currentLevel = null;
boolean levelNeedUpgrade = Objects.nonNull(sesl)
&& Objects.nonNull(currentLevel = sesl.getCode())
&& !currentLevel.equals(level);
logger.warn("in upgradeLevel update StoredSeller, uid {} orderCode {} currentLevel {} target level {}",
uid, orderCode, currentLevel, level);
if (!noStoredSeller && isMatchedET && levelNeedUpgrade) {
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
storedSellerService.updateEnterSeller(uid, targetEst, slfb);
processWithLevel(currentLevel, level, uid);
}
upgradeSuperLevel(sellerWrapper, level, orderCode, targetEst, isMatchedET);
}
}
@Autowired
private ProductProxyService productProxyService;
private int upgradeSuperLevel(SellerWrapper sellerWrapper,Integer level, Long orderCode,
EntrySellerType targetEst, boolean isMatchedET){
Integer uid = sellerWrapper.getUid();
sellerWrapper.buildSuperEnterStageLevel(sellerLevelFuncMapper::selectByPrimaryKey);
SellerBo sellerBo = sellerWrapper.build();
SuperEnterStageLevel sesl = sellerBo.getSuperEnterStageLevel();
Integer currentLevel = null;
boolean levelNeedUpgrade = Objects.nonNull(sesl)
&& Objects.nonNull(currentLevel = sesl.getCode())
&& !currentLevel.equals(level);
StoredSeller pss = sellerWrapper.getStoredSeller();
boolean noStoredSeller = Objects.isNull(pss);
logger.warn("in upgradeSuperLevel update StoredSeller, uid {} orderCode {} currentLevel {} target level {}",
uid, orderCode, currentLevel, level);
int result = 0;
if (!noStoredSeller && isMatchedET && levelNeedUpgrade) {
doUpgradeSuper(targetEst, currentLevel, level, uid);
}
return result;
}
public int doUpgradeSuper(EntrySellerType targetEst,Integer currentLevel, Integer level, Integer uid){
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
int result = storedSellerService.updateEnterSeller(uid, targetEst, slfb);
processWithLevel(currentLevel, level, uid);
return result;
}
public void processWithLevel(Integer currentLevel, Integer targetLevel, Integer uid){
logger.info("processWithLevel currentLevel {} targetLevel {} uid {}",currentLevel, targetLevel, uid);
... ... @@ -313,7 +330,9 @@ public class SellerEnterApplyService {
//当前身份
EntrySellerType currentEST = sellerBo.getEntrySellerType();
Integer currentEnterType = currentEST.getCode();
if (!Objects.equals(currentEnterType, EntrySellerType.SUPER_ENTRY.getCode())){
EntrySellerType targetEST = EntrySellerType.SUPER_ENTRY;
boolean isMactchedEST = Objects.equals(currentEnterType, targetEST.getCode());
if (!isMactchedEST){
logger.info("changeLevel4Super is not super, uid {} left in wallet {}", uid, left);
return 0;
}
... ... @@ -330,12 +349,13 @@ public class SellerEnterApplyService {
boolean levelNeedUpgrade = Objects.nonNull(sesl)
&& Objects.nonNull(currentLevel = sesl.getCode())
&& !currentLevel.equals(level);
logger.info("in changeLevel4Super update StoredSeller, uid {} currentLevel {} target level {} levelNeedUpgrade {}",
uid, currentLevel, level, levelNeedUpgrade);
StoredSeller pss = sellerWrapper.getStoredSeller();
boolean isValid = Objects.equals(pss.getValidStatus(), SellerEnterApplyStatus.PASS.getCode());
logger.info("in changeLevel4Super update StoredSeller, uid {} currentLevel {} target level {} levelNeedUpgrade {} isValid {}",
uid, currentLevel, level, levelNeedUpgrade, isValid);
int result = 0;
if (levelNeedUpgrade) {
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(currentEnterType, level);
result = storedSellerService.updateEnterSeller(uid, null, slfb);
if (levelNeedUpgrade && isValid) {
doUpgradeSuper(targetEST, currentLevel, level, uid);
}
return result;
}
... ... @@ -374,6 +394,7 @@ public class SellerEnterApplyService {
wpOfSea.setStatus(SellerEnterApplyStatus.PASS.getCode());
return sellerEnterApplyMapper.updateByPrimaryKeySelective(wpOfSea);
}
public int update(Integer id,Long orderCode, EntrySellerType currentEST, EntrySellerType targetEST){
SellerEnterApply wpOfSea = new SellerEnterApply();
wpOfSea.setId(id);
... ...
... ... @@ -245,14 +245,9 @@ public class SellerService {
logger.info("processAfterWalletChange user was {} , uid {}", currentEST , uid);
return ;
}
//left enter type is 入驻超级
BigDecimal leftInWallet = merchantOrderPaymentService.getWalletLeftAmount(uid);
//
SellerEnterApply seac = new SellerEnterApply();
seac.setUid(uid);
seac.setEnterType(targetEST.getCode());
List<SellerEnterApply> seaList = sellerEnterApplyMapper.selectByUOCET(seac);
sellerEnterApplyService.upgradeLevel(sellerWrapper, null, leftInWallet, seaList);
sellerEnterApplyService.changeLevel4Super(sellerWrapper, leftInWallet);
}
}
... ...