3
0
Fork 0

## 注册相关接口修改完善;

This commit is contained in:
cabbage 2025-06-09 15:12:43 +08:00
parent 66a246bab9
commit e635528d63
39 changed files with 490 additions and 582 deletions

View File

@ -1195,7 +1195,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
continue;
}
// 推荐V1 有额外100
// CuMemberRetailRangeExt parentMemberRangeExt = memberRangeExtMap.get(memberRangeExtMap.get(saOrderExt.getPkMember()).getPkParent());
int calGradeValue = targetMemberRangeExt.getGradeValue();
// 如果价格是209代表是第一单激活只有平级收益只有V5有平级收益
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {

View File

@ -43,11 +43,7 @@ import java.math.BigDecimal;
import java.util.*;
/**
* @Description: 会员控制器
* @Author: jiang chao
* @Time: 2023/1/10 15:18
* @Classname: ApiMemberController
* @PackageName: com.hzs.member.base.controller.api
* 会员控制器
*/
@Slf4j
@RequestMapping("/api/member")
@ -68,19 +64,19 @@ public class ApiMemberController extends BaseController {
@DubboReference
ICurrencyServiceApi currencyServiceApi;
/**
* 获取登录会员信息
*
* @return
*/
@GetMapping("/get-info")
public AjaxResult getInfo() {
MemberInfoVO memberInfo = iMemberInfoService.getMemberInfo(SecurityUtils.getUserId());
if (null == memberInfo) {
return AjaxResult.error();
}
return AjaxResult.success(memberInfo);
}
// /**
// * 获取登录会员信息
// *
// * @return
// */
// @GetMapping("/get-info")
// public AjaxResult getInfo() {
// MemberInfoVO memberInfo = iMemberInfoService.getMemberInfo(SecurityUtils.getUserId());
// if (null == memberInfo) {
// return AjaxResult.error();
// }
// return AjaxResult.success(memberInfo);
// }
/**
* 更新个人资料昵称

View File

@ -3207,15 +3207,17 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
* @return
*/
private String checkRegisterRelation(String phone, Integer systemType) {
if (this.count(Wrappers.<CuMember>lambdaQuery()
.eq(CuMember::getPhone, phone)
.eq(CuMember::getCategory, ECategory.NORMAL.getValue())
.eq(CuMember::getSystemType, systemType)
) == 0) {
// 手机号不存在可以进行注册
return null;
}
return "注册信息已存在,请重新输入注册信息";
// TODO new 手机号可以重复不需要进行是否重复校验
return null;
// if (this.count(Wrappers.<CuMember>lambdaQuery()
// .eq(CuMember::getPhone, phone)
// .eq(CuMember::getCategory, ECategory.NORMAL.getValue())
// .eq(CuMember::getSystemType, systemType)
// ) == 0) {
// // 手机号不存在可以进行注册
// return null;
// }
// return "注册信息已存在,请重新输入注册信息";
}
/**

View File

@ -16,7 +16,6 @@ import javax.servlet.http.HttpServletRequest;
/**
* 会员端 token 控制
*
* @author hzs
*/
@RequestMapping("/auth/api")
@RestController
@ -28,20 +27,20 @@ public class MemberTokenController {
@Autowired
private IMemberLoginService iMemberLoginService;
/**
* 会员登录
*
* @param form
* @return
*/
@PostMapping("/login")
public AjaxResult login(@RequestBody LoginBody form) {
// 用户登录
LoginMember loginMember = iMemberLoginService.login(form.getUsername(), form.getPassword());
// 获取登录token
return AjaxResult.success(memberTokenService.createToken(loginMember));
}
// /**
// * 会员登录
// *
// * @param form
// * @return
// */
// @PostMapping("/login")
// public AjaxResult login(@RequestBody LoginBody form) {
// // 用户登录
// LoginMember loginMember = iMemberLoginService.login(form.getUsername(), form.getPassword());
//
// // 获取登录token
// return AjaxResult.success(memberTokenService.createToken(loginMember));
// }
/**
* 会员登出

View File

@ -107,13 +107,15 @@ public class ApiRetailOrderController {
orderLevelVO.setMsg("会员不满足升级条件");
}
} catch (Exception e) {
if (EYesNo.YES.getIntValue() == levelParam.getFirstCheck()) {
// 2024.12.25 -- 添加需求首次校验不需要进行提示错误9050
orderLevelVO.setIsEnough(true);
return AjaxResult.success(orderLevelVO);
} else {
throw e;
}
log.error("校验会员等级异常", e);
orderLevelVO.setMsg("校验会员等级异常");
// if (EYesNo.YES.getIntValue() == levelParam.getFirstCheck()) {
// // 2024.12.25 -- 添加需求首次校验不需要进行提示错误9050
// orderLevelVO.setIsEnough(true);
// return AjaxResult.success(orderLevelVO);
// } else {
// throw e;
// }
}
return AjaxResult.success(orderLevelVO);
}
@ -147,11 +149,11 @@ public class ApiRetailOrderController {
*/
@PostMapping("/valid-relation")
public AjaxResult validRelation(@Valid @RequestBody RetailOrderRelationParam relationParam) {
// 校验注册关系是否跨团队 -- 2024.12.24 修改为校验手机号必须唯一9035
String relationStr = iMemberServiceApi.checkRegisterRelation(relationParam.getPhone(), relationParam.getParentCode()).getData();
if (relationStr != null) {
return AjaxResult.error(relationStr);
}
// TODO new 手机号可以重复不需要进行是否重复校验 -- 已经跳过此处可以不需要当前判断
// String relationStr = iMemberServiceApi.checkRegisterRelation(relationParam.getPhone(), relationParam.getParentCode()).getData();
// if (relationStr != null) {
// return AjaxResult.error(relationStr);
// }
return AjaxResult.success();
}
@ -225,11 +227,12 @@ public class ApiRetailOrderController {
return AjaxResult.error(checkStr);
}
// 校验注册关系是否跨团队 -- 2024.12.24 修改为校验手机号必须唯一
String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
if (relationStr != null) {
return AjaxResult.error(relationStr);
}
// TODO new 手机号可以重复不需要进行是否重复校验 -- 已经跳过此处可以不需要当前判断
// // 校验注册关系是否跨团队 -- 2024.12.24 修改为校验手机号必须唯一
// String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
// if (relationStr != null) {
// return AjaxResult.error(relationStr);
// }
// 购物车中获取商品信息
registerParam.setOrderItemsParams(convertShoppingCarToSku(registerParam.getPkCreator(), registerParam.getShopList()));
@ -268,11 +271,12 @@ public class ApiRetailOrderController {
return AjaxResult.error(checkStr);
}
// 校验注册关系是否跨团队 -- 2024.12.24 修改为校验手机号必须唯一
String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
if (relationStr != null) {
return AjaxResult.error(relationStr);
}
// TODO new 手机号可以重复不需要进行是否重复校验 -- 已经跳过此处可以不需要当前判断
// // 校验注册关系是否跨团队 -- 2024.12.24 修改为校验手机号必须唯一
// String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
// if (relationStr != null) {
// return AjaxResult.error(relationStr);
// }
// 封装会员信息
CuMember newMember = iRetailOrderService.packageCuMember(registerParam);
@ -649,12 +653,12 @@ public class ApiRetailOrderController {
orderParam.setPkParent(orderParam.getPkCreator());
if (!creatorMember.getMemberCode().equals(orderParam.getParentCode())) {
// 校验推荐人是否大于V0不然不能当推荐人
CuMember parentMember = iMemberServiceApi.getRetailMember(null, orderParam.getParentCode()).getData();
if (null == parentMember) {
return "推荐编号不存在";
}
// // 校验推荐人等级是否为V0如果是V0不能进行注册
// // 校验推荐人是否大于V0不然不能当推荐人
// BdGrade parentGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(parentMember.getPkSettleGrade())).findFirst().get();
// if (EGrade.START_UP.getValue() == parentGrade.getGradeValue()) {
// return orderParam.getParentCode() + " 不能做为推荐人";

View File

@ -20,6 +20,7 @@ import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
import com.hzs.common.domain.sale.order.*;
import com.hzs.common.domain.sale.product.BdProduct;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.config.BdGrade;
@ -36,6 +37,7 @@ import com.hzs.sale.order.param.OrderItemsParam;
import com.hzs.sale.order.param.WaresNumberParam;
import com.hzs.sale.order.service.*;
import com.hzs.sale.order.service.impl.SaOrderHandle;
import com.hzs.sale.product.service.IBdProductService;
import com.hzs.sale.wares.service.IBdWaresDetailService;
import com.hzs.sale.wares.service.IBdWaresExtendService;
import com.hzs.sale.wares.service.IBdWaresRangeService;
@ -82,6 +84,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
private ISaOrderTempService iSaOrderTempService;
@Autowired
private ISaOrderWaresLimitService iSaOrderWaresLimitService;
@Autowired
private IBdProductService iBdProductService;
@Autowired
private RedisService redisService;
@ -107,9 +111,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 封装订单信息
SaOrderExt saOrderExt = this.createSaOrder(registerParam, gradeList, newMember);
// 测试环境特殊处理
this.testHandle(registerParam.getPkCreator(), saOrderExt);
// 订单缓存60分钟有效防止在线支付回调慢
redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode(), saOrderExt, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES);
registerParam.setPkGrade(newMember.getPkSettleGrade());
@ -130,9 +131,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 封装订单信息
SaOrderExt saOrderExt = this.createSaOrder(upgradeParam, null, upgradeMember);
// 测试环境特殊处理
this.testHandle(upgradeParam.getPkCreator(), saOrderExt);
// 订单缓存60分钟有效防止在线支付回调慢
redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + upgradeParam.getPkCreator() + upgradeParam.getOrderCode(), saOrderExt, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES);
upgradeParam.setPkGrade(upgradeMember.getPkSettleGrade());
@ -213,9 +211,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
|| ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()
|| ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
// 2025.02.24 升级专区取消复购盒数商品满足条件也可以升级
|| ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) {
// 注册升级订单计算会员等级
BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList, cuMember, orderParam.getSystemType());
// if (null == newGrade) {
@ -268,10 +264,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 订单明细信息
List<SaOrderItems> orderItemsList = new ArrayList<>();
// 需要计算等级以及商品价格
if (CollectionUtil.isEmpty(gradeList)) {
gradeList = iGradeServiceApi.getRetailGradeList().getData();
}
// // 需要计算等级以及商品价格
// if (CollectionUtil.isEmpty(gradeList)) {
// gradeList = iGradeServiceApi.getRetailGradeList().getData();
// }
if (null == currency) {
currency = iCurrencyServiceApi.getCurrency(orderParam.getPkCountry()).getData();
}
@ -283,127 +279,131 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 邮费模板mapkey邮费模板IDvalue邮费订单明细
Map<Integer, List<SaOrderItems>> postageMap = new HashMap<>(ComputeUtil.mapInitCapacity(waresDetailExtList.size()));
// 升级盒数基数
int baseBoxNum = 0;
// // 是否购买过手动升级第一单升级订单价格复购第一单价格209
// boolean buyFlag = false;
// // 升级盒数基数
// int baseBoxNum = 0;
// 当前会员等级
BdGrade memberGrade = null;
if (null != cuMember.getPkSettleGrade()) {
// 获取当前会员等级注册专区目前没有会员等级
memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(cuMember.getPkSettleGrade())).findFirst().get();
}
// 2025.02.24 升级专区取消复购专区指定盒数商品走升级逻辑
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
// // 复购订单
// if (HzsUtil.checkOnlineTime()) {
// // 2025.03.01 之前还需要处理首单209校验是否购买过首单
// buyFlag = iSaOrderItemsService.getRetailWaresQuantity(cuMember.getPkId(), boxProductList, null,
// Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()), orderParam.getSystemType()) > 0;
// }
// 获取升级盒数基数
baseBoxNum = iSaOrderService.handleBaseBoxNum(cuMember, memberGrade, gradeList, boxProductList, orderParam.getSystemType());
}
// // 当前会员等级
// BdGrade memberGrade = null;
// if (null != cuMember.getPkSettleGrade()) {
// // 获取当前会员等级注册专区目前没有会员等级
// memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(cuMember.getPkSettleGrade())).findFirst().get();
// }
// // 2025.02.24 升级专区取消复购专区指定盒数商品走升级逻辑
// if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
// // 获取升级盒数基数
// baseBoxNum = iSaOrderService.handleBaseBoxNum(cuMember, memberGrade, gradeList, boxProductList, orderParam.getSystemType());
// }
// 当前盒数
int boxNum = 0;
// 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件
this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
// // 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商品编号 + 价格
// String waresGroupKey = null;
// // 商品数量
// int waresQuantity = 1;
// 订单明细
SaOrderItems orderItems = null;
// 价格KEY商品编号 + 价格
String waresGroupKey = null;
// 商品数量
int waresQuantity = 1;
SaOrderItems orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
&& boxProductList.contains(waresDetailExt.getWaresCode())
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// 会员专区注册 并且 指定的商品不为赠品需要根据盒数重新计算价格
// 指定盒数商品价格需要按等级和购买数量重新计算
for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
// 存在商品盒数累加1
boxNum += 1;
// 按盒数计算当前商品实际支付金额
BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
// 第一盒 或者 商品 + 价格有变化累计商品数量
waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
waresQuantity = 1;
orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
orderItems.setPrice(price);
} else {
waresQuantity += 1;
}
orderItems.setWaresQuantity(waresQuantity);
orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
}
} else {
// 非会员专区
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
&& memberGrade.getGradeValue() < EGrade.MAKER.getValue()
&& boxProductList.contains(waresDetailExt.getWaresCode())
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// 复购专区如果会员等级小于V3并且为盒数商品需要计算等级和价格
// 2025.02.24 升级专区取消复购专区指定盒数商品可以升级需要根据盒数商品重新计算价格
for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
// 存在商品盒数累加1
boxNum += 1;
// 产品价格
BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
// if (HzsUtil.checkOnlineTime() && !buyFlag) {
// // 如果是 2025.03.01 之前并且没有买过默认第一盒为209
// price = ERetailWaresPrice.FIRST.getPrice();
// buyFlag = true;
// } else {
// // 根据等级盒数计算实际价格
// price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
// }
if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
// 第一盒 或者 商品 + 价格有变化累计商品数量
waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
waresQuantity = 1;
orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
orderItems.setPrice(price);
} else {
waresQuantity += 1;
}
orderItems.setWaresQuantity(waresQuantity);
orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
}
} else {
if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
|| ESpecialArea.RETAIL_RESCISSION.getValue() == orderParam.getSpecialArea())
&& boxProductList.contains(waresDetailExt.getWaresCode())
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// 重消也累计盒数
boxNum += waresDetailExt.getWaresQuantity();
}
orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
// 不是赠品需要累积包邮邮费
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// 包邮金额
freePostage = freePostage.add(orderItems.getPrice().multiply(new BigDecimal(orderItems.getQuantity())));
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail()) {
// 不包邮处理邮费模板map
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
}
// 不包邮 并且 不是赠品需要累积包邮邮费
// 2025.02.12 调整需求专区包邮金额需要计算包邮商品金额只有赠品不计算包邮金额
// if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail() && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// 包邮金额
freePostage = freePostage.add(orderItems.getPrice().multiply(new BigDecimal(orderItems.getQuantity())));
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail()) {
// 不包邮处理邮费模板map
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
}
if (null != productMap.get(orderItems.getPkProduct())
&& boxProductList.contains(productMap.get(orderItems.getPkProduct()).getProductCode())) {
// 产品是盒数产品需要累计数量
boxNum += orderItems.getQuantity();
}
}
// if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
// && boxProductList.contains(waresDetailExt.getWaresCode())
// && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// // 会员专区注册 并且 指定的商品不为赠品需要根据盒数重新计算价格
// // 指定盒数商品价格需要按等级和购买数量重新计算
// for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
// // 存在商品盒数累加1
// boxNum += 1;
// // 按盒数计算当前商品实际支付金额
// BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
//
// if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
// // 第一盒 或者 商品 + 价格有变化累计商品数量
// waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
// waresQuantity = 1;
//
// orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
// orderItems.setPrice(price);
// } else {
// waresQuantity += 1;
// }
// orderItems.setWaresQuantity(waresQuantity);
// orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
// }
// } else {
// // 非会员专区
// if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
// && memberGrade.getGradeValue() < EGrade.MAKER.getValue()
// && boxProductList.contains(waresDetailExt.getWaresCode())
// && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// // 复购专区如果会员等级小于V3并且为盒数商品需要计算等级和价格
// // 2025.02.24 升级专区取消复购专区指定盒数商品可以升级需要根据盒数商品重新计算价格
// for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
// // 存在商品盒数累加1
// boxNum += 1;
//
// // 产品价格
// BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
//
// if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
// // 第一盒 或者 商品 + 价格有变化累计商品数量
// waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
// waresQuantity = 1;
//
// orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
// orderItems.setPrice(price);
// } else {
// waresQuantity += 1;
// }
// orderItems.setWaresQuantity(waresQuantity);
// orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
// }
// } else {
// if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
// || ESpecialArea.RETAIL_RESCISSION.getValue() == orderParam.getSpecialArea())
// && boxProductList.contains(waresDetailExt.getWaresCode())
// && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// // 重消也累计盒数
// boxNum += waresDetailExt.getWaresQuantity();
// }
// orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
// }
//
// // 不包邮 并且 不是赠品需要累积包邮邮费
// if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
// // 包邮金额
// freePostage = freePostage.add(orderItems.getPrice().multiply(new BigDecimal(orderItems.getQuantity())));
// if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail()) {
// // 不包邮处理邮费模板map
// saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
// }
// }
// }
}
// 计算订单邮费
@ -499,12 +499,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 去掉升级条件带有累计盒数的V4,V5并且升级购买合数小于等于订单商品盒数的再进行等级值倒序排序
gradeList = gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxNum).sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList());
// // 2025.02.21 添加需求 2025.03.01 第一盒还是按209走之后恢复正常
// // 2024.12.30 添加需求购买第一盒直接给209元
// if (HzsUtil.checkOnlineTime() && boxNum == ERetailWaresPrice.FIRST.getValue()) {
// return ERetailWaresPrice.FIRST.getPrice();
// }
for (BdGrade bdGrade : gradeList) {
if (boxNum > bdGrade.getBoxNumber()) {
// 盒数大于等于购买盒数
@ -922,19 +916,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
}
/***
* 处理测试数据
* @param pkMember 下单人
* @param saOrderExt 订单信息
*/
private void testHandle(Long pkMember, SaOrderExt saOrderExt) {
if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())
&& pkMember.equals(615831L)) {
// 测试环境指定会员下单时金额处理
saOrderExt.setOrderAmount(RandomUtil.randomBigDecimal(new BigDecimal("0.02"), new BigDecimal("0.1")).setScale(2, BigDecimal.ROUND_HALF_UP));
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public Long savePickOrder(SaOrder saOrder, List<SaOrderItems> saOrderItemsList) {
@ -979,31 +960,39 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
*/
private Boolean handleMemberActivate(CuMember cuMember, SaOrderExt saOrder) {
if (null == cuMember.getIsActivate()) {
// 会员激活状态为空按未激活处理
cuMember.setIsActivate(EYesNo.NO.getIntValue());
}
// // 会员激活状态为空按未激活处理
// cuMember.setIsActivate(EYesNo.NO.getIntValue());
if (EYesNo.YES.getIntValue() != cuMember.getIsActivate()
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType())
) {
// 会员未激活并且是 注册升级复购 订单判断会员是否激活
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrder.getSystemType());
for (SaOrderItems saOrderItems : saOrder.getOrderItemsList()) {
if (boxProductList.contains(saOrderItems.getWareCode())) {
// 存在指定盒数商品
cuMember.setIsActivate(EYesNo.YES.getIntValue());
if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {
cuMember.setPayTime(saOrder.getPayTime());
cuMember.setPayStatus(EPayStatus.PAID.getValue());
}
return true;
}
// TODO new 暂时不处理激活只要是会员就按激活处理有订单就有支付状态和时间
cuMember.setIsActivate(EYesNo.YES.getIntValue());
if (null != saOrder) {
cuMember.setPayTime(saOrder.getPayTime());
cuMember.setPayStatus(EPayStatus.PAID.getValue());
}
}
return false;
return true;
// if (EYesNo.YES.getIntValue() != cuMember.getIsActivate()
// && (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
// || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()
// || EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType())
// ) {
// // 会员未激活并且是 注册升级复购 订单判断会员是否激活
// List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrder.getSystemType());
//
// for (SaOrderItems saOrderItems : saOrder.getOrderItemsList()) {
// if (boxProductList.contains(saOrderItems.getWareCode())) {
// // 存在指定盒数商品
// cuMember.setIsActivate(EYesNo.YES.getIntValue());
// if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {
// cuMember.setPayTime(saOrder.getPayTime());
// cuMember.setPayStatus(EPayStatus.PAID.getValue());
// }
// return true;
// }
// }
// }
// return false;
}
/**

View File

@ -10,11 +10,7 @@ import java.io.Serializable;
import java.util.List;
/**
* @Description: 新零售订单等级入参
* @Author: jiang chao
* @Time: 2024/12/12 17:22
* @Classname: RetailerOrderLevelParam
* @PackageName: com.hzs.retail.sale.param
* 新零售订单等级入参
*/
@Data
public class RetailOrderLevelParam implements Serializable {
@ -31,11 +27,11 @@ public class RetailOrderLevelParam implements Serializable {
@NotNull(message = "缺少商品信息")
private List<ShoppingCartRedis> shopList;
/**
* 首次校验0=首次校验
*/
@NotNull(message = "缺少参数")
private Integer firstCheck;
// /**
// * 首次校验0=首次校验
// */
// @NotNull(message = "缺少参数")
// private Integer firstCheck;
/**
* 升级编号

View File

@ -21,11 +21,7 @@ import java.math.BigDecimal;
import java.util.List;
/**
* @Description: 新零售订单入参
* @Author: jiang chao
* @Time: 2024/12/12 10:03
* @Classname: RetailOrderParam
* @PackageName: com.hzs.retail.sale.param
* 新零售订单入参
*/
@Builder
@AllArgsConstructor

View File

@ -53,11 +53,7 @@ import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 商品相关控制器
* @Author: jiang chao
* @Time: 2024/12/9 14:24
* @Classname: ApiWaresController
* @PackageName: com.hzs.retail.wares.controller.api
* 商品相关控制器
*/
@RestController
@RequestMapping("/api/retail-wares")
@ -79,8 +75,6 @@ public class ApiRetailWaresController extends BaseController {
IAreaCurrencyServiceApi iAreaCurrencyServiceApi;
@DubboReference
IMemberServiceApi iMemberServiceApi;
@DubboReference
IRetailRangeServiceApi iRetailRangeServiceApi;
/**
* 商品列表

View File

@ -6,11 +6,7 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Description: 新零售商品查询入参
* @Author: jiang chao
* @Time: 2024/12/9 14:29
* @Classname: WaresParams
* @PackageName: com.hzs.retail.wares.param
* 新零售商品查询入参
*/
@Data
public class RetailWaresParam implements Serializable {

View File

@ -8,11 +8,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Description: 商品明细参数
* @Author: sui q
* @Time: 2022/9/15 17:00
* @Classname: WaresItemsParam
* @PackageName: com.hzs.sale.order.param
* 商品明细参数
*/
@Data
@Builder
@ -26,7 +22,7 @@ public class WaresItemsParam implements Serializable {
private Integer pkWaresSpecsSku;
/**
* 品数量
* 品数量
*/
private Integer quantity;
@ -35,4 +31,9 @@ public class WaresItemsParam implements Serializable {
*/
private Integer pkProduct;
/**
* 产品编号
*/
private String productCode;
}

View File

@ -772,14 +772,12 @@ public class SaOrderHandle {
}
/**
* orderType 1 = 注册注册不用找累计 2 升级需要
*
* @param specialArea 专区
* @param settleOrderAmount 订单金额
* @param settleOrderPv 订单业绩
* @param pkCountry 国家
* @Description: orderType 1 = 注册注册不用找累计 2 升级需要
* @return: List<String>
* @Author: sui q
* @Date: 2022/2/17 11:27
*/
GradeDTO getMemberGradeAndAwardByCountry(CuMember cuMember, Integer specialArea, BigDecimal settleOrderAmount,
BigDecimal settleOrderPv, Integer pkCountry, String upgradeWay) {

View File

@ -63,6 +63,7 @@ import com.hzs.sale.order.param.*;
import com.hzs.sale.order.service.*;
import com.hzs.sale.order.vo.*;
import com.hzs.sale.product.service.IBdProductExtendService;
import com.hzs.sale.product.service.IBdProductService;
import com.hzs.sale.wares.service.*;
import com.hzs.scm.pub.IScmBillServiceApi;
import com.hzs.system.base.IAreaServiceApi;
@ -150,7 +151,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
@Autowired
private UserTokenService userTokenService;
@Autowired
private IBdProductExtendService productExtendService;
private IBdProductService iBdProductService;
@Autowired
private IBdProductExtendService iBdProductExtendService;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
@ -1307,7 +1310,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
for (SaOrderItems orderItem : orderItems) {
orderItem.setPkOrder(saOrder.getPkId());
BdWares wares = waresService.getWares(orderItem.getPkWares());
BdProductExtendExt productExtend = productExtendService.queryExtendAndProduct(orderItem.getPkProduct());
BdProductExtendExt productExtend = iBdProductExtendService.queryExtendAndProduct(orderItem.getPkProduct());
orderItem.setPkWares(wares.getPkId());
orderItem.setPrice(wares.getWaresPrice().multiply(new BigDecimal(orderItem.getQuantity())));
orderItem.setPkRate(currency.getData().getPkId());
@ -2636,16 +2639,21 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (CollectionUtil.isEmpty(gradeList)) {
gradeList = iGradeServiceApi.getRetailGradeList().getData();
}
// 盒数商品
// 补全产品编号
handleOrderItemsParamsProduct(orderItemsParams);
// 盒数产品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(systemType);
// 当前商品盒数
// 当前品盒数
int boxNum = 0;
// 判断订单明细中指定商品数量校验达到等级重算价格
// 判断订单明细中指定产品数量校验等级
for (OrderItemsParam orderItemsParam : orderItemsParams) {
if (boxProductList.contains(orderItemsParam.getWaresCode())) {
// 存在指定商品需要累计合数
boxNum += orderItemsParam.getQuantity();
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
if (boxProductList.contains(waresItemsParam.getProductCode())) {
// 存在指定产品需要累计盒数产品数量 * 商品数量
boxNum += waresItemsParam.getQuantity() * orderItemsParam.getQuantity();
}
}
}
@ -2654,20 +2662,22 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (ESpecialArea.RETAIL_REGISTER.getValue() == specialArea) {
// 注册专区直接算等级
bdGrade = this.getGradeByBox(boxNum, gradeList, null, true);
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea
|| ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea) {
// 2025.02.24 升级专区取消复购专区购买盒数商品可以升级首日累积升级次日一次性补差升级
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
// 升级专区取消一次性补差升级
if (boxNum == 0) {
// 不满足升级条件
throw new ServiceException("不满足升级条件");
}
// 当前会员等级
BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get();
if (boxNum == 0) {
return memberGrade;
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) {
// 会员等级大于等于V3卓越不能通过升级进行购买了
throw new ServiceException("当前已是最高等级");
}
// 获取升级盒数基数
int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType);
// 计算等级
bdGrade = this.getGradeByBox(baseBoxNum + boxNum, gradeList, memberGrade, true);
bdGrade = this.getGradeByBox(boxNum, gradeList, memberGrade, true);
// 会员等级比购买盒数的等级要高则以会员当前等级为准
if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) {
@ -2694,29 +2704,31 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
if (null == memberGrade) {
// 注册处理
// 去掉升级条件带有累计盒数的V4,V5升级购买合数小于等于订单商品盒数的升级盒数小于购买盒数的最大一个等级为注册等级
return gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxTotal).max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
// 去掉 V4,V5 升级盒数小于购买盒数的最大一个等级为注册等级
return gradeList.stream()
.filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.VIP.getValue() && tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getBoxNumber() <= boxTotal)
.max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
} else {
// 非注册处理
if (checkUpgrade) {
// 当前等级大于等于V3 盒数商品为0则直接返回当前等级
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0
|| boxTotal == 0) {
return memberGrade;
}
} else {
// 当前等级大于V3 盒数商品为0则直接返回当前等级
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) > 0
|| boxTotal == 0) {
return memberGrade;
}
}
// if (checkUpgrade) {
// // 当前等级大于等于V3 盒数商品为0则直接返回当前等级
// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0
// || boxTotal == 0) {
// return memberGrade;
// }
// } else {
// // 当前等级大于V3 盒数商品为0则直接返回当前等级
// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) > 0
// || boxTotal == 0) {
// return memberGrade;
// }
// }
// 查询等级比现在当前等级大的然后倒序排序再查询等级盒数 >= 购买盒数 的第一个等级就是当前升级的等级
// 查询等级比现在当前等级大的然后倒序排序再查询 购买盒数 <= 等级盒数 的第一个等级就是当前升级的等级
Optional<BdGrade> gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue())
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
.filter(tmpGrade -> tmpGrade.getBoxNumber() != 0)
.filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst();
.filter(tmpGrade -> tmpGrade.getBoxNumber() - memberGrade.getBoxNumber() <= boxTotal).findFirst();
return gradeOptional.orElse(memberGrade);
}
}
@ -3594,4 +3606,29 @@ 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

@ -61,4 +61,15 @@ public interface BdProductMapper extends BaseMapper<BdProduct> {
* @return
*/
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,4 +123,21 @@ 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

@ -25,7 +25,6 @@ import com.hzs.sale.product.vo.SupplierProductCensusVo;
import com.hzs.sale.product.vo.WaresDetailVo;
import com.hzs.sale.wares.service.IBdWaresDetailService;
import com.hzs.sale.wares.service.IBdWaresExtendService;
import com.hzs.scm.product.IBdProductBasSpecsServiceApi;
import com.hzs.system.base.ITransactionServiceApi;
import com.hzs.system.sys.ICubasdocApi;
import com.hzs.system.sys.dto.BusinessLogDTO;
@ -65,8 +64,6 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
ICubasdocApi cubasdocApi;
@DubboReference
ITransactionServiceApi transactionServiceApi;
@DubboReference
IBdProductBasSpecsServiceApi productBasSpecsServiceApi;
@Override
public BdProduct getProduct(Integer pkProduct) {
@ -530,4 +527,30 @@ 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.eq(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

@ -9,10 +9,7 @@ import java.util.Map;
public interface IShoppingCartService {
/*
* @description: 查询需要下单的购物车
* @author: sui q
* @date: 2023/5/23 16:08
* @param: null null
* 查询需要下单的购物车
**/
List<ShoppingCartRedis> queryShopping(Long userId, ShoppingCartVO sop);
@ -25,11 +22,7 @@ public interface IShoppingCartService {
void batchDelShopping(Long userId, ShoppingCartVO sop);
/**
* @description: 查询购物车
* @author: zhang jing
* @date: 2022/12/13 16:40
* @param: [shoppingCartOld]
* @return: com.hz.web.controller.api.vo.ShoppingCartVO
* 查询购物车
**/
List<ShoppingCartVO> getShopping(Map<String, String> innerShopMap, Integer specialArea, Integer pkCountry, Integer systemType);

View File

@ -25,11 +25,7 @@ import java.math.BigDecimal;
import java.util.*;
/**
* @description: 购物车服务实现
* @author: zhang jing
* @date: 2022/11/22 14:47
* @param:
* @return:
* 购物车服务实现
**/
@Service
public class ShoppingCartServiceImpl implements IShoppingCartService {
@ -37,17 +33,11 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
@Autowired
private RedisService redisService;
@Autowired
private IBdWaresSpecsSkuService bdWaresSpecsSkuService;
private IBdWaresSpecsSkuService iBdWaresSpecsSkuService;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
ICurrencyServiceApi iCurrencyServiceApi;
/**
* 查询需要下单的购物车
*
* @param userId
* @param sop
*/
@Override
public List<ShoppingCartRedis> queryShopping(Long userId, ShoppingCartVO sop) {
List<ShoppingCartRedis> deleteList = sop.getDeleteList();
@ -73,12 +63,6 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
return newShoppingCartRedis;
}
/**
* 批量删除购物车
*
* @param userId
* @param sop
*/
@Override
public void batchDelShopping(Long userId, ShoppingCartVO sop) {
List<ShoppingCartRedis> deleteList = sop.getDeleteList();
@ -107,19 +91,12 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
}
}
/**
* @description: 查询购物车
* @author: zhang jing
* @date: 2022/12/12 19:03
* @param: [shoppingCartOld]
* @return: com.hz.web.controller.api.vo.ShoppingCartVO
**/
@Override
public List<ShoppingCartVO> getShopping(Map<String, String> innerShopMap, Integer specialArea, Integer pkCountry, Integer systemType) {
Long userId = SecurityUtils.getUserId();
//汇率
List<ShoppingCartVO> shoppingCartOld = new ArrayList<>();
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
if (StringUtils.isNotNull(specialArea)) {
ShoppingCartVO scv = new ShoppingCartVO();
List<ShoppingCart> shoppingCartList = new ArrayList<>();
@ -184,14 +161,11 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
}
/**
* @description: 获取购物车商品信息
* @author: zhang jing
* @date: 2023/5/22 14:36
* @param: [shoppingCart, specialArea, waresCode, userId, sst, waresPrice, achieve, assAchieve, currency,]
* 获取购物车商品信息
**/
private void getShoppingCart(ShoppingCart shoppingCart, Integer specialArea, String waresCode, Long userId, ShoppingCartRedis sst,
BigDecimal waresPrice, BigDecimal achieve, BigDecimal assAchieve, R<CurrencyDTO> currency, Integer pkCountry, Integer systemType) {
CuWaresParams cuWaresParams = bdWaresSpecsSkuService.queryWaresSpecsSkuShopping(specialArea, waresCode, userId, pkCountry, systemType);
CuWaresParams cuWaresParams = iBdWaresSpecsSkuService.queryWaresSpecsSkuShopping(specialArea, waresCode, userId, pkCountry, systemType);
if (cuWaresParams == null) {
return;
}

View File

@ -5,14 +5,11 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Description: 购物车产品SKU组合缓存实体类
* @Author: zhangjing
* @Time: 2022/9/16 11:11
* @Classname: ShoppingCartVO
* @PackageName: com.hzs.common.domain.sale.ext
* 购物车产品SKU组合缓存实体类
*/
@Data
public class ProductGroup implements Serializable {
/**
* 产品主键
*/

View File

@ -6,11 +6,7 @@ import java.io.Serializable;
import java.util.List;
/**
* @Description: 购物车缓存实体类
* @Author: zhangjing
* @Time: 2022/9/16 11:11
* @Classname: ShoppingCartVO
* @PackageName: com.hzs.common.domain.sale.ext
* 购物车缓存实体类
*/
@Data
public class ShoppingCartRedis implements Serializable {

View File

@ -5,17 +5,13 @@ import com.hzs.common.domain.sale.wares.BdWaresSpecialPostage;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 商品特殊邮费配置 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-10-27
*/
public interface BdWaresSpecialPostageMapper extends BaseMapper<BdWaresSpecialPostage> {
/**
* 根据邮费主键删除邮费配置信息
*
* @param pkPostage
*/
void deleteByPkPostage(@Param("pkPostage") Integer pkPostage);

View File

@ -14,9 +14,6 @@ import java.util.List;
/**
* 商品发布明细表 服务类
*
* @author hzs
* @since 2022-09-09
*/
public interface IBdWaresDetailService extends IService<BdWaresDetail> {
@ -25,9 +22,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
*
* @param specialArea 专区
* @param transType 运输方式
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/16 11:13
*/
List<BdWaresDetailExt> queryWaresDetailByCondition(Integer specialArea, Integer transType, List<OrderItemsParam> orderItemsParams, Integer systemTyype);
@ -36,9 +30,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
*
* @param specialArea 专区
* @param orderItemsParams 参数
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/16 11:13
*/
List<IcAvailableNum> queryWaresDetailSpecsByCondition(Integer specialArea, Integer pkCountry, Integer pkCorp, Integer pkStorehouse, Integer province,
String parentCode, CuMember cuMember, List<OrderItemsParam> orderItemsParams);
@ -68,7 +59,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
*/
List<WaresDetailVo> listByPkProduct(List<Integer> pkProduct);
/**
* 商品下产品查询
*

View File

@ -6,25 +6,21 @@ import com.hzs.common.domain.sale.wares.BdWaresSpecialPostage;
import java.util.List;
/**
* <p>
* 商品特殊邮费配置 服务类
* </p>
*
* @author hzs
* @since 2023-10-27
*/
public interface IBdWaresSpecialPostageService extends IService<BdWaresSpecialPostage> {
/**
* 查询特殊邮费商品ID列表
* param pkCountry
*
* @param pkCountry
* @return
*/
List<Integer> querySpecialPostagePkWares(Integer pkCountry);
/**
* 根据邮费主键删除邮费配置信息
*
* @param pkPostage
*/
void deleteByPkPostage(Integer pkPostage);

View File

@ -32,15 +32,12 @@ import java.util.Map;
/**
* 商品发布明细表 服务实现类
*
* @author hzs
* @since 2022-09-09
*/
@Service
public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, BdWaresDetail> implements IBdWaresDetailService {
@DubboReference
IAreaServiceApi areaServiceApi;
IAreaServiceApi iAreaServiceApi;
@Autowired
private IActivityService iActivityService;
@ -156,7 +153,7 @@ public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, B
}
if (productIdList.size() > 0 && province != null) {
// 根据产品省查看是否由仓库有仓库的话修改仓库
List<BdProductStorehouseExt> bdProductStorehouseList = areaServiceApi.queryBdProductStorehouseByCondition(productIdList, province).getData();
List<BdProductStorehouseExt> bdProductStorehouseList = iAreaServiceApi.queryBdProductStorehouseByCondition(productIdList, province).getData();
Map<Integer, BdProductStorehouseExt> bdProductStorehouseMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(bdProductStorehouseList)) {
bdProductStorehouseList.forEach(bdProductStorehouse -> bdProductStorehouseMap.put(bdProductStorehouse.getPkProduct(), bdProductStorehouse));

View File

@ -1,8 +1,7 @@
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.SystemFieldConstants;
import com.hzs.common.domain.sale.wares.BdWaresSpecialPostage;
import com.hzs.sale.wares.mapper.BdWaresSpecialPostageMapper;
import com.hzs.sale.wares.service.IBdWaresSpecialPostageService;
@ -12,28 +11,19 @@ import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 商品特殊邮费配置 服务实现类
* </p>
*
* @author hzs
* @since 2023-10-27
*/
@Service
public class BdWaresSpecialPostageServiceImpl extends ServiceImpl<BdWaresSpecialPostageMapper, BdWaresSpecialPostage> implements IBdWaresSpecialPostageService {
@Override
public List<Integer> querySpecialPostagePkWares(Integer pkCountry) {
QueryWrapper<BdWaresSpecialPostage> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
LambdaQueryWrapper<BdWaresSpecialPostage> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWaresSpecialPostage::getPkCountry, pkCountry);
List<BdWaresSpecialPostage> pkWaresList = this.list(queryWrapper);
return pkWaresList.stream().map(BdWaresSpecialPostage::getPkPostage).collect(Collectors.toList());
}
/**
* 根据邮费主键删除邮费配置信息
* @param pkPostage
*/
@Override
public void deleteByPkPostage(Integer pkPostage) {
baseMapper.deleteByPkPostage(pkPostage);

View File

@ -188,7 +188,8 @@
<select id="queryProductExtBySpecsId" resultMap="BdProduct">
<foreach collection="productSpecsList" item="item" separator=" union ">
select bp.pk_id,bp.product_code,bp.product_name,bp.pk_country,bp.cover,bc.pk_id pk_specs_id,bc.pk_specs_type,bc.specs_name from bd_product bp
select bp.pk_id,bp.product_code,bp.product_name,bp.pk_country,bp.cover,bc.pk_id pk_specs_id,bc.pk_specs_type,bc.specs_name from bd_product
bp
inner join bd_product_extend be
on bp.pk_id = be.pk_product
inner join bd_product_specs bs
@ -234,4 +235,24 @@
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

@ -15,7 +15,9 @@
</resultMap>
<delete id="deleteByPkPostage">
delete from BD_WARES_SPECIAL_POSTAGE where PK_POSTAGE = #{pkPostage}
delete
from BD_WARES_SPECIAL_POSTAGE
where PK_POSTAGE = #{pkPostage}
</delete>
</mapper>

View File

@ -11,9 +11,6 @@ import java.util.List;
/**
* 会员特殊消费配置 Mapper 接口
*
* @author hzs
* @since 2025-02-20
*/
public interface BdMemberSpecialCurrencyMapper extends BaseMapper<BdMemberSpecialCurrency> {

View File

@ -1,23 +0,0 @@
package com.hzs.common.core.constant;
import java.util.Arrays;
import java.util.List;
/**
* 美业商品常量类
*/
public class MyProductConstants {
/**
* 盒数商品列表
*/
public static final List<String> BOX_WARES_LIST = Arrays.asList(
// 会员商品
"HZS202541301", "HZS202541302", "HZS202541303", "HZS202541304",
// 复购专区
"HZS202543301", "HZS202543302", "HZS202543303", "HZS202543304",
// 重消专区
"HZS202544301", "HZS202544302", "HZS202544303", "HZS202544304"
);
}

View File

@ -9,29 +9,10 @@ import java.util.List;
public class RetailProductConstants {
/**
* 盒数商品列表 -- 新零售
* 盒数产品列表
*/
public static final List<String> BOX_WARES_LIST = Arrays.asList(
// 会员商品
"HZS202412001", "HZS202412002", "HZS202412003", "HZS202412004", "HZS202412005", "HZS202412006",
// 复购专区
"HZS202412431", "HZS202412432", "HZS202412433", "HZS202412434", "HZS202412435", "HZS202412436",
// 重消专区
"HZS202412441", "HZS202412442", "HZS202412443", "HZS202412444", "HZS202412445", "HZS202412446"
public static final List<String> BOX_PRODUCT_LIST = Arrays.asList(
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
);
public static final List<String> ALL_BOX_WARES_LIST = Arrays.asList(
// 会员商品
"HZS202412001", "HZS202412002", "HZS202412003", "HZS202412004", "HZS202412005", "HZS202412006",
// 复购专区
"HZS202412431", "HZS202412432", "HZS202412433", "HZS202412434", "HZS202412435", "HZS202412436",
// 重消专区
"HZS202412441", "HZS202412442", "HZS202412443", "HZS202412444", "HZS202412445", "HZS202412446",
// 会员商品
"HZS202541301", "HZS202541302", "HZS202541303", "HZS202541304",
// 复购专区
"HZS202543301", "HZS202543302", "HZS202543303", "HZS202543304",
// 重消专区
"HZS202544301", "HZS202544302", "HZS202544303", "HZS202544304"
);
}

View File

@ -12,7 +12,7 @@ public class MemberMsgConstants {
/**
* 重复提交或者没有token生成不是正规流程进入的保存 提交token失效 -- 请求已经失效请刷新重试
*/
public static final String TOKEN_REPEAT_SUBMIT = "请求已经失效,请刷新重试!";
public static final String TOKEN_REPEAT_SUBMIT = "请求已经失效,请刷新重试!";
/**
* 手机号码长度验证 -- 联系方式长度超长
@ -23,223 +23,223 @@ public static final String TOKEN_REPEAT_SUBMIT = "请求已经失效,请刷新
/**
* 必输项不能为空 -- 必输项不能为空
*/
public static final String REQUIRED_NOT_EMPTY = "必输项不能为空!";
public static final String REQUIRED_NOT_EMPTY = "必输项不能为空!";
/**
* 验证推荐人是否又推荐某等级权限 -- 推荐人没有推荐该等级权限
*/
public static final String PARENT_NO_JURISDICTION = "推荐人没有推荐该等级权限!";
public static final String PARENT_NO_JURISDICTION = "推荐人没有推荐该等级权限!";
/**
* 验证手机号是否被注册 -- 会员信息已存在
*/
public static final String SYSTEM_REGISTER_COUNT = "会员信息已存在!";
public static final String SYSTEM_REGISTER_COUNT = "会员信息已存在!";
/**
* 验证手机号是否被用户使用 -- 会员信息已注册若有异议请及时联系在线客服
*/
public static final String PHONE_ALREADY_REGISTER = "会员信息已注册,若有异议请及时联系在线客服!";
public static final String PHONE_ALREADY_REGISTER = "会员信息已注册,若有异议请及时联系在线客服!";
/**
* 验证手机号是否在同一个团队 -- 注册信息已存在,请重新输入注册信息
*/
public static final String REGISTER_EXIST_OTHER_TEAM = "注册信息已存在,请重新输入注册信息!";
public static final String REGISTER_EXIST_OTHER_TEAM = "注册信息已存在,请重新输入注册信息!";
/**
* 验证报单中心是否还存在系统中 -- 报单中心权限已关闭请及时联系客服
*/
public static final String CENTER_NOT_EXISTS = "报单中心权限已关闭,请及时联系客服!";
public static final String CENTER_NOT_EXISTS = "报单中心权限已关闭,请及时联系客服!";
/**
* 验证支付密码是否为空 -- 支付密码不能为空
*/
public static final String MEMBER_PASSWORD_EMPTY = "支付密码不能为空!";
public static final String MEMBER_PASSWORD_EMPTY = "支付密码不能为空!";
/**
* 验证支付密码是否整取 -- 支付密码输入错误请重新输入
*/
public static final String MEMBER_PASSWORD_NOT_MATCH = "支付密码输入错误,请重新输入!";
public static final String MEMBER_PASSWORD_NOT_MATCH = "支付密码输入错误,请重新输入!";
/**
* 验证账户状态是否锁定 -- 会员账户存在异常请及时联系客服
*/
public static final String MEMBER_ACCOUNT_STATUS_LOCK = "会员账户存在异常,请及时联系客服!";
public static final String MEMBER_ACCOUNT_STATUS_LOCK = "会员账户存在异常,请及时联系客服!";
/**
* 安置人编号是否输入 -- 安置编号输入错误请重新输入
*/
public static final String PLACE_PARENT_NOT_EMPTY = "安置编号输入错误,请重新输入!";
public static final String PLACE_PARENT_NOT_EMPTY = "安置编号输入错误,请重新输入!";
/**
* 安置人编号是否存在 -- 安置编号不存在请重新输入
*/
public static final String PLACE_PARENT_NOT_EXISTS = "安置编号不存在,请重新输入!";
public static final String PLACE_PARENT_NOT_EXISTS = "安置编号不存在,请重新输入!";
/**
* 安置人是否在推荐人伞下 -- 安置人不在推荐人伞下请重新输入
*/
public static final String PLACE_NOT_TEAM = "安置人不在推荐人伞下,请重新输入!";
public static final String PLACE_NOT_TEAM = "安置人不在推荐人伞下,请重新输入!";
/**
* 安置点位是否重复安置 -- 安置位置已有安置请重新安置
*/
public static final String PLACE_PARENT_DEPT_EXIST = "安置位置已有安置,请重新安置!";
public static final String PLACE_PARENT_DEPT_EXIST = "安置位置已有安置,请重新安置!";
/**
* 安置第二部门判断是否推荐过首单 -- 安置人没有推荐首单不能直接安置右部门
*/
public static final String PLACE_PARENT_NOT_REFERENCE = "安置人没有推荐首单,不能直接安置右部门!";
public static final String PLACE_PARENT_NOT_REFERENCE = "安置人没有推荐首单,不能直接安置右部门!";
/**
* 安置第二部门判断是否安置过第一部门 -- 安置人没有安置左部门不能直接安置右部门
*/
public static final String PLACE_PARENT_NOT_EXIST = "安置人没有安置左部门,不能直接安置右部门!";
public static final String PLACE_PARENT_NOT_EXIST = "安置人没有安置左部门,不能直接安置右部门!";
/**
* 验证是否推荐过首单 -- 推荐人未推荐过首单只能安置在推荐人极左极下
*/
public static final String PLACE_IS_LAST_LEFT = "推荐人未推荐过首单,只能安置在推荐人极左极下!";
public static final String PLACE_IS_LAST_LEFT = "推荐人未推荐过首单,只能安置在推荐人极左极下!";
/**
* 推荐人编号是否输入 -- 推荐编号不能位空请输入推荐编号
*/
public static final String PARENT_NOT_EMPTY = "推荐编号不能位空,请输入推荐编号!";
public static final String PARENT_NOT_EMPTY = "推荐编号不能位空,请输入推荐编号!";
/**
* 推荐人编号是否存在 -- 推荐编号不存在请重新输入
*/
public static final String PARENT_NOT_EXISTS = "推荐编号不存在,请重新输入!";
public static final String PARENT_NOT_EXISTS = "推荐编号不存在,请重新输入!";
/**
* 推荐人是否已经支付 -- 推荐人未支付不能作为有效推荐人
*/
public static final String PARENT_NOT_PAY = "推荐人未支付,不能作为有效推荐人!";
public static final String PARENT_NOT_PAY = "推荐人未支付,不能作为有效推荐人!";
/**
* 推荐人在报单中心伞下 -- 推荐人不在报单中心伞下不能作为推荐人
*/
public static final String PARENT_NOT_TEAM = "推荐人不在报单中心伞下,不能作为推荐人!";
public static final String PARENT_NOT_TEAM = "推荐人不在报单中心伞下,不能作为推荐人!";
/**
* 验证报单权限 是否有报单权限 -- 没有注册权限不能注册新会员
*/
public static final String REGISTER_AUTHORITY = "没有注册权限,不能注册新会员!";
public static final String REGISTER_AUTHORITY = "没有注册权限,不能注册新会员!";
/**
* 账户余额不足 -- 账户余额不足
*/
public static final String MEMBER_ACCOUNT_BALANCE_NOT_ENOUGH = "账户余额不足!";
public static final String MEMBER_ACCOUNT_BALANCE_NOT_ENOUGH = "账户余额不足!";
/**
* 同时操作 -- 有其他用户在操作该数据请重新刷新界面
*/
public static final String MEMBER_IS_OPERATION = "有其他用户在操作该数据,请重新刷新界面!";
public static final String MEMBER_IS_OPERATION = "有其他用户在操作该数据,请重新刷新界面!";
/**
* 升级-是否满足升级条件 -- 不满足升级条件
*/
public static final String LEVEL_NOT_ENOUGH = " 不满足升级条件!";
public static final String LEVEL_NOT_ENOUGH = " 不满足升级条件!";
/**
* 注册-是否满足升级条件 -- 不满足升级条件
*/
public static final String REGISTER_LEVEL_NOT_ENOUGH = "不满足升级条件";
public static final String REGISTER_LEVEL_NOT_ENOUGH = "不满足升级条件";
/**
* 判断会员账号是否满足支付 -- 余额不足请及时充值
*/
public static final String MEMBER_BALANCE_NOT_PAY = "余额不足,请及时充值!";
public static final String MEMBER_BALANCE_NOT_PAY = "余额不足,请及时充值!";
/**
* 会员不存在 -- 会员编号不存在
*/
public static final String MEMBER_DOES_NOT_EXITS = "会员编号不存在";
public static final String MEMBER_DOES_NOT_EXITS = "会员编号不存在";
/**
* 会员不存在 -- 会员编号不存在请重新输入
*/
public static final String MEMBER_NOT_EXITS = "会员编号不存在,请重新输入!";
public static final String MEMBER_NOT_EXITS = "会员编号不存在,请重新输入!";
/**
* 已申请自提 -- 订单已申请自提不能再次申请
*/
public static final String SELF_PICKUP_ORDER_REPEAT = "订单已申请自提,不能再次申请!";
public static final String SELF_PICKUP_ORDER_REPEAT = "订单已申请自提,不能再次申请!";
/**
* 撤单时验证会员是否存在 -- 报单会员不存在不能撤单
*/
public static final String CREATE_MEMBER_NOT_EXITS = "报单会员不存在,不能撤单!";
public static final String CREATE_MEMBER_NOT_EXITS = "报单会员不存在,不能撤单!";
/**
* 体系编号已存在 -- 体系编号已存在
*/
public static final String MEMBER_CODE_EXITS = "体系编号已存在!";
public static final String MEMBER_CODE_EXITS = "体系编号已存在!";
/**
* 体系名称已存在 -- 体系名称已存在
*/
public static final String VERTEX_NAME_EXITS = "体系名称已存在!";
public static final String VERTEX_NAME_EXITS = "体系名称已存在!";
/**
* 体系已被团队使用 -- 体系已被团队使用,无法删除
*/
public static final String VERTEX_MEMBER_TEAM_REGISTER = "体系已被团队使用,无法删除!";
public static final String VERTEX_MEMBER_TEAM_REGISTER = "体系已被团队使用,无法删除!";
/**
* 撤单时验证会员结算国跟订单结算国是否一致 -- 会员已转结算国不能撤单
*/
public static final String MEMBER_CHANGE_SETTLE_COUNTRY = "会员已转结算国,不能撤单!";
public static final String MEMBER_CHANGE_SETTLE_COUNTRY = "会员已转结算国,不能撤单!";
/**
* 撤注册订单时验证会员账户金额是否为0 -- 编号存在余额不能撤单
*/
public static final String MEMBER_ACCOUNT_NOT_ZERO = "编号存在余额,不能撤单!";
public static final String MEMBER_ACCOUNT_NOT_ZERO = "编号存在余额,不能撤单!";
/**
* 合并撤单订单时验证会员伞下账户金额是否为0 -- 安置子节点会员编号存在余额不能撤单
*/
public static final String UNDER_UMBRELLA_ACCOUNT_NOT_ZERO = "安置子节点会员编号存在余额,不能撤单!";
public static final String UNDER_UMBRELLA_ACCOUNT_NOT_ZERO = "安置子节点会员编号存在余额,不能撤单!";
/**
* 合并撤单订单时验证会员伞下会员是否存在订单 -- 安置存在子节点不能撤单
*/
public static final String UNDER_UMBRELLA_MEMBER_EXIST_ORDER = "安置存在子节点,不能撤单!";
public static final String UNDER_UMBRELLA_MEMBER_EXIST_ORDER = "安置存在子节点,不能撤单!";
/**
* 撤注册订单时验证会员是否存在未完成的签呈 -- 会员存在未完成的签呈不能撤单
*/
public static final String MEMBER_EXIST_NO_FISH_DOCUMENT = "会员存在未完成的签呈,不能撤单!";
public static final String MEMBER_EXIST_NO_FISH_DOCUMENT = "会员存在未完成的签呈,不能撤单!";
/**
* 会员修改密码提示旧密码错误 -- 旧密码错误请输入正确密码
*/
public static final String PASSWORD_ERROR = "旧密码错误,请输入正确密码!";
public static final String PASSWORD_ERROR = "旧密码错误,请输入正确密码!";
/**
* 空单注册导入的数据字段有为空的 -- 导入数据存在为空
*/
public static final String EMPTY_IMPORT_EMPTY = "导入数据存在为空";
public static final String EMPTY_IMPORT_EMPTY = "导入数据存在为空";
/**
* 空单注册导入的数据安置部门值不合法不是第一或者第二部门 -- 导入安置部门数据有误
*/
public static final String EMPTY_IMPORT_PLACE_ERROR = "导入安置部门数据有误";
public static final String EMPTY_IMPORT_PLACE_ERROR = "导入安置部门数据有误";
/**
* 空单注册导入的数据校验之后存在点位异常状态 -- %s条数据存在异常请检查
*/
public static final String EMPTY_POINT_ERROR = "%s条数据存在异常请检查";
public static final String EMPTY_POINT_ERROR = "%s条数据存在异常请检查";
/**
* 空单注册提交签呈时没有会员点位数据 -- 该批次下没有报单数据
*/
public static final String EMPTY_DATA_DETAIL_EMPTY = "该批次下没有报单数据";
public static final String EMPTY_DATA_DETAIL_EMPTY = "该批次下没有报单数据";
/**
* 空单注册免签保存会员并且上树失败 -- 空单注册数据保存失败
*/
public static final String EMPTY_SAVE_ERROR = "空单注册数据保存失败";
public static final String EMPTY_SAVE_ERROR = "空单注册数据保存失败";
/**
* 空单注册导入的会员编号中存在重复 -- 会员编号存在重复
*/
public static final String EMPTY_MEMBER_REPEAT = "会员编号存在重复";
public static final String EMPTY_MEMBER_REPEAT = "会员编号存在重复";
/**
* 空单注册导入的会员编号中存在重复 -- 推荐编号不存在
*/
public static final String EMPTY_PARENT_NOT = "推荐编号不存在";
public static final String EMPTY_PARENT_NOT = "推荐编号不存在";
/**
* 空单注册导入的会员联系方式中存在重复 -- 联系方式存在重复
*/
@ -247,21 +247,21 @@ public static final String EMPTY_PARENT_NOT = "推荐编号不存在";
/**
* 空单注册会员编号与推荐编号相同 -- 会员编号与推荐编号相同
*/
public static final String EMPTY_MEMBER_EQ_PARENT = "会员编号与推荐编号相同";
public static final String EMPTY_MEMBER_EQ_PARENT = "会员编号与推荐编号相同";
/**
* 空单注册会员编号与安置编号相同 -- 会员编号与安置编号相同
*/
public static final String EMPTY_MEMBER_EQ_PLACE = "会员编号与安置编号相同";
public static final String EMPTY_MEMBER_EQ_PLACE = "会员编号与安置编号相同";
/**
* 订单撤单时会员账户不存在 -- 会员账户不存在
*/
public static final String NOT_EXIST_MEMBER_ACCOUNT = "会员账户不存在";
public static final String NOT_EXIST_MEMBER_ACCOUNT = "会员账户不存在";
/**
* 订单取消时如果是注册单校验伞下是否推荐或者安置过人 -- 订单所属会员下存在用户不能取消
*/
public static final String EXIST_MEMBER_NOT_CANCEL = "订单所属会员下存在用户不能取消";
public static final String EXIST_MEMBER_NOT_CANCEL = "订单所属会员下存在用户不能取消";
/**
* 已超最大门票销售数量不能购买

View File

@ -1,23 +1,9 @@
package com.hzs.common.core.enums;/**
* @Description:
* @Author: yuhui
* @Time: 2024/3/29 10:54
* @Classname: ESaleModel
* @PackageName: com.hzs.common.core.enums
*/
package com.hzs.common.core.enums;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.common.core.enums
*@Author: yh
*@CreateTime: 2024-03-29 10:54
*@Description: TODO
*@Version: 1.0
*/
@AllArgsConstructor
@Getter
public enum ESaleModel {

View File

@ -57,13 +57,13 @@ public enum ESpecialArea {
HAI_FUN_UPGRADE_ORDER(27, "海粉升级", 0, EnumsPrefixConstants.ORDER_TYPE + 27, 20, EMenuDetail.UPGRADE_HAI_FUN.getValue()),
/**
* 新零售会员专区注册+升级
* 新零售会员专区注册
*/
RETAIL_REGISTER(41, "新零售会员专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 41, 41, -1),
/**
* 新零售会员专区升级 -- 接口使用前端不显示
* 新零售会员专区升级
*/
RETAIL_UPGRADE(42, "新零售升级专区", 1, EnumsPrefixConstants.SPECIAL_AREA + 42, 42, -1),
RETAIL_UPGRADE(42, "新零售升级专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 42, 42, -1),
/**
* 新零售复购专区
*/

View File

@ -7,25 +7,16 @@ import lombok.Getter;
import java.math.BigDecimal;
/**
* @Description: 新零售商品等级价格枚举
* @Author: jiang chao
* @Time: 2024/12/12 13:49
* @Classname: ERetailWaresPrice
* @PackageName: com.hzs.common.core.enums.retail
* 新零售商品等级价格枚举
*/
@AllArgsConstructor
@Getter
public enum ERetailWaresPrice {
/**
* 2024.12.30 添加需求第一盒固定209元
*/
// FIRST(1, new BigDecimal("209")),
/**
* V020
*/
V0(EGrade.START_UP.getValue(), new BigDecimal("499")),
V0(EGrade.START_UP.getValue(), new BigDecimal("399")),
/**
* V130
*/
@ -33,19 +24,19 @@ public enum ERetailWaresPrice {
/**
* V240
*/
V2(EGrade.YOU_KE.getValue(), new BigDecimal("359")),
V2(EGrade.YOU_KE.getValue(), new BigDecimal("399")),
/**
* V350
*/
V3(EGrade.MAKER.getValue(), new BigDecimal("309")),
V3(EGrade.MAKER.getValue(), new BigDecimal("399")),
/**
* V460
*/
V4(EGrade.VIP.getValue(), new BigDecimal("259")),
V4(EGrade.VIP.getValue(), new BigDecimal("399")),
/**
* V570
*/
V5(EGrade.S_VIP.getValue(), new BigDecimal("209")),
V5(EGrade.S_VIP.getValue(), new BigDecimal("399")),
;

View File

@ -1,6 +1,5 @@
package com.hzs.common.core.utils;
import com.hzs.common.core.constant.MyProductConstants;
import com.hzs.common.core.constant.RetailProductConstants;
import com.hzs.common.core.enums.ESystemType;
@ -19,13 +18,13 @@ public class BoxProductUtil {
List<String> productList = new ArrayList<>(0);
if (null == systemType || ESystemType.ALL.getValue() == systemType) {
productList.addAll(RetailProductConstants.BOX_WARES_LIST);
productList.addAll(MyProductConstants.BOX_WARES_LIST);
productList.addAll(RetailProductConstants.BOX_PRODUCT_LIST);
return productList;
}
if (ESystemType.DEFAULT.getValue() == systemType) {
// 新零售
productList = RetailProductConstants.BOX_WARES_LIST;
productList = RetailProductConstants.BOX_PRODUCT_LIST;
}
return productList;
}

View File

@ -1,11 +1,7 @@
package com.hzs.common.core.utils;
/**
* @Description: 生成指定规则的编号
* @Author: yuhui
* @Time: 2022/10/27 17:19
* @Classname: CreateNormsCodeUtils
* @PackageName: com.hzs.common.core.utils
* 生成指定规则的编号
*/
public class CreateNormsCodeUtils {
@ -13,47 +9,37 @@ public class CreateNormsCodeUtils {
* 产品前缀
*/
private static final String CP = "CP";
/**
* 商品前缀
*/
private static final String SP = "SP";
/**
* 生成产品规则的编号
*
* @return
*/
public static String createProductCode(String lastProductCode){
if (StringUtils.isNotBlank(lastProductCode)){
// String code = lastProductCode.substring(2);
// int numberCode = Integer.parseInt(code) + 1;
// return String.format(CP + "%05d", numberCode);
return SP+System.currentTimeMillis();
}else {
String code = "00001";
return CP+code;
public static String createProductCode(String lastProductCode) {
if (StringUtils.isNotBlank(lastProductCode)) {
return SP + System.currentTimeMillis();
} else {
String code = "000001";
return CP + code;
}
}
/**
* 生成商品规则的编号
*
* @return
*/
public static String createWaresCode(String lastWaresCode){
if (StringUtils.isNotBlank(lastWaresCode)){
// String code = lastWaresCode.replace(SP, "");
// String code = DateUtils.parseDateToFormat(DateUtils.YAMMERERS, DateUtils.currentDate());
// int numberCode = Integer.parseInt(code) ;
// return String.format(SP + "%05d", numberCode);
return SP+System.currentTimeMillis();
}else {
String code = "00001";
return SP+code;
public static String createWaresCode(String lastWaresCode) {
if (StringUtils.isNotBlank(lastWaresCode)) {
return SP + System.currentTimeMillis();
} else {
String code = "000001";
return SP + code;
}
}
public static void main(String[] args) {
int serialNumber = 1; // 假设序号从1开始
String formattedString = String.format("%05d", serialNumber);
System.out.println(formattedString); // 输出: 00001
String str = "TG00032";
int number = Integer.parseInt(str.replaceAll("[^\\d]", ""));
System.out.println(number); // 输出 31
}
}

View File

@ -1,19 +1,11 @@
package com.hzs.common.domain.sale.ext;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.domain.sale.wares.BdWaresDetail;
import lombok.*;
import java.math.BigDecimal;
import java.util.List;
/**
* @Description:
* @Author: sui q
* @Time: 2022/9/16 16:41
* @Classname: BdWaresDetailsExt
* @PackageName: com.hzs.common.domain.sale.ext
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@ -102,12 +94,12 @@ public class BdWaresDetailExt extends BdWaresDetail {
private Integer waresQuantity;
/**
* 是否创客礼包
* 是否创客礼包
*/
private Integer isMakerGift;
/**
* 消费配置主键
* 消费配置主键
*/
private Integer pkSpecialCurrency;
@ -141,7 +133,6 @@ public class BdWaresDetailExt extends BdWaresDetail {
*/
private Integer pkProductBas;
/**
* 单位
*/

View File

@ -9,12 +9,7 @@ import org.apache.ibatis.type.JdbcType;
import java.math.BigDecimal;
/**
* <p>
* 销售订单-明细表
* </p>
*
* @author hzs
* @since 2022-08-31
*/
@Data
@EqualsAndHashCode(callSuper = false)

View File

@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 商品特殊邮费配置
* </p>
*
* @author hzs
* @since 2023-10-27
*/
@Data
@EqualsAndHashCode(callSuper = true)