forked from angelo/java-retail-app
## 注册相关接口修改完善;
This commit is contained in:
parent
66a246bab9
commit
e635528d63
|
@ -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))) {
|
||||
|
|
|
@ -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);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 更新个人资料(昵称)
|
||||
|
|
|
@ -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 "注册信息已存在,请重新输入注册信息";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 会员登出
|
||||
|
|
|
@ -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() + " 不能做为推荐人";
|
||||
|
|
|
@ -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 {
|
|||
// 邮费模板map(key:邮费模板ID,value:邮费订单明细)
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 升级编号
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 商品列表
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
||||
/**
|
||||
* 产品主键
|
||||
*/
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
/**
|
||||
* 商品下产品查询
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -11,9 +11,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员特殊消费配置 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2025-02-20
|
||||
*/
|
||||
public interface BdMemberSpecialCurrencyMapper extends BaseMapper<BdMemberSpecialCurrency> {
|
||||
|
||||
|
|
|
@ -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"
|
||||
);
|
||||
|
||||
}
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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 = "订单所属会员下存在用户不能取消";
|
||||
|
||||
/**
|
||||
* 已超最大门票销售数量,不能购买!
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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),
|
||||
/**
|
||||
* 新零售复购专区
|
||||
*/
|
||||
|
|
|
@ -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")),
|
||||
|
||||
/**
|
||||
* V0(20)
|
||||
*/
|
||||
V0(EGrade.START_UP.getValue(), new BigDecimal("499")),
|
||||
V0(EGrade.START_UP.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V1(30)
|
||||
*/
|
||||
|
@ -33,19 +24,19 @@ public enum ERetailWaresPrice {
|
|||
/**
|
||||
* V2(40)
|
||||
*/
|
||||
V2(EGrade.YOU_KE.getValue(), new BigDecimal("359")),
|
||||
V2(EGrade.YOU_KE.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V3(50)
|
||||
*/
|
||||
V3(EGrade.MAKER.getValue(), new BigDecimal("309")),
|
||||
V3(EGrade.MAKER.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V4(60)
|
||||
*/
|
||||
V4(EGrade.VIP.getValue(), new BigDecimal("259")),
|
||||
V4(EGrade.VIP.getValue(), new BigDecimal("399")),
|
||||
/**
|
||||
* V5(70)
|
||||
*/
|
||||
V5(EGrade.S_VIP.getValue(), new BigDecimal("209")),
|
||||
V5(EGrade.S_VIP.getValue(), new BigDecimal("399")),
|
||||
|
||||
;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品特殊邮费配置
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-10-27
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
Loading…
Reference in New Issue