## 升级、复购恢复撤单逻辑;商品列表返回字段调整;

This commit is contained in:
cabbage 2025-06-09 16:37:08 +08:00
parent 8ddb794ada
commit f9c50f26c3
21 changed files with 90 additions and 285 deletions

View File

@ -8,11 +8,7 @@ import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
import java.util.List;
/**
* @Description: 会员升级记录dubbo服务
* @Author: jiang chao
* @Time: 2024/1/30 17:24
* @Classname: ICuMemberLevelServiceApi
* @PackageName: com.hzs.member.detail
* 会员升级记录dubbo服务
*/
public interface ICuMemberDetailServiceApi {

View File

@ -863,7 +863,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
for (int i = memberList.size() - 1; i >= 0; i--) {
Long pkMember = memberList.get(i);
SaOrderExt saOrder = saOrderMap.get(pkMember);
CuMember cuMember = cuMemberService.getMemberById(pkMember);
// 删除等级
cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
// 回退奖衔,根据订单从 cu_member_awards查询

View File

@ -10,9 +10,6 @@ import java.util.List;
/**
* 会员信息-等级升级记录 Mapper 接口
*
* @author hzs
* @since 2022-10-11
*/
public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {

View File

@ -14,11 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* @Description: 会员升级记录dubbo服务
* @Author: jiang chao
* @Time: 2024/1/30 17:25
* @Classname: CuMemberLevelProvider
* @PackageName: com.hzs.member.detail.provider
* 会员升级记录dubbo服务
*/
@DubboService
public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {

View File

@ -9,9 +9,6 @@ import java.util.List;
/**
* 会员信息-等级升级记录 服务类
*
* @author hzs
* @since 2022-10-11
*/
public interface ICuMemberLevelService extends IService<CuMemberLevel> {
@ -21,9 +18,6 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
* @param pkOrder 订单
* @param pkApprove 审核人
* @param currentDateTime 当前时间
* @return: void
* @Author: sui q
* @Date: 2023/3/30 9:15
*/
void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime);

View File

@ -15,9 +15,6 @@ import java.util.List;
/**
* 会员信息-等级升级记录 服务实现类
*
* @author hzs
* @since 2022-10-11
*/
@Service
public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, CuMemberLevel> implements ICuMemberLevelService {

View File

@ -22,7 +22,6 @@ import com.hzs.common.domain.sale.wares.BdWaresLabel;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.sale.wares.BdWaresSpecsSku;
import com.hzs.common.domain.system.config.BdLabel;
import com.hzs.common.domain.system.config.BdRetailRange;
import com.hzs.common.domain.system.ext.BdLabelExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.IMemberServiceApi;
@ -37,7 +36,6 @@ import com.hzs.sale.wares.service.IBdWaresSpecsSkuService;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAreaCurrencyServiceApi;
import com.hzs.system.config.IRetailRangeServiceApi;
import com.hzs.system.config.dto.AreaCurrencyDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
@ -201,17 +199,11 @@ public class ApiRetailWaresController extends BaseController {
List<BdWaresRange> waresRangeList = new ArrayList<>();
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) {
// 新零售复购专区需要处理级差
// 2024.12.30 添加需求复消也需要处理级差
// 复购复消需要处理级差
if (waresIdList.size() > 0) {
waresRangeList = iBdWaresRangeService.listRetailWaresRange(pkGrade, waresIdList);
}
}
// 专区级差
BdRetailRange retailRange = new BdRetailRange();
if (ESpecialArea.RETAIL_SHOP_ORDER.getValue() == specialArea) {
}
for (BdWaresExt bdWaresExt : bdWaresExtList) {
if (null != list) {
@ -255,8 +247,7 @@ public class ApiRetailWaresController extends BaseController {
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) {
// 新零售复购需要处理极差
// 2024.12.30 添加需求复消也需要处理级差
// 复购复消需要处理级差
for (BdWaresRange waresRange : waresRangeList) {
if (bdWaresExt.getPkId().equals(waresRange.getPkWares())) {
waresPrice = waresPrice.add(waresRange.getPrice());

View File

@ -66,11 +66,7 @@ import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 订单业务办理
* @Author: jiang chao
* @Time: 2023/1/31 10:31
* @Classname: OrderBusinessController
* @PackageName: com.hzs.sale.order.controller.manager
* 订单业务办理
*/
@Slf4j
@RestController

View File

@ -76,13 +76,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
return baseMapper.queryListByOrderId(orderIdList);
}
/**
* @description: 根据订单ID查询订单商品明细列表
* @author: zhang jing
* @date: 2023/5/29 15:39
* @param: [orderIdList, tOrderIdList]
* @return: java.util.List<com.hzs.common.domain.sale.ext.SaOrderItemsExt>
**/
@Override
public List<WaresOrderVo> waresListByOrderId(List<Long> orderIdList) {
return baseMapper.waresListByOrderId(orderIdList);
@ -98,12 +91,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
return baseMapper.queryListByItemId(itemIdList, statusList, pkCountry);
}
/**
* 查询商品订单
*
* @param waresOrderParam
* @return
*/
@Override
public List<WaresOrderVo> selectByInvestmentList(WaresOrderParam waresOrderParam) {
return baseMapper.selectByInvestmentList(waresOrderParam);

View File

@ -2537,11 +2537,12 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 存在手动升级
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
}
} else {
// 累计升级制传的订单是当前撤的订单
GradeDTO gradeDTO = calculateRetailCancelGrade(cuMember, saOrderExt);
cuMember.setPkSettleGrade(gradeDTO.getPkId());
}
// else {
// // 累计升级制传的订单是当前撤的订单
// GradeDTO gradeDTO = calculateRetailCancelGrade(cuMember, saOrderExt);
// cuMember.setPkSettleGrade(gradeDTO.getPkId());
// }
Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
if (null == firstDate) {
@ -2563,33 +2564,34 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
}
// 如果复购订单后面还有升级订单不需要处理等级问题 复购订单后面没有升级订单走新逻辑校验
if (this.count(Wrappers.<SaOrder>lambdaQuery()
.eq(SaOrder::getPkMember, saOrderExt.getPkMember())
.eq(SaOrder::getOrderType, EOrderType.RETAIL_UPGRADE.getValue())
.ge(SaOrder::getPayTime, saOrderExt.getPayTime())
.eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
) == 0) {
// 带有盒数商品的订单需要校验等级
List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
// 当前会员等级
BdGrade memberGrade = this.getGrade(cuMember.getPkSettleGrade(), gradeList);
// 需要添加的升级记录列表
List<CuMemberLevel> createLevelList = new ArrayList<>();
// 需要删除的升级记录列表
List<CuMemberLevel> deleteLevelList = new ArrayList<>();
// 新等级计算
BdGrade newGrade = this.handleNewGrade(cuMember, memberGrade, gradeList, saOrderExt, createLevelList, deleteLevelList);
if (memberGrade.getGradeValue() < EGrade.VIP.getValue() && newGrade.getGradeValue() < memberGrade.getGradeValue()) {
// 当前会员等级不是V4或者V5 并且 新等级小于当前等级需要进行处理
saOrderExt.setNewGrade(newGrade);
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
}
saOrderExt.setCreateLevelList(createLevelList);
saOrderExt.setDeleteLevelList(deleteLevelList);
}
// TODO new 恢复升级专区复购专区不需要处理等级问题
// // 如果复购订单后面还有升级订单不需要处理等级问题 复购订单后面没有升级订单走新逻辑校验
// if (this.count(Wrappers.<SaOrder>lambdaQuery()
// .eq(SaOrder::getPkMember, saOrderExt.getPkMember())
// .eq(SaOrder::getOrderType, EOrderType.RETAIL_UPGRADE.getValue())
// .ge(SaOrder::getPayTime, saOrderExt.getPayTime())
// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
// ) == 0) {
// // 带有盒数商品的订单需要校验等级
// List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
// // 当前会员等级
// BdGrade memberGrade = this.getGrade(cuMember.getPkSettleGrade(), gradeList);
//
// // 需要添加的升级记录列表
// List<CuMemberLevel> createLevelList = new ArrayList<>();
// // 需要删除的升级记录列表
// List<CuMemberLevel> deleteLevelList = new ArrayList<>();
// // 新等级计算
// BdGrade newGrade = this.handleNewGrade(cuMember, memberGrade, gradeList, saOrderExt, createLevelList, deleteLevelList);
//
// if (memberGrade.getGradeValue() < EGrade.VIP.getValue() && newGrade.getGradeValue() < memberGrade.getGradeValue()) {
// // 当前会员等级不是V4或者V5 并且 新等级小于当前等级需要进行处理
// saOrderExt.setNewGrade(newGrade);
// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
// }
// saOrderExt.setCreateLevelList(createLevelList);
// saOrderExt.setDeleteLevelList(deleteLevelList);
// }
}
} else if (EOrderType.RETAIL_PICK.getValue() == saOrderExt.getOrderType()) {
// 新提货订单

View File

@ -14,9 +14,6 @@ import java.util.Set;
/**
* 规格sku表 Mapper 接口
*
* @author hzs
* @since 2022-09-09
*/
public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
@ -26,9 +23,6 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
* @param specialArea 专区
* @param systemType 系统类型
* @param waresCode 商品编号
* @return: List<BdWaresSpecsSkuExt>
* @Author: sui q
* @Date: 2022/9/19 11:21
*/
List<BdWaresSpecsSkuExt> queryWaresSpecsSku(@Param("specialArea") Integer specialArea,
@Param("systemType") Integer systemType,
@ -38,9 +32,6 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
* 根据sku主键查询规格名称
*
* @param pkSkuId sku主键
* @return: List<BdWaresSpecsSku>
* @Author: sui q
* @Date: 2023/1/13 15:25
*/
List<BdWaresSpecsSkuExt> queryWaresSpecsNameSku(@Param("pkSkuIdList") Set<Integer> pkSkuId);
@ -48,9 +39,6 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
* 通过规格列表查询商品最小库存单位
*
* @param cuWaresItemsParams 专区
* @return: SpecsSkuParam
* @Author: sui q
* @Date: 2022/9/19 16:26
*/
BdWaresSpecsSkuExt queryWaresDetailSkuBySpecs(@Param("cuWaresItemsParams") CuWaresItemsParams cuWaresItemsParams);
@ -85,12 +73,9 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
*/
List<WaresItemWaresInfo> selectByPkIds(@Param("pkWaresSpecsSku") List<Integer> pkWaresSpecsSku);
/*
* @description: 查询商品封装为返回到会员端商品信息
* @author: sui q
* @date: 2023/5/10 19:57
* @param: null null
**/
/**
* 查询商品封装为返回到会员端商品信息
*/
WaresItemVo selectWaresItemsVO(@Param("specialArea") Integer specialArea, @Param("waresCode") String waresCode,
@Param("productGroup") List<ProductGroup> productGroup);

View File

@ -48,9 +48,6 @@ import java.util.stream.Collectors;
/**
* 商品 服务实现类
*
* @author hzs
* @since 2022-09-08
*/
@Service
public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> implements IBdWaresService {
@ -1220,21 +1217,14 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
rangePriceVoList.add(rangePriceVo);
}
}
// 对结果值进行排序
rangePriceVoList.sort(Comparator.comparing(RangePriceVo::getPkRange));
computeWaresPrice.setRangePriceVoList(rangePriceVoList);
}
}
return computeWaresPriceList;
}
/**
* 查询商品团队信息
*
* @return
*/
@Override
public Map<Integer, List<BdWaresAuthority>> getWaresAuthority(List<Integer> pkWaresList) {
Map<Integer, List<BdWaresAuthority>> map = new HashMap<>();
@ -1247,34 +1237,16 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
return map;
}
/**
* 扣减预售数量库存
*
* @param waresCode
* @param quantity
*/
@Override
public void updatePreSaleQuantityByWaresCode(String waresCode, Integer quantity) {
baseMapper.updatePreSaleQuantityByWaresCode(waresCode, quantity);
}
/**
* 查询商品可见类型
*
* @param pkWares
* @return
*/
@Override
public WaresAuthorityVo getWaresAuthorityFirst(Integer pkWares) {
return baseMapper.getWaresAuthorityFirst(pkWares);
}
/**
* 置底
*
* @param waresId
* @param loginUser
*/
@Override
public void bottomUp(Integer waresId, LoginUser loginUser) {
BdWares bdWares = new BdWares();

View File

@ -49,42 +49,42 @@ import java.util.stream.Collectors;
public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMapper, BdWaresSpecsSku> implements IBdWaresSpecsSkuService {
@Autowired
private IBdWaresSpecsRelationService waresSpecsRelationService;
private IBdWaresSpecsRelationService iBdWaresSpecsRelationService;
@Autowired
private IBdWaresLabelService waresLabelService;
private IBdWaresLabelService iBdWaresLabelService;
@Autowired
private IBdWaresDetailService waresDetailService;
private IBdWaresDetailService iBdWaresDetailService;
@Autowired
private IBdWaresRangeService bdWaresRangeService;
private IBdWaresRangeService iBdWaresRangeService;
@Autowired
private ISaOrderService saOrderService;
private ISaOrderService iSaOrderService;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference
IRangeServiceApi rangeServiceApi;
IRangeServiceApi iRangeServiceApi;
@DubboReference
IMemberServiceApi memberServiceApi;
IMemberServiceApi iMemberServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
IAwardsServiceApi iAwardsServiceApi;
@Override
public CuWaresParams queryWaresSpecsSku(Integer specialArea, String waresCode, Long loginMemberId, Integer pkCountry) {
List<BdWaresSpecsSkuExt> bdWaresSpecsSkuExtList;
R<CuMember> memberDate = memberServiceApi.getMember(loginMemberId);
R<CuMember> memberDate = iMemberServiceApi.getMember(loginMemberId);
CuMember cuMember = memberDate.getData();
if (EOrderType.REPURCHASE_ORDER.getValue() == specialArea
|| EOrderType.MALL_ORDER.getValue() == specialArea
|| EOrderType.COOPERATE_ORDER.getValue() == specialArea) {
int level = cuMember.getPkSettleGrade();
int rangeType = ERangeType.GRADE.getValue();
BdAwards bdAwards = awardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
if (bdAwards.getAwardsValue() > EAwards.MEMBER.getValue()) {
level = cuMember.getPkAwards();
rangeType = ERangeType.AWARDS.getValue();
}
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
if (rangeDTO == null) {
return new CuWaresParams();
}
@ -94,7 +94,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
bdWaresSpecsSkuExtList = baseMapper.queryWaresSpecsSku(specialArea, null, waresCode);
}
if (bdWaresSpecsSkuExtList.size() > 0) {
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
Set<Integer> pkSkuIdList = new HashSet<>();
bdWaresSpecsSkuExtList.forEach(bdWaresSpecsSkuExt ->
@ -115,7 +115,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
//查询标签合集
BdWaresLabel waresLabel = new BdWaresLabel();
waresLabel.setPkWares(bdWaresSpecsSkuExtList.get(0).getPkWares());
List<BdLabelExt> labelList = waresLabelService.selectByList(waresLabel);
List<BdLabelExt> labelList = iBdWaresLabelService.selectByList(waresLabel);
// 保证标签
List<BdLabel> ensureLabelList = new ArrayList<>();
// 卖点标签
@ -147,9 +147,9 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
R<CurrencyDTO> kgCurrency = null;
if (pkCountry != null) {
kgCurrency = currencyServiceApi.getCurrency(pkCountry);
kgCurrency = iCurrencyServiceApi.getCurrency(pkCountry);
}
List<CuProductParams> productParams = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productParams = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productParamsResultList = new ArrayList<>();
for (CuProductParams cuProductParams : productParams) {
List<CuWaresItemsParams> list = new ArrayList<>();
@ -168,7 +168,6 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
list.add(cuWaresItemsParams);
}
}
}
cuProductParams.setWaresItemsParamsList(list);
if (list.size() > 0) {
@ -194,12 +193,12 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
if (EOrderType.REPURCHASE_ORDER.getValue() == specialArea
|| EOrderType.MALL_ORDER.getValue() == specialArea
|| EOrderType.COOPERATE_ORDER.getValue() == specialArea) {
R<CuMember> memberDate = memberServiceApi.getMember(loginMemberId);
R<CuMember> memberDate = iMemberServiceApi.getMember(loginMemberId);
CuMember cuMember = memberDate.getData();
int level = cuMember.getPkSettleGrade();
int rangeType = ERangeType.GRADE.getValue();
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
if (rangeDTO == null) {
return new CuWaresParams();
}
@ -212,10 +211,10 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
Map<Integer, String> specsNameMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdWaresSpecsSkuExtList.size()));
CuWaresParams cuWaresParams = BeanUtil.copyProperties(bdWaresSpecsSkuExtList.get(0), CuWaresParams.class);
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
List<CuWaresItemsParams> cuWaresItemsParamsList = setUpWaresItemsParams(bdWaresSpecsSkuExtList, specsNameMap, currency.getData().getInExchangeRate());
// 前台传递结算国 跨国报单计算价格使用
List<CuProductParams> productParams = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productParams = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productParamsResultList = new ArrayList<>();
for (CuProductParams cuProductParams : productParams) {
List<CuWaresItemsParams> list = new ArrayList<>();
@ -243,28 +242,20 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
return null;
}
/**
* @description: 查询商品sku信息购物车专用
* @author: zhang jing
* @date: 2024/3/28 14:34
* @param: [specialArea, waresCode, loginMemberId, pkCountry]
* @return: com.hzs.sale.wares.param.CuWaresParams
**/
@Override
public CuWaresParams queryWaresSpecsSkuShopping(Integer specialArea, String waresCode, Long loginMemberId, Integer pkCountry, Integer systemType) {
CuMember cuMember = memberServiceApi.getMember(loginMemberId).getData();
CuMember cuMember = iMemberServiceApi.getMember(loginMemberId).getData();
// 获取货币信息
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
List<BdWaresSpecsSkuExt> bdWaresSpecsSkuExtList;
if (EOrderType.RETAIL_REPURCHASE.getValue() == specialArea
|| EOrderType.RETAIL_CONSUME.getValue() == specialArea) {
// 2024.12.30 添加需求复消也需要处理级差
// 复消也需要处理级差
int level = cuMember.getPkSettleGrade();
int rangeType = ERangeType.GRADE.getValue();
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
if (rangeDTO == null) {
return new CuWaresParams();
}
@ -295,7 +286,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
// 处理跨国报单价格
R<CurrencyDTO> kgCurrency;
if (pkCountry != null && !pkCountry.equals(SecurityUtils.getPkCountry())) {
kgCurrency = currencyServiceApi.getCurrency(pkCountry);
kgCurrency = iCurrencyServiceApi.getCurrency(pkCountry);
BigDecimal inExchangeRate = cuWaresParams.getInExchangeRate();
BigDecimal kgInExchangeRate = kgCurrency.getData().getInExchangeRate();
cuWaresItemsParamsList.forEach(item -> {
@ -305,7 +296,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
}
// 获取商品详情
List<CuProductParams> productParams = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productParams = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productParamsResultList = productParams.stream()
.peek(param -> {
List<CuWaresItemsParams> list = cuWaresItemsParamsList.stream()
@ -321,14 +312,10 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
return cuWaresParams;
}
/**
* 设置返回到前台的商品明细表
*
* @param bdWaresSpecsSkuExtList 商品待sku
* @return: List<CuWaresItemsParams>
* @Author: sui q
* @Date: 2022/9/27 10:51
*/
private List<CuWaresItemsParams> setUpWaresItemsParams(List<BdWaresSpecsSkuExt> bdWaresSpecsSkuExtList, Map<Integer, String> specsNameMap, BigDecimal inExchangeRate) {
List<CuWaresItemsParams> cuWaresItemsParamsList = new ArrayList<>();
@ -377,46 +364,6 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
}
}
/**
* 设置规格分类
*
* @param bdWaresSpecsSkuExt sku
* @param specsTypeParamsMap 规格分类
*/
private void setSpecsMap(BdWaresSpecsSkuExt bdWaresSpecsSkuExt, Map<Integer, SpecsTypeParams> specsTypeParamsMap) {
SpecsTypeParams bdWaresSpecs = SpecsTypeParams.builder()
.pkSpecsType(bdWaresSpecsSkuExt.getPkSpecsType())
.typeName(bdWaresSpecsSkuExt.getSpecsTypeName())
.build();
// 规格
Set<SpecsParams> specsParamsSet = new HashSet<>();
setSpecsParams(bdWaresSpecsSkuExt, specsParamsSet);
bdWaresSpecs.setSpecsParamsSet(specsParamsSet);
specsTypeParamsMap.put(bdWaresSpecs.getPkSpecsType(), bdWaresSpecs);
}
/**
* 设置规格明细
*
* @param bdWaresSpecsSkuExt sku
* @param specsParamsList 规格明细
*/
private void setSpecsParams(BdWaresSpecsSkuExt bdWaresSpecsSkuExt, Set<SpecsParams> specsParamsList) {
SpecsParams specsParams = SpecsParams.builder()
.pkSpecs(bdWaresSpecsSkuExt.getPkSpecs())
.specsName(bdWaresSpecsSkuExt.getSpecsName())
.build();
specsParamsList.add(specsParams);
}
/**
* 通过规格列表查询商品最小库存单位
*
* @param cuWaresItemsParams 明细参数
* @return: SpecsSkuParam
* @Author: sui q
* @Date: 2022/9/19 16:26
*/
@Override
public SpecsSkuParam queryWaresDetailSkuBySpecs(CuWaresItemsParams cuWaresItemsParams) {
BdWaresSpecsSkuExt bdWaresSpecsSkuExt = baseMapper.queryWaresDetailSkuBySpecs(cuWaresItemsParams);
@ -427,44 +374,21 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
.build();
}
/**
* 根据id修改值
*
* @param sku
*/
@Override
public void updateBySkuId(BdWaresSpecsSku sku) {
baseMapper.updateBySkuId(sku);
}
/**
* 根据id查询sku 可查询删除数据
*
* @param pkWaresSpecsSku
* @return
*/
@Override
public BdWaresSpecsSku selectByWaresSpecsSkuIdAndDel(Integer pkWaresSpecsSku) {
return baseMapper.selectByWaresSpecsSkuIdAndDel(pkWaresSpecsSku);
}
/**
* 根据商品id 查询
*
* @param waresIds
* @return
*/
@Override
public List<BdWaresSpecsSkuExt> selectByWaresSpecsSku(List<Integer> waresIds) {
return baseMapper.selectByWaresSpecsSku(waresIds);
}
/**
* 根据id 批量查询sku 信息
*
* @param pkWaresSpecsSku
* @return
*/
@Override
public List<WaresItemWaresInfo> selectByPkIds(List<Integer> pkWaresSpecsSku) {
return baseMapper.selectByPkIds(pkWaresSpecsSku);
@ -489,7 +413,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
waresItemVo.getWaresItemsParamList().forEach(waresItemWaresInfo -> {
waresDetailExtMap.put(waresItemWaresInfo.getPkWaresDetail().toString() + waresItemWaresInfo.getPkWaresSpecsSku(), waresItemWaresInfo);
// 设置规格值 名称拼接
List<BdWaresSpecsRelationExt> waresSpecsRelationExts = waresSpecsRelationService.selectByWaresSpecsSku(waresItemWaresInfo.getPkWaresSpecsSku());
List<BdWaresSpecsRelationExt> waresSpecsRelationExts = iBdWaresSpecsRelationService.selectByWaresSpecsSku(waresItemWaresInfo.getPkWaresSpecsSku());
Set<String> specsNames = waresSpecsRelationExts.stream().map(BdWaresSpecsRelationExt::getSpecsName).collect(Collectors.toSet());
waresItemWaresInfo.setSkuInfo(StringUtils.join(specsNames, ","));
});
@ -497,11 +421,11 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
if (EOrderType.RETAIL_REPURCHASE.getValue() == specialArea
|| EOrderType.RETAIL_CONSUME.getValue() == specialArea) {
// 2024.12.30 添加需求复消也需要处理级差
CuMember cuMember = saOrderService.getCuMemberByKey(pkMember);
CuMember cuMember = iSaOrderService.getCuMemberByKey(pkMember);
int level = cuMember.getPkSettleGrade();
int rangeType = ERangeType.GRADE.getValue();
List<Integer> pkWaresSpecsSku = productGroup.stream().map(ProductGroup::getPkSkuId).collect(Collectors.toList());
List<BdWaresRange> bdWaresRangeList = bdWaresRangeService.querySkuWaresRangeByCondition(cuMember.getPkSettleCountry(), rangeType, level, pkWaresSpecsSku);
List<BdWaresRange> bdWaresRangeList = iBdWaresRangeService.querySkuWaresRangeByCondition(cuMember.getPkSettleCountry(), rangeType, level, pkWaresSpecsSku);
bdWaresRangeList.forEach(bdWaresRange -> {
String key = bdWaresRange.getPkWaresDetail().toString() + bdWaresRange.getPkWaresSpecsSku();
if (waresDetailExtMap.containsKey(key)) {
@ -519,11 +443,11 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
}
// 前台传递结算国 跨国报单计算价格使用
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
if (pkCountry != null) {
// 当登陆人的结算国和前端结算国不一致 即为跨国报单
if (!pkCountry.equals(SecurityUtils.getPkCountry())) {
R<CurrencyDTO> kgCurrency = currencyServiceApi.getCurrency(pkCountry);
R<CurrencyDTO> kgCurrency = iCurrencyServiceApi.getCurrency(pkCountry);
BigDecimal price = waresItemVo.getPrice();
waresItemVo.setPrice(price.multiply(currency.getData().getInExchangeRate()).divide(kgCurrency.getData().getInExchangeRate(), 2, BigDecimal.ROUND_HALF_UP));
@ -539,23 +463,11 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
return waresItemVo;
}
/**
* 根据商品id查询规格价格最小值
*
* @param pkWaresIds
* @return
*/
@Override
public List<BdWaresSpecsSkuExt> selectByMinWaresSpecsSkuByPkWaresList(List<Integer> pkWaresIds) {
return baseMapper.selectByMinWaresSpecsSkuByPkWaresList(pkWaresIds);
}
/**
* 根据id 查询
*
* @param pkWaresSpecsSku
* @return
*/
@Override
public BdWaresSpecsSkuExt selectByPkWaresSpecsSku(Integer pkWaresSpecsSku) {
return baseMapper.selectByPkWaresSpecsSku(pkWaresSpecsSku);
@ -573,7 +485,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) {
// 查询级差等级
// 2024.12.30 添加需求复消也需要处理级差
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(param.getPkCountry(), ERangeType.GRADE.getValue(), pkGrade).getData();
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(param.getPkCountry(), ERangeType.GRADE.getValue(), pkGrade).getData();
if (rangeDTO == null) {
return new RetailWaresDetailVO();
}
@ -584,7 +496,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
if (CollectionUtil.isNotEmpty(waresSpecsSkuExtList)) {
// 获取汇率
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
// 商品关联产品规格ID
Set<Integer> pkSkuIdList = waresSpecsSkuExtList.stream().map(BdWaresSpecsSkuExt::getPkId).collect(Collectors.toSet());
@ -609,7 +521,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
//查询标签合集
BdWaresLabel waresLabel = new BdWaresLabel();
waresLabel.setPkWares(waresSpecsSkuExtList.get(0).getPkWares());
List<BdLabelExt> labelList = waresLabelService.selectByList(waresLabel);
List<BdLabelExt> labelList = iBdWaresLabelService.selectByList(waresLabel);
// 保证标签
List<BdLabel> ensureLabelList = new ArrayList<>();
@ -640,7 +552,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
// 封装商品明细
List<CuWaresItemsParams> cuWaresItemsParamsList = setUpWaresItemsParams(waresSpecsSkuExtList, specsNameMap, currency.getData().getInExchangeRate());
// 商品编号查询产品详情
List<CuProductParams> productList = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productList = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
List<CuProductParams> productResultList = new ArrayList<>();
for (CuProductParams productVO : productList) {
List<CuWaresItemsParams> list = new ArrayList<>();

View File

@ -373,6 +373,7 @@
bw.WARES_CODE,
bw.WARES_NAME,
PK_AREA_CLASSIFY,
COVER,
COVER1,
bw.WARES_PRICE,
bw.WARES_ACHIEVE,

View File

@ -15,4 +15,11 @@ public class RetailProductConstants {
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
);
/**
* 盒数产品列表
*/
public static final List<String> ALL_BOX_WARES_LIST = Arrays.asList(
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
);
}

View File

@ -59,7 +59,7 @@ public enum ESpecialArea {
/**
* 新零售会员专区注册
*/
RETAIL_REGISTER(41, "新零售会员专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 41, 41, -1),
RETAIL_REGISTER(41, "新零售注册专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 41, 41, -1),
/**
* 新零售会员专区升级
*/
@ -75,8 +75,6 @@ public enum ESpecialArea {
RETAIL_TICKET(45, "自助购票", 0, EnumsPrefixConstants.SPECIAL_AREA + 45, 45, -1),
RETAIL_SHOP_ORDER(47, "店铺专供", 0, EnumsPrefixConstants.SPECIAL_AREA + 47, 47, -1),
;
/**

View File

@ -2,23 +2,20 @@ package com.hzs.common.domain.member.detail;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 会员信息-等级升级记录
* </p>
*
* @author hzs
* @since 2022-10-11
*/
@Data
@EqualsAndHashCode(callSuper = false)

View File

@ -11,11 +11,7 @@ import java.util.Date;
import java.util.List;
/**
* @Description: 商品扩展表
* @Author: sui q
* @Time: 2022/9/16 11:11
* @Classname: BdWaresExt
* @PackageName: com.hzs.common.domain.sale.ext
* 商品扩展表
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -52,7 +48,7 @@ public class BdWaresExt extends BdWares {
private Integer isOceanTrans;
/**
* 是否创客礼包
* 是否创客礼包
*/
private Integer isMakerGift;
@ -174,11 +170,6 @@ public class BdWaresExt extends BdWares {
*/
private BigDecimal retailPrice;
/**
* 发起人收益目前复购使用保存为美金
*/
private BigDecimal makerIncome;
/**
* 消费配置主键
*/

View File

@ -14,9 +14,6 @@ import lombok.experimental.Accessors;
/**
* 商品发布
*
* @author hzs
* @since 2022-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 规格sku表
* </p>
*
* @author hzs
* @since 2022-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 新零售极差等级配置表
* </p>
*
* @author hzs
* @since 2025-02-13
*/
@Data
@EqualsAndHashCode(callSuper = true)