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

This commit is contained in:
sangelxiu1 2025-07-11 09:39:23 +08:00
commit fa7c4f11fa
29 changed files with 209 additions and 500 deletions

View File

@ -1,25 +0,0 @@
package com.hzs.system.config;
import com.hzs.common.core.domain.R;
import com.hzs.system.config.dto.AdvertBannerDTO;
import java.util.List;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.system.config
* @Author: yh
* @CreateTime: 2023-05-15 10:15
* @Description:
* @Version: 1.0
*/
public interface AdvertBannerServiceApi {
/**
* 查询全部banner
*
* @return
*/
R<List<AdvertBannerDTO>> findAll();
}

View File

@ -1,14 +1,13 @@
package com.hzs.bonus.bonus.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.mapper.BdWaresBonusMapper;
import com.hzs.bonus.bonus.param.BdWaresBonusParam;
import com.hzs.bonus.bonus.service.IBdWaresBonusItemsService;
import com.hzs.bonus.bonus.service.IBdWaresBonusService;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.bonus.BdWaresBonus;
@ -29,7 +28,7 @@ import java.util.List;
public class BdWaresBonusServiceImpl extends ServiceImpl<BdWaresBonusMapper, BdWaresBonus> implements IBdWaresBonusService {
@Autowired
private IBdWaresBonusItemsService waresBonusItemsService;
private IBdWaresBonusItemsService iBdWaresBonusItemsService;
@Override
public List<BdWaresBonusExt> querySpecialWaresBonus(BdWaresBonusParam waresBonusParam) {
@ -40,21 +39,21 @@ public class BdWaresBonusServiceImpl extends ServiceImpl<BdWaresBonusMapper, BdW
@Transactional(rollbackFor = Exception.class)
public void deleteSpecialWaresBonus(Long pkId, Long userId) {
// 删除明细表
waresBonusItemsService.deleteWaresBonusItems(null, pkId, userId);
UpdateWrapper<BdWaresBonus> updateWrapper = new UpdateWrapper<>();
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId);
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue());
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, DateUtils.currentDateTime());
updateWrapper.eq(SystemFieldConstants.PK_ID, pkId);
iBdWaresBonusItemsService.deleteWaresBonusItems(null, pkId, userId);
LambdaUpdateWrapper<BdWaresBonus> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(BdWaresBonus::getPkModified, userId);
updateWrapper.set(BdWaresBonus::getDelFlag, EYesNo.NO.getIntValue());
updateWrapper.set(BdWaresBonus::getModifiedTime, DateUtils.currentDateTime());
updateWrapper.eq(BdWaresBonus::getPkId, pkId);
update(updateWrapper);
}
@Override
public BdWaresBonus queryWaresBonusById(BdWaresBonusParam waresBonusParam) {
QueryWrapper<BdWaresBonus> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SystemFieldConstants.PK_WARES, waresBonusParam.getPkWares());
LambdaQueryWrapper<BdWaresBonus> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWaresBonus::getPkWares, waresBonusParam.getPkWares());
if (waresBonusParam.getPkId() != null) {
queryWrapper.ne(SystemFieldConstants.PK_ID, waresBonusParam.getPkId());
queryWrapper.ne(BdWaresBonus::getPkId, waresBonusParam.getPkId());
}
return baseMapper.selectOne(queryWrapper);
}
@ -91,12 +90,12 @@ public class BdWaresBonusServiceImpl extends ServiceImpl<BdWaresBonusMapper, BdW
}
if (updateWaresBonusItems.size() > 0) {
// 删除
waresBonusItemsService.deleteWaresBonusItems(updateWaresBonusItems, updateWaresBonusItems.get(0).getPkWaresBonus(), userId);
waresBonusItemsService.updateWaresBonusItems(updateWaresBonusItems);
iBdWaresBonusItemsService.deleteWaresBonusItems(updateWaresBonusItems, updateWaresBonusItems.get(0).getPkWaresBonus(), userId);
iBdWaresBonusItemsService.updateWaresBonusItems(updateWaresBonusItems);
}
// 新增
if (insertWaresBonusItems.size() > 0) {
waresBonusItemsService.insetWaresBonusItems(insertWaresBonusItems);
iBdWaresBonusItemsService.insetWaresBonusItems(insertWaresBonusItems);
}
}

View File

@ -452,7 +452,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (SaOrderExt saOrderExt : orderList) {
if (saOrderExt.getDelFlag() == EYesNo.YES.getIntValue()) {
retailOrderList.add(saOrderExt);
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()) {
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
// 复购订单
repurchaseOrderList.add(saOrderExt);
}
@ -1127,7 +1127,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 商品最终价格
BigDecimal waresPrice = saOrderItems.getWaresPrice();
// 商品数量
BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity());
BigDecimal waresQuantityBig = saOrderItems.getWaresQuantity();
// 单个商品价格
BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR);
@ -1448,7 +1448,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 商品最终价格
BigDecimal waresPrice = saOrderWaresExt.getWaresPrice();
// 商品数量
BigDecimal waresQuantityBig = new BigDecimal(saOrderWaresExt.getWaresQuantity());
BigDecimal waresQuantityBig = saOrderWaresExt.getWaresQuantity();
// 单个商品价格
BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR);
@ -1460,7 +1460,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (EDelFlag.UN_DELETE.getValue() == saOrderWaresExt.getDelFlag()) {
if (ERatioType.VALUE.getValue() == saOrderWaresExt.getAreaIncomeType()) {
// 按比值处理
benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(saOrderWaresExt.getWaresQuantity()));
} else {
// 按比率处理
benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(saOrderWaresExt.getAreaIncome()).divide(new BigDecimal("100"), 6, BigDecimal.ROUND_HALF_UP));
@ -2101,7 +2101,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (SaOrderItemsExt saOrderItemsExt : saOrderItemsExtList) {
// 级别值比当前等级高的级差数据列表
Map<Integer, BigDecimal> itemsRangePriceMap = saOrderItemsExt.getWaresRangeTmpList().stream()
.filter(tmpData -> tmpData.getRangeValue().compareTo(sourceMemberRangeExt.getGradeValue()) > 0)
.collect(Collectors.toMap(WaresRangeTmp::getRangeValue, WaresRangeTmp::getRangePrice));
// 临时价格跟着每一次变动
@ -2127,7 +2126,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
continue;
}
// 当前会员等级值
int calGradeValue = targetMemberRangeExt.getGradeValue();
Integer calGradeValue = EAwards.getGradeValueByValue(targetMemberRangeExt.getGradeValue());
// 当前会员的级差价格
BigDecimal targetRangePrice = itemsRangePriceMap.get(calGradeValue);
if (targetRangePrice.compareTo(tmpPrice) < 0) {
@ -2135,10 +2134,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 差价就是级差收益
BigDecimal bonusIncome;
if (bonusIncomeMap.containsKey(targetMemberRangeExt.getPkMember())) {
bonusIncome = bonusIncomeMap.get(targetMemberRangeExt.getPkMember()).add(tmpPrice.subtract(targetRangePrice));
bonusIncome = bonusIncomeMap.get(targetMemberRangeExt.getPkMember()).add(tmpPrice.subtract(targetRangePrice).multiply(new BigDecimal(saOrderItemsExt.getWaresQuantity())));
} else {
bonusIncome = tmpPrice.subtract(targetRangePrice);
bonusIncome = tmpPrice.subtract(targetRangePrice).multiply(new BigDecimal(saOrderItemsExt.getWaresQuantity()));
}
bonusIncomeMap.put(targetMemberRangeExt.getPkMember(), bonusIncome);
// 临时价格更新
tmpPrice = targetRangePrice;
@ -2168,6 +2168,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
cuMemberBonusRange.setPkOrder(saOrderExt.getPkId());
cuMemberBonusRange.setPkOrderItems(0L);
rangeRepurchaseRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {

View File

@ -59,6 +59,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
/**
* 复购级差收益
*/
@BigDecimalFormat("#0.0000")
private BigDecimal repurRangeIncome;
// /**

View File

@ -49,7 +49,7 @@ public class SaOrderSecondListener {
}
try {
Thread.sleep(500);
Thread.sleep(1000);
iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(saOrderExt.getOrderCode());
} catch (Exception e) {
cuMemberRetailLog.setEnableStatus(EYesNo.NO.getIntValue());

View File

@ -333,6 +333,7 @@
<result column="PK_ORDER" property="pkOrder"/>
<result column="PK_ID" property="pkId"/>
<result column="PRICE" property="price"/>
<result column="WARES_QUANTITY" property="waresQuantity"/>
<result column="PK_WARES" property="pkWares"/>
<result column="PK_PRODUCT" property="pkProduct"/>
<result column="PK_WARES_DETAIL" property="pkWaresDetail"/>
@ -344,10 +345,11 @@
</resultMap>
<!-- 查询商品级差数据 -->
<select id="listOrderWaresRange" resultType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
<select id="listOrderWaresRange" resultMap="SaOrderItems">
select soi.pk_order,
soi.pk_id,
soi.price,
soi.wares_quantity,
bwr.pk_wares,
bwr.pk_product,
bwr.pk_wares_detail,
@ -360,7 +362,8 @@
soi.pk_product,
soi.pk_wares_detail,
soi.pk_wares_specs_sku,
soi.price
soi.price,
max(soi.wares_quantity) wares_quantity
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id

View File

@ -2580,6 +2580,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
// 指定会员可见
isShowWares = pkMemberList.contains(showWaresDTO.getLoginMember());
}
if (isShowWares) {
break;
}
}
resultMap.put(showWaresDTO.getPkWares(), isShowWares);
}

View File

@ -291,6 +291,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 订单明细
SaOrderItems orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
orderItems.setWaresBoxNum(null != waresDetailExt.getBoxNum() ? waresDetailExt.getBoxNum() : BigDecimal.ZERO);
// 不是赠品需要累积包邮邮费
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
@ -762,7 +763,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 订单商品拆分数据
List<SaOrderWares> orderWaresList = new ArrayList<>();
// 订单商品mapkey商品主键-商品价格value商品数量
Map<String, Integer> orderWaresMap = new HashMap<>();
Map<String, BigDecimal> orderWaresMap = new HashMap<>();
// 商品销量数据
List<WaresNumberParam> waresNumberList = new ArrayList<>();
// 商品销量mapkey商品主键value商品数量
@ -784,9 +785,15 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 指定商品拆分 并且 非赠品
if (boxProductList.contains(saOrderItems.getWareCode())
&& EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity()));
// key: 商品ID-商品价格产品价格*产品数量
String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity())));
orderWaresMap.merge(key, saOrderItems.getWaresQuantity(), Integer::sum);
if (orderWaresMap.containsKey(key)) {
BigDecimal tmpBoxNum = orderWaresMap.get(key).add(boxNum);
orderWaresMap.put(key, tmpBoxNum);
} else {
orderWaresMap.put(key, boxNum);
}
waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
}

View File

@ -17,14 +17,12 @@ import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.ext.BdWaresExt;
import com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt;
import com.hzs.common.domain.sale.wares.BdWares;
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.sale.wares.*;
import com.hzs.common.domain.system.config.BdLabel;
import com.hzs.common.domain.system.ext.BdLabelExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.member.base.dto.ShowWaresDTO;
import com.hzs.retail.wares.param.RetailWaresDetailParam;
import com.hzs.retail.wares.param.RetailWaresParam;
import com.hzs.retail.wares.vo.RetailWaresDetailVO;
@ -68,7 +66,7 @@ public class ApiRetailWaresController extends BaseController {
private IBdWaresRangeService iBdWaresRangeService;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference
IAreaCurrencyServiceApi iAreaCurrencyServiceApi;
@DubboReference
@ -94,7 +92,6 @@ public class ApiRetailWaresController extends BaseController {
param.setSystemType(SecurityUtils.getSystemType());
param.setPkCountry(SecurityUtils.getPkCountry());
// 商品列表
startPage();
List<BdWaresExt> bdWaresExtList = iBdWaresService.listRetailWaresByCondition(param);
if (CollectionUtil.isNotEmpty(bdWaresExtList)) {
@ -177,9 +174,11 @@ public class ApiRetailWaresController extends BaseController {
Integer pkGrade, boolean showLabel) {
// 返回商品列表
List<RetailWaresVO> resultList = new ArrayList<>();
// 当前会员ID
Long userId = SecurityUtils.getUserId();
// 汇率比例
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
// 商品主键列表
@ -208,7 +207,25 @@ public class ApiRetailWaresController extends BaseController {
}
}
// 检验商品团队信息
Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
List<ShowWaresDTO> showWaresList = bdWaresExtList.stream().map(tmpBdWares -> {
ShowWaresDTO showWaresDTO = new ShowWaresDTO();
showWaresDTO.setPkWares(tmpBdWares.getPkId());
showWaresDTO.setLoginMember(userId);
showWaresDTO.setWaresAuthorityList(waresAuthorityMap.get(tmpBdWares.getPkId()));
return showWaresDTO;
}).collect(Collectors.toList());
R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
Map<Integer, Boolean> waresShowMap = waresShowMapDto.getData();
for (BdWaresExt bdWaresExt : bdWaresExtList) {
// 校验团队信息
Boolean isShowWares = waresShowMap.get(bdWaresExt.getPkId());
if (null == isShowWares || !isShowWares) {
continue;
}
if (null != list) {
// 商品标签处理
// 保证标签

View File

@ -5,7 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hzs.common.core.constant.*;
import com.hzs.common.core.constant.msg.SaOrderMsgConstants;
import com.hzs.common.core.constant.msg.WaresMsgConstants;
@ -35,7 +35,6 @@ import com.hzs.sale.wares.service.*;
import com.hzs.sale.wares.vo.*;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.AdvertBannerServiceApi;
import com.hzs.system.config.IAreaCurrencyServiceApi;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.AreaCurrencyDTO;
@ -60,52 +59,34 @@ import java.util.stream.Collectors;
public class ApiBdWaresController extends BaseController {
@DubboReference
IGradeServiceApi gradeServiceApi;
IGradeServiceApi iGradeServiceApi;
@DubboReference
IMemberServiceApi memberServiceApi;
IMemberServiceApi iMemberServiceApi;
@DubboReference
IAreaCurrencyServiceApi areaCurrencyServiceApi;
IAreaCurrencyServiceApi iAreaCurrencyServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
ICurrencyServiceApi iCurrencyServiceApi;
@Autowired
private IBdWaresLabelService waresLabelService;
private IBdWaresService iBdWaresService;
@Autowired
private IBdWaresGradeService waresGradeService;
private IBdWaresSpecsSkuService iBdWaresSpecsSkuService;
@Autowired
private IBdWaresLabelService iBdWaresLabelService;
@Autowired
private IBdWaresGradeService iBdWaresGradeService;
@Autowired
private IBdWaresRangeService iBdWaresRangeService;
@Autowired
protected IShoppingCartService iShoppingCartService;
@Autowired
private ISaOrderService iSaOrderService;
@Autowired
protected RedisService redisService;
@Autowired
protected StringRedisTemplate redisTemplate;
@Autowired
protected IShoppingCartService shoppingCartService;
private IBdWaresService bdWaresService;
private IBdWaresSpecsSkuService bdWaresSpecsSkuService;
private IBdWaresRangeService bdWaresRangeService;
private ISaOrderService saOrderService;
@Autowired
public void setSaOrderService(ISaOrderService saOrderService) {
this.saOrderService = saOrderService;
}
@Autowired
public void setBdWaresRangeService(IBdWaresRangeService bdWaresRangeService) {
this.bdWaresRangeService = bdWaresRangeService;
}
@Autowired
public void setBdWaresSpecsSkuService(IBdWaresSpecsSkuService bdWaresSpecsSkuService) {
this.bdWaresSpecsSkuService = bdWaresSpecsSkuService;
}
@Autowired
public void setBdWaresService(IBdWaresService bdWaresService) {
this.bdWaresService = bdWaresService;
}
/**
* 根据专区查找专区的商品
@ -117,48 +98,42 @@ public class ApiBdWaresController extends BaseController {
if (cuWaresParams.getSpecialArea() == null) {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.SPECIAL_AREA_NOT_EMPTY));
}
Integer pkCountry;
if (cuWaresParams.getPkCountry() != null) {
pkCountry = cuWaresParams.getPkCountry();
} else {
pkCountry = SecurityUtils.getPkCountry();
}
Integer pkCountry = cuWaresParams.getPkCountry() != null ? cuWaresParams.getPkCountry() : SecurityUtils.getPkCountry();
// 返回数据
List<CuWaresParams> waresParamsList = new ArrayList<>();
// 查询商品列表
List<BdWaresExt> bdWaresExtList = bdWaresService.queryWaresByCondition(cuWaresParams.getSpecialArea(), cuWaresParams.getPkAreaClassify(), cuWaresParams.getWaresName(), null, null, pkCountry);
List<BdWaresExt> bdWaresExtList = iBdWaresService.queryWaresByCondition(cuWaresParams.getSpecialArea(), cuWaresParams.getPkAreaClassify(), cuWaresParams.getWaresName(), null, null, pkCountry);
if (CollectionUtil.isNotEmpty(bdWaresExtList)) {
// 等级
R<List<GradeDTO>> gradeDTO = gradeServiceApi.queryGradeList(pkCountry);
R<List<GradeDTO>> gradeDTO = iGradeServiceApi.queryGradeList(pkCountry);
List<GradeDTO> gradeList = gradeDTO.getData();
Map<Integer, GradeDTO> gradeMap = gradeList.stream().filter(grade -> ESystemType.DEFAULT.getValue() == grade.getSystemType()).collect(Collectors.toMap(GradeDTO::getGradeValue, Function.identity()));
// 当前会员ID
Long userId = SecurityUtils.getUserId();
CuMember cuMember = saOrderService.getCuMemberByKey(userId);
CuMember cuMember = iSaOrderService.getCuMemberByKey(userId);
// 当前会员编号
String memberCode = cuMember.getMemberCode();
// 汇率比例
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
// 商品主键列表
List<Integer> waresIdList = bdWaresExtList.stream().map(BdWares::getPkId).collect(Collectors.toList());
// 检验商品团队信息
Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = bdWaresService.getWaresAuthority(waresIdList);
Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
List<ShowWaresDTO> showWaresList = bdWaresExtList.stream().map(we -> getShowWares(we.getPkId(), userId, memberCode, waresAuthorityMap)).collect(Collectors.toList());
R<Map<Integer, Boolean>> waresShowMapDto = memberServiceApi.checkIsShowWares(showWaresList);
R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
Map<Integer, Boolean> waresShowMap = waresShowMapDto.getData();
// 商品标签列表
BdWaresLabel waresLabel = new BdWaresLabel();
waresLabel.setPkIdList(waresIdList);
List<BdLabelExt> list = waresLabelService.selectByList(waresLabel);
List<BdLabelExt> list = iBdWaresLabelService.selectByList(waresLabel);
// 标签
for (BdWaresExt bdWaresExt : bdWaresExtList) {
@ -193,14 +168,14 @@ public class ApiBdWaresController extends BaseController {
// 查询商品sku 最小值 和数量
Map<Integer, List<BdWaresSpecsSkuExt>> waresSpecsSkuMap = new HashMap<>();
if (waresIdList.size() > 0) {
List<BdWaresSpecsSkuExt> waresSpecsSkuArray = bdWaresSpecsSkuService.selectByMinWaresSpecsSkuByPkWaresList(waresIdList);
List<BdWaresSpecsSkuExt> waresSpecsSkuArray = iBdWaresSpecsSkuService.selectByMinWaresSpecsSkuByPkWaresList(waresIdList);
waresSpecsSkuMap = waresSpecsSkuArray.stream().collect(Collectors.groupingBy(BdWaresSpecsSkuExt::getPkWares));
}
List<BdWaresSpecsSkuExt> waresSpecsSkuList = new ArrayList<>();
if (waresIdList.size() > 0) {
// 查询默认规格
waresSpecsSkuList = bdWaresSpecsSkuService.selectByWaresSpecsSku(waresIdList);
waresSpecsSkuList = iBdWaresSpecsSkuService.selectByWaresSpecsSku(waresIdList);
}
List<BdWaresRange> bdWaresRangeList = new ArrayList<>();
@ -209,14 +184,14 @@ public class ApiBdWaresController extends BaseController {
|| EOrderType.COOPERATE_ORDER.getValue() == cuWaresParams.getSpecialArea()) {
// 复购业绩计算
if (waresIdList.size() > 0) {
bdWaresRangeList = bdWaresRangeService.queryWaresRangeByCondition(cuMember, waresIdList);
bdWaresRangeList = iBdWaresRangeService.queryWaresRangeByCondition(cuMember, waresIdList);
}
}
Set<Integer> waresIdSet = new HashSet<>();
List<String> authWaresList = new ArrayList<>();
if (waresIdList.size() > 0) {
// 处理商品权限
List<WaresGradeAwards> waresGradeAwardsList = waresGradeService.queryWaresGradeAwards(waresIdList);
List<WaresGradeAwards> waresGradeAwardsList = iBdWaresGradeService.queryWaresGradeAwards(waresIdList);
// 先处理没有配置等级奖衔的商品
waresGradeAwardsList.forEach(waresGradeAwards -> {
waresIdSet.add(waresGradeAwards.getPkWares());
@ -225,9 +200,6 @@ public class ApiBdWaresController extends BaseController {
});
}
// 海粉等级实体
GradeDTO haiFanGradeDTO = gradeMap.get(EGrade.HAI_FAN.getValue());
for (BdWaresExt waresExt : bdWaresExtList) {
// 校验团队信息
Boolean isShowWares = waresShowMap.get(waresExt.getPkId());
@ -283,14 +255,6 @@ public class ApiBdWaresController extends BaseController {
// 零售价
retailPrice = retailPrice.add(bdWaresSpecsSkuExt.getRetailPrice().multiply(BigDecimal.valueOf(bdWaresSpecsSkuExt.getQuantity())));
}
if (cuWaresParams.getPkCountry() != null && !pkCountry.equals(SecurityUtils.getPkCountry())) {
// 当登陆人的结算国和前端结算国不一致 即为跨国报单
if (!pkCountry.equals(SecurityUtils.getPkCountry())) {
// 跨国报单 跨国汇率
R<CurrencyDTO> kgCurrency = currencyServiceApi.getCurrency(pkCountry);
waresPrice = waresPrice.multiply(inExchangeRate).divide(kgCurrency.getData().getInExchangeRate(), 2, BigDecimal.ROUND_HALF_UP);
}
}
}
// 计算商品列表价格和业绩最小值
@ -344,7 +308,7 @@ public class ApiBdWaresController extends BaseController {
}
List<AreaCurrencyDTO> areaCurrencyDTOList = new ArrayList<>();
if (pkCurrencySet.size() > 0) {
areaCurrencyDTOList = areaCurrencyServiceApi.queryAreaCurrencyBySpecialArea(pkCurrencySet, EAccount.REPEAT.getValue());
areaCurrencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyBySpecialArea(pkCurrencySet, EAccount.REPEAT.getValue());
}
for (CuWaresParams waresParams : waresParamsList) {
@ -370,7 +334,7 @@ public class ApiBdWaresController extends BaseController {
**/
private BigDecimal getSpecialDeductRatio(CuWaresParams cuWaresParams, Integer pkCountry, Integer accountValue) {
// 查询专区所属币种
List<AreaCurrencyDTO> areaCurrencyDTOList = areaCurrencyServiceApi.queryAreaCurrencyByCondition(cuWaresParams.getSpecialArea(), pkCountry).getData();
List<AreaCurrencyDTO> areaCurrencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(cuWaresParams.getSpecialArea(), pkCountry).getData();
BigDecimal elseRatio = BigDecimal.ZERO;
BigDecimal deductRatio = BigDecimal.ZERO;
boolean flag = false;
@ -422,13 +386,8 @@ public class ApiBdWaresController extends BaseController {
return AjaxResult.error(WaresMsgConstants.WARES_NUMBER_DOES_NOT_EXIST);
}
Long loginMemberId = SecurityUtils.getUserId();
Integer pkCountry;
if (cuWaresParams.getPkCountry() == null) {
pkCountry = SecurityUtils.getPkCountry();
} else {
pkCountry = cuWaresParams.getPkCountry();
}
cuWaresParams = bdWaresSpecsSkuService.queryWaresSpecsSku(cuWaresParams.getSpecialArea(), cuWaresParams.getWaresCode(), loginMemberId, pkCountry);
Integer pkCountry = cuWaresParams.getPkCountry() == null ? SecurityUtils.getPkCountry() : cuWaresParams.getPkCountry();
cuWaresParams = iBdWaresSpecsSkuService.queryWaresSpecsSku(cuWaresParams.getSpecialArea(), cuWaresParams.getWaresCode(), loginMemberId, pkCountry);
// 预计发货时间
if (cuWaresParams.getArrivalTime() != null && cuWaresParams.getCreationTime() != null) {
@ -455,7 +414,7 @@ public class ApiBdWaresController extends BaseController {
List<AreaCurrencyDTO> areaCurrencyDTOList = new ArrayList<>();
if (pkCurrencySet.size() > 0) {
areaCurrencyDTOList = areaCurrencyServiceApi.queryAreaCurrencyBySpecialArea(pkCurrencySet, EAccount.REPEAT.getValue());
areaCurrencyDTOList = iAreaCurrencyServiceApi.queryAreaCurrencyBySpecialArea(pkCurrencySet, EAccount.REPEAT.getValue());
}
cuWaresParams.setDeductMoney(ComputeUtil.computeBonusMultiply(cuWaresParams.getWaresPrice(), deductRatio));
if (areaCurrencyDTOList.size() > 0) {
@ -483,19 +442,19 @@ public class ApiBdWaresController extends BaseController {
if (cuWaresItemsParams.getWaresCode() == null || cuWaresItemsParams.getPkWaresDetail() == null) {
return AjaxResult.error(WaresMsgConstants.WARES_NUMBER_DOES_NOT_EXIST);
}
return AjaxResult.success(bdWaresSpecsSkuService.queryWaresDetailSkuBySpecs(cuWaresItemsParams));
return AjaxResult.success(iBdWaresSpecsSkuService.queryWaresDetailSkuBySpecs(cuWaresItemsParams));
}
/**
* 查询商品
*/
@PostMapping("get-wares-agreement")
@PostMapping("/get-wares-agreement")
public AjaxResult getWaresAgreement(@RequestBody WaresAgrementParam waresAgrementParam) {
if (waresAgrementParam.getWaresCodeList().size() == 0) {
return AjaxResult.error(TransactionUtils.getContent(WaresMsgConstants.WARES_CODE_NOT_NULL));
}
List<BdAgreement> waresExtList = bdWaresService.selectByWaresCodeList(waresAgrementParam.getWaresCodeList());
List<BdAgreement> waresExtList = iBdWaresService.selectByWaresCodeList(waresAgrementParam.getWaresCodeList());
OrderAlertVo orderAlertVo = new OrderAlertVo();
Integer alertTime = 0;
orderAlertVo.setWaresExtList(waresExtList);
@ -518,34 +477,28 @@ public class ApiBdWaresController extends BaseController {
if (cuWaresParams.getSpecialArea() == null) {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.SPECIAL_AREA_NOT_EMPTY));
}
Integer pkCountry;
if (cuWaresParams.getPkCountry() != null) {
pkCountry = cuWaresParams.getPkCountry();
} else {
pkCountry = SecurityUtils.getPkCountry();
}
Integer pkCountry = cuWaresParams.getPkCountry() != null ? cuWaresParams.getPkCountry() : SecurityUtils.getPkCountry();
// 返回数据列表
List<CuWaresParams> waresParamsList = new ArrayList<>();
// 查询商品列表
List<BdWaresExt> bdWaresExtList = bdWaresService.queryRecommendWaresByCondition(cuWaresParams.getSpecialArea(), cuWaresParams.getPkAreaClassify(), cuWaresParams.getWaresName(), pkCountry);
List<BdWaresExt> bdWaresExtList = iBdWaresService.queryRecommendWaresByCondition(cuWaresParams.getSpecialArea(), cuWaresParams.getPkAreaClassify(), cuWaresParams.getWaresName(), pkCountry);
if (CollectionUtil.isNotEmpty(bdWaresExtList)) {
// 商品ID列表
List<Integer> pkWaresIds = bdWaresExtList.stream().map(BdWares::getPkId).collect(Collectors.toList());
// 当前会员
CuMember cuMember = saOrderService.getCuMemberByKey(SecurityUtils.getUserId());
CuMember cuMember = iSaOrderService.getCuMemberByKey(SecurityUtils.getUserId());
// 汇率比例
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(pkCountry);
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(pkCountry);
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
// 查询商品标签列表
BdWaresLabel waresLabel = new BdWaresLabel();
waresLabel.setPkIdList(pkWaresIds);
List<BdLabelExt> labelList = waresLabelService.selectByList(waresLabel);
List<BdLabelExt> labelList = iBdWaresLabelService.selectByList(waresLabel);
// 标签
for (BdWaresExt bdWaresExt : bdWaresExtList) {
@ -578,7 +531,7 @@ public class ApiBdWaresController extends BaseController {
Map<Integer, List<BdWaresSpecsSkuExt>> waresSpecsSkuMap = new HashMap<>();
if (pkWaresIds.size() > 0) {
List<BdWaresSpecsSkuExt> waresSpecsSkuArray = bdWaresSpecsSkuService.selectByMinWaresSpecsSkuByPkWaresList(pkWaresIds);
List<BdWaresSpecsSkuExt> waresSpecsSkuArray = iBdWaresSpecsSkuService.selectByMinWaresSpecsSkuByPkWaresList(pkWaresIds);
waresSpecsSkuMap = waresSpecsSkuArray.stream().collect(Collectors.groupingBy(BdWaresSpecsSkuExt::getPkWares));
}
@ -596,7 +549,7 @@ public class ApiBdWaresController extends BaseController {
bdWaresExtList.forEach(we -> {
waresIdSet.add(we.getPkId());
});
List<BdWaresRange> bdWaresRangeList = bdWaresRangeService.queryWaresRangeByCondition(cuMember, waresIdSet);
List<BdWaresRange> bdWaresRangeList = iBdWaresRangeService.queryWaresRangeByCondition(cuMember, waresIdSet);
for (BdWaresRange bdWaresRange : bdWaresRangeList) {
if (waresExt.getPkId().intValue() == bdWaresRange.getPkWares().intValue()) {
waresPrice = waresPrice.add(bdWaresRange.getPrice());
@ -627,29 +580,20 @@ public class ApiBdWaresController extends BaseController {
waresParams.setAssAchieve(assAchieve);
// 商品业绩计算汇率
if (waresParams.getWaresAchieve() != null) {
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
waresParams.setWaresAchieve(waresParams.getWaresAchieve().multiply(inExchangeRate));
} else {
waresParams.setWaresAchieve(waresParams.getWaresAchieve());
}
waresParams.setWaresAchieve(waresParams.getWaresAchieve().multiply(inExchangeRate));
} else {
waresParams.setWaresAchieve(BigDecimal.ZERO);
}
// 商品bv 计算
if (waresParams.getAssAchieve() != null) {
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
waresParams.setAssAchieve(waresParams.getAssAchieve().multiply(inExchangeRate));
} else {
waresParams.setAssAchieve(waresParams.getAssAchieve());
}
waresParams.setAssAchieve(waresParams.getAssAchieve().multiply(inExchangeRate));
} else {
waresParams.setAssAchieve(BigDecimal.ZERO);
}
// 查询默认规格
JSONArray jsonArray = new JSONArray();
List<BdWaresSpecsSkuExt> list = bdWaresSpecsSkuService.selectByWaresSpecsSku(Collections.singletonList(waresExt.getPkId()));
List<BdWaresSpecsSkuExt> list = iBdWaresSpecsSkuService.selectByWaresSpecsSku(Collections.singletonList(waresExt.getPkId()));
List<BdWaresSpecsSkuExt> collect = list.stream().filter(DistinctByKeyUtil.distinctByKey(BdWaresSpecsSku::getPkWaresDetail)).collect(Collectors.toList());
for (BdWaresSpecsSkuExt bdWaresSpecsSku : collect) {
JSONObject js = new JSONObject();
@ -660,9 +604,9 @@ public class ApiBdWaresController extends BaseController {
}
waresParams.setProductGroup(jsonArray);
// 查询等级配置
QueryWrapper<BdWaresGrade> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("PK_WARES", waresExt.getPkId());
List<BdWaresGrade> waresGradeList = waresGradeService.list(queryWrapper);
LambdaQueryWrapper<BdWaresGrade> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWaresGrade::getPkWares, waresExt.getPkId());
List<BdWaresGrade> waresGradeList = iBdWaresGradeService.list(queryWrapper);
if (waresGradeList.size() > 0) {
// 查询等级和商品是否存在 不存在不返回该数据
for (BdWaresGrade bdWaresGrade : waresGradeList) {
@ -670,7 +614,6 @@ public class ApiBdWaresController extends BaseController {
if (pkSettleGrade.equals(bdWaresGrade.getPkRange())) {
waresParamsList.add(waresParams);
}
}
} else {
waresParamsList.add(waresParams);
@ -685,18 +628,17 @@ public class ApiBdWaresController extends BaseController {
*
* @return
*/
@PostMapping("get-wares-info")
@PostMapping("/get-wares-info")
public AjaxResult getWaresInfo(@RequestBody WaresInfoParam waresInfoParam) {
BdWares wares = bdWaresService.getWares(waresInfoParam.getPkWares());
BdWares wares = iBdWaresService.getWares(waresInfoParam.getPkWares());
WaresInfoVo waresInfoVo = new WaresInfoVo();
waresInfoVo.setWaresName(wares.getWaresName());
waresInfoVo.setNumber(waresInfoParam.getNumber());
waresInfoVo.setPkWares(wares.getPkId());
waresInfoVo.setCover(wares.getCover1());
List<Integer> waresSpecsSkuList = waresInfoParam.getWaresSpecsSku().stream().map(WaresSpecsSkuParam::getPkWaresSpecsSku).collect(Collectors.toList());
List<WaresItemWaresInfo> waresItemWaresInfos = bdWaresSpecsSkuService.selectByPkIds(waresSpecsSkuList);
List<WaresItemWaresInfo> waresItemWaresInfos = iBdWaresSpecsSkuService.selectByPkIds(waresSpecsSkuList);
BigDecimal waresPrice = BigDecimal.ZERO;
BigDecimal pv = BigDecimal.ZERO;
BigDecimal waresPriceAmount = BigDecimal.ZERO;
@ -711,14 +653,11 @@ public class ApiBdWaresController extends BaseController {
}
}
}
Integer pkCountry = SecurityUtils.getPkCountry();
if (CountryConstants.CHINA_COUNTRY.equals(pkCountry)) {
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(pkCountry);
// 汇率比例
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
pv = ComputeUtil.computeMultiply(pv, inExchangeRate);
pvAmount = ComputeUtil.computeMultiply(pvAmount, inExchangeRate);
}
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
// 汇率比例
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
pv = ComputeUtil.computeMultiply(pv, inExchangeRate);
pvAmount = ComputeUtil.computeMultiply(pvAmount, inExchangeRate);
waresInfoVo.setWaresPrice(waresPrice);
waresInfoVo.setPv(pv);
waresInfoVo.setWaresCode(wares.getWaresCode());

View File

@ -8,9 +8,6 @@ import java.util.List;
/**
* 商品标签表 Mapper 接口
*
* @author hzs
* @since 2022-10-21
*/
public interface BdWaresLabelMapper extends BaseMapper<BdWaresLabel> {

View File

@ -8,12 +8,15 @@ import java.util.List;
/**
* 商品标签表 服务类
*
* @author hzs
* @since 2022-10-21
*/
public interface IBdWaresLabelService extends IService<BdWaresLabel> {
/**
* 根据商品查询 商品所属标签
*
* @param waresLabel
* @return
*/
List<BdLabelExt> selectByList(BdWaresLabel waresLabel);
}

View File

@ -8,9 +8,6 @@ import java.util.List;
/**
* 极差明细表 服务类
*
* @author hzs
* @since 2022-09-09
*/
public interface IBdWaresRangeService extends IService<BdWaresRange> {
@ -19,9 +16,6 @@ public interface IBdWaresRangeService extends IService<BdWaresRange> {
*
* @param cuMember 会员
* @param pkWareList 商品主键
* @return: List<BdWaresRange>
* @Author: sui q
* @Date: 2022/9/26 16:48
*/
List<BdWaresRange> queryWaresRangeByCondition(CuMember cuMember, List<Integer> pkWareList);
@ -32,9 +26,6 @@ public interface IBdWaresRangeService extends IService<BdWaresRange> {
* @param rangeType 类型
* @param level 基本
* @param specsSkuList 最小库存单位
* @return: List<BdWaresRange>
* @Author: sui q
* @Date: 2022/9/26 15:33
*/
List<BdWaresRange> querySkuWaresRangeByCondition(Integer pkCountry, Integer rangeType, Integer level, List<Integer> specsSkuList);

View File

@ -13,19 +13,10 @@ import java.util.List;
/**
* 商品标签表 服务实现类
*
* @author hzs
* @since 2022-10-21
*/
@Service
public class BdWaresLabelServiceImpl extends ServiceImpl<BdWaresLabelMapper, BdWaresLabel> implements IBdWaresLabelService {
/**
* 根据商品查询 商品所属标签
*
* @param waresLabel
* @return
*/
@Override
public List<BdLabelExt> selectByList(BdWaresLabel waresLabel) {
return baseMapper.selectByList(waresLabel);

View File

@ -1,10 +1,9 @@
package com.hzs.sale.wares.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.enums.EAwards;
import com.hzs.common.core.enums.ERangeType;
import com.hzs.common.domain.member.base.CuMember;
@ -23,28 +22,25 @@ import java.util.List;
/**
* 极差明细表 服务实现类
*
* @author hzs
* @since 2022-09-09
*/
@Service
public class BdWaresRangeServiceImpl extends ServiceImpl<BdWaresRangeMapper, BdWaresRange> implements IBdWaresRangeService {
@DubboReference
IRangeServiceApi rangeServiceApi;
IRangeServiceApi iRangeServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
IAwardsServiceApi iAwardsServiceApi;
@Override
public List<BdWaresRange> queryWaresRangeByCondition(CuMember cuMember, List<Integer> pkWareList) {
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 ArrayList<>();
}
@ -53,19 +49,13 @@ public class BdWaresRangeServiceImpl extends ServiceImpl<BdWaresRangeMapper, BdW
@Override
public List<BdWaresRange> querySkuWaresRangeByCondition(Integer pkCountry, Integer rangeType, Integer level, List<Integer> specsSkuList) {
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(pkCountry, rangeType, level).getData();
QueryWrapper<BdWaresRange> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SystemFieldConstants.PK_RANGE, rangeDTO.getPkRange());
queryWrapper.in(SystemFieldConstants.PK_WARES_SPECS_SKU, specsSkuList);
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(pkCountry, rangeType, level).getData();
LambdaQueryWrapper<BdWaresRange> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWaresRange::getPkRange, rangeDTO.getPkRange());
queryWrapper.in(BdWaresRange::getPkWaresSpecsSku, specsSkuList);
return baseMapper.selectList(queryWrapper);
}
/**
* 以range 为主表查询商品极差信息
*
* @param pkWares
* @return
*/
@Override
public List<BdWaresRange> queryWaresList(Long pkWares, Integer pkCountry) {
return baseMapper.queryWaresList(pkWares, pkCountry);
@ -74,7 +64,7 @@ public class BdWaresRangeServiceImpl extends ServiceImpl<BdWaresRangeMapper, BdW
@Override
public List<BdWaresRange> listRetailWaresRange(Integer pkGrade, List<Integer> pkWareList) {
// 新零售只有等级级差不需要处理奖衔
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(CountryConstants.CHINA_COUNTRY, ERangeType.GRADE.getValue(), pkGrade).getData();
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(CountryConstants.CHINA_COUNTRY, ERangeType.GRADE.getValue(), pkGrade).getData();
if (rangeDTO == null) {
return new ArrayList<>();
}

View File

@ -9,9 +9,6 @@ import java.util.List;
/**
* 极差配置 Mapper 接口
*
* @author zhangjing
* @since 2022-09-09
*/
public interface BdRangeMapper extends BaseMapper<BdRange> {
@ -21,9 +18,6 @@ public interface BdRangeMapper extends BaseMapper<BdRange> {
* @param pkCountry 国家
* @param rangeType 极差类型
* @param pkLevel 等级
* @return: Map<String, RangeDTO>
* @Author: sui q
* @Date: 2023/1/3 14:00
*/
List<RangeDTO> queryRangeDto(@Param("pkCountry") Integer pkCountry,
@Param("rangeType") Integer rangeType,

View File

@ -1,48 +0,0 @@
package com.hzs.system.config.provider;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdAdvertBanner;
import com.hzs.system.config.AdvertBannerServiceApi;
import com.hzs.system.config.dto.AdvertBannerDTO;
import com.hzs.system.config.service.IBdAdvertBannerService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.system.config.provider
* @Author: yh
* @CreateTime: 2023-05-15 10:14
* @Description:
* @Version: 1.0
*/
@DubboService
public class AdvertBannerServiceProvider implements AdvertBannerServiceApi {
@Autowired
private IBdAdvertBannerService advertBannerService;
/**
* 查询全部banner
*
* @return
*/
@Override
public R<List<AdvertBannerDTO>> findAll() {
List<AdvertBannerDTO> bannerDTOList = new ArrayList<>();
List<BdAdvertBanner> bannerList = advertBannerService.listData(null);
if (CollectionUtil.isNotEmpty(bannerList)) {
bannerDTOList = bannerList.stream().map(advertBanner -> BeanUtil.copyProperties(advertBanner, AdvertBannerDTO.class)).collect(Collectors.toList());
}
return R.ok(bannerDTOList);
}
}

View File

@ -12,37 +12,27 @@ import java.util.List;
import java.util.Map;
/**
* @description: 极差配置
* @author: zhang jing
* @date: 2022/11/10 17:02
* @param:
* @return:
* 极差配置
**/
@DubboService
public class RangeServiceProvider implements IRangeServiceApi {
@Autowired
private IBdRangeService rangeService;
private IBdRangeService iBdRangeService;
/**
* @description: 根据国家查询极差配置列表
* @author: zhang jing
* @date: 2022/9/29 15:17
* @param: [pkCountry]
* @return: com.hzs.common.core.domain.R<java.util.List < com.hzs.common.domain.system.config.BdAwards>>
**/
@Override
public R<List<BdRangeExt>> queryRange(Integer pkCountry) {
return R.ok(rangeService.queryRange(pkCountry));
return R.ok(iBdRangeService.queryRange(pkCountry));
}
@Override
public R<Map<String, RangeDTO>> queryRangeDto() {
return R.ok(rangeService.queryRangeDto());
return R.ok(iBdRangeService.queryRangeDto());
}
@Override
public R<RangeDTO> queryRangeDtoByCondition(Integer pkCountry, Integer rangeType, Integer pkLevel) {
return R.ok(rangeService.getRangeDTO(pkCountry, rangeType, pkLevel));
return R.ok(iBdRangeService.getRangeDTO(pkCountry, rangeType, pkLevel));
}
}

View File

@ -9,48 +9,27 @@ import java.util.List;
import java.util.Map;
/**
* <p>
* 极差配置 服务类
* </p>
*
* @author zhangjing
* @since 2022-09-09
*/
public interface IBdRangeService extends IService<BdRange> {
/**
* @description: 新增极差
* @author: zhang jing
* @date: 2022/10/28 14:23
* @param: [rangeExt]
* @return: boolean
* 新增极差
**/
boolean saveRange(BdRangeExt rangeExt);
/**
* @description: 修改极差
* @author: zhang jing
* @date: 2022/10/28 14:23
* @param: [rangeExt]
* @return: boolean
* 修改极差
**/
boolean updateRange(BdRangeExt rangeExt);
/**
* @description: 根据国家查询极差配置列表
* @author: zhang jing
* @date: 2022/11/11 18:02
* @param: [pkCountry]
* @return: java.util.List<com.hzs.common.domain.system.config.BdRange>
* 根据国家查询极差配置列表
**/
List<BdRangeExt> queryRange(Integer pkCountry);
/**
* 查询各个国家极差的配置 键为 国家+极差类型+等级主键
*
* @return: Map<String, RangeDTO>
* @Author: sui q
* @Date: 2023/1/3 14:00
*/
Map<String, RangeDTO> queryRangeDto();
@ -60,9 +39,6 @@ public interface IBdRangeService extends IService<BdRange> {
* @param pkCountry 国家
* @param rangeType 极差类型
* @param pkLevel 等级主键
* @return: RangeDTO
* @Author: sui q
* @Date: 2023/2/4 15:54
*/
RangeDTO getRangeDTO(Integer pkCountry, Integer rangeType, Integer pkLevel);
}

View File

@ -7,20 +7,17 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.constant.Constants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.domain.system.config.BdRange;
import com.hzs.common.domain.system.config.BdRangeDetails;
import com.hzs.common.domain.system.config.ext.BdRangeExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.system.base.ITransactionServiceApi;
import com.hzs.system.config.dto.RangeDTO;
import com.hzs.system.config.mapper.BdRangeMapper;
import com.hzs.system.config.service.IBdRangeDetailsService;
import com.hzs.system.config.service.IBdRangeService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -29,40 +26,18 @@ import java.util.concurrent.TimeUnit;
/**
* 极差配置 服务实现类
*
* @author zhangjing
* @since 2022-09-09
*/
@Slf4j
@Service
public class BdRangeServiceImpl extends ServiceImpl<BdRangeMapper, BdRange> implements IBdRangeService {
@Autowired
private IBdRangeDetailsService rangeDetailsService;
@DubboReference
ITransactionServiceApi iTransactionServiceApi;
private IBdRangeDetailsService iBdRangeDetailsService;
@Autowired
private RedisService redisService;
@Autowired
public void setRedisService(RedisService redisService) {
this.redisService = redisService;
}
/**
* @description: 新增极差
* @author: zhang jing
* @date: 2022/10/28 14:23
* @param: [rangeExt]
* @return: boolean
**/
@Override
public boolean saveRange(BdRangeExt rangeExt) {
//字段翻译保存到数据库
R<Integer> pkTransaction = iTransactionServiceApi.createTransaction(rangeExt.getPkCountry(), ETransactionKey.RANGE,
rangeExt.getRangeName(), EYesNo.YES, EYesNo.NO);
rangeExt.setPkTransaction(pkTransaction.getData());
LambdaQueryWrapper<BdRange> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdRange::getPkCountry, rangeExt.getPkCountry());
queryWrapper.eq(BdRange::getRangeValue, rangeExt.getRangeValue());
@ -80,7 +55,7 @@ public class BdRangeServiceImpl extends ServiceImpl<BdRangeMapper, BdRange> impl
rangeDetails.setPkCountry(SecurityUtils.getPkCountry());
rangeDetails.setPkCreator(SecurityUtils.getUserId());
rangeDetails.setCreationTime(new Date());
rangeDetailsService.save(rangeDetails);
iBdRangeDetailsService.save(rangeDetails);
}
//奖衔
for (Integer aw : awardsList) {
@ -91,31 +66,20 @@ public class BdRangeServiceImpl extends ServiceImpl<BdRangeMapper, BdRange> impl
rangeDetails.setPkCountry(SecurityUtils.getPkCountry());
rangeDetails.setPkCreator(SecurityUtils.getUserId());
rangeDetails.setCreationTime(new Date());
rangeDetailsService.save(rangeDetails);
iBdRangeDetailsService.save(rangeDetails);
}
}
redisService.deleteObject(CacheConstants.BD_RANGE + rangeExt.getPkCountry());
return true;
}
/**
* @description: 修改极差
* @author: zhang jing
* @date: 2022/10/28 14:23
* @param: [rangeExt]
* @return: boolean
**/
@Override
public boolean updateRange(BdRangeExt rangeExt) {
//字段翻译保存到数据库
R<Integer> pkTransaction = iTransactionServiceApi.createTransaction(rangeExt.getPkCountry(), ETransactionKey.RANGE,
rangeExt.getRangeName(), EYesNo.YES, EYesNo.NO);
rangeExt.setPkTransaction(pkTransaction.getData());
baseMapper.updateById(rangeExt);
LambdaUpdateWrapper<BdRangeDetails> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(BdRangeDetails::getDelFlag, EYesNo.NO.getIntValue());
updateWrapper.eq(BdRangeDetails::getPkRange, rangeExt.getPkId());
rangeDetailsService.update(updateWrapper);
iBdRangeDetailsService.update(updateWrapper);
List<Integer> gradeList = rangeExt.getGradeList();
List<Integer> awardsList = rangeExt.getAwardsList();
//等级
@ -127,7 +91,7 @@ public class BdRangeServiceImpl extends ServiceImpl<BdRangeMapper, BdRange> impl
rangeDetails.setPkCountry(SecurityUtils.getPkCountry());
rangeDetails.setPkCreator(SecurityUtils.getUserId());
rangeDetails.setCreationTime(new Date());
rangeDetailsService.save(rangeDetails);
iBdRangeDetailsService.save(rangeDetails);
}
//奖衔
for (Integer aw : awardsList) {
@ -138,20 +102,12 @@ public class BdRangeServiceImpl extends ServiceImpl<BdRangeMapper, BdRange> impl
rangeDetails.setPkCountry(SecurityUtils.getPkCountry());
rangeDetails.setPkCreator(SecurityUtils.getUserId());
rangeDetails.setCreationTime(new Date());
rangeDetailsService.save(rangeDetails);
iBdRangeDetailsService.save(rangeDetails);
}
redisService.deleteObject(CacheConstants.BD_RANGE + rangeExt.getPkCountry());
return true;
}
/**
* @description: 根据国家查询极差配置列表
* @author: zhang jing
* @date: 2022/11/11 18:07
* @param: [pkCountry]
* @return: java.util.List<com.hzs.common.domain.system.config.BdRange>
**/
@Override
public List<BdRangeExt> queryRange(Integer pkCountry) {
List<BdRangeExt> rangeList = redisService.getCacheList(CacheConstants.BD_RANGE + pkCountry);

View File

@ -214,7 +214,7 @@ public class EnumsController extends BaseController {
List<EnumEntity> enumEntityList = new ArrayList<>();
for (EAwards value : EAwards.values()) {
if (value.getEnable() == EYesNo.YES.getIntValue()) {
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.AWARDS));
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
}
}
return AjaxResult.success(enumEntityList);
@ -228,7 +228,7 @@ public class EnumsController extends BaseController {
List<EnumEntity> enumEntityList = new ArrayList<>();
for (EAwardsLevel value : EAwardsLevel.values()) {
if (value.getEnable() == EYesNo.YES.getIntValue()) {
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.AWARDS_LEVEL));
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
}
}
return AjaxResult.success(enumEntityList);

View File

@ -90,11 +90,7 @@ public class EnumsInitController {
initList.add(this.createData(value.getKey(), value.getLabel()));
}
// 奖衔枚举枚举
for (EAwards value : EAwards.values()) {
initList.add(this.createData(value.getKey(), value.getLabel()));
}
// 等级枚举枚举
// 等级枚举枚举
for (EGrade value : EGrade.values()) {
initList.add(this.createData(value.getKey(), value.getLabel()));
}

View File

@ -55,11 +55,6 @@ public class SystemFieldConstants {
*/
public static final String MODIFIED_TIME = "MODIFIED_TIME";
/**
* 国家
*/
public static final String PK_COUNTRY_VALUE = "pkCountry";
/**
* 国家
*/
@ -70,46 +65,6 @@ public class SystemFieldConstants {
*/
public static final String PK_CORP = "pk_corp";
/**
* 等级值
*/
public static final String GRADE_VALUE = "grade_value";
/**
* 等级结算值
*/
public static final String START_VALUE = "start_value";
/**
* 极差类型
*/
public static final String RANGE_TYPE = "range_type";
/**
* 级别
*/
public static final String PK_LEVEL = "pk_level";
/**
* 极差
*/
public static final String PK_RANGE = "pk_range";
/**
* 规格sku主键
*/
public static final String PK_WARES_SPECS_SKU = "pk_wares_specs_sku";
/**
* 商品明细主键
*/
public static final String PK_WARES_DETAIL = "PK_WARES_DETAIL";
/**
* 商品主键
*/
public static final String PK_WARES = "PK_WARES";
/**
* 审核状态
*/

View File

@ -1,6 +1,5 @@
package com.hzs.common.core.enums;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -14,77 +13,73 @@ public enum EAwards {
/**
* -1=海粉
*/
SEA_FLOUR(0, -1, "海粉", 1, EnumsPrefixConstants.AWARDS + "-1"),
SEA_FLOUR(0, -1, "海粉", 1),
/**
* 0=
*/
MEMBER(1, 0, "", 0, EnumsPrefixConstants.AWARDS + 0),
MEMBER(1, 0, "", 0),
/**
* 黄宝
*/
HEADER(2, 5, "一级", 0, EnumsPrefixConstants.AWARDS + 5),
HEADER(2, 5, "一级", 0),
/**
* 绿宝
*/
MANAGER(3, 10, "二级", 0, EnumsPrefixConstants.AWARDS + 10),
MANAGER(3, 10, "二级", 0),
/**
* 蓝宝
*/
HIGH_MANAGER(4, 15, "三级", 0, EnumsPrefixConstants.AWARDS + 15),
HIGH_MANAGER(4, 15, "三级", 0),
/**
* 钻石
*/
SENIOR_MANAGER(5, 20, "四级", 0, EnumsPrefixConstants.AWARDS + 20),
SENIOR_MANAGER(5, 20, "四级", 0),
/**
* 黄钻
*/
CHIEF(6, 25, "五级", 0, EnumsPrefixConstants.AWARDS + 25),
CHIEF(6, 25, "五级", 0),
/**
* 绿钻
*/
HIGH_CHIEF(7, 30, "六级", 0, EnumsPrefixConstants.AWARDS + 30),
HIGH_CHIEF(7, 30, "六级", 0),
/**
* 星耀蓝钻
*/
SENIOR_CHIEF(8, 35, "七级", 0, EnumsPrefixConstants.AWARDS + 35),
SENIOR_CHIEF(8, 35, "七级", 0),
/**
* 王者红钻
*/
CHAIRMAN(9, 40, "八级", 0, EnumsPrefixConstants.AWARDS + 40),
CHAIRMAN(9, 40, "八级", 0),
/**
* 传奇紫钻
*/
HONOR_CHAIRMAN(10, 45, "九级", 0, EnumsPrefixConstants.AWARDS + 45),
HONOR_CHAIRMAN(10, 45, "九级", 0),
/**
* 10
*/
GLOBAL_CHAIRMAN(11, 50, "十级", 0, EnumsPrefixConstants.AWARDS + 50),
GLOBAL_CHAIRMAN(11, 50, "十级", 0),
/**
* 11
*/
LEVEL_ELEVEN(12, 55, "十一级", 0, EnumsPrefixConstants.AWARDS + 55),
LEVEL_ELEVEN(12, 55, "十一级", 0),
/**
* 12
*/
LEVEL_TWELVE(13, 60, "十二级", 0, EnumsPrefixConstants.AWARDS + 60),
LEVEL_TWELVE(13, 60, "十二级", 0),
/**
* 13
*/
LEVEL_THIRTEEN(14, 65, "十三级", 0, EnumsPrefixConstants.AWARDS + 65),
LEVEL_THIRTEEN(14, 65, "十三级", 0),
/**
* 14
*/
LEVEL_FOURTEEN(15, 70, "十四级", 0, EnumsPrefixConstants.AWARDS + 70),
LEVEL_FOURTEEN(15, 70, "十四级", 0),
/**
* 15
*/
LEVEL_FIFTEEN(16, 75, "十五级", 0, EnumsPrefixConstants.AWARDS + 75),
LEVEL_FIFTEEN(16, 75, "十五级", 0),
;
@ -105,17 +100,29 @@ public enum EAwards {
* 是否启用0=,1= -- 来源EYesNo
*/
private final int enable;
/**
* 国际化翻译key值
*/
private final String key;
public static String getAwardsLabel(int value) {
for (EAwards eAwards : EAwards.values()) {
if (eAwards.value == value) {
return eAwards.label;
}
/**
* 根据枚举值获取等级枚举值用于级差枚举值转换
*
* @param value
* @return
*/
public static Integer getGradeValueByValue(int value) {
if (EGrade.START_UP.getValue() == value) {
return EAwards.MEMBER.getValue();
} else if (EGrade.HAI_FAN.getValue() == value) {
return EAwards.HEADER.getValue();
} else if (EGrade.YOU_KE.getValue() == value) {
return EAwards.MANAGER.getValue();
} else if (EGrade.MAKER.getValue() == value) {
return EAwards.HIGH_MANAGER.getValue();
} else if (EGrade.VIP.getValue() == value) {
return EAwards.SENIOR_MANAGER.getValue();
} else if (EGrade.S_VIP.getValue() == value) {
return EAwards.CHIEF.getValue();
}
return "";
return 0;
}
}

View File

@ -198,4 +198,10 @@ public class SaOrderItems extends BaseEntity {
@TableField(exist = false)
private String wareCode;
/**
* 商品上传盒数
*/
@TableField(exist = false)
private BigDecimal waresBoxNum;
}

View File

@ -47,7 +47,7 @@ public class SaOrderWares extends BaseEntity {
* 商品数量
*/
@TableField("WARES_QUANTITY")
private Integer waresQuantity;
private BigDecimal waresQuantity;
/**
* 商品价格

View File

@ -12,12 +12,7 @@ import lombok.experimental.Accessors;
import java.util.List;
/**
* <p>
* 商品标签表
* </p>
*
* @author hzs
* @since 2022-10-21
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -15,12 +15,7 @@ import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* <p>
* 极差配置
* </p>
*
* @author zhangjing
* @since 2022-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ -37,7 +32,7 @@ public class BdRange extends BaseEntity {
/**
* 极差名称
*/
@Excel(name = "极差名称",sort=1)
@Excel(name = "极差名称", sort = 1)
@TableField("RANGE_NAME")
private String rangeName;
/**
@ -46,7 +41,7 @@ public class BdRange extends BaseEntity {
@TableField("RANGE_VALUE")
@Transaction(transactionKey = EnumsPrefixConstants.AWARDS)
private Integer rangeValue;
@Excel(name = "极差值",sort=2)
@Excel(name = "极差值", sort = 2)
@TableField(exist = false)
private String rangeValueVal;

View File

@ -121,33 +121,3 @@ delivery:
appKey: 204784177
appSecret: KrTbnrAV01j7bIQ5mpr3W0FB73KvjaG8
appCode: 7390ccb8230f4e74a1b0ba31ec6f1419
## 京东收银台支付配置
jd:
bank:
## 二级商户号
merchantNo: 153428607011
## 签名密钥
signKey: edad31b00269a3c843268f4ff4dab5f079106a328795495922c11f50faf9d0c6
## 证书加密密码
priCertPwd: bf147258369
## 私钥文件名
priCert: jd/merchantCert011.pfx
## 公钥文件名
pubCert: jd/npp_11_API2_pro.cer
## 生产环境api接口域名
apiDomain: http://wapi.jd.com
## 页面回调地址
# pageBackUrl: https://t-app.beida666.com/prod-api/pay/jd/sync-notify
pageBackUrl: http://t-app.beida777.com/#/pages/pay/success
## 支付回调地址
notifyUrl: https://t-app.beida777.com/pay/jd/trade-notify
# notifyUrl: https://b747-218-57-66-5.ngrok-free.app/pay/jd/trade-notify
## 退款回调地下
refundNotifyUrl: https://t-app.beida777.com/pay/jd-refund/trade-notify
# refundNotifyUrl: https://b747-218-57-66-5.ngrok-free.app/pay/jd-refund/trade-notify
separateAccounts:
- account: 153428607011
proportion: 0.7
- account: 153428607013
proportion: 0.3