## 报单时激活判断调整;还原指定商品盒数累计;

This commit is contained in:
cabbage 2025-06-11 11:57:21 +08:00
parent 968175db54
commit 11496f140d
16 changed files with 69 additions and 211 deletions

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

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

@ -12,14 +12,28 @@ public class RetailProductConstants {
* 盒数产品列表
*/
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);