Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
eb34a8eea9
|
@ -192,7 +192,7 @@ public abstract class BonusSettleHandle {
|
|||
*/
|
||||
protected Boolean validatePkBonusItems(BonusConfigDTO bonusConfigDTO, Integer pkCountry, Integer bonusItems) {
|
||||
BdBonusItemsExt bdBonusItemsExt = bonusConfigDTO.getBonusItemsExtMap().get(pkCountry.toString() + bonusItems);
|
||||
return bdBonusItemsExt == null || bdBonusItemsExt.getPkId() == null;
|
||||
return null == bdBonusItemsExt || null == bdBonusItemsExt.getPkId();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1124,10 +1124,7 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 云代计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
* 扣项,小计,总计
|
||||
*/
|
||||
protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
|
@ -1137,23 +1134,7 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 云代计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
*/
|
||||
protected void setMakerTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
|
||||
cuMemberBonus.setMakerRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getMakerRealSubtotal(), realIncome));
|
||||
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: 云代计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
* 扣项,小计,总计
|
||||
*/
|
||||
protected void setRepurchaseCouponTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
|
|
|
@ -130,17 +130,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 计算自消费奖衔
|
||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
// 先算等级 注册、升级计算等级
|
||||
// 订单指定产品盒数(计算等级使用)
|
||||
int boxNum = saOrderExt.getBoxNum();
|
||||
// int boxNum = 0;
|
||||
// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||
// for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
||||
// if (saOrderItems.getWaresCode().equals(waresCode)) {
|
||||
// boxNum += saOrderItems.getWaresQuantity();
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// 订单指定产品盒数
|
||||
int boxNum = 0;
|
||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
||||
if (saOrderItems.getWaresCode().equals(waresCode)) {
|
||||
boxNum += saOrderItems.getWaresQuantity();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
saOrderExt.setBoxNum(boxNum);
|
||||
|
||||
// 订单业绩
|
||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
|
||||
|
@ -163,7 +164,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 计算团队业绩、盒数,计算等级、奖衔
|
||||
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeList));
|
||||
|
||||
|
||||
// TODO new 奖金处理
|
||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||
// 计算奖金 计算平级收益
|
||||
|
@ -184,8 +184,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
||||
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
||||
|
||||
// 计算区域奖
|
||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, saOrderExt, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap);
|
||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
|
||||
if (cuMemberBonusDetail != null) {
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
|
@ -409,8 +410,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 更新网体
|
||||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
|
||||
//////////////// TODO //////////////////////
|
||||
|
||||
// 回退历史注水
|
||||
iCuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period);
|
||||
// 更新注水
|
||||
|
@ -426,7 +425,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
// 会员结算map(key:会员ID,value:结算扩展)
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
|
||||
// 购买升级等级map(key:等级值,value:等级对象)
|
||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||
// 团队升级等级map(key:等级值,value:等级对象)
|
||||
|
@ -537,17 +535,22 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
|
||||
// TODO new 奖金处理
|
||||
// 计算奖金 计算极差平级收益
|
||||
// 计算奖金 直推级差 + 平级收益
|
||||
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
|
||||
&& boxNum > 0
|
||||
) {
|
||||
// 注册或升级订单并且存在盒数产品,才有 直推级差收益 和 平级收益
|
||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
||||
if (saOrderItems.getWaresCode() != null && saOrderItems.getWaresCode().equals(waresCode)) {
|
||||
int waresQuantity = saOrderItems.getWaresQuantity();
|
||||
// 直推级差 + 平级收益
|
||||
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
|
||||
|
||||
// 计算完奖金算等级
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
|
||||
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() ||
|
||||
EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 计算个人等级,消费等级
|
||||
int waresQuantity = saOrderItems.getWaresQuantity();
|
||||
int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity;
|
||||
if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
|
||||
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
|
||||
|
@ -568,12 +571,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (saOrderExt.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 计算区域奖
|
||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, saOrderExt, bonusConfigDTO, period, memberRangeExtMap, cuMemberBonusMap);
|
||||
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, period, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
|
||||
if (cuMemberBonusDetail != null) {
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
|
@ -1268,8 +1268,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
/**
|
||||
* 计算极差收益,根据极差收益计算平级收益
|
||||
*/
|
||||
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
||||
Integer period, SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
||||
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO, Integer period,
|
||||
SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
||||
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||
// 用等级计算,按照一级级算
|
||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
|
@ -1422,30 +1423,57 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return memberBonusRangeList;
|
||||
}
|
||||
|
||||
CuMemberBonusDetail calculateRetailAreaBonus(Map<String, CuMemberRetailRangeExt> countyRangeExtMap, SaOrder saOrder,
|
||||
/**
|
||||
* 计算区域奖
|
||||
*
|
||||
* @param countyRangeExtMap
|
||||
* @param saOrder
|
||||
* @param bonusConfigDTO
|
||||
* @param period
|
||||
* @param memberRangeExtMap
|
||||
* @param cuMemberBonusMap
|
||||
* @return
|
||||
*/
|
||||
CuMemberBonusDetail calculateRetailAreaBonus(Map<String, CuMemberRetailRangeExt> countyRangeExtMap,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember());
|
||||
CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty());
|
||||
if (cuMemberRetailRangeExt == null) {
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrder saOrder) {
|
||||
// 重消订单没有区域分红
|
||||
if (saOrder.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
|
||||
return null;
|
||||
}
|
||||
// 区域分红根据商品盒数来,如果没有盒数,直接返回为空
|
||||
if (saOrder.getBoxNum() == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember());
|
||||
// 获取对应区域会员
|
||||
CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty());
|
||||
if (null == cuMemberRetailRangeExt) {
|
||||
return null;
|
||||
}
|
||||
// 获取区域会员结算数据
|
||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
}
|
||||
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory() ||
|
||||
EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus() ||
|
||||
cuMemberRetailRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()) {
|
||||
|
||||
// 非正常用户 或者 停止收益 或 未激活,不能获取区域收益
|
||||
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory()
|
||||
|| EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus()
|
||||
|| cuMemberRetailRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()) {
|
||||
return null;
|
||||
}
|
||||
// 验证是否有奖金
|
||||
if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_AREA_INCOME.getValue())) {
|
||||
return null;
|
||||
}
|
||||
BigDecimal bonusRatio = BigDecimal.valueOf(0.4);
|
||||
BigDecimal benefitIncome = ComputeUtil.computeBonusMultiply(saOrder.getOrderAchieve(), bonusRatio);
|
||||
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, bonusRatio, benefitIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
|
||||
cuMemberBonusDetail.setCalAchieve(saOrder.getOrderAchieve());
|
||||
|
||||
BigDecimal boxNumBig = new BigDecimal(saOrder.getBoxNum());
|
||||
// 处理区域收益(每盒2元)
|
||||
BigDecimal benefitIncome = RetailProductConstants.AREA_BOX_BONUS.multiply(boxNumBig);
|
||||
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, BigDecimal.ZERO, benefitIncome,
|
||||
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
|
||||
cuMemberBonusDetail.setCalAchieve(boxNumBig);
|
||||
cuMemberBonusDetail.setPkOrder(saOrder.getPkId());
|
||||
String remark = String.format(BonusMsgConstants.RETAIL_AREA_INCOME, saOrder.getOrderCode(),
|
||||
memberRangeExtMap.get(saOrder.getPkMember()).getMemberCode() + memberRangeExtMap.get(saOrder.getPkMember()).getMemberName(),
|
||||
|
@ -1963,7 +1991,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益
|
||||
* 奖金明细
|
||||
*
|
||||
* @param saOrderExt 订单
|
||||
* @param cuMemberBonus 奖金主表
|
||||
|
|
|
@ -148,7 +148,7 @@ public class IMemberAccountAuditServiceProvider implements IMemberAccountAuditSe
|
|||
}
|
||||
//驳回
|
||||
if (approveOperation == (EApproveOperation.REJECT.getValue())) {
|
||||
// TODO: 2023/2/17 根据后需求,是否重新发起
|
||||
// 根据后需求,是否重新发起
|
||||
// cuMemberRechargeService.updateDelFlagByRechargeCode(businessCode);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -464,11 +464,9 @@ public class CuMemberRechargeServiceImpl extends ServiceImpl<CuMemberRechargeMap
|
|||
|
||||
@Override
|
||||
public CuMemberRechargeDetailVO queryCuMemberRechargeDetail(Long pkId) {
|
||||
// TODO: 2022/11/9 详情功能暂无
|
||||
CuMemberRechargeDetailVO memberRechargeDetailVo = new CuMemberRechargeDetailVO();
|
||||
CuMemberRechargeExt memberRecharge = baseMapper.selectMemberRechargeById(pkId);
|
||||
BeanUtils.copyProperties(memberRecharge, memberRechargeDetailVo);
|
||||
|
||||
return memberRechargeDetailVo;
|
||||
}
|
||||
|
||||
|
|
|
@ -298,11 +298,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
// // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件
|
||||
// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
|
||||
|
||||
// 商品编号列表
|
||||
List<String> waresCodeList = waresDetailExtList.stream().map(BdWaresDetailExt::getWaresCode).collect(Collectors.toList());
|
||||
// 根据商品获取商品下所有产品数据
|
||||
Map<Integer, BdProduct> productMap = iBdProductService.listProductInfoByWaresCode(orderParam.getSpecialArea(), waresCodeList);
|
||||
|
||||
// 遍历生成订单明细数据
|
||||
for (BdWaresDetailExt waresDetailExt : waresDetailExtList) {
|
||||
// // 价格KEY(商品编号 + 价格)
|
||||
|
@ -322,10 +317,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
|
||||
}
|
||||
|
||||
if (null != productMap.get(orderItems.getPkProduct())
|
||||
&& boxProductList.contains(productMap.get(orderItems.getPkProduct()).getProductCode())) {
|
||||
// 产品是盒数产品,需要累计数量
|
||||
boxNum += orderItems.getQuantity();
|
||||
if (boxProductList.contains(waresDetailExt.getWaresCode())) {
|
||||
// 商品是盒数商品,需要累计数量
|
||||
boxNum += orderItems.getWaresQuantity();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -791,27 +785,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
return resultStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存订单处理
|
||||
*
|
||||
* @param saOrderExt 订单信息
|
||||
*/
|
||||
private void saveOrderHandle(SaOrderExt saOrderExt) {
|
||||
iSaOrderService.save(saOrderExt);
|
||||
// for (int i = 0; i < 3; i++) {
|
||||
// // 保存订单时,如果出现异常,最多重试3次
|
||||
// try {
|
||||
// iSaOrderService.save(saOrderExt);
|
||||
// return;
|
||||
// } catch (Exception e) {
|
||||
// log.error("保存订单失败,retry: {}, order: {}", i, saOrderExt, e);
|
||||
//
|
||||
// saOrderExt.setOrderCode(saOrderExt.getOrderCode() + RandomUtil.randomString("ABCEFGHIJKLMNOPQRSTUVWXYZ", 1));
|
||||
// }
|
||||
// }
|
||||
// throw new ServiceException("保存订单并重试失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存订单以及明细
|
||||
*
|
||||
|
@ -820,7 +793,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
private void saveOrder(SaOrderExt saOrderExt) {
|
||||
saOrderExt.setPayTime(new Date());
|
||||
saOrderExt.setOrderStatus(EOrderStatus.PAY.getValue());
|
||||
this.saveOrderHandle(saOrderExt);
|
||||
iSaOrderService.save(saOrderExt);
|
||||
|
||||
// 订单商品拆分数据
|
||||
List<SaOrderWares> orderWaresList = new ArrayList<>();
|
||||
|
@ -899,7 +872,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (orderWaresList.size() > 0) {
|
||||
// 订单商品拆分表
|
||||
iSaOrderWaresService.saveBatch(orderWaresList);
|
||||
|
@ -957,11 +929,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
* @return
|
||||
*/
|
||||
private Boolean handleMemberActivate(CuMember cuMember, SaOrderExt saOrder) {
|
||||
if (EYesNo.YES.getIntValue() != cuMember.getIsActivate()
|
||||
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType())
|
||||
if ((null == cuMember.getIsActivate() || EYesNo.YES.getIntValue() != cuMember.getIsActivate())
|
||||
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType())
|
||||
) {
|
||||
// 会员未激活,并且是 注册、升级 订单,判断会员是否激活
|
||||
// 会员激活状态为空 或 未激活,并且是 注册、升级 订单,判断会员是否激活
|
||||
if (saOrder.getBoxNum() > 0) {
|
||||
// 存在指定盒数商品
|
||||
cuMember.setIsActivate(EYesNo.YES.getIntValue());
|
||||
|
|
|
@ -31,9 +31,4 @@ public class WaresItemsParam implements Serializable {
|
|||
*/
|
||||
private Integer pkProduct;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -1575,6 +1575,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
|
||||
/**
|
||||
* 验证第二部门是否需要验证首单
|
||||
*
|
||||
* @param pkParent 推荐人
|
||||
* @param pkCountry 国家
|
||||
*/
|
||||
|
@ -1589,12 +1590,10 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
}
|
||||
|
||||
/**
|
||||
* 验证第二部门是否需要验证首单
|
||||
*
|
||||
* @param pkPlaceParent 安置位置
|
||||
* @param pkCountry 国家
|
||||
* @Description: 验证第二部门是否需要验证首单
|
||||
* @return: boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/7 9:29
|
||||
*/
|
||||
@Override
|
||||
public boolean validateLeftExistMember(Long pkPlaceParent, Integer pkCountry) {
|
||||
|
@ -2620,8 +2619,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
|
||||
// 补全产品编号
|
||||
handleOrderItemsParamsProduct(orderItemsParams);
|
||||
// 盒数产品
|
||||
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(systemType);
|
||||
|
||||
|
@ -2629,11 +2626,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
int boxNum = 0;
|
||||
// 判断订单明细中指定产品数量,校验等级
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
if (boxProductList.contains(waresItemsParam.getProductCode())) {
|
||||
// 存在指定产品,需要累计盒数(产品数量 * 商品数量)
|
||||
boxNum += waresItemsParam.getQuantity() * orderItemsParam.getQuantity();
|
||||
}
|
||||
if (boxProductList.contains(orderItemsParam.getWaresCode())) {
|
||||
// 存在指定商品,需要累计盒数
|
||||
boxNum += orderItemsParam.getQuantity();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3586,29 +3581,4 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return cuMemberLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理订单明细产品编号信息
|
||||
*
|
||||
* @param orderItemsParams
|
||||
*/
|
||||
private void handleOrderItemsParamsProduct(List<OrderItemsParam> orderItemsParams) {
|
||||
if (CollectionUtil.isNotEmpty(orderItemsParams)) {
|
||||
Set<Integer> pkProductSet = new HashSet<>();
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
pkProductSet.add(waresItemsParam.getPkProduct());
|
||||
}
|
||||
}
|
||||
if (pkProductSet.size() > 0) {
|
||||
Map<Integer, String> productCodeMap = iBdProductService.getProductCodeMap(pkProductSet);
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
// 补全产品编号
|
||||
waresItemsParam.setProductCode(productCodeMap.get(waresItemsParam.getPkProduct()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -62,14 +62,4 @@ public interface BdProductMapper extends BaseMapper<BdProduct> {
|
|||
*/
|
||||
ProductVo getByProductId(@Param("productId") Integer productId);
|
||||
|
||||
/**
|
||||
* 根据商品获取对应产品信息
|
||||
*
|
||||
* @param specialArea 商品专区
|
||||
* @param waresCodeList 商品编码列表
|
||||
* @return
|
||||
*/
|
||||
List<BdProduct> listProductInfoByWaresCode(@Param("specialArea") Integer specialArea,
|
||||
@Param("waresCodeList") List<String> waresCodeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -123,21 +123,4 @@ public interface IBdProductService extends IService<BdProduct> {
|
|||
*/
|
||||
ProductVo getByProductId(Integer productId);
|
||||
|
||||
/**
|
||||
* 获取产品编号map
|
||||
*
|
||||
* @param pkProductSet
|
||||
* @return
|
||||
*/
|
||||
Map<Integer, String> getProductCodeMap(Collection<Integer> pkProductSet);
|
||||
|
||||
/**
|
||||
* 根据商品获取对应产品信息
|
||||
*
|
||||
* @param specialArea 商品专区
|
||||
* @param waresCodeList 商品编码列表
|
||||
* @return
|
||||
*/
|
||||
Map<Integer, BdProduct> listProductInfoByWaresCode(Integer specialArea, List<String> waresCodeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -527,30 +527,4 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
return baseMapper.getByProductId(productId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, String> getProductCodeMap(Collection<Integer> pkProductSet) {
|
||||
Map<Integer, String> productCodeMap = new HashMap<>();
|
||||
|
||||
LambdaQueryWrapper<BdProduct> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(BdProduct::getPkId, pkProductSet);
|
||||
List<BdProduct> productList = this.list(queryWrapper);
|
||||
for (BdProduct bdProduct : productList) {
|
||||
productCodeMap.put(bdProduct.getPkId(), bdProduct.getProductCode());
|
||||
}
|
||||
return productCodeMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, BdProduct> listProductInfoByWaresCode(Integer specialArea, List<String> waresCodeList) {
|
||||
Map<Integer, BdProduct> productMap = new HashMap<>();
|
||||
|
||||
List<BdProduct> bdProductList = baseMapper.listProductInfoByWaresCode(specialArea, waresCodeList);
|
||||
if (CollectionUtil.isNotEmpty(bdProductList)) {
|
||||
for (BdProduct bdProduct : bdProductList) {
|
||||
productMap.put(bdProduct.getPkId(), bdProduct);
|
||||
}
|
||||
}
|
||||
return productMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -235,24 +235,4 @@
|
|||
and bp.pk_id = #{productId}
|
||||
</select>
|
||||
|
||||
<!-- 根据商品获取对应产品信息 -->
|
||||
<select id="listProductInfoByWaresCode" resultType="com.hzs.common.domain.sale.product.BdProduct">
|
||||
select bp.pk_id, bp.product_code
|
||||
from bd_wares bw
|
||||
left join BD_WARES_DETAIL bwd
|
||||
on bw.pk_id = bwd.pk_wares
|
||||
and bwd.del_flag = 0
|
||||
and bwd.is_gift = 1
|
||||
left join bd_product bp
|
||||
on bp.pk_id = bwd.pk_product
|
||||
and bp.del_flag = 0
|
||||
where bw.del_flag = 0
|
||||
and bw.special_area = #{specialArea}
|
||||
and bw.wares_code in
|
||||
<foreach collection="waresCodeList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
order by bw.pk_id
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -61,7 +61,9 @@
|
|||
left join bd_product bp
|
||||
on bd.pk_product=bp.pk_id and bp.del_flag=0
|
||||
left join (
|
||||
select pk_wares_specs_sku,wmsys.wm_concat(distinct(sc.specs_name)) specs_name,wmsys.wm_concat(distinct(sc.pk_id)) specs_name_id
|
||||
select pk_wares_specs_sku,
|
||||
to_char(wm_concat(distinct(sc.specs_name))) specs_name,
|
||||
to_char(wm_concat(distinct(sc.pk_id))) specs_name_id
|
||||
from bd_wares_specs_relation br
|
||||
left join bd_wares_specs bp
|
||||
on br.pk_wares_specs= bp.pk_id
|
||||
|
|
|
@ -25,11 +25,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* @author: sui q
|
||||
* @time: 2022/8/27 14:45
|
||||
* @description:防止重复提交的切面类
|
||||
* @classname: RepeatSubmitAspectAdvice
|
||||
* @package_name: com.hzs.common.core.aspect
|
||||
* 防止重复提交的切面类
|
||||
*/
|
||||
@Aspect
|
||||
@Component
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.common.core.constant;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -8,18 +9,37 @@ import java.util.List;
|
|||
*/
|
||||
public class RetailProductConstants {
|
||||
|
||||
/**
|
||||
* 区域分红,每盒2元
|
||||
*/
|
||||
public static final BigDecimal AREA_BOX_BONUS = new BigDecimal("2");
|
||||
|
||||
/**
|
||||
* 盒数产品列表
|
||||
*/
|
||||
public static final List<String> BOX_PRODUCT_LIST = Arrays.asList(
|
||||
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
|
||||
// 注册
|
||||
"SP02410001", "SP02410002", "SP02410003", "SP02410004", "SP02410005", "SP02410006",
|
||||
// 升级
|
||||
"SP02420001", "SP02420002", "SP02420003", "SP02420004", "SP02420005", "SP02420006",
|
||||
// 复消
|
||||
"SP02430001", "SP02430002", "SP02430003", "SP02430004", "SP02430005", "SP02430006",
|
||||
// 重消
|
||||
"SP02440001", "SP02440002", "SP02440003", "SP02440005", "SP02440005", "SP02440006"
|
||||
);
|
||||
|
||||
/**
|
||||
* 盒数产品列表
|
||||
*/
|
||||
public static final List<String> ALL_BOX_WARES_LIST = Arrays.asList(
|
||||
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
|
||||
// 注册
|
||||
"SP02410001", "SP02410002", "SP02410003", "SP02410004", "SP02410005", "SP02410006",
|
||||
// 升级
|
||||
"SP02420001", "SP02420002", "SP02420003", "SP02420004", "SP02420005", "SP02420006",
|
||||
// 复消
|
||||
"SP02430001", "SP02430002", "SP02430003", "SP02430004", "SP02430005", "SP02430006",
|
||||
// 重消
|
||||
"SP02440001", "SP02440002", "SP02440003", "SP02440005", "SP02440005", "SP02440006"
|
||||
);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
package com.hzs.common.core.constant.msg;
|
||||
|
||||
/**
|
||||
* @Description: 产品相关
|
||||
* @Author: yuhui
|
||||
* @Time: 2022/9/8 9:31
|
||||
* @Classname: ProductMsgConstants
|
||||
* @PackageName: com.hzs.common.core.constant.msg
|
||||
* 产品相关
|
||||
*/
|
||||
public class ProductMsgConstants {
|
||||
|
||||
|
|
|
@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* Description: 用户类型分类
|
||||
* Author: sui q
|
||||
* Time: 2022/9/8 16:39
|
||||
* Classname: ECategory
|
||||
* PackageName: com.hzs.common.core.enums
|
||||
* 用户类型分类
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
@ -8,11 +8,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 系统配置参数初始化,该点不需要翻译
|
||||
* @Author: sui q
|
||||
* @Time: 2022/9/6 19:49
|
||||
* @Classname: ESystemConfig
|
||||
* @PackageName: com.hzs.common.core.enums
|
||||
* 系统配置参数初始化,该点不需要翻译
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
|
|
|
@ -18,7 +18,7 @@ public class BoxProductUtil {
|
|||
List<String> productList = new ArrayList<>(0);
|
||||
|
||||
if (null == systemType || ESystemType.ALL.getValue() == systemType) {
|
||||
productList.addAll(RetailProductConstants.BOX_PRODUCT_LIST);
|
||||
productList.addAll(RetailProductConstants.ALL_BOX_WARES_LIST);
|
||||
return productList;
|
||||
|
||||
}
|
||||
|
|
|
@ -41,7 +41,6 @@ public class ExpressServiceImpl implements IExpressService {
|
|||
String url = expressConfig.getUrl();
|
||||
|
||||
QueryTrackParam queryTrackParam = new QueryTrackParam();
|
||||
// TODO: 2022/4/18 快递公司的编码现在暂不传,后期根据需求而定
|
||||
// queryTrackParam.setCom("JD");
|
||||
queryTrackParam.setNum(trackingNumber);
|
||||
queryTrackParam.setPhone(mobile);
|
||||
|
|
Loading…
Reference in New Issue