Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
sangelxiu1 2025-06-11 14:38:46 +08:00
commit eb34a8eea9
20 changed files with 171 additions and 296 deletions

View File

@ -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);

View File

@ -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 {
// 会员结算mapkey会员IDvalue结算扩展
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
// 购买升级等级mapkey:等级值value:等级对象
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
// 团队升级等级mapkey:等级值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 奖金主表

View File

@ -148,7 +148,7 @@ public class IMemberAccountAuditServiceProvider implements IMemberAccountAuditSe
}
//驳回
if (approveOperation == (EApproveOperation.REJECT.getValue())) {
// TODO: 2023/2/17 根据后需求是否重新发起
// 根据后需求是否重新发起
// cuMemberRechargeService.updateDelFlagByRechargeCode(businessCode);
}
}

View File

@ -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;
}

View File

@ -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());

View File

@ -31,9 +31,4 @@ public class WaresItemsParam implements Serializable {
*/
private Integer pkProduct;
/**
* 产品编号
*/
private String productCode;
}

View File

@ -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()));
}
}
}
}
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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"
);
}

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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);