forked from angelo/java-retail-app
Compare commits
12 Commits
1aabd75a4a
...
d7d0c687ef
| Author | SHA1 | Date |
|---|---|---|
|
|
d7d0c687ef | |
|
|
82b56d2a7f | |
|
|
368d826145 | |
|
|
ffeb4bd10e | |
|
|
b161bcee8e | |
|
|
390cc54e5a | |
|
|
d120b77a30 | |
|
|
35f58e69b5 | |
|
|
d091a5ecfa | |
|
|
a6748ed31f | |
|
|
ac5ab1f953 | |
|
|
09bfe9b7c5 |
|
|
@ -61,12 +61,7 @@ public interface IMemberServiceApi {
|
|||
* @param pkApprove 审核人
|
||||
* @param saOrder 销售订单
|
||||
*/
|
||||
R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
|
||||
|
||||
/**
|
||||
* 自助撤单-注册单撤单
|
||||
**/
|
||||
R<Boolean> singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
|
||||
R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO, boolean selfBool);
|
||||
|
||||
/**
|
||||
* 撤销订单,需要更新会员,合并撤单,直接删除会员
|
||||
|
|
@ -391,4 +386,13 @@ public interface IMemberServiceApi {
|
|||
*/
|
||||
R<Map<Integer, CuMemberRetailRegion>> listEffectiveRegion(Date queryDate);
|
||||
|
||||
/**
|
||||
* 校验手机号必须唯一
|
||||
*
|
||||
* @param phone 联系方式
|
||||
* @param parentCode 推荐编号
|
||||
* @return 返回为null则正常,否则则错误信息
|
||||
*/
|
||||
R<String> checkRegisterRelation(String phone, String parentCode);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.hzs.member.detail;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.member.base.CuMemberRegister;
|
||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -16,9 +15,10 @@ public interface ICuMemberDetailServiceApi {
|
|||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param pkOrder 订单ID(可为null)
|
||||
* @param notUpType 不查询的升级方式(可为null)
|
||||
* @return
|
||||
*/
|
||||
R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder);
|
||||
R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType);
|
||||
|
||||
/**
|
||||
* 查询所有升级记录
|
||||
|
|
@ -28,12 +28,4 @@ public interface ICuMemberDetailServiceApi {
|
|||
*/
|
||||
R<List<CuMemberLevel>> getUpgradeList(Long pkMember);
|
||||
|
||||
/**
|
||||
* 查询会员注册信息
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @return
|
||||
*/
|
||||
R<CuMemberRegister> getMemberRegister(Long pkMember);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,7 @@ package com.hzs.sale.order;
|
|||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
||||
import com.hzs.common.domain.sale.ext.SaDeliverItemsExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.sale.order.dto.*;
|
||||
|
|
@ -75,15 +73,6 @@ public interface ISaOrderServiceApi {
|
|||
**/
|
||||
R<List<SaOrderExt>> selfAddressOrderList(String orderCode, Integer editType, Long memberId, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 批量保存订单
|
||||
*
|
||||
* @param orderList 订单列表(需要pk_id)
|
||||
* @param orderItemsList 订单明细列表
|
||||
* @return
|
||||
*/
|
||||
R<?> saveOrderBatch(List<SaOrder> orderList, List<SaOrderItems> orderItemsList);
|
||||
|
||||
/**
|
||||
* 查询注册订单数量
|
||||
*
|
||||
|
|
|
|||
|
|
@ -2,11 +2,8 @@ package com.hzs.system.base;
|
|||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
|
||||
import com.hzs.common.domain.system.sys.SysCorp;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
|
|
@ -45,19 +42,6 @@ public interface ICurrencyServiceApi {
|
|||
*/
|
||||
R<BdStorehouse> queryBdStorehouseByProvince(Integer province, Integer... type);
|
||||
|
||||
/**
|
||||
* 根据省查询对应的发货仓库
|
||||
*/
|
||||
R<BdStorehouse> queryBdStorehouseById(Integer pkId);
|
||||
|
||||
/**
|
||||
* 根据省查询对应的发货仓库
|
||||
*
|
||||
* @param provinceList 省列表
|
||||
* @return
|
||||
*/
|
||||
R<List<BdStorehouse>> queryBdStorehouseMapByProvince(Collection<Integer> provinceList);
|
||||
|
||||
/**
|
||||
* 根据id 查询所属历史币种
|
||||
*
|
||||
|
|
@ -70,23 +54,4 @@ public interface ICurrencyServiceApi {
|
|||
*/
|
||||
R<List<CurrencyDTO>> findAll();
|
||||
|
||||
/**
|
||||
* 提供查询供应商的dubbo调用
|
||||
*/
|
||||
R<BdCubasdocExt> queryBdCubasdocById(Integer pkId, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 提供查询供应商的dubbo调用
|
||||
*/
|
||||
R<BdCubasdocExt> queryBdCustomerById(Integer pkId, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 提供查询采购组织的dubbo调用
|
||||
*/
|
||||
R<SysCorp> querySysCorp(Integer pkId, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 根据仓库主键查询仓库
|
||||
*/
|
||||
R<List<BdStorehouse>> queryStorehouseByIds(Set<Integer> storehouseIdSet, Integer pkCountry, Integer pkCorp);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -283,6 +283,19 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
@Param("checkEmpty") Boolean checkEmpty,
|
||||
@Param("excludeMemberEmpty") Long excludeMemberEmpty);
|
||||
|
||||
|
||||
/**
|
||||
* 校验会员编号是否存在
|
||||
*
|
||||
* @param phoneList 会员联系方式列表
|
||||
* @param checkEmpty 是否需要校验批量空单数据
|
||||
* @param excludeMemberEmpty 排除的批次
|
||||
* @return
|
||||
*/
|
||||
List<MemberCountDTO> checkMemberPhoneExist(@Param("phoneList") Collection<String> phoneList,
|
||||
@Param("checkEmpty") Boolean checkEmpty,
|
||||
@Param("excludeMemberEmpty") Long excludeMemberEmpty);
|
||||
|
||||
/**
|
||||
* 查询全部用户
|
||||
*
|
||||
|
|
|
|||
|
|
@ -78,9 +78,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
|||
}
|
||||
|
||||
@Override
|
||||
public R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) {
|
||||
public R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO, boolean selfBool) {
|
||||
try {
|
||||
if (iCuMemberBusinessService.singleRevokeMemberByRegisterOrder(pkApprove, saOrder, businessCommissionDTO)) {
|
||||
if (iCuMemberBusinessService.singleRevokeMemberByRegisterOrder(pkApprove, saOrder, businessCommissionDTO, selfBool)) {
|
||||
return R.ok();
|
||||
}
|
||||
return R.fail("会员信息处理失败");
|
||||
|
|
@ -90,16 +90,6 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<Boolean> singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) {
|
||||
try {
|
||||
return R.ok(iCuMemberBusinessService.singleRevokeMemberBySelfRevokeOrder(pkApprove, saOrder, businessCommissionDTO));
|
||||
} catch (Exception e) {
|
||||
log.error("singleRevokeMemberBySelfRevokeOrder error msg: {}", e.getMessage(), e);
|
||||
return R.ok(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<Boolean> mergeRevokeMemberByRegisterOrder(Long pkApprove, List<Long> memberList, Map<Long, SaOrderExt> saOrderMap, BusinessCommissionDTO businessCommissionDTO) {
|
||||
try {
|
||||
|
|
@ -386,4 +376,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
|||
return R.ok(regionMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<String> checkRegisterRelation(String phone, String parentCode) {
|
||||
return R.ok(iCuMemberService.checkRegisterRelation(phone, parentCode));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,13 +83,10 @@ public interface ICuMemberBusinessService {
|
|||
*
|
||||
* @param pkApprove 审核人
|
||||
* @param saOrder 销售订单
|
||||
* @param selfBool 是否自助撤单
|
||||
*/
|
||||
Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
|
||||
|
||||
/**
|
||||
* 自助撤单-注册单撤单
|
||||
**/
|
||||
Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
|
||||
Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder,
|
||||
BusinessCommissionDTO businessCommissionDTO, boolean selfBool);
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -488,6 +488,16 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
*/
|
||||
Map<String, Integer> checkMemberCodeExist(Collection<String> codeList, Boolean checkEmpty, Long excludeMemberEmpty);
|
||||
|
||||
/**
|
||||
* 校验会员联系方式是否存在
|
||||
*
|
||||
* @param phoneList 会员联系方式列表
|
||||
* @param checkEmpty 是否需要校验批量空单数据
|
||||
* @param excludeMemberEmpty 排除的批次
|
||||
* @return
|
||||
*/
|
||||
Map<String, Integer> checkMemberPhoneExist(Collection<String> phoneList, Boolean checkEmpty, Long excludeMemberEmpty);
|
||||
|
||||
/**
|
||||
* 查询全部用户
|
||||
*
|
||||
|
|
@ -789,8 +799,6 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
CuMember getRetailTopMember(Long pkMember, String memberCode, Long topPkMember, String topMemberCode);
|
||||
|
||||
/**
|
||||
* 校验注册关系(是否跨团队)
|
||||
* 2024.12.24 修改为校验手机号必须唯一(9035)
|
||||
* 根据推荐人编号,校验手机号必须唯一
|
||||
*
|
||||
* @param phone 联系方式
|
||||
|
|
@ -807,6 +815,7 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
* @return
|
||||
*/
|
||||
String checkRegisterRelation(String phone, Long pkParent);
|
||||
String checkRegisterRelation(String phone, Integer systemType);
|
||||
|
||||
/**
|
||||
* 添加等级升级记录
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ import com.hzs.common.domain.sale.ext.SaOrderExt;
|
|||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.system.config.BdAccount;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.third.pay.TOnlinePayment;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
||||
|
|
@ -558,7 +557,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) {
|
||||
public Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder,
|
||||
BusinessCommissionDTO businessCommissionDTO, boolean selfBool) {
|
||||
deductCancelOrderCost(businessCommissionDTO);
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
|
||||
|
|
@ -566,51 +566,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
|
||||
// 会员账号 验证会员账户是否存在金额
|
||||
CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember());
|
||||
// 会员变为死点
|
||||
member.setCategory(ECategory.LOGGED_OUT.getValue());
|
||||
member.setCustomerType(ECustomerType.DEAD_POINT.getValue());
|
||||
member.setPkModified(saOrder.getPkModified());
|
||||
member.setModifiedTime(DateUtils.currentDateTime());
|
||||
iCuMemberService.updateById(member);
|
||||
// 撤销正常订单,修改 cu_member_register 账户状态为死点
|
||||
CuMemberRegister cuMemberRegister = new CuMemberRegister();
|
||||
cuMemberRegister.setPkMember(member.getPkId());
|
||||
cuMemberRegister.setPkCountry(saOrder.getPkCountry());
|
||||
cuMemberRegister.setPkModified(saOrder.getPkCreator());
|
||||
iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister);
|
||||
}
|
||||
|
||||
// 处理推荐人等级
|
||||
handleParentLevel(saOrder, currentDateTime);
|
||||
// 删除会员区域
|
||||
iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
|
||||
.eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
|
||||
.set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
|
||||
);
|
||||
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
// 默认回退给创建人
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
} else {
|
||||
// 在线支付,处理退款
|
||||
this.handleOnlineRefund(saOrder);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) {
|
||||
deductCancelOrderCost(businessCommissionDTO);
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
// 回退给创建人
|
||||
CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
|
||||
// 会员账号 验证会员账户是否存在金额
|
||||
CuMember member = iCuMemberService.getMember(saOrder.getPkMember());
|
||||
//删除会员
|
||||
if (selfBool) {
|
||||
// 自助撤单,删除会员相关信息
|
||||
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
|
||||
updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue());
|
||||
|
|
@ -625,18 +582,34 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified());
|
||||
updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId());
|
||||
iCuMemberRegisterService.update(updateWrapperRegister);
|
||||
} else {
|
||||
// 非自助撤单,会员变为死点
|
||||
member.setCategory(ECategory.LOGGED_OUT.getValue());
|
||||
member.setCustomerType(ECustomerType.DEAD_POINT.getValue());
|
||||
member.setPkModified(saOrder.getPkModified());
|
||||
member.setModifiedTime(DateUtils.currentDateTime());
|
||||
iCuMemberService.updateById(member);
|
||||
// 撤销正常订单,修改 cu_member_register 账户状态为死点
|
||||
CuMemberRegister cuMemberRegister = new CuMemberRegister();
|
||||
cuMemberRegister.setPkMember(member.getPkId());
|
||||
cuMemberRegister.setPkCountry(saOrder.getPkCountry());
|
||||
cuMemberRegister.setPkModified(saOrder.getPkCreator());
|
||||
iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理推荐人等级
|
||||
handleParentLevel(saOrder, currentDateTime);
|
||||
handleParentLevelCancel(saOrder, currentDateTime);
|
||||
// 删除会员区域
|
||||
iCuMemberRetailRegionService.update(Wrappers.<CuMemberRetailRegion>lambdaUpdate()
|
||||
.eq(CuMemberRetailRegion::getPkMember, saOrder.getPkMember())
|
||||
.set(CuMemberRetailRegion::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
|
||||
);
|
||||
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
// 默认回退给创建人
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
} else {
|
||||
// 在线支付,处理退款
|
||||
|
|
@ -902,10 +875,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
|
||||
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
|
||||
// 升级订单
|
||||
// 回退等级
|
||||
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
// 如果会员等级非代理,则需要删除会员区域
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||
|
||||
// 处理会员自己等级撤单
|
||||
gradeDTO = this.handleSelfCancel(gradeDTO, cuMember, saOrder, pkApprove, currentDateTime);
|
||||
|
||||
// 如果会员等级非代理,则需要删除会员区域
|
||||
if (gradeDTO.getGradeValue() != EGrade.REGION.getValue()
|
||||
&& gradeDTO.getGradeValue() != EGrade.DIRECTOR.getValue()) {
|
||||
// 删除会员区域选择
|
||||
|
|
@ -924,6 +899,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.set(CuMemberRetailRegion::getModifiedTime, currentDateTime)
|
||||
);
|
||||
}
|
||||
|
||||
// 删除购买升级的升级记录
|
||||
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
}
|
||||
|
||||
// 更新会员标记,如果是则更新会员信息
|
||||
|
|
@ -934,8 +912,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
}
|
||||
|
||||
// 处理推荐人等级
|
||||
this.handleParentLevel(saOrder, currentDateTime);
|
||||
// 处理推荐人等级撤单
|
||||
this.handleParentLevelCancel(saOrder, currentDateTime);
|
||||
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
|
|
@ -1509,9 +1487,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 保存会员等级变动
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0);
|
||||
|
||||
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
|
||||
|| EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 店主、代理级别,判断处理区域
|
||||
if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 代理级别,判断处理区域
|
||||
if (null != saOrder.getRegionProvince()
|
||||
&& null != saOrder.getRegionCity()) {
|
||||
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
||||
|
|
@ -1532,18 +1509,14 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void updateRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) {
|
||||
// 更新会员信息
|
||||
updateCuMember(cuMember);
|
||||
|
||||
// 会员等级
|
||||
// 会员新等级
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||
if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
|
||||
// 保存会员等级变动(如果旧等级和新等级相同,则不记录)
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
|
||||
|
||||
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
|
||||
|| EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 店主、代理级别,判断处理区域
|
||||
if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 代理级别,判断处理区域
|
||||
if (null != saOrder.getRegionProvince()
|
||||
&& null != saOrder.getRegionCity()) {
|
||||
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
||||
|
|
@ -1554,11 +1527,16 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
// 判断处理会员自己等级(下级有店主、代理,自己判断是否升级高级店主、董事代理)
|
||||
this.handleSelfUpgrade(gradeDTO, cuMember, saOrder.getPayTime());
|
||||
}
|
||||
// 更新会员信息
|
||||
updateCuMember(cuMember);
|
||||
|
||||
// 判断处理推荐人等级
|
||||
// 判断处理推荐人等级(自己是店主、代理,判断推荐人是否升级高级店主、董事代理)
|
||||
handleParentUpgrade(cuMember, saOrder, gradeDTO);
|
||||
|
||||
// 处理会员账户
|
||||
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
|
||||
}
|
||||
|
||||
|
|
@ -1616,7 +1594,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 判断推送MQ处理推荐人等级
|
||||
* 处理推荐人等级
|
||||
*
|
||||
* @param cuMember
|
||||
*/
|
||||
|
|
@ -1678,12 +1656,104 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 处理推荐人等级
|
||||
* 处理会员自己等级
|
||||
*
|
||||
* @param saOrder
|
||||
* @param currentDateTime
|
||||
* @param gradeDTO 新等级
|
||||
* @param cuMember 会员自己
|
||||
* @param payTime 订单支付时间(升级记录时间)
|
||||
*/
|
||||
private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) {
|
||||
private void handleSelfUpgrade(GradeDTO gradeDTO, CuMember cuMember, Date payTime) {
|
||||
if (null == gradeDTO) {
|
||||
gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||
}
|
||||
if (gradeDTO.getGradeValue().equals(EGrade.REGION.getValue())) {
|
||||
// 会员当前是区域代理,查询直推是否存在区域代理
|
||||
SaOrder recommendOrder = iCuMemberService.listRecommendVipOrder(cuMember.getPkId(), null, EGrade.REGION.getValue());
|
||||
if (null != recommendOrder) {
|
||||
recommendOrder.setPayTime(payTime);
|
||||
cuMember.setPkSettleGrade(iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData().getPkId());
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.AUTO_UPGRADE.getValue(), recommendOrder, gradeDTO.getPkId());
|
||||
}
|
||||
} else if (gradeDTO.getGradeValue().equals(EGrade.VIP.getValue())) {
|
||||
// 会员当前是博羚店主,查询直推是否存在博羚店主
|
||||
SaOrder recommendOrder = iCuMemberService.listRecommendVipOrder(cuMember.getPkId(), null, EGrade.VIP.getValue());
|
||||
if (null != recommendOrder) {
|
||||
recommendOrder.setPayTime(payTime);
|
||||
cuMember.setPkSettleGrade(iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData().getPkId());
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.AUTO_UPGRADE.getValue(), recommendOrder, gradeDTO.getPkId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理自己等级撤单
|
||||
*
|
||||
* @param gradeDTO
|
||||
* @param cuMember
|
||||
* @param saOrder
|
||||
* @param pkApprove
|
||||
* @param currentDateTime
|
||||
* @return
|
||||
*/
|
||||
private GradeDTO handleSelfCancel(GradeDTO gradeDTO, CuMember cuMember, SaOrderExt saOrder,
|
||||
Long pkApprove, Date currentDateTime) {
|
||||
if (gradeDTO.getGradeValue() == EGrade.S_VIP.getValue()
|
||||
|| gradeDTO.getGradeValue() == EGrade.DIRECTOR.getValue()) {
|
||||
// 会员等级为高级店主、董事代理,需要处理1+1逻辑
|
||||
// 查询会员所有升级列表
|
||||
List<CuMemberLevel> memberLevelList = iCuMemberLevelService.list(Wrappers.<CuMemberLevel>lambdaQuery()
|
||||
.eq(CuMemberLevel::getPkMember, cuMember.getPkId())
|
||||
.orderByDesc(CuMemberLevel::getUpgradeTime)
|
||||
);
|
||||
if (CollectionUtil.isNotEmpty(memberLevelList)) {
|
||||
// 撤销的订单对应的升级记录
|
||||
Optional<CuMemberLevel> orderLevelOpt = memberLevelList.stream().filter(
|
||||
tmpLevel -> null != tmpLevel.getPkOrder()
|
||||
&& tmpLevel.getPkOrder().equals(saOrder.getPkId())
|
||||
&& tmpLevel.getUpType().equals(EUpgradeType.BUY_UPGRADE.getValue())
|
||||
).findFirst();
|
||||
if (orderLevelOpt.isPresent()) {
|
||||
// 订单存在对应升级记录
|
||||
List<Long> pkLevelList = new ArrayList<>();
|
||||
|
||||
CuMemberLevel orderLevel = orderLevelOpt.get();
|
||||
pkLevelList.add(orderLevel.getPkId());
|
||||
|
||||
Optional<CuMemberLevel> autoLevelOpt = memberLevelList.stream().filter(
|
||||
tmpLevel -> tmpLevel.getPkMember().equals(cuMember.getPkId())
|
||||
&& tmpLevel.getUpType().equals(EUpgradeType.AUTO_UPGRADE.getValue())
|
||||
&& tmpLevel.getUpgradeTime().equals(orderLevel.getUpgradeTime())
|
||||
).findFirst();
|
||||
autoLevelOpt.ifPresent(cuMemberLevel -> pkLevelList.add(cuMemberLevel.getPkId()));
|
||||
|
||||
if (pkLevelList.size() > 0) {
|
||||
iCuMemberLevelService.update(Wrappers.<CuMemberLevel>lambdaUpdate()
|
||||
.in(CuMemberLevel::getPkId, pkLevelList)
|
||||
.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue())
|
||||
.set(CuMemberLevel::getPkModified, pkApprove)
|
||||
.set(CuMemberLevel::getModifiedTime, currentDateTime)
|
||||
);
|
||||
}
|
||||
// 升级记录中去掉删除的,剩下最新的为最后的等级
|
||||
Optional<CuMemberLevel> lastLevelOpt = memberLevelList.stream()
|
||||
.filter(tmpLevel -> !pkLevelList.contains(tmpLevel.getPkId()))
|
||||
.max(Comparator.comparing(CuMemberLevel::getUpgradeTime));
|
||||
lastLevelOpt.ifPresent(cuMemberLevel -> cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel()));
|
||||
|
||||
gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||
}
|
||||
}
|
||||
}
|
||||
return gradeDTO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 撤单处理推荐人等级
|
||||
*
|
||||
* @param saOrder 升级订单
|
||||
* @param currentDateTime 当前时间
|
||||
*/
|
||||
private void handleParentLevelCancel(SaOrderExt saOrder, Date currentDateTime) {
|
||||
// 注册、升级订单,需要判断是否有推荐人升级的
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
|
||||
|
|
@ -1704,13 +1774,13 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 推荐人是高级店主,查询直推博羚店主以上订单
|
||||
parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.VIP.getValue());
|
||||
}
|
||||
this.handleParentLevelUpdate(parentOrder, parentLevel, parentMember, currentDateTime);
|
||||
this.handleParentLevelCancelUpdate(parentOrder, parentLevel, parentMember, currentDateTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void handleParentLevelUpdate(SaOrder parentOrder, CuMemberLevel parentLevel, CuMemberExt parentMember, Date currentDateTime) {
|
||||
private void handleParentLevelCancelUpdate(SaOrder parentOrder, CuMemberLevel parentLevel, CuMemberExt parentMember, Date currentDateTime) {
|
||||
if (null != parentOrder) {
|
||||
// 存在其它博羚店主订单,重新处理升级记录
|
||||
CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
|
|||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresAuthority;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
|
||||
import com.hzs.common.security.service.UserTokenService;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
|
|
@ -77,7 +76,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -134,6 +132,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
private IMemberServiceApi memberServiceApi;
|
||||
@DubboReference
|
||||
private IGradeServiceApi gradeService;
|
||||
|
||||
@Override
|
||||
public Boolean saveMember(CuMember cuMember) {
|
||||
boolean save = false;
|
||||
|
|
@ -2505,6 +2504,19 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Integer> checkMemberPhoneExist(Collection<String> phoneList, Boolean checkEmpty, Long excludeMemberEmpty) {
|
||||
Map<String, Integer> resultMap = new HashMap<>();
|
||||
|
||||
List<MemberCountDTO> list = baseMapper.checkMemberPhoneExist(phoneList, checkEmpty, excludeMemberEmpty);
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
for (MemberCountDTO memberCountDTO : list) {
|
||||
resultMap.put(memberCountDTO.getPhone(), memberCountDTO.getMemberCount());
|
||||
}
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CuMemberExt> findAll() {
|
||||
return baseMapper.findAll();
|
||||
|
|
@ -3105,10 +3117,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
if (null == parentMember) {
|
||||
return "推荐人不存在";
|
||||
}
|
||||
// 2025年6月9日 - 手机号不唯一,在此不做唯一校验 - start
|
||||
// return this.checkRegisterRelation(phone, parentMember.getSystemType());
|
||||
return null;
|
||||
// 2025年6月9日 - 手机号不唯一,在此不做唯一校验 - end
|
||||
return this.checkRegisterRelation(phone, parentMember.getSystemType());
|
||||
} else {
|
||||
return "推荐人不存在";
|
||||
}
|
||||
|
|
@ -3121,18 +3130,17 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
* @param systemType 系统类型
|
||||
* @return
|
||||
*/
|
||||
private String checkRegisterRelation(String phone, Integer systemType) {
|
||||
// new 手机号可以重复,不需要进行是否重复校验
|
||||
@Override
|
||||
public String checkRegisterRelation(String phone, Integer systemType) {
|
||||
if (this.count(Wrappers.<CuMember>lambdaQuery()
|
||||
.eq(CuMember::getPhone, phone)
|
||||
.eq(CuMember::getCategory, ECategory.NORMAL.getValue())
|
||||
.eq(null != systemType, CuMember::getSystemType, systemType)
|
||||
) == 0) {
|
||||
// 手机号不存在,可以进行注册
|
||||
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 "注册信息已存在,请重新输入注册信息";
|
||||
}
|
||||
return "当前联系方式已经存在";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -18,10 +18,12 @@ public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {
|
|||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param pkOrder 订单ID(可为null)
|
||||
* @param notUpType 不查询的升级方式(可为null)
|
||||
* @return
|
||||
*/
|
||||
CuMemberLevel getLastUpgrade(@Param("pkMember") Long pkMember,
|
||||
@Param("pkOrder") Long pkOrder);
|
||||
@Param("pkOrder") Long pkOrder,
|
||||
@Param("notUpType") Integer notUpType);
|
||||
|
||||
/**
|
||||
* 查询所有升级记录
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
package com.hzs.member.detail.provider;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.member.base.CuMemberRegister;
|
||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
import com.hzs.member.base.service.ICuMemberRegisterService;
|
||||
import com.hzs.member.detail.ICuMemberDetailServiceApi;
|
||||
import com.hzs.member.detail.service.ICuMemberLevelService;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
|
|
@ -19,12 +17,10 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
|
|||
|
||||
@Autowired
|
||||
private ICuMemberLevelService iCuMemberLevelService;
|
||||
@Autowired
|
||||
private ICuMemberRegisterService iCuMemberRegisterService;
|
||||
|
||||
@Override
|
||||
public R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder) {
|
||||
return R.ok(iCuMemberLevelService.getLastUpgrade(pkMember, pkOrder));
|
||||
public R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType) {
|
||||
return R.ok(iCuMemberLevelService.getLastUpgrade(pkMember, pkOrder, notUpType));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -32,9 +28,4 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
|
|||
return R.ok(iCuMemberLevelService.getUpgradeList(pkMember));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<CuMemberRegister> getMemberRegister(Long pkMember) {
|
||||
return R.ok(iCuMemberRegisterService.queryCuMemberRegister(pkMember));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,9 +26,10 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
|
|||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param pkOrder 订单ID(可为null)
|
||||
* @param notUpType 不查询的升级方式(可为null)
|
||||
* @return
|
||||
*/
|
||||
CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder);
|
||||
CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType);
|
||||
|
||||
/**
|
||||
* 查询所有升级记录
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
|
|||
}
|
||||
|
||||
@Override
|
||||
public CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder) {
|
||||
return baseMapper.getLastUpgrade(pkMember, pkOrder);
|
||||
public CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType) {
|
||||
return baseMapper.getLastUpgrade(pkMember, pkOrder, notUpType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,11 +12,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 空单生成会员编号控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/29 11:14
|
||||
* @Classname: CuMemberEmptyCodeController
|
||||
* @PackageName: com.hzs.member.empty.controller.manage
|
||||
* 空单生成会员编号控制器
|
||||
*/
|
||||
@RequestMapping("/manage/member-empty-code")
|
||||
@RestController
|
||||
|
|
|
|||
|
|
@ -24,13 +24,11 @@ import com.hzs.common.core.web.page.TableDataInfo;
|
|||
import com.hzs.common.domain.member.empty.CuMemberEmpty;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductDTO;
|
||||
import com.hzs.common.security.service.UserTokenService;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.member.empty.dto.MemberEmptyDetailDTO;
|
||||
import com.hzs.member.empty.dto.MemberEmptyProductDTO;
|
||||
import com.hzs.member.empty.param.MemberEmptyAddParam;
|
||||
import com.hzs.member.empty.param.MemberEmptySignParam;
|
||||
import com.hzs.member.empty.param.MemberEmptyQueryParam;
|
||||
|
|
@ -220,21 +218,6 @@ public class CuMemberEmptyController extends BaseController {
|
|||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM));
|
||||
}
|
||||
}
|
||||
// 选购产品,需要校验产品以及地址信息
|
||||
if (EYesNo.YES.getIntValue() == detail.getProductFlag()) {
|
||||
if (StringUtils.isAnyEmpty(detail.getRecName(), detail.getRecPhone(), detail.getRecAddress())
|
||||
|| null == detail.getRecProvince() || null == detail.getRecCity() || CollectionUtil.isEmpty(detail.getProductList())) {
|
||||
// 缺少参数
|
||||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM));
|
||||
}
|
||||
for (MemberEmptyProductDTO product : detail.getProductList()) {
|
||||
if (StringUtils.isAnyEmpty(product.getSpecsName(), product.getSpecsNameId())
|
||||
|| null == product.getPkProduct() || null == product.getQuantity()) {
|
||||
// 缺少参数
|
||||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (iMemberEmptyService.updateDate(paramList, SecurityUtils.getUserId(), SecurityUtils.getPkCountry())) {
|
||||
|
|
@ -443,10 +426,6 @@ public class CuMemberEmptyController extends BaseController {
|
|||
detailDTO.setPkCountryVal(emptyDetail.getCountryName());
|
||||
detailDTO.setPkSettleCountryVal(emptyDetail.getSettleCountryName());
|
||||
|
||||
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
|
||||
// 处理产品信息
|
||||
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
|
||||
}
|
||||
dataList.add(detailDTO);
|
||||
}
|
||||
}
|
||||
|
|
@ -496,25 +475,8 @@ public class CuMemberEmptyController extends BaseController {
|
|||
detailDTO.setOrderTypeVal(cacheMap.get(EnumsPrefixConstants.ORDER_TYPE + emptyDetail.getOrderType()));
|
||||
detailDTO.setPointStatusVal(cacheMap.get(EnumsPrefixConstants.POINT_STATUS + emptyDetail.getPointStatus()));
|
||||
detailDTO.setSettlementFlagVal(cacheMap.get(EnumsPrefixConstants.YES_NO + emptyDetail.getSettlementFlag()));
|
||||
detailDTO.setProductFlagVal(cacheMap.get(EnumsPrefixConstants.YES_NO + emptyDetail.getProductFlag()));
|
||||
detailDTO.setAutoFlagVal(cacheMap.get(EnumsPrefixConstants.DEALER_YES_NO + emptyDetail.getAutoFlag()));
|
||||
|
||||
// 处理产品显示数据
|
||||
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
|
||||
// 产品信息拼接
|
||||
StringBuilder productSb = new StringBuilder();
|
||||
List<CuMemberEmptyProductDTO> productList = emptyDetail.getProductDTOList();
|
||||
for (CuMemberEmptyProductDTO productDTO : productList) {
|
||||
productSb.append(productDTO.getProductName())
|
||||
.append("(")
|
||||
.append(productDTO.getSpecsName())
|
||||
.append(") * ")
|
||||
.append(productDTO.getQuantity())
|
||||
.append("; \n");
|
||||
}
|
||||
detailDTO.setProductStr(productSb.toString());
|
||||
}
|
||||
|
||||
resultList.add(detailDTO);
|
||||
}
|
||||
}
|
||||
|
|
@ -548,11 +510,6 @@ public class CuMemberEmptyController extends BaseController {
|
|||
|
||||
for (CuMemberEmptyDetailExt emptyDetail : detailList) {
|
||||
MemberEmptyDetailDTO detailDTO = BeanUtil.copyProperties(emptyDetail, MemberEmptyDetailDTO.class);
|
||||
|
||||
// 处理产品信息
|
||||
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
|
||||
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
|
||||
}
|
||||
paramList.add(detailDTO);
|
||||
}
|
||||
|
||||
|
|
@ -600,11 +557,6 @@ public class CuMemberEmptyController extends BaseController {
|
|||
|
||||
for (CuMemberEmptyDetailExt emptyDetail : detailList) {
|
||||
MemberEmptyDetailDTO detailDTO = BeanUtil.copyProperties(emptyDetail, MemberEmptyDetailDTO.class);
|
||||
|
||||
// 处理产品信息
|
||||
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
|
||||
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
|
||||
}
|
||||
paramList.add(detailDTO);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,13 +11,10 @@ import com.hzs.common.core.utils.poi.ExcelUtil;
|
|||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.member.empty.param.MemberEmptyRegisterQueryParam;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyService;
|
||||
import com.hzs.member.empty.vo.MemberEmptyRegisterQueryProductVO;
|
||||
import com.hzs.member.empty.vo.MemberEmptyRegisterQueryVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
@ -27,14 +24,9 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 空单注册列表控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/7/6 15:06
|
||||
* @Classname: CuMemberEmptyRegisterController
|
||||
* @PackageName: com.hzs.member.empty.controller.manage
|
||||
* 空单注册列表控制器
|
||||
*/
|
||||
@RequestMapping("/manage/member-empty-register")
|
||||
@RestController
|
||||
|
|
@ -43,8 +35,6 @@ public class CuMemberEmptyRegisterController extends BaseController {
|
|||
@Autowired
|
||||
private ICuMemberEmptyService iCuMemberEmptyService;
|
||||
@Autowired
|
||||
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
|
||||
@Autowired
|
||||
private ITransactionCommonService iTransactionCommonService;
|
||||
|
||||
/**
|
||||
|
|
@ -66,19 +56,8 @@ public class CuMemberEmptyRegisterController extends BaseController {
|
|||
startPage();
|
||||
List<CuMemberEmptyDetailExt> list = iCuMemberEmptyService.emptyRegisterList(param, pkCountry);
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
|
||||
// 查询空单批次产品信息
|
||||
Map<Long, List<CuMemberEmptyProductExt>> productMap = iCuMemberEmptyProductService.queryProductList(list.stream().map(CuMemberEmptyDetailExt::getPkId).collect(Collectors.toList()));
|
||||
|
||||
for (CuMemberEmptyDetailExt emptyDetailExt : list) {
|
||||
MemberEmptyRegisterQueryVO queryVO = BeanUtil.copyProperties(emptyDetailExt, MemberEmptyRegisterQueryVO.class);
|
||||
|
||||
// 产品数据处理
|
||||
List<CuMemberEmptyProductExt> emptyProductList = productMap.get(emptyDetailExt.getPkId());
|
||||
if (CollectionUtil.isNotEmpty(emptyProductList)) {
|
||||
queryVO.setDetailList(BeanUtil.copyToList(emptyProductList, MemberEmptyRegisterQueryProductVO.class));
|
||||
}
|
||||
|
||||
resultList.add(queryVO);
|
||||
}
|
||||
}
|
||||
|
|
@ -105,10 +84,6 @@ public class CuMemberEmptyRegisterController extends BaseController {
|
|||
|
||||
List<CuMemberEmptyDetailExt> list = iCuMemberEmptyService.emptyRegisterList(param, pkCountry);
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
|
||||
// 查询空单批次产品信息
|
||||
Map<Long, List<CuMemberEmptyProductExt>> productMap = iCuMemberEmptyProductService.queryProductList(list.stream().map(CuMemberEmptyDetailExt::getPkId).collect(Collectors.toList()));
|
||||
|
||||
// 获取翻译内容
|
||||
Map<String, String> cacheMap = iTransactionCommonService.exportEnumTransaction(EPlaceDept.values(), EOrderSource.values(), EOrderType.values(), EDealerYesNo.values());
|
||||
Map<Integer, String> dbMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
|
||||
|
|
@ -123,24 +98,6 @@ public class CuMemberEmptyRegisterController extends BaseController {
|
|||
queryVO.setOrderSourceVal(cacheMap.get(EnumsPrefixConstants.ORDER_SOURCE + queryVO.getOrderSource()));
|
||||
queryVO.setOrderTypeVal(cacheMap.get(EnumsPrefixConstants.ORDER_TYPE + queryVO.getOrderType()));
|
||||
queryVO.setSettlementFlagVal(cacheMap.get(EnumsPrefixConstants.DEALER_YES_NO + queryVO.getSettlementFlag()));
|
||||
queryVO.setProductFlagVal(cacheMap.get(EnumsPrefixConstants.DEALER_YES_NO + queryVO.getProductFlag()));
|
||||
|
||||
// 产品信息拼接
|
||||
StringBuilder productSb = new StringBuilder();
|
||||
// 产品信息
|
||||
List<CuMemberEmptyProductExt> emptyProductList = productMap.get(emptyDetailExt.getPkId());
|
||||
if (CollectionUtil.isNotEmpty(emptyProductList)) {
|
||||
for (CuMemberEmptyProductExt emptyProduct : emptyProductList) {
|
||||
productSb.append(emptyProduct.getProductName())
|
||||
.append("(")
|
||||
.append(emptyProduct.getSpecsName())
|
||||
.append(") * ")
|
||||
.append(emptyProduct.getQuantity())
|
||||
.append("; \n");
|
||||
}
|
||||
}
|
||||
queryVO.setProductStr(productSb.toString());
|
||||
|
||||
resultList.add(queryVO);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
package com.hzs.member.empty.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/7/4 11:36
|
||||
* @Classname: CuMemberPhoneDTO
|
||||
* @PackageName: com.hzs.member.empty.dto
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class EmptyMemberDTO {
|
||||
|
||||
/**
|
||||
* 联系方式
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 结算国家
|
||||
*/
|
||||
private Integer pkSettleCountry;
|
||||
|
||||
/**
|
||||
* 明细数据
|
||||
*/
|
||||
private List<EmptyMemberDetailDTO> detailList;
|
||||
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
package com.hzs.member.empty.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Description: 查询会员明细DTO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/7/4 11:36
|
||||
* @Classname: CuMemberPhoneDetailDTO
|
||||
* @PackageName: com.hzs.member.empty.dto
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class EmptyMemberDetailDTO {
|
||||
|
||||
/**
|
||||
* 会员编号
|
||||
*/
|
||||
private String memberCode;
|
||||
|
||||
/**
|
||||
* 会员名称
|
||||
*/
|
||||
private String memberName;
|
||||
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@ import com.hzs.common.core.constant.EnumsPrefixConstants;
|
|||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 空单注册明细DTO
|
||||
|
|
@ -173,71 +172,6 @@ public class MemberEmptyDetailDTO {
|
|||
@Excel(name = "上传业绩")
|
||||
private BigDecimal transferAchieve;
|
||||
|
||||
/**
|
||||
* 选购产品(0=是,1=否)
|
||||
*/
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
|
||||
private Integer productFlag;
|
||||
/**
|
||||
* 选购产品显示
|
||||
*/
|
||||
@Excel(name = "选购产品")
|
||||
private String productFlagVal;
|
||||
|
||||
/**
|
||||
* 产品拼装(导出使用)
|
||||
*/
|
||||
@Excel(name = "产品信息")
|
||||
private String productStr;
|
||||
|
||||
/**
|
||||
* 收货人
|
||||
*/
|
||||
@Excel(name = "收货人")
|
||||
private String recName;
|
||||
|
||||
/**
|
||||
* 联系方式
|
||||
*/
|
||||
@Excel(name = "联系方式")
|
||||
private String recPhone;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private Integer recProvince;
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
@Excel(name = "省")
|
||||
private String recProvinceVal;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
private Integer recCity;
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
@Excel(name = "市")
|
||||
private String recCityVal;
|
||||
|
||||
/**
|
||||
* 县
|
||||
*/
|
||||
private Integer recCounty;
|
||||
/**
|
||||
* 县
|
||||
*/
|
||||
@Excel(name = "县")
|
||||
private String recCountyVal;
|
||||
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
@Excel(name = "详细地址")
|
||||
private String recAddress;
|
||||
|
||||
/**
|
||||
* 是否激活标记(0=是,1=否)
|
||||
*/
|
||||
|
|
@ -271,9 +205,4 @@ public class MemberEmptyDetailDTO {
|
|||
@Excel(name = "生成备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 产品列表
|
||||
*/
|
||||
private List<MemberEmptyProductDTO> productList;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
package com.hzs.member.empty.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description: 空单产品DTO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/6/19 14:45
|
||||
* @Classname: CuMemberEmptyProductDTO
|
||||
* @PackageName: com.hzs.member.empty.dto
|
||||
*/
|
||||
@Data
|
||||
public class MemberEmptyProductDTO {
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
private Integer pkProduct;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 产品规格
|
||||
*/
|
||||
private String specsName;
|
||||
|
||||
/**
|
||||
* 产品规格ID
|
||||
*/
|
||||
private String specsNameId;
|
||||
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
private Integer quantity;
|
||||
|
||||
}
|
||||
|
|
@ -11,9 +11,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 空单批次 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
public interface CuMemberEmptyMapper extends BaseMapper<CuMemberEmpty> {
|
||||
|
||||
|
|
@ -45,5 +42,4 @@ public interface CuMemberEmptyMapper extends BaseMapper<CuMemberEmpty> {
|
|||
*/
|
||||
String queryLastCode();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,46 +2,10 @@ package com.hzs.member.empty.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 空单批次明细产品 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-08-28
|
||||
*/
|
||||
public interface CuMemberEmptyProductMapper extends BaseMapper<CuMemberEmptyProduct> {
|
||||
|
||||
/**
|
||||
* 批量删除会员空单产品
|
||||
*
|
||||
* @param emptyProductList 空单产品数据
|
||||
* @param pkMemberEmpty 空单批次ID
|
||||
* @param userId 当前会员
|
||||
* @return
|
||||
*/
|
||||
int deleteBatch(@Param("emptyProductList") List<CuMemberEmptyProduct> emptyProductList,
|
||||
@Param("pkMemberEmpty") Long pkMemberEmpty,
|
||||
@Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 批量插入会员空单产品
|
||||
*
|
||||
* @param emptyProductList 空单产品数据
|
||||
* @param userId 当前会员
|
||||
* @return
|
||||
*/
|
||||
int insertOrUpdateBatch(@Param("emptyProductList") List<CuMemberEmptyProduct> emptyProductList, @Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 查询空单明细产品信息列表
|
||||
*
|
||||
* @param emptyDetailIdList 空单明细ID列表
|
||||
* @return
|
||||
*/
|
||||
List<CuMemberEmptyProductExt> queryProductList(@Param("emptyDetailIdList") List<Long> emptyDetailIdList);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 空单批次明细 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
public interface ICuMemberEmptyDetailService extends IService<CuMemberEmptyDetail> {
|
||||
|
||||
|
|
|
|||
|
|
@ -2,44 +2,11 @@ package com.hzs.member.empty.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 空单批次明细产品 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-08-28
|
||||
*/
|
||||
public interface ICuMemberEmptyProductService extends IService<CuMemberEmptyProduct> {
|
||||
|
||||
/**
|
||||
* 批量删除会员空单产品
|
||||
*
|
||||
* @param emptyProductList 空单产品数据
|
||||
* @param pkMemberEmpty 空单批次ID
|
||||
* @param userId 当前会员
|
||||
* @return
|
||||
*/
|
||||
int deleteBatch(List<CuMemberEmptyProduct> emptyProductList, Long pkMemberEmpty, Long userId);
|
||||
|
||||
/**
|
||||
* 批量插入会员空单产品
|
||||
*
|
||||
* @param emptyProductList 空单产品数据
|
||||
* @param userId 当前会员
|
||||
* @return
|
||||
*/
|
||||
int insertOrUpdateBatch(List<CuMemberEmptyProduct> emptyProductList, Long userId);
|
||||
|
||||
/**
|
||||
* 查询空单明细产品信息列表
|
||||
*
|
||||
* @param emptyDetailIdList 空单明细ID列表
|
||||
* @return
|
||||
*/
|
||||
Map<Long, List<CuMemberEmptyProductExt>> queryProductList(List<Long> emptyDetailIdList);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,11 +9,7 @@ import com.hzs.system.sys.dto.LoginUser;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 空单处理服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/6/17 14:07
|
||||
* @Classname: IMemberEMptyService
|
||||
* @PackageName: com.hzs.member.empty.service
|
||||
* 空单处理服务
|
||||
*/
|
||||
public interface IMemberEmptyService {
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,12 @@ import com.hzs.common.core.enums.EDelFlag;
|
|||
import com.hzs.common.domain.member.empty.CuMemberEmpty;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyCode;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
|
||||
import com.hzs.member.empty.dto.MemberEmptyDetailDTO;
|
||||
import com.hzs.member.empty.mapper.CuMemberEmptyDetailMapper;
|
||||
import com.hzs.member.empty.param.MemberEmptyAddParam;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyDetailService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -25,9 +23,6 @@ import java.util.stream.Collectors;
|
|||
|
||||
/**
|
||||
* 空单批次明细 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberEmptyDetailServiceImpl extends ServiceImpl<CuMemberEmptyDetailMapper, CuMemberEmptyDetail> implements ICuMemberEmptyDetailService {
|
||||
|
|
@ -36,8 +31,6 @@ public class CuMemberEmptyDetailServiceImpl extends ServiceImpl<CuMemberEmptyDet
|
|||
private ICuMemberEmptyService iCuMemberEmptyService;
|
||||
@Autowired
|
||||
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
||||
@Autowired
|
||||
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
|
|
@ -92,15 +85,6 @@ public class CuMemberEmptyDetailServiceImpl extends ServiceImpl<CuMemberEmptyDet
|
|||
codeUpdateWrapper.set(CuMemberEmptyCode::getModifiedTime, nowDate);
|
||||
iCuMemberEmptyCodeService.update(codeUpdateWrapper);
|
||||
|
||||
// 删除空单明细产品
|
||||
LambdaUpdateWrapper<CuMemberEmptyProduct> productUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
productUpdateWrapper.in(CuMemberEmptyProduct::getPkMemberEmptyDetail, detailIdList);
|
||||
productUpdateWrapper.eq(CuMemberEmptyProduct::getDelFlag, EDelFlag.UN_DELETE.getValue());
|
||||
productUpdateWrapper.set(CuMemberEmptyProduct::getDelFlag, EDelFlag.DELETE.getValue());
|
||||
productUpdateWrapper.set(CuMemberEmptyProduct::getPkModified, userId);
|
||||
productUpdateWrapper.set(CuMemberEmptyProduct::getModifiedTime, nowDate);
|
||||
iCuMemberEmptyProductService.update(productUpdateWrapper);
|
||||
|
||||
// 删除空单明细
|
||||
LambdaUpdateWrapper<CuMemberEmptyDetail> detailUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
detailUpdateWrapper.in(CuMemberEmptyDetail::getPkId, detailIdList);
|
||||
|
|
|
|||
|
|
@ -1,48 +1,16 @@
|
|||
package com.hzs.member.empty.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
|
||||
import com.hzs.member.empty.mapper.CuMemberEmptyProductMapper;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 空单批次明细产品 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-08-28
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberEmptyProductServiceImpl extends ServiceImpl<CuMemberEmptyProductMapper, CuMemberEmptyProduct> implements ICuMemberEmptyProductService {
|
||||
|
||||
@Override
|
||||
public int deleteBatch(List<CuMemberEmptyProduct> emptyProductList, Long pkMemberEmpty, Long userId) {
|
||||
return baseMapper.deleteBatch(emptyProductList, pkMemberEmpty, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertOrUpdateBatch(List<CuMemberEmptyProduct> emptyProductList, Long userId) {
|
||||
return baseMapper.insertOrUpdateBatch(emptyProductList, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, List<CuMemberEmptyProductExt>> queryProductList(List<Long> emptyDetailIdList) {
|
||||
Map<Long, List<CuMemberEmptyProductExt>> resultMap = new HashMap<>();
|
||||
|
||||
List<CuMemberEmptyProductExt> resultList = baseMapper.queryProductList(emptyDetailIdList);
|
||||
if (CollectionUtil.isNotEmpty(resultList)) {
|
||||
for (CuMemberEmptyProductExt productExt : resultList) {
|
||||
resultMap.computeIfAbsent(productExt.getPkMemberEmptyDetail(), k -> new ArrayList<>()).add(productExt);
|
||||
}
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ import com.hzs.common.core.enums.EDelFlag;
|
|||
import com.hzs.common.core.enums.EOrderPrefix;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmpty;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
|
||||
import com.hzs.member.empty.mapper.CuMemberEmptyMapper;
|
||||
import com.hzs.member.empty.param.MemberEmptyQueryParam;
|
||||
import com.hzs.member.empty.param.MemberEmptyRegisterQueryParam;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyDetailService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
|
||||
import com.hzs.member.empty.service.ICuMemberEmptyService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -23,17 +21,12 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 空单批次 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberEmptyServiceImpl extends ServiceImpl<CuMemberEmptyMapper, CuMemberEmpty> implements ICuMemberEmptyService {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberEmptyDetailService iCuMemberEmptyDetailService;
|
||||
@Autowired
|
||||
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
|
||||
|
||||
@Override
|
||||
public List<CuMemberEmpty> queryList(MemberEmptyQueryParam param, Integer pkCountry, Integer systemType) {
|
||||
|
|
@ -62,14 +55,6 @@ public class CuMemberEmptyServiceImpl extends ServiceImpl<CuMemberEmptyMapper, C
|
|||
emptyDetailUpdateWrapper.set(CuMemberEmptyDetail::getPkModified, userId);
|
||||
emptyDetailUpdateWrapper.set(CuMemberEmptyDetail::getModifiedTime, nowDate);
|
||||
iCuMemberEmptyDetailService.update(emptyDetailUpdateWrapper);
|
||||
|
||||
// 删除空单产品明细
|
||||
LambdaUpdateWrapper<CuMemberEmptyProduct> emptyProductUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
emptyProductUpdateWrapper.in(CuMemberEmptyProduct::getPkMemberEmpty, pkIdList);
|
||||
emptyProductUpdateWrapper.set(CuMemberEmptyProduct::getDelFlag, EDelFlag.DELETE.getValue());
|
||||
emptyProductUpdateWrapper.set(CuMemberEmptyProduct::getPkModified, userId);
|
||||
emptyProductUpdateWrapper.set(CuMemberEmptyProduct::getModifiedTime, nowDate);
|
||||
iCuMemberEmptyProductService.update(emptyProductUpdateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.constant.RabbitMqConstants;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.core.constant.msg.CommonMsgConstants;
|
||||
|
|
@ -14,7 +13,6 @@ import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
|||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.exception.ServiceException;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.CommonUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
|
|
@ -26,11 +24,6 @@ import com.hzs.common.domain.member.detail.CuMemberGrade;
|
|||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
import com.hzs.common.domain.member.empty.*;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
|
||||
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductDTO;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||
import com.hzs.common.domain.system.config.BdAccount;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
|
|
@ -41,10 +34,8 @@ import com.hzs.member.base.service.ICuMemberRegisterService;
|
|||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.member.detail.service.ICuMemberLevelService;
|
||||
import com.hzs.member.empty.dto.MemberEmptyDetailDTO;
|
||||
import com.hzs.member.empty.dto.MemberEmptyProductDTO;
|
||||
import com.hzs.member.empty.param.MemberEmptySignParam;
|
||||
import com.hzs.member.empty.service.*;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IAccountServiceApi;
|
||||
|
|
@ -78,8 +69,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
@Autowired
|
||||
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
|
||||
@Autowired
|
||||
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
|
||||
@Autowired
|
||||
private ICuMemberEmptyLogService iCuMemberEmptyLogService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
|
|
@ -101,21 +90,18 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
@DubboReference
|
||||
IAccountServiceApi iAccountServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
IApprovalServiceApi iApprovalServiceApi;
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@Override
|
||||
public void importTemplate(List<MemberEmptyDetailDTO> resultList) {
|
||||
// 会员编号列表(导入会员编号去重)
|
||||
List<String> checkMemberList = new ArrayList<>();
|
||||
// 会员联系方式列表(需要查库校验)
|
||||
List<String> checkPhoneList = new ArrayList<>();
|
||||
|
||||
// 遍历导入数据,提取各种校验所需要的数据
|
||||
for (MemberEmptyDetailDTO detail : resultList) {
|
||||
this.checkBase(detail, checkMemberList);
|
||||
this.checkBase(detail, checkMemberList, checkPhoneList);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -187,8 +173,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
CuMemberEmpty memberEmpty = new CuMemberEmpty();
|
||||
// 空单明细数据
|
||||
List<CuMemberEmptyDetail> detailList = new ArrayList<>();
|
||||
// 空单明细产品数据
|
||||
List<CuMemberEmptyProduct> productList = new ArrayList<>();
|
||||
|
||||
// 空单数据
|
||||
MemberEmptyDetailDTO tmpDetail = resultList.get(0);
|
||||
|
|
@ -200,34 +184,12 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
// 空单明细数据
|
||||
for (MemberEmptyDetailDTO detailDTO : resultList) {
|
||||
detailList.add(BeanUtil.copyProperties(detailDTO, CuMemberEmptyDetail.class));
|
||||
|
||||
// 产品列表数据
|
||||
List<MemberEmptyProductDTO> tmpProductList = detailDTO.getProductList();
|
||||
if (CollectionUtil.isNotEmpty(tmpProductList)) {
|
||||
for (MemberEmptyProductDTO productDTO : tmpProductList) {
|
||||
CuMemberEmptyProduct cuMemberEmptyProduct = new CuMemberEmptyProduct();
|
||||
cuMemberEmptyProduct.setPkMemberEmpty(detailDTO.getPkMemberEmpty());
|
||||
cuMemberEmptyProduct.setPkMemberEmptyDetail(detailDTO.getPkId());
|
||||
cuMemberEmptyProduct.setPkProduct(productDTO.getPkProduct());
|
||||
cuMemberEmptyProduct.setQuantity(productDTO.getQuantity());
|
||||
cuMemberEmptyProduct.setSpecsName(productDTO.getSpecsName());
|
||||
cuMemberEmptyProduct.setSpecsNameId(productDTO.getSpecsNameId());
|
||||
cuMemberEmptyProduct.setPkCountry(pkCountry);
|
||||
productList.add(cuMemberEmptyProduct);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 修改空单批次
|
||||
iCuMemberEmptyService.updateById(memberEmpty);
|
||||
// 更新空单批次明细
|
||||
iCuMemberEmptyDetailService.updateBatch(detailList, userId);
|
||||
// 删除部分空单产品数据
|
||||
iCuMemberEmptyProductService.deleteBatch(productList, userId, tmpDetail.getPkMemberEmpty());
|
||||
if (CollectionUtil.isNotEmpty(productList)) {
|
||||
// 插入或更新空间批次产品
|
||||
iCuMemberEmptyProductService.insertOrUpdateBatch(productList, userId);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -249,7 +211,7 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
|
||||
// 遍历导入数据,提取各种校验所需要的数据
|
||||
for (MemberEmptyDetailDTO detail : resultList) {
|
||||
if (this.checkBase(detail, checkMemberList)) {
|
||||
if (this.checkBase(detail, checkMemberList, checkPhoneList)) {
|
||||
// 已经存在异常,直接返回
|
||||
return false;
|
||||
}
|
||||
|
|
@ -264,8 +226,8 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
|
||||
// 查询会员编号是否存在
|
||||
Map<String, Integer> checkCodeMap = iCuMemberService.checkMemberCodeExist(checkMemberList, true, pkMemberEmpty);
|
||||
// // 查询联系方式是否存在
|
||||
// Map<String, Integer> checkPhoneMap = iCuMemberService.checkMemberPhoneExist(checkPhoneList, true, pkMemberEmpty, systemType);
|
||||
// 查询联系方式是否存在
|
||||
Map<String, Integer> checkPhoneMap = iCuMemberService.checkMemberPhoneExist(checkPhoneList, true, pkMemberEmpty);
|
||||
|
||||
// 查询推荐编号是否存在(在本次推荐数据中的直接排除掉)
|
||||
final Map<String, Integer> checkParentCodeMap = new HashMap<>();
|
||||
|
|
@ -284,6 +246,15 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
bool[0] = false;
|
||||
}
|
||||
}
|
||||
if (checkPhoneMap.size() > 0) {
|
||||
if (null != checkPhoneMap.get(detail.getPhone()) && checkPhoneMap.get(detail.getPhone()) >= 1) {
|
||||
// 导入的会员联系方式已经存在数据库中,异常状态
|
||||
detail.setPointStatus(EPointStatus.ABNORMAL.getValue());
|
||||
// 会员联系方式存在重复
|
||||
detail.setContentAbstract(detail.getContentAbstract().replace(TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT), "") + TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT) + ";");
|
||||
bool[0] = false;
|
||||
}
|
||||
}
|
||||
// 处理校验推荐编号是否存在
|
||||
if (!checkMemberList.contains(detail.getParentCode()) && checkParentCodeMap.get(detail.getParentCode()) == null) {
|
||||
// 推荐编号不在本次导入的会员中,也不在数据库中,异常状态
|
||||
|
|
@ -313,8 +284,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
Map<String, Long> memberAccountSeqMap = new HashMap<>();
|
||||
// 需要查询汇率数据
|
||||
Set<Integer> queryRateSet = new HashSet<>();
|
||||
// 需要查询仓库数据
|
||||
Set<Integer> queryStoreHouseSet = new HashSet<>();
|
||||
// 需要查询奖金账户数据
|
||||
Set<Integer> queryAccountSet = new HashSet<>();
|
||||
|
||||
|
|
@ -323,8 +292,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
// 生成需要入库的会员账户ID列表
|
||||
List<Long> memberAccountSeqList = iCuMemberAccountService.querySeqList(detailList.size());
|
||||
|
||||
// 订单需要生成seq的数量
|
||||
int orderSeqCount = 0;
|
||||
// 遍历空单明细数据,提取准备的数据
|
||||
for (int i = 0; i < detailList.size(); i++) {
|
||||
CuMemberEmptyDetailExt emptyDetail = detailList.get(i);
|
||||
|
|
@ -339,14 +306,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
// 需要查库的汇率数据
|
||||
queryRateSet.add(emptyDetail.getPkSettleCountry());
|
||||
|
||||
// 如果选购产品并且存在产品信息
|
||||
if (EYesNo.YES.getIntValue() == emptyDetail.getProductFlag() && CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
|
||||
// 累计订单数量
|
||||
orderSeqCount++;
|
||||
// 记录查询仓库数据
|
||||
queryStoreHouseSet.add(emptyDetail.getRecProvince());
|
||||
}
|
||||
|
||||
if (null != emptyDetail.getBackAmount() && emptyDetail.getBackAmount().compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 回调金额大于0,记录查询账户国家
|
||||
queryAccountSet.add(emptyDetail.getPkSettleCountry());
|
||||
|
|
@ -378,18 +337,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
}
|
||||
}
|
||||
|
||||
// 省对应发货仓库(key: 省ID,value: 仓库ID)
|
||||
Map<Integer, Integer> storehouseMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(queryStoreHouseSet)) {
|
||||
// 查询省对应仓库
|
||||
List<BdStorehouse> storehouseList = iCurrencyServiceApi.queryBdStorehouseMapByProvince(queryStoreHouseSet).getData();
|
||||
if (CollectionUtil.isNotEmpty(storehouseList)) {
|
||||
for (BdStorehouse storehouse : storehouseList) {
|
||||
storehouseMap.put(storehouse.getProvince(), storehouse.getPkId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 回填金额账户数据(key: 国家ID,value: 账户ID)
|
||||
Map<Integer, Integer> accountMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(queryAccountSet)) {
|
||||
|
|
@ -402,14 +349,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
}
|
||||
}
|
||||
|
||||
// 生成订单seq数据
|
||||
List<Long> orderSeqList = new ArrayList<>(orderSeqCount);
|
||||
if (0 != orderSeqCount) {
|
||||
orderSeqList = iSaOrderServiceApi.querySeqList(orderSeqCount).getData();
|
||||
}
|
||||
// 订单seq数据下标
|
||||
int orderSeqInt = 0;
|
||||
|
||||
////////// 封装入口相关数据开始 //////////
|
||||
|
||||
// 当前时间
|
||||
|
|
@ -422,10 +361,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
List<CuMemberRegister> registerMemberList = new ArrayList<>(detailList.size());
|
||||
// 入库会员账户流水列表
|
||||
List<CuMemberTrade> saveMemberTradeList = new ArrayList<>();
|
||||
// 入库订单列表
|
||||
List<SaOrder> saveOrderList = new ArrayList<>();
|
||||
// 入库订单明细列表
|
||||
List<SaOrderItems> saveOrderItemList = new ArrayList<>();
|
||||
|
||||
// 查询批次下推荐架构顶点
|
||||
List<CuMemberEmptyDetailExt> placeTopList = iCuMemberEmptyDetailService.queryPlaceParentTopAndProduct(pkMemberEmpty);
|
||||
|
|
@ -444,15 +379,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
CuMember cuMember = this.createMember(saveMemberList, saveMemberAccountList, registerMemberList, saveMemberTradeList,
|
||||
memberSeqMap, memberMap, memberAccountSeqMap, treeDetail,
|
||||
accountMap.get(pkSettleCountry), currencyMap.get(pkSettleCountry), userId, nowDate, systemType);
|
||||
|
||||
// 如果选购产品并且存在产品信息
|
||||
if (EYesNo.YES.getIntValue() == treeDetail.getProductFlag() && CollectionUtil.isNotEmpty(treeDetail.getProductDTOList())) {
|
||||
// 获取订单ID
|
||||
Long pkOrder = orderSeqList.get(orderSeqInt++);
|
||||
this.createOrder(saveOrderList, saveOrderItemList, treeDetail, cuMember,
|
||||
currencyMap.get(pkSettleCountry), storehouseMap.get(treeDetail.getRecCounty()),
|
||||
pkOrder, userId, nowDate, systemType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -467,15 +393,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
CuMember cuMember = this.createMember(saveMemberList, saveMemberAccountList, registerMemberList, saveMemberTradeList,
|
||||
memberSeqMap, memberMap, memberAccountSeqMap, topDetail,
|
||||
accountMap.get(pkSettleCountry), currencyMap.get(pkSettleCountry), userId, nowDate, systemType);
|
||||
|
||||
// 如果选购产品并且存在产品信息
|
||||
if (EYesNo.YES.getIntValue() == topDetail.getProductFlag() && CollectionUtil.isNotEmpty(topDetail.getProductDTOList())) {
|
||||
// 获取订单ID
|
||||
Long pkOrder = orderSeqList.get(orderSeqInt++);
|
||||
this.createOrder(saveOrderList, saveOrderItemList, topDetail, cuMember,
|
||||
currencyMap.get(pkSettleCountry), storehouseMap.get(topDetail.getRecCounty()),
|
||||
pkOrder, userId, nowDate, systemType);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("空单注册处理异常", e);
|
||||
|
|
@ -529,14 +446,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
memberEmptyUpdateWrapper.set(CuMemberEmpty::getModifiedTime, nowDate);
|
||||
iCuMemberEmptyService.update(memberEmptyUpdateWrapper);
|
||||
|
||||
// 购买产品,订单以及订单明细入库
|
||||
if (CollectionUtil.isNotEmpty(saveOrderList)) {
|
||||
R<?> orderResult = iSaOrderServiceApi.saveOrderBatch(saveOrderList, saveOrderItemList);
|
||||
if (!orderResult.isSuccess()) {
|
||||
throw new ServiceException("空单注册生成订单异常");
|
||||
}
|
||||
}
|
||||
|
||||
if (pushLogFlag) {
|
||||
// 推送业务操作日志
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, Collections.singletonList(logDTO));
|
||||
|
|
@ -554,7 +463,7 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
* @param detail 校验数据
|
||||
* @param checkMemberList 会员编号列表
|
||||
*/
|
||||
private boolean checkBase(MemberEmptyDetailDTO detail, List<String> checkMemberList) {
|
||||
private boolean checkBase(MemberEmptyDetailDTO detail, List<String> checkMemberList, List<String> checkPhoneList) {
|
||||
// 校验之前先为空
|
||||
detail.setPointStatus(EPointStatus.NORMAL.getValue());
|
||||
detail.setContentAbstract("");
|
||||
|
|
@ -585,7 +494,16 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
// 导入数据中不重复的会员编号,需要查库校验是否重复
|
||||
checkMemberList.add(detail.getMemberCode());
|
||||
}
|
||||
|
||||
if (checkPhoneList.contains(detail.getPhone())) {
|
||||
// 导入的数据存在重复联系方式,异常状态
|
||||
detail.setPointStatus(EPointStatus.ABNORMAL.getValue());
|
||||
// 联系方式存在重复
|
||||
detail.setContentAbstract(detail.getContentAbstract() + TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT) + ";");
|
||||
hasError = true;
|
||||
} else {
|
||||
// 导入数据中不重复的联系方式,需要查库校验是否重复
|
||||
checkPhoneList.add(detail.getPhone());
|
||||
}
|
||||
return hasError;
|
||||
}
|
||||
|
||||
|
|
@ -710,108 +628,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
return cuMember;
|
||||
}
|
||||
|
||||
/**
|
||||
* 封装订单以及订单详情数据
|
||||
*
|
||||
* @param saveOrderList 入库订单列表
|
||||
* @param saveOrderItemList 入库订单明细列表
|
||||
* @param emptyDetail 空单明细数据
|
||||
* @param cuMember 新会员数据
|
||||
* @param pkRate 汇率ID
|
||||
* @param pkStoreHouse 仓库ID
|
||||
* @param pkOrder 订单ID
|
||||
* @param userId 当前会员
|
||||
* @param nowDate 当前时间
|
||||
*/
|
||||
private void createOrder(List<SaOrder> saveOrderList, List<SaOrderItems> saveOrderItemList,
|
||||
CuMemberEmptyDetailExt emptyDetail, CuMember cuMember,
|
||||
Integer pkRate, Integer pkStoreHouse,
|
||||
Long pkOrder, Long userId, Date nowDate, Integer systemType) {
|
||||
// 封装订单信息
|
||||
SaOrder saOrder = SaOrder.builder()
|
||||
.pkId(pkOrder)
|
||||
.orderCode(CommonUtil.createSerialNumber(EOrderPrefix.ORDER_CODE))
|
||||
.orderType(EOrderType.REGISTER_ORDER.getValue())
|
||||
.pkRate(pkRate)
|
||||
.orderAmount(BigDecimal.ZERO)
|
||||
.orderAchieve(null != emptyDetail.getSettlementAchieve() ? emptyDetail.getSettlementAchieve() : BigDecimal.ZERO)
|
||||
.uploadAchieve(null != emptyDetail.getTransferAchieve() ? emptyDetail.getTransferAchieve() : BigDecimal.ZERO)
|
||||
.recName(emptyDetail.getRecName())
|
||||
.recPhone(emptyDetail.getRecPhone())
|
||||
.recProvince(emptyDetail.getRecProvince())
|
||||
.recCity(emptyDetail.getRecCity())
|
||||
.recCounty(emptyDetail.getRecCounty())
|
||||
.recAddress(emptyDetail.getRecAddress())
|
||||
.payTime(nowDate)
|
||||
.payType(EOrderPayType.WALLET.getValue())
|
||||
.orderStatus(EPayStatus.PAID.getValue())
|
||||
.pkMember(emptyDetail.getPkId())
|
||||
.pkReference(cuMember.getPkParent())
|
||||
.pkPlacement(cuMember.getPkPlaceParent())
|
||||
.pkVertex(cuMember.getPkVertex())
|
||||
.pkStorehouse(pkStoreHouse)
|
||||
.systemType(systemType)
|
||||
.build();
|
||||
saOrder.setPkCountry(emptyDetail.getPkSettleCountry());
|
||||
saOrder.setPkCreator(userId);
|
||||
saOrder.setCreationTime(nowDate);
|
||||
saveOrderList.add(saOrder);
|
||||
|
||||
// 产品信息
|
||||
List<CuMemberEmptyProductDTO> productDTOList = emptyDetail.getProductDTOList();
|
||||
if (CollectionUtil.isNotEmpty(productDTOList)) {
|
||||
for (CuMemberEmptyProductDTO productDTO : productDTOList) {
|
||||
// 封装订单明细停放上
|
||||
SaOrderItems saOrderItems = SaOrderItems.builder()
|
||||
.pkOrder(pkOrder)
|
||||
.pkProduct(productDTO.getPkProduct())
|
||||
.pkRate(pkRate)
|
||||
.quantity(productDTO.getQuantity())
|
||||
.pkGrade(cuMember.getPkSettleGrade())
|
||||
.pkAwards(cuMember.getPkAwards())
|
||||
.orderStatus(EOrderStatus.PAY.getValue())
|
||||
.specsName(productDTO.getSpecsName())
|
||||
.specsNameId(productDTO.getSpecsNameId())
|
||||
.waresQuantity(productDTO.getQuantity())
|
||||
.pkStorehouse(pkStoreHouse)
|
||||
.build();
|
||||
saOrderItems.setPkCountry(emptyDetail.getPkSettleCountry());
|
||||
saOrderItems.setPkCreator(userId);
|
||||
saOrderItems.setCreationTime(nowDate);
|
||||
saveOrderItemList.add(saOrderItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 安置位置验证以及锁定
|
||||
*
|
||||
* @param emptyDetail 空单明细数据
|
||||
* @param redisLockList redis锁定列表
|
||||
* @return
|
||||
*/
|
||||
private Long placeLock(CuMemberEmptyDetail emptyDetail, List<String> redisLockList) {
|
||||
// 查询最末安置人
|
||||
CuMemberExt cuMemberExt = iCuMemberService.queryLastPlaceByMemberCode(emptyDetail.getPlaceParentCode(), emptyDetail.getPlaceDept());
|
||||
if (null == cuMemberExt) {
|
||||
cuMemberExt = iCuMemberService.getMemberByCode(emptyDetail.getPlaceParentCode());
|
||||
}
|
||||
// 需要锁安置位置
|
||||
String redisLock = CacheConstants.POSITION + cuMemberExt.getPkId() + emptyDetail.getPlaceDept();
|
||||
if (redisService.lockKeyOnce(redisLock)) {
|
||||
redisLockList.add(redisLock);
|
||||
|
||||
return cuMemberExt.getPkId();
|
||||
}
|
||||
try {
|
||||
Thread.sleep(200);
|
||||
return this.placeLock(emptyDetail, redisLockList);
|
||||
} catch (Exception e) {
|
||||
log.error("空单注册锁定安置异常", e);
|
||||
throw new ServiceException("空单注册锁定安置异常");
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public String submit(MemberEmptySignParam param, List<CuMemberEmptyDetailExt> detailList, LoginUser loginUser) {
|
||||
|
|
@ -901,11 +717,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
|
|||
|
||||
for (CuMemberEmptyDetailExt emptyDetail : detailList) {
|
||||
MemberEmptyDetailDTO detailDTO = BeanUtil.copyProperties(emptyDetail, MemberEmptyDetailDTO.class);
|
||||
|
||||
if (StringUtils.isNotEmpty(emptyDetail.getProductDTOList())) {
|
||||
// 处理产品信息
|
||||
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
|
||||
}
|
||||
paramList.add(detailDTO);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
package com.hzs.member.empty.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Description: 空单注册列表产品查询VO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/7/6 17:30
|
||||
* @Classname: MemberEmptyRegisterQueryProductVO
|
||||
* @PackageName: com.hzs.member.empty.vo
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class MemberEmptyRegisterQueryProductVO {
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 产品规格名称
|
||||
*/
|
||||
private String specsName;
|
||||
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
private Integer quantity;
|
||||
|
||||
}
|
||||
|
|
@ -6,14 +6,9 @@ import com.hzs.common.core.constant.EnumsPrefixConstants;
|
|||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 空单注册列表查询VO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/7/6 16:02
|
||||
* @Classname: MemberEmptyRegisterQueryVO
|
||||
* @PackageName: com.hzs.member.empty.vo
|
||||
* 空单注册列表查询VO
|
||||
*/
|
||||
@Data
|
||||
public class MemberEmptyRegisterQueryVO {
|
||||
|
|
@ -42,14 +37,6 @@ public class MemberEmptyRegisterQueryVO {
|
|||
@Excel(name = "联系方式")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 隶属体系
|
||||
*/
|
||||
|
||||
/**
|
||||
* 隶属团队
|
||||
*/
|
||||
|
||||
/**
|
||||
* 推荐编号
|
||||
*/
|
||||
|
|
@ -163,73 +150,4 @@ public class MemberEmptyRegisterQueryVO {
|
|||
@Excel(name = "上传业绩")
|
||||
private BigDecimal transferAchieve;
|
||||
|
||||
/**
|
||||
* 选购产品
|
||||
*/
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.DEALER_YES_NO)
|
||||
private Integer productFlag;
|
||||
/**
|
||||
* 选购产品显示
|
||||
*/
|
||||
@Excel(name = "选购产品")
|
||||
private String productFlagVal;
|
||||
|
||||
/**
|
||||
* 产品信息VO
|
||||
*/
|
||||
private List<MemberEmptyRegisterQueryProductVO> detailList;
|
||||
/**
|
||||
* 产品信息
|
||||
*/
|
||||
@Excel(name = "产品信息")
|
||||
private String productStr;
|
||||
|
||||
/**
|
||||
* 收货人
|
||||
*/
|
||||
@Excel(name = "收货人")
|
||||
private String recName;
|
||||
|
||||
/**
|
||||
* 收货电话
|
||||
*/
|
||||
@Excel(name = "收货电话")
|
||||
private String recPhone;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private Integer recProvince;
|
||||
/**
|
||||
* 省显示
|
||||
*/
|
||||
@Excel(name = "省")
|
||||
private String recProvinceVal;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
private Integer recCity;
|
||||
/**
|
||||
* 市显示
|
||||
*/
|
||||
@Excel(name = "市")
|
||||
private String recCityVal;
|
||||
|
||||
/**
|
||||
* 县
|
||||
*/
|
||||
private Integer recCounty;
|
||||
/**
|
||||
* 县显示
|
||||
*/
|
||||
@Excel(name = "县")
|
||||
private String recCountyVal;
|
||||
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
@Excel(name = "详细地址")
|
||||
private String recAddress;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -350,6 +350,16 @@ public class CuHandleBusinessController extends BaseController {
|
|||
btvo.setTable5(EYesNo.YES.getIntValue());
|
||||
btvo.setTable6(EYesNo.YES.getIntValue());
|
||||
btvo.setTable7(EYesNo.YES.getIntValue());
|
||||
Set<String> seenPhones = new HashSet<>();
|
||||
for (BusinessMemberVO member : businessSingleVO.getBusinessMemberList()) {
|
||||
String phone = member.getNewPhone();
|
||||
if (!seenPhones.add(phone)) {
|
||||
BusinessErrorVO bev = new BusinessErrorVO();
|
||||
bev.setErrorMsg(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_RETAIL_PHONE_REPEAT) + "["+phone+"]");
|
||||
bev.setMemberCode(member.getMemberCode());
|
||||
errorMemberList.add(bev);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
businessSingleVO.setBtvo(btvo);
|
||||
|
|
|
|||
|
|
@ -633,6 +633,16 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
Integer businessType = businessTypeValueVO.getBusinessType();
|
||||
//变更姓名、变更联系方式
|
||||
if (businessType.equals(EApprovalBusiness.CHANGE_NAME.getValue()) || businessType.equals(EApprovalBusiness.CHANGE_PHONE.getValue())) {
|
||||
Set<String> seenPhones = new HashSet<>();
|
||||
for (BusinessMemberVO member : handleBusinessVO.getBusinessMemberList()) {
|
||||
if(businessType.equals(EApprovalBusiness.CHANGE_PHONE.getValue())
|
||||
&& member.getBusinessType().equals(EApprovalBusiness.CHANGE_PHONE.getValue())){
|
||||
String phone = member.getNewValue();
|
||||
if (!seenPhones.add(phone)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
businessMemberListUpdate = getBusinessMemberByBusinessType(businessMemberList, businessType);
|
||||
result = cuMemberService.batchUpdateMemberNameAndMobileByPkmember(businessMemberListUpdate, businessType, loginUser.getUserId());
|
||||
//重置银行卡
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.member.self.controller.api;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||
|
|
@ -121,6 +122,10 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
}
|
||||
domicileChangeVO.setPkCountry(pkCountry);
|
||||
domicileChangeVO.setPkMember(pkMember);
|
||||
String verifyDuplicationStr = iCuMemberService.checkRegisterRelation(domicileChangeVO.getChangePhone(), SecurityUtils.getSystemType());
|
||||
if(StrUtil.isNotEmpty(verifyDuplicationStr)){
|
||||
return AjaxResult.error(verifyDuplicationStr);
|
||||
}
|
||||
// 校验短信验证码
|
||||
String message = iApiAliSmsService.checkCode(domicileChangeVO.getChangePhone(), domicileChangeVO.getVerificationCode(), null, pkMember);
|
||||
if (null != message) {
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ public class ApiShareController extends BaseController {
|
|||
return AjaxResult.error("请输入联系方式");
|
||||
}
|
||||
|
||||
// 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一(9035)
|
||||
// 校验手机号必须唯一
|
||||
String relationStr = iCuMemberService.checkRegisterRelation(phone, Long.parseLong(new String(Base64Decoder.decode(parentCode))));
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
|
|
@ -140,13 +140,11 @@ public class ApiShareController extends BaseController {
|
|||
return AjaxResult.error(checkSmsStr);
|
||||
}
|
||||
|
||||
// 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一(9035)
|
||||
// 2025年6月9日 - 手机号不唯一,在此不做唯一校验 - start
|
||||
// String relationStr = iCuMemberService.checkRegisterRelation(registerParam.getPhone(), parentMember);
|
||||
// if (relationStr != null) {
|
||||
// return AjaxResult.error(relationStr);
|
||||
// }
|
||||
// 2025年6月9日 - 手机号不唯一,在此不做唯一校验 - start
|
||||
// 校验手机号必须唯一
|
||||
String relationStr = iCuMemberService.checkRegisterRelation(registerParam.getPhone(), parentMember.getPkId());
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
|
||||
CuMember newCuMember = iCuMemberService.shareRegisterMember(registerParam);
|
||||
if (null != newCuMember) {
|
||||
|
|
|
|||
|
|
@ -1534,6 +1534,47 @@
|
|||
group by tmp.member_code
|
||||
</select>
|
||||
|
||||
<!-- 校验会员联系方式是否存在 -->
|
||||
<select id="checkMemberPhoneExist" resultType="com.hzs.member.base.dto.MemberCountDTO">
|
||||
select tmp.phone, count(tmp.phone) member_count
|
||||
from (
|
||||
select cm.phone
|
||||
from cu_member cm
|
||||
where cm.del_flag = 0
|
||||
and (cm.phone in ('0'
|
||||
<foreach collection="phoneList" item="item" close=")" index="index">
|
||||
<choose>
|
||||
<when test="index % 500 == 0">) or cm.phone in (#{item}</when>
|
||||
<otherwise>, #{item}</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
)
|
||||
<if test="checkEmpty != null and checkEmpty">
|
||||
<!-- 需要校验批量空单数据 -->
|
||||
union all
|
||||
select cmed.phone
|
||||
from CU_MEMBER_EMPTY_DETAIL cmed
|
||||
inner join CU_MEMBER_EMPTY cme
|
||||
on cme.pk_id = cmed.pk_member_empty
|
||||
and cme.status in (1, 2, 4)
|
||||
and cme.del_flag = 0
|
||||
where cmed.del_flag = 0
|
||||
<if test="excludeMemberEmpty != null">
|
||||
and cmed.pk_member_empty != #{excludeMemberEmpty}
|
||||
</if>
|
||||
and (cmed.phone in ('0'
|
||||
<foreach collection="phoneList" item="item" close=")" index="index">
|
||||
<choose>
|
||||
<when test="index % 500 == 0">) or cmed.phone in (#{item}</when>
|
||||
<otherwise>, #{item}</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
)
|
||||
</if>
|
||||
) tmp
|
||||
group by tmp.phone
|
||||
</select>
|
||||
|
||||
<select id="findAll" resultMap="MemberResultMap">
|
||||
select *
|
||||
from cu_member
|
||||
|
|
@ -2418,9 +2459,12 @@
|
|||
<if test="orderCode != null and orderCode != ''">
|
||||
and so.order_code != #{orderCode}
|
||||
</if>
|
||||
and bg.grade_value >= #{gradeValue}) so
|
||||
and bg.grade_value >= #{gradeValue}
|
||||
order by so.pay_time
|
||||
) so
|
||||
where rownum = 1
|
||||
</select>
|
||||
|
||||
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">
|
||||
select
|
||||
count(cu.PK_ID)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@
|
|||
<if test="pkOrder != null">
|
||||
and (cml.pk_order != #{pkOrder} or cml.pk_order is null )
|
||||
</if>
|
||||
<if test="notUpType != null">
|
||||
and cml.up_type != #{notUpType}
|
||||
</if>
|
||||
and cml.pk_member = #{pkMember}
|
||||
order by cml.upgrade_time desc
|
||||
) t
|
||||
|
|
|
|||
|
|
@ -46,18 +46,7 @@
|
|||
<result column="settle_country_name" property="settleCountryName"/>
|
||||
<result column="pk_grade_key" property="pkGradeKey"/>
|
||||
<result column="pk_award_key" property="pkAwardKey"/>
|
||||
<result column="rec_province_val" property="recProvinceVal"/>
|
||||
<result column="rec_city_val" property="recCityVal"/>
|
||||
<result column="rec_county_val" property="recCountyVal"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<collection property="productDTOList" ofType="com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductDTO">
|
||||
<result column="pk_product" property="pkProduct"/>
|
||||
<result column="product_code" property="productCode"/>
|
||||
<result column="product_name" property="productName"/>
|
||||
<result column="specs_name" property="specsName"/>
|
||||
<result column="specs_name_id" property="specsNameId"/>
|
||||
<result column="quantity" property="quantity"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<!-- 查询指定数量SEQ -->
|
||||
|
|
@ -122,7 +111,7 @@
|
|||
#{item.recCounty, jdbcType=NUMERIC} rec_county,
|
||||
#{item.recAddress, jdbcType=VARCHAR} rec_address,
|
||||
#{item.contentAbstract, jdbcType=VARCHAR} content_abstract,
|
||||
#{item.productFlag} product_flag,
|
||||
1 product_flag,
|
||||
#{item.orderType} order_type,
|
||||
#{item.autoFlag} auto_flag
|
||||
from dual
|
||||
|
|
|
|||
|
|
@ -2,117 +2,4 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.member.empty.mapper.CuMemberEmptyProductMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.empty.CuMemberEmptyProduct">
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="PK_MEMBER_EMPTY" property="pkMemberEmpty"/>
|
||||
<result column="PK_MEMBER_EMPTY_DETAIL" property="pkMemberEmptyDetail"/>
|
||||
<result column="PK_PRODUCT" property="pkProduct"/>
|
||||
<result column="QUANTITY" property="quantity"/>
|
||||
<result column="SPECS_NAME" property="specsName"/>
|
||||
<result column="SPECS_NAME_ID" property="specsNameId"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 批量删除会员空单产品 -->
|
||||
<update id="deleteBatch">
|
||||
update cu_member_empty_product cmep
|
||||
set cmep.del_flag = 0,
|
||||
cmep.pk_modified = #{userId},
|
||||
cmep.modified_time = sysdate
|
||||
where cmep.del_flag = 0
|
||||
and cmep.pk_member_empty = #{pkMemberEmpty}
|
||||
and cmep.pk_id in
|
||||
(select cmep.pk_id
|
||||
from cu_member_empty_product cmep
|
||||
where cmep.del_flag = 0
|
||||
and cmep.pk_member_empty = #{pkMemberEmpty}
|
||||
<if test="emptyProductList != null and emptyProductList.size > 0">
|
||||
and (
|
||||
<foreach collection="emptyProductList" item="item" separator=" or ">
|
||||
(
|
||||
cmep.pk_member_empty_detail = #{item.pkMemberEmptyDetail}
|
||||
and cmep.pk_product = #{item.pkProduct}
|
||||
and cmep.specs_name_id = #{item.specsNameId}
|
||||
)
|
||||
</foreach>
|
||||
)
|
||||
</if>
|
||||
)
|
||||
</update>
|
||||
|
||||
<!-- 批量插入会员空单产品 -->
|
||||
<insert id="insertOrUpdateBatch">
|
||||
merge into CU_MEMBER_EMPTY_PRODUCT cmep
|
||||
using (
|
||||
<foreach collection="emptyProductList" item="item" separator=" union ">
|
||||
select
|
||||
#{item.pkMemberEmpty} PK_MEMBER_EMPTY,
|
||||
#{item.pkMemberEmptyDetail} PK_MEMBER_EMPTY_DETAIL,
|
||||
#{item.pkProduct} PK_PRODUCT,
|
||||
#{item.quantity} QUANTITY,
|
||||
#{item.specsName} SPECS_NAME,
|
||||
#{item.specsNameId} SPECS_NAME_ID,
|
||||
#{item.pkCountry} PK_COUNTRY
|
||||
from dual
|
||||
</foreach>
|
||||
) tmp
|
||||
on (
|
||||
cmep.DEL_FLAG = 0
|
||||
and tmp.PK_MEMBER_EMPTY = cmep.PK_MEMBER_EMPTY
|
||||
and tmp.PK_MEMBER_EMPTY_DETAIL = cmep.PK_MEMBER_EMPTY_DETAIL
|
||||
and tmp.PK_PRODUCT = cmep.PK_PRODUCT
|
||||
and tmp.SPECS_NAME_ID = cmep.SPECS_NAME_ID
|
||||
)
|
||||
WHEN MATCHED THEN
|
||||
update set
|
||||
cmep.QUANTITY = tmp.QUANTITY,
|
||||
cmep.SPECS_NAME = tmp.SPECS_NAME,
|
||||
cmep.PK_MODIFIED = #{userId},
|
||||
cmep.MODIFIED_TIME = sysdate
|
||||
WHEN NOT MATCHED THEN
|
||||
insert (
|
||||
pk_id,
|
||||
PK_MEMBER_EMPTY,
|
||||
PK_MEMBER_EMPTY_DETAIL,
|
||||
PK_PRODUCT,
|
||||
QUANTITY,
|
||||
SPECS_NAME,
|
||||
SPECS_NAME_ID,
|
||||
PK_COUNTRY,
|
||||
PK_CREATOR
|
||||
)
|
||||
values (
|
||||
CU_MEMBER_EMPTY_PRODUCT.Nextval,
|
||||
tmp.PK_MEMBER_EMPTY,
|
||||
tmp.PK_MEMBER_EMPTY_DETAIL,
|
||||
tmp.PK_PRODUCT,
|
||||
tmp.QUANTITY,
|
||||
tmp.SPECS_NAME,
|
||||
tmp.SPECS_NAME_ID,
|
||||
tmp.PK_COUNTRY,
|
||||
#{userId}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 查询空单明细产品信息列表 -->
|
||||
<select id="queryProductList" resultType="com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt">
|
||||
select cmep.*, bp.product_name, bp.product_code
|
||||
from cu_member_empty_product cmep
|
||||
left join bd_product bp
|
||||
on bp.pk_id = cmep.pk_product
|
||||
and bp.del_flag = 0
|
||||
where cmep.del_flag = 0
|
||||
and cmep.pk_member_empty_detail in
|
||||
<foreach collection="emptyDetailIdList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
order by cmep.pk_member_empty_detail desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -148,11 +148,10 @@ public class ApiRetailOrderController {
|
|||
*/
|
||||
@PostMapping("/valid-relation")
|
||||
public AjaxResult validRelation(@Valid @RequestBody RetailOrderRelationParam relationParam) {
|
||||
// new 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断
|
||||
// String relationStr = iMemberServiceApi.checkRegisterRelation(relationParam.getPhone(), relationParam.getParentCode()).getData();
|
||||
// if (relationStr != null) {
|
||||
// return AjaxResult.error(relationStr);
|
||||
// }
|
||||
String relationStr = iMemberServiceApi.checkRegisterRelation(relationParam.getPhone(), relationParam.getParentCode()).getData();
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
|
@ -232,12 +231,11 @@ 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);
|
||||
// }
|
||||
// 校验手机号必须唯一
|
||||
String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
|
||||
// 购物车中获取商品信息
|
||||
registerParam.setOrderItemsParams(convertShoppingCarToSku(registerParam.getPkCreator(), registerParam.getShopList()));
|
||||
|
|
@ -282,12 +280,11 @@ 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);
|
||||
// }
|
||||
// 校验手机号必须唯一
|
||||
String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
|
||||
// 支付入参
|
||||
registerParam.setIsPay(EYesNo.YES.getIntValue());
|
||||
|
|
|
|||
|
|
@ -3,15 +3,10 @@ package com.hzs.retail.sale.param;
|
|||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 新零售关系校验入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/19 11:52
|
||||
* @Classname: RetailOrderRelationParam
|
||||
* @PackageName: com.hzs.retail.sale.param
|
||||
* 新零售关系校验入参
|
||||
*/
|
||||
@Data
|
||||
public class RetailOrderRelationParam implements Serializable {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import com.hzs.common.core.utils.poi.ExcelUtil;
|
|||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
|
|
@ -129,13 +128,7 @@ public class SaOrderBusinessController extends BaseController {
|
|||
for (OrderBusinessVO orderBusinessVO : list) {
|
||||
// 省市区处理
|
||||
OrderUtil.handleOrderAddress(areaMap, orderBusinessVO);
|
||||
|
||||
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
|
||||
if (null != orderBusinessVO.getInExchangeRate()) {
|
||||
orderBusinessVO.setOrderAchieveRmb(orderBusinessVO.getOrderAchieve().multiply(orderBusinessVO.getInExchangeRate()));
|
||||
}
|
||||
}
|
||||
|
||||
orderBusinessVO.setOrderAchieveRmb(orderBusinessVO.getOrderAchieve());
|
||||
// 处理撤单时间
|
||||
orderBusinessVO.setCancelTime(DateUtils.getStartTime(orderBusinessVO.getPayTime()));
|
||||
|
||||
|
|
@ -224,14 +217,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_NOT_EXIST));
|
||||
}
|
||||
|
||||
// 如果已经转结算国,之前订单不能操作
|
||||
for (SaOrderExt saOrder : saOrderList) {
|
||||
if (!saOrder.getPkCountry().equals(saOrder.getPkSettleCountry())) {
|
||||
// 用户已转结算国,不能进行操作
|
||||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.SETTLEMENT_COUNTRY_NOT_OPERATE));
|
||||
}
|
||||
}
|
||||
|
||||
// 本次业务修改费用
|
||||
Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(saOrderList, EApprovalBusiness.ORDER_CHANGE_ADDRESS, pkCountry);
|
||||
|
||||
|
|
@ -499,30 +484,14 @@ public class SaOrderBusinessController extends BaseController {
|
|||
return AjaxResult.error(orderCode + TransactionUtils.getContent(SaOrderMsgConstants.ORDER_NOT_EXIST));
|
||||
}
|
||||
|
||||
// 如果已经转结算国,之前订单不能操作
|
||||
if (!saOrder.getPkCountry().equals(saOrder.getPkSettleCountry())) {
|
||||
// 用户已转结算国,不能进行操作
|
||||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.SETTLEMENT_COUNTRY_NOT_OPERATE));
|
||||
}
|
||||
|
||||
// // 过滤赠品,只有非赠品才能进行调换货
|
||||
// List<SaOrderItemsExt> orderItemsExtList = saOrder.getOrderItemsExtList().stream().filter(saOrderItemsExt -> EYesNo.NO.getIntValue() == saOrderItemsExt.getIsGift()).collect(Collectors.toList());
|
||||
|
||||
// 业务修改费用
|
||||
Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(saOrder), EApprovalBusiness.ORDER_CHANGE_PRODUCT, pkCountry);
|
||||
|
||||
// 调换货物订单以及产品PV是否需要处理
|
||||
if (saOrder.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) {
|
||||
// 如果是中国订单
|
||||
// 汇率(目前只有中国需要由美金转人民币显示,其它国家显示就是美金不需要转换)
|
||||
BigDecimal baseExchangeRate = saOrder.getInExchangeRate();
|
||||
if (null != baseExchangeRate) {
|
||||
// 基础汇率不为空,则进行转换
|
||||
saOrder.setOrderAchieve(saOrder.getOrderAchieve().multiply(baseExchangeRate));
|
||||
|
||||
for (SaOrderItemsExt saOrderItemsExt : saOrder.getOrderItemsExtList()) {
|
||||
saOrderItemsExt.setAchievementRmb(saOrderItemsExt.getAchievement().multiply(baseExchangeRate));
|
||||
}
|
||||
saOrderItemsExt.setAchievementRmb(saOrderItemsExt.getAchievement());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -572,39 +541,14 @@ public class SaOrderBusinessController extends BaseController {
|
|||
|
||||
if (orderQueryChargeDTO.getCost().compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 扣款金额大于0,则进行处理
|
||||
// 扣款国家
|
||||
Integer costCountry = pkCountry;
|
||||
// 扣款账户
|
||||
Integer costAccount = orderQueryChargeDTO.getPkAccount();
|
||||
// 扣款金额
|
||||
BigDecimal cost = orderQueryChargeDTO.getCost();
|
||||
|
||||
// 订单下单人信息
|
||||
CuMember cuMember = iMemberServiceApi.getMember(saOrder.getPkCreator()).getData();
|
||||
if (!costCountry.equals(cuMember.getPkSettleCountry())) {
|
||||
// 当前国家与订单创建人结算国家不同,跨国报单需要转换手续费
|
||||
costCountry = cuMember.getPkSettleCountry();
|
||||
|
||||
// 订单创建人所属国家业务扣款账户
|
||||
ServiceChargeDTO costServiceChargeDTO = iServiceChargeServiceApi.getServiceChargeByType(ServiceChargeDTO.builder()
|
||||
.pkCountry(costCountry)
|
||||
.type(EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue())
|
||||
.quantity(1)
|
||||
.build()).getData();
|
||||
if (null == costServiceChargeDTO) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
costAccount = costServiceChargeDTO.getPkAccount();
|
||||
|
||||
// 根据汇率计算实际需要扣款金额
|
||||
CurrencyDTO costCurrencyDTO = iCurrencyServiceApi.getCurrency(costCountry).getData();
|
||||
// 扣款金额 = 订单结算国扣款金额 除 订单结算国汇率 乘 订单创建人结算国汇率
|
||||
cost = cost.multiply(costCurrencyDTO.getInExchangeRate()).divide(saOrder.getInExchangeRate(), 2, BigDecimal.ROUND_HALF_UP);
|
||||
}
|
||||
|
||||
// 校验扣款金额是否足够
|
||||
List<MemberBalanceDTO> memberBalanceDTOList = iBusinessCommission.selectBalanceNotEnoughMember(BusinessCommissionDTO.builder()
|
||||
.pkCountry(costCountry)
|
||||
.pkCountry(pkCountry)
|
||||
.pkAccount(costAccount)
|
||||
.memberAmountDTOList(Collections.singletonList(MemberAmountDTO.builder()
|
||||
// 订单创建人(下单人)
|
||||
|
|
@ -653,7 +597,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
// 校验订单是否存在进行中的签呈
|
||||
String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry);
|
||||
if (null != checkStr) {
|
||||
|
|
@ -698,7 +641,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
// 校验订单是否存在进行中的签呈
|
||||
String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry);
|
||||
if (null != checkStr) {
|
||||
|
|
@ -732,19 +674,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
// 未支付订单,不能进行退单
|
||||
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_UNPAID_NOT_RETURN));
|
||||
}
|
||||
|
||||
// 如果已经转结算国,之前订单不能操作
|
||||
if (!saOrder.getPkCountry().equals(saOrder.getPkSettleCountry())) {
|
||||
// 用户已转结算国,不能进行操作
|
||||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.SETTLEMENT_COUNTRY_NOT_OPERATE));
|
||||
}
|
||||
|
||||
// 2023-09-06 00:00:00 之前的订单不能进行退单
|
||||
long dateLong = 1693929600000L;
|
||||
if (saOrder.getCreationTime().getTime() < dateLong) {
|
||||
return AjaxResult.error("历史订单撤单请联系管理员");
|
||||
}
|
||||
|
||||
return AjaxResult.success(saOrder);
|
||||
}
|
||||
|
||||
|
|
@ -768,7 +697,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
// 校验订单是否存在进行中的签呈
|
||||
String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry);
|
||||
if (null != checkStr) {
|
||||
|
|
@ -803,38 +731,7 @@ public class SaOrderBusinessController extends BaseController {
|
|||
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_UNPAID_NOT_RETURN));
|
||||
}
|
||||
|
||||
// if (EOrderType.REGISTER_ORDER.getValue() != saOrder.getOrderType()
|
||||
// && EOrderType.FANS_ORDER.getValue() != saOrder.getOrderType()) {
|
||||
// // 非 注册订单、嗨粉注册订单 不能进行合并退单
|
||||
// return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_NOT_RETURN));
|
||||
// }
|
||||
|
||||
// 如果已经转结算国,之前订单不能操作
|
||||
if (!saOrder.getPkCountry().equals(saOrder.getPkSettleCountry())) {
|
||||
// 用户已转结算国,不能进行操作
|
||||
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.SETTLEMENT_COUNTRY_NOT_OPERATE));
|
||||
}
|
||||
|
||||
// 2023-09-06 00:00:00 之前的订单不能进行退单
|
||||
long dateLong = 1693929600000L;
|
||||
if (saOrder.getCreationTime().getTime() < dateLong) {
|
||||
return AjaxResult.error("历史订单撤单请联系超级管理员");
|
||||
}
|
||||
|
||||
List<SaOrderExt> resultList = new ArrayList<>();
|
||||
resultList.add(saOrder);
|
||||
|
||||
// if (EOrderType.REGISTER_ORDER.getValue() == saOrder.getOrderType()
|
||||
// || EOrderType.FANS_ORDER.getValue() == saOrder.getOrderType()
|
||||
// || EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrder.getOrderType()
|
||||
// ) {
|
||||
// // 注册类订单,需要拉取所有订单
|
||||
// resultList.addAll(iSaOrderService.queryAllOrderByMember(saOrder.getPkMember(), pkCountry));
|
||||
// }
|
||||
|
||||
// iSaOrderService.queryPlaceParentOrderList(saOrder.getPkMember());
|
||||
|
||||
return AjaxResult.success(resultList);
|
||||
return AjaxResult.success(Collections.singletonList(saOrder));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -896,14 +793,8 @@ public class SaOrderBusinessController extends BaseController {
|
|||
return AjaxResult.error(validateCancelOrderVO.getMsg());
|
||||
}
|
||||
// 本次业务修改费用
|
||||
List<SaOrderExt> saOrderExtList = new ArrayList<>();
|
||||
SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
|
||||
saOrderExtList.add(saOrderExt);
|
||||
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
|
||||
// }
|
||||
Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(saOrderExtList, approveBusiness, SecurityUtils.getPkCountry());
|
||||
Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(saOrderExt), EApprovalBusiness.ORDER_CANCEL, SecurityUtils.getPkCountry());
|
||||
OrderQueryChargeDTO dto = queryChargeMap.get(saOrderExt.getPkId());
|
||||
// 撤销订单,撤销产品,撤销除升级订单
|
||||
if (ECancelOrderType.MERGE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
|
|
@ -921,20 +812,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
.orderCode(saOrderExt.getOrderCode())
|
||||
.build();
|
||||
List<OrderCancelDetailVO> orderCancelDetailVOList = new ArrayList<>();
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
|
||||
// String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
|
||||
// OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
|
||||
// .pkId(saOrderItems.getPkId())
|
||||
// .productName(productName)
|
||||
// .orderAmount(saOrderItems.getPrice())
|
||||
// .number(saOrderItems.getQuantity())
|
||||
// .achievement(saOrderItems.getAchievement())
|
||||
// .assAchievement(saOrderItems.getAssAchievement())
|
||||
// .build();
|
||||
// orderCancelDetailVOList.add(orderCancelDetailVO);
|
||||
// });
|
||||
// } else {
|
||||
saOrderExt.getOrderItemsExtList().forEach(saOrderItems -> {
|
||||
OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
|
||||
.pkId(saOrderItems.getPkId())
|
||||
|
|
@ -946,7 +823,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
.build();
|
||||
orderCancelDetailVOList.add(orderCancelDetailVO);
|
||||
});
|
||||
// }
|
||||
orderCancelVO.setOrderCancelDetailVOList(orderCancelDetailVOList);
|
||||
orderCancelVO.setMemberCode(saOrderExt.getMemberCode());
|
||||
orderCancelVO.setMemberName(saOrderExt.getMemberName());
|
||||
|
|
@ -967,11 +843,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
@Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT)
|
||||
public AjaxResult cancelOrder(@RequestBody OrderCancelParam orderCancelParam) {
|
||||
orderCancelParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
|
||||
// }
|
||||
// }
|
||||
ValidateCancelOrderVO validateCancelOrderVO = iOrderBusinessService.validateCancelOrder(orderCancelParam);
|
||||
AjaxResult validateCancelOrder = validateCancelOrderVO(orderCancelParam, validateCancelOrderVO);
|
||||
if (validateCancelOrder != null) {
|
||||
|
|
@ -982,7 +853,7 @@ public class SaOrderBusinessController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 撤销订单并入库,全免
|
||||
* 撤销订单并入库,全免 -- 目前撤单使用
|
||||
*
|
||||
* @param orderCancelParam 参数
|
||||
*/
|
||||
|
|
@ -990,11 +861,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
@Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT)
|
||||
public AjaxResult freeCostCancelOrder(@RequestBody OrderCancelParam orderCancelParam) {
|
||||
orderCancelParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// if (orderCancelParam.getOrderCancelDetailParamList() == null || orderCancelParam.getOrderCancelDetailParamList().size() == 0) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
|
||||
// }
|
||||
// }
|
||||
if (orderCancelParam.getCancelRoad() == null || (orderCancelParam.getCancelRoad() != 1 && orderCancelParam.getCancelRoad() != 3)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
|
||||
}
|
||||
|
|
@ -1012,22 +878,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
if (validateCancelOrderVO.getSaOrderExt() == null) {
|
||||
return AjaxResult.error(validateCancelOrderVO.getMsg());
|
||||
}
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
|
||||
// if (saOrderExt.getOrderItemsList() == null) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY));
|
||||
// }
|
||||
// Map<Long, String> productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size()));
|
||||
// saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
|
||||
// String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
|
||||
// productMap.put(saOrderItems.getPkId(), productName);
|
||||
// });
|
||||
// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> {
|
||||
// if (productMap.containsKey(orderCancelDetailParam.getPkId())) {
|
||||
// orderCancelDetailParam.setProductName(productMap.get(orderCancelDetailParam.getPkId()));
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -1042,9 +892,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
public TableDataInfo selfOrderList(@RequestBody SelfPickUpParam selfPickUpParam) {
|
||||
startPage();
|
||||
selfPickUpParam.setPkSettleCountry(SecurityUtils.getPkCountry());
|
||||
// if (selfPickUpParam.getApproveStatus() == null) {
|
||||
// selfPickUpParam.setApproveStatus(EApproveRechargeStatus.SUBMIT.getValue());
|
||||
// }
|
||||
if (selfPickUpParam.getEndDate() != null) {
|
||||
selfPickUpParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, selfPickUpParam.getEndDate()));
|
||||
}
|
||||
|
|
@ -1170,7 +1017,6 @@ public class SaOrderBusinessController extends BaseController {
|
|||
*/
|
||||
@PostMapping("/validate-bind")
|
||||
public AjaxResult validateOrderBindBarCode(@RequestBody OrderQueryParam orderQueryParam) {
|
||||
log.info(orderQueryParam.getOrderCode());
|
||||
// 验证订单编号、订单类型是否存在
|
||||
if (StringUtils.isEmpty(orderQueryParam.getOrderCode())) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CODE_EMPTY));
|
||||
|
|
|
|||
|
|
@ -20,9 +20,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 销售订单-明细表 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-08-31
|
||||
*/
|
||||
public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
||||
|
||||
|
|
@ -119,33 +116,15 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
|||
* 更新订单明细表,将订单明细更改为删除
|
||||
*
|
||||
* @param saOrder 订单
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/24 20:48
|
||||
*/
|
||||
Integer updateOrderItems(SaOrder saOrder);
|
||||
|
||||
/*
|
||||
* @description:
|
||||
* @author: sui q
|
||||
* @date: 2023/7/27 16:16
|
||||
* @param: null null
|
||||
*
|
||||
**/
|
||||
void updateOrderItemsByMemberList(@Param("memberList") List<Long> memberList, @Param("pkApprove") Long pkApprove,
|
||||
@Param("currentDateTime") Date currentDateTime);
|
||||
|
||||
/**
|
||||
* 根据主键列表更新订单明细,删除部分退的订单
|
||||
*
|
||||
* @param pkOrderItemsId 订单明细
|
||||
* @param pkApprove 审核人
|
||||
* @param currentDate 更新时间
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/28 11:25
|
||||
*/
|
||||
Integer updateOrderItemsById(@Param("pkOrderItemsId") List<Long> pkOrderItemsId, @Param("pkApprove") Long pkApprove, @Param("currentDate") Date currentDate);
|
||||
|
||||
/**
|
||||
* 根据订单ID查询订单明细列表(前台使用,尽量只查能用到的)
|
||||
*
|
||||
|
|
@ -155,11 +134,7 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
|||
List<SaOrderItemsExt> queryListByOrderId(@Param("orderIdList") List<Long> orderIdList);
|
||||
|
||||
/**
|
||||
* @description: 根据订单ID查询订单商品明细列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/29 15:38
|
||||
* @param: [orderIdList, tOrderIdList]
|
||||
* @return: java.util.List<com.hzs.common.domain.sale.ext.SaOrderItemsExt>
|
||||
* 根据订单ID查询订单商品明细列表
|
||||
**/
|
||||
List<WaresOrderVo> waresListByOrderId(@Param("orderIdList") List<Long> orderIdList);
|
||||
|
||||
|
|
@ -171,7 +146,6 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
|||
*/
|
||||
List<WaresOrderVo> queryWaresListByOrderId(@Param("orderId") Long orderId);
|
||||
|
||||
|
||||
/**
|
||||
* 根据订单明细ID查询订单明细列表
|
||||
*
|
||||
|
|
@ -206,11 +180,7 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
|||
List<SaOrderItemsExt> selectByList(@Param("pkOrder") Long pkOrder);
|
||||
|
||||
/**
|
||||
* @description: 根据订单ID查询商品
|
||||
* @author: zhang jing
|
||||
* @date: 2023/4/21 18:02
|
||||
* @param: [canApplyOrderVO]
|
||||
* @return: java.util.List<com.hzs.sale.order.vo.CanApplyOrderVO>
|
||||
* 根据订单ID查询商品
|
||||
**/
|
||||
List<OrderItemsParam> getOrderItemsParams(@Param("orderIdList") List<Long> orderIdList);
|
||||
|
||||
|
|
@ -222,14 +192,6 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
|||
*/
|
||||
List<SaOrderItems> queryDeliverByOrder(@Param("pkOrder") Long pkOrder);
|
||||
|
||||
/**
|
||||
* 批量插入订单明细数据
|
||||
*
|
||||
* @param orderItemsList 订单明细数据
|
||||
* @return
|
||||
*/
|
||||
int insertBach(@Param("orderItemsList") List<SaOrderItems> orderItemsList);
|
||||
|
||||
/**
|
||||
* 校验订单商品是否下架
|
||||
*
|
||||
|
|
@ -260,22 +222,6 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
|
|||
*/
|
||||
List<OrderItemsParam> selectByWaresCodeList(@Param("orderCode") String orderCode);
|
||||
|
||||
/**
|
||||
* 查询新零售购买指定商品数量
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param waresCodeList 商品编号列表
|
||||
* @param payTime 支付时间(可为null)
|
||||
* @param orderTypeList 订单类型列表
|
||||
* @param systemType 系统类型(可为null)
|
||||
* @return
|
||||
*/
|
||||
int getRetailWaresQuantity(@Param("pkMember") Long pkMember,
|
||||
@Param("waresCodeList") List<String> waresCodeList,
|
||||
@Param("payTime") Date payTime,
|
||||
@Param("orderTypeList") List<Integer> orderTypeList,
|
||||
@Param("systemType") Integer systemType);
|
||||
|
||||
/**
|
||||
* 查询新零售购买指定商品数量(新)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
package com.hzs.sale.order.param;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.hzs.common.core.annotation.Transaction;
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
|
@ -10,11 +7,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 订单查询参数
|
||||
* @Author: sui q
|
||||
* @Time: 2022/10/19 16:49
|
||||
* @Classname: OrderQueryParam
|
||||
* @PackageName: com.hzs.sale.order.param
|
||||
* 订单查询参数
|
||||
*/
|
||||
@Data
|
||||
public class OrderQueryParam implements Serializable {
|
||||
|
|
|
|||
|
|
@ -83,18 +83,6 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi {
|
|||
return R.ok(iSaOrderService.selfAddressOrderList(param, memberId, pkCountry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<?> saveOrderBatch(List<SaOrder> orderList, List<SaOrderItems> orderItemsList) {
|
||||
try {
|
||||
if (iSaOrderService.insertBach(orderList, orderItemsList) > 0) {
|
||||
return R.ok();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("批量插入订单和订单明细异常", e);
|
||||
}
|
||||
return R.fail();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberFirstOrderDTO> checkMemberIsFirstOrder(List<String> memberCodeList) {
|
||||
List<MemberFirstOrderVo> memberFirstOrderVos = iSaOrderService.checkMemberIsFirstOrder(memberCodeList);
|
||||
|
|
|
|||
|
|
@ -16,11 +16,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 订单业务办理服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/2/1 17:49
|
||||
* @Classname: IOrderBusinessService
|
||||
* @PackageName: com.hzs.sale.order.service
|
||||
* 订单业务办理服务
|
||||
*/
|
||||
public interface IOrderBusinessService {
|
||||
|
||||
|
|
@ -161,9 +157,6 @@ public interface IOrderBusinessService {
|
|||
*
|
||||
* @param orderCancelParam 参数
|
||||
* @param businessCode 审核验证的时候需要去掉自己
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/22 11:40
|
||||
*/
|
||||
ValidateCancelOrderVO validateCancelOrder(OrderCancelParam orderCancelParam, String... businessCode);
|
||||
|
||||
|
|
@ -191,9 +184,6 @@ public interface IOrderBusinessService {
|
|||
*
|
||||
* @param approvalBusinessResultDTO 参数
|
||||
* @param approvalBusiness 审核类型
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/25 10:43
|
||||
*/
|
||||
String cancelOrderApprovalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness);
|
||||
|
||||
|
|
@ -202,9 +192,6 @@ public interface IOrderBusinessService {
|
|||
*
|
||||
* @param approvalBusinessResultDTO 参数
|
||||
* @param approvalBusiness 审核类型
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/25 10:43
|
||||
*/
|
||||
String cancelOrderApprovalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness);
|
||||
|
||||
|
|
@ -241,11 +228,7 @@ public interface IOrderBusinessService {
|
|||
EAgentApprovalStatus approvalStatus, String remark);
|
||||
|
||||
/**
|
||||
* @description: 校验自助撤单
|
||||
* @author: zhang jing
|
||||
* @date: 2023/11/21 15:24
|
||||
* @param: [orderCancelParam, businessCode]
|
||||
* @return: com.hzs.sale.order.vo.ValidateCancelOrderVO
|
||||
* 校验自助撤单
|
||||
**/
|
||||
MyOrderVO checkSelfOrder(Long userId, MyOrderVO myOrderVO);
|
||||
|
||||
|
|
|
|||
|
|
@ -20,9 +20,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 销售订单-明细表 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-08-31
|
||||
*/
|
||||
public interface ISaOrderItemsService extends IService<SaOrderItems> {
|
||||
|
||||
|
|
@ -76,32 +73,14 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
|
|||
* 更新订单明细表,将订单明细更改为删除
|
||||
*
|
||||
* @param saOrder
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/24 20:48
|
||||
*/
|
||||
Boolean updateOrderItems(SaOrder saOrder);
|
||||
|
||||
/*
|
||||
* @description:
|
||||
* @author: sui q
|
||||
* @date: 2023/7/27 16:16
|
||||
* @param: null null
|
||||
*
|
||||
**/
|
||||
void updateOrderItemsByMemberList(List<Long> memberList, Long pkApprove, Date currentDateTime);
|
||||
|
||||
/**
|
||||
* 根据主键列表更新订单明细,删除部分退的订单
|
||||
*
|
||||
* @param pkOrderItemsId 订单明细
|
||||
* @param pkApprove 审核人
|
||||
* @param currentDate 更新时间
|
||||
* @return: Boolean
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/28 11:25
|
||||
*/
|
||||
Boolean updateOrderItemsById(List<Long> pkOrderItemsId, Long pkApprove, Date currentDate);
|
||||
|
||||
/**
|
||||
* 根据订单ID查询订单明细列表
|
||||
*
|
||||
|
|
@ -111,11 +90,7 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
|
|||
List<SaOrderItemsExt> queryListByOrderId(List<Long> orderIdList);
|
||||
|
||||
/**
|
||||
* @description: 根据订单id查询订单商品列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/29 15:37
|
||||
* @param: [orderIdList, tOrderIdList]
|
||||
* @return: java.util.List<com.hzs.common.domain.sale.ext.SaOrderItemsExt>
|
||||
* 根据订单id查询订单商品列表
|
||||
**/
|
||||
List<WaresOrderVo> waresListByOrderId(List<Long> orderIdList);
|
||||
|
||||
|
|
@ -157,11 +132,7 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
|
|||
List<SaOrderItemsExt> selectByList(Long pkOrder);
|
||||
|
||||
/**
|
||||
* @description: 根据订单ID查询商品
|
||||
* @author: zhang jing
|
||||
* @date: 2023/4/21 18:02
|
||||
* @param: [canApplyOrderVO]
|
||||
* @return: java.util.List<com.hzs.sale.order.vo.CanApplyOrderVO>
|
||||
* 根据订单ID查询商品
|
||||
**/
|
||||
List<OrderItemsParam> getOrderItemsParams(@Param("orderIdList") List<Long> orderIdList);
|
||||
|
||||
|
|
@ -173,14 +144,6 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
|
|||
*/
|
||||
List<SaOrderItems> queryDeliverByOrder(Long pkOrder);
|
||||
|
||||
/**
|
||||
* 批量插入订单明细数据
|
||||
*
|
||||
* @param orderItemsList 订单明细数据
|
||||
* @return
|
||||
*/
|
||||
int insertBach(List<SaOrderItems> orderItemsList);
|
||||
|
||||
/**
|
||||
* 校验订单商品是否下架
|
||||
*
|
||||
|
|
@ -228,18 +191,6 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
|
|||
*/
|
||||
List<OrderItemsParam> selectByWaresCodeList(String orderCode);
|
||||
|
||||
/**
|
||||
* 查询新零售购买指定商品数量
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param waresCodeList 商品编号列表
|
||||
* @param payTime 支付时间(可为null)
|
||||
* @param orderTypeList 订单类型列表
|
||||
* @param systemType 系统类型(可为null)
|
||||
* @return
|
||||
*/
|
||||
int getRetailWaresQuantity(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
|
||||
|
||||
/**
|
||||
* 查询新零售购买指定商品数量(新)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -537,14 +537,6 @@ public interface ISaOrderService extends IService<SaOrder> {
|
|||
*/
|
||||
List<Long> querySeqList(Integer param);
|
||||
|
||||
/**
|
||||
* 批量插入订单数据
|
||||
*
|
||||
* @param orderList 订单列表
|
||||
* @return
|
||||
*/
|
||||
int insertBach(List<SaOrder> orderList, List<SaOrderItems> orderItemsList);
|
||||
|
||||
/**
|
||||
* 根据编号查询会员首单
|
||||
*
|
||||
|
|
|
|||
|
|
@ -203,7 +203,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
dto.setPkAccount(serviceChargeDTO.getPkAccount());
|
||||
dto.setAccountKey(serviceChargeDTO.getAccountKey());
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -323,7 +322,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
throw new ServiceException(tmpR.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
// 推送业务操作日志
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, dtoList);
|
||||
|
||||
|
|
@ -1013,7 +1011,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String returnOrderApprovalSubmit(OrderReturnParam param, LoginUser loginUser) {
|
||||
// 所属国家
|
||||
|
|
@ -1109,7 +1106,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
// 订单变动日志
|
||||
List<SaOrderChargeLog> saOrderChargeLogList = new ArrayList<>();
|
||||
for (SaOrder tmpSaOrder : saOrderList) {
|
||||
|
||||
SaOrderChargeLog saOrderChargeLog = new SaOrderChargeLog();
|
||||
saOrderChargeLog.setPkOrder(saOrder.getPkId());
|
||||
saOrderChargeLog.setChargeType(EApprovalBusiness.ORDER_RETURN.getValue());
|
||||
|
|
@ -1149,7 +1145,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
// 推送业务操作日志
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, dtoList);
|
||||
}
|
||||
|
||||
return submitStr;
|
||||
}
|
||||
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED);
|
||||
|
|
@ -1248,23 +1243,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
return validateCancelOrderVO;
|
||||
}
|
||||
int approveBusiness = EApprovalBusiness.ORDER_CANCEL.getValue();
|
||||
SaOrderExt saOrderExt;
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT.getValue();
|
||||
// SaOrder orderQuery = SaOrder.builder().orderStatus(EOrderStatus.PAY.getValue()).orderCode(orderCancelParam.getOrderCode()).build();
|
||||
// orderQuery.setPkCountry(orderCancelParam.getPkCountry());
|
||||
//// List<Long> itemIdList = new ArrayList<>();
|
||||
//// if (orderCancelParam.getOrderCancelDetailParamList() != null && orderCancelParam.getOrderCancelDetailParamList().size() > 0) {
|
||||
//// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam ->
|
||||
//// itemIdList.add(orderCancelDetailParam.getPkId()));
|
||||
//// }
|
||||
// saOrderExt = iSaOrderService.querySaleOrderExtByOrderCode(orderQuery, new ArrayList<>());
|
||||
// CuMember cuMember = iSaOrderService.getCuMemberByKey(saOrderExt.getPkMember());
|
||||
// saOrderExt.setMemberCode(cuMember.getMemberCode());
|
||||
// saOrderExt.setMemberName(cuMember.getMemberName());
|
||||
// } else {
|
||||
saOrderExt = iSaOrderService.queryOrderByCode(orderCancelParam.getOrderCode(), orderCancelParam.getPkCountry());
|
||||
// }
|
||||
SaOrderExt saOrderExt = iSaOrderService.queryOrderByCode(orderCancelParam.getOrderCode(), orderCancelParam.getPkCountry());
|
||||
if (saOrderExt == null || EOrderStatus.WAIT_PAY.getValue() == saOrderExt.getOrderStatus()) {
|
||||
validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY));
|
||||
return validateCancelOrderVO;
|
||||
|
|
@ -1272,7 +1251,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue())
|
||||
|| orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue())
|
||||
|| orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_ORDER.getValue())
|
||||
// || orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())
|
||||
) {
|
||||
// 验证订单时间,只能撤销7天以内的支付订单
|
||||
// 周结只能撤销当前期间的订单,不能撤销上个期间的订单
|
||||
|
|
@ -1460,9 +1438,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.DEFAULT);
|
||||
// 修改类型
|
||||
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
|
||||
// }
|
||||
|
||||
// 封装修改地址业务日志
|
||||
List<BusinessLogDTO> dtoList = new ArrayList<>();
|
||||
|
|
@ -1549,13 +1524,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
orderCancelParam.setMemberCode(cuMember.getMemberCode());
|
||||
orderCancelParam.setMemberName(cuMember.getMemberName());
|
||||
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
|
||||
//// List<OrderCancelDetailParam> orderCancelDetailParamList = new ArrayList<>();
|
||||
//// orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam ->
|
||||
//// orderCancelDetailParamList.add(BeanUtil.copyProperties(orderCancelDetailParam, OrderCancelDetailParam.class)));
|
||||
//// orderCancelParam.setOrderCancelDetailParamList(orderCancelDetailParamList);
|
||||
// }
|
||||
// 本次业务修改费用
|
||||
Map<Long, OrderQueryChargeDTO> queryChargeMap = null;
|
||||
if (orderCancelParam.getCancelRoad() == null || orderCancelParam.getCancelRoad() != 2) {
|
||||
|
|
|
|||
|
|
@ -64,11 +64,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
|
|||
baseMapper.updateOrderItemsByMemberList(memberList, pkApprove, currentDateTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateOrderItemsById(List<Long> pkOrderItemsId, Long pkApprove, Date currentDate) {
|
||||
return baseMapper.updateOrderItemsById(pkOrderItemsId, pkApprove, currentDate) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaOrderItemsExt> queryListByOrderId(List<Long> orderIdList) {
|
||||
return baseMapper.queryListByOrderId(orderIdList);
|
||||
|
|
@ -94,32 +89,16 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
|
|||
return baseMapper.selectByInvestmentList(waresOrderParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时关闭订单
|
||||
*/
|
||||
@Override
|
||||
public void closeOrder(Integer pkCountry, String data, Integer orderType) {
|
||||
baseMapper.closeOrder(pkCountry, data, orderType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单主键查询信息
|
||||
*
|
||||
* @param pkOrder
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SaOrderItemsExt> selectByList(Long pkOrder) {
|
||||
return baseMapper.selectByList(pkOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 根据订单ID查询商品
|
||||
* @author: zhang jing
|
||||
* @date: 2023/4/21 18:02
|
||||
* @param: [canApplyOrderVO]
|
||||
* @return: java.util.List<com.hzs.sale.order.vo.CanApplyOrderVO>
|
||||
**/
|
||||
@Override
|
||||
public List<OrderItemsParam> getOrderItemsParams(List<Long> orderIdList) {
|
||||
return baseMapper.getOrderItemsParams(orderIdList);
|
||||
|
|
@ -130,11 +109,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
|
|||
return baseMapper.queryDeliverByOrder(pkOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertBach(List<SaOrderItems> orderItemsList) {
|
||||
return baseMapper.insertBach(orderItemsList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int checkOrderItemsPutOn(String orderCode) {
|
||||
return baseMapper.checkOrderItemsPutOn(orderCode);
|
||||
|
|
@ -175,22 +149,11 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
|
|||
return baseMapper.copyDeductionItems(pkOrderOld, pkOrderNew, userId, nowDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单编号查询订单项
|
||||
*
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<OrderItemsParam> selectByWaresCodeList(String orderCode) {
|
||||
return baseMapper.selectByWaresCodeList(orderCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRetailWaresQuantity(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
|
||||
return baseMapper.getRetailWaresQuantity(pkMember, waresCodeList, payTime, orderTypeList, systemType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
|
||||
return baseMapper.getRetailWaresQuantityNew(pkMember, waresCodeList, payTime, orderTypeList, systemType);
|
||||
|
|
|
|||
|
|
@ -1265,9 +1265,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
BusinessCommissionDTO businessCommissionDTO = null;
|
||||
if (orderCancelParam.getCancelRoad() == 1) {
|
||||
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
|
||||
// }
|
||||
Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(validateCancelOrderVO.getSaOrderExt()),
|
||||
approveBusiness, orderCancelParam.getPkCountry());
|
||||
if (queryChargeMap != null && queryChargeMap.containsKey(saOrderExt.getPkId())) {
|
||||
|
|
@ -1296,47 +1293,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
}
|
||||
}
|
||||
|
||||
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// List<OrderCancelDetailParam> orderCancelDetailParamList = orderCancelParam.getOrderCancelDetailParamList();
|
||||
// List<Long> pkOrderItemList = orderCancelDetailParamList.stream().map(OrderCancelDetailParam::getPkId).collect(Collectors.toList());
|
||||
// // 第二次封装订单,根据明细表计算订单主表金额、业绩
|
||||
// saOrderExt.setOrderAmount(BigDecimal.ZERO);
|
||||
// saOrderExt.setOrderAchieve(BigDecimal.ZERO);
|
||||
// saOrderExt.setOrderAssAchieve(BigDecimal.ZERO);
|
||||
// saOrderExt.setBackOrderAmount(BigDecimal.ZERO);
|
||||
// List<SaOrderItems> saOrderItemsList = new ArrayList<>();
|
||||
// saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
|
||||
// if (pkOrderItemList.contains(saOrderItems.getPkId())) {
|
||||
// saOrderExt.setBackOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getBackOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity()));
|
||||
// return;
|
||||
// }
|
||||
// // 总价;
|
||||
// saOrderExt.setOrderAmount(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAmount(), saOrderItems.getPrice(), saOrderItems.getQuantity()));
|
||||
// // 总业绩
|
||||
// saOrderExt.setOrderAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAchieve(), saOrderItems.getAchievement(), saOrderItems.getQuantity()));
|
||||
// // 总考核业绩
|
||||
// saOrderExt.setOrderAssAchieve(ComputeUtil.computeAddMultiply(saOrderExt.getOrderAssAchieve(), saOrderItems.getAssAchievement(), saOrderItems.getQuantity()));
|
||||
// saOrderItemsList.add(saOrderItems);
|
||||
// });
|
||||
// saOrderExt.setUploadAchieve(saOrderExt.getOrderAchieve());
|
||||
// if (saOrderItemsList.size() == 0) {
|
||||
// saOrderExt.setDelFlag(EDelFlag.DELETE.getValue());
|
||||
// } else {
|
||||
// saOrderExt.setOrderItemsList(saOrderItemsList);
|
||||
// }
|
||||
// // 修改订单
|
||||
// Date currentDateTime = DateUtils.currentDateTime();
|
||||
// // 删除发货单
|
||||
// iSaDeliverItemsService.deleteSaDeliverItems(saOrderExt.getPkId(), pkOrderItemList);
|
||||
// updateSaOrder(pkApprove, saOrderExt, currentDateTime);
|
||||
// // 删除订单明细
|
||||
// if (!iSaOrderItemsService.updateOrderItemsById(pkOrderItemList, pkApprove, currentDateTime)) {
|
||||
// throw new ServiceException("更新订单失败");
|
||||
// }
|
||||
// if (!iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, null, businessCommissionDTO).getData()) {
|
||||
// throw new ServiceException("撤单失败");
|
||||
// }
|
||||
// } else {
|
||||
// 删除订单
|
||||
saOrderExt.setDelFlag(EDelFlag.DELETE.getValue());
|
||||
Date currentDate = DateUtils.currentDateTime();
|
||||
|
|
@ -1355,7 +1311,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
// 撤销注册订单 单点撤单
|
||||
if (ECancelOrderType.SINGLE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) {
|
||||
// 单点撤单,变死点
|
||||
R<Boolean> tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO);
|
||||
R<Boolean> tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO, false);
|
||||
if (!tmpR.isSuccess()) {
|
||||
throw new ServiceException("撤单失败 " + tmpR.getMsg());
|
||||
}
|
||||
|
|
@ -1375,9 +1331,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
}
|
||||
} else {
|
||||
// 其他撤单
|
||||
this.handleCancelUpgradeOrder(saOrderExt, validateCancelOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO);
|
||||
this.handleCancelUpgradeOrder(saOrderExt, pkApprove, businessCommissionDTO);
|
||||
}
|
||||
// }
|
||||
|
||||
try {
|
||||
// 推送MQ的列表
|
||||
|
|
@ -1760,16 +1715,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return baseMapper.querySeqList(param);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public int insertBach(List<SaOrder> orderList, List<SaOrderItems> orderItemsList) {
|
||||
int i = baseMapper.insertBach(orderList);
|
||||
if (i > 0 && CollectionUtil.isNotEmpty(orderItemsList)) {
|
||||
iSaOrderItemsService.insertBach(orderItemsList);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberFirstOrderVo> checkMemberIsFirstOrder(List<String> memberCodeList) {
|
||||
return baseMapper.checkMemberIsFirstOrder(memberCodeList);
|
||||
|
|
@ -1811,12 +1756,13 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
// 撤销注册订单
|
||||
if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue()) {
|
||||
// 逻辑删除会员
|
||||
if (!iMemberServiceApi.singleRevokeMemberBySelfRevokeOrder(pkApprove, saOrderExt, businessCommissionDTO).getData()) {
|
||||
throw new ServiceException("撤单失败");
|
||||
R<Boolean> tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO, true);
|
||||
if (!tmpR.isSuccess()) {
|
||||
throw new ServiceException("撤单失败 " + tmpR.getMsg());
|
||||
}
|
||||
} else {
|
||||
// 其他撤单
|
||||
this.handleCancelUpgradeOrder(saOrderExt, myOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO);
|
||||
this.handleCancelUpgradeOrder(saOrderExt, pkApprove, businessCommissionDTO);
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -2026,58 +1972,32 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算新零售撤单等级
|
||||
*
|
||||
* @param cuMember 会员信息
|
||||
* @param saOrder 订单信息
|
||||
* @return
|
||||
*/
|
||||
private GradeDTO calculateRetailCancelGrade(CuMember cuMember, SaOrder saOrder) {
|
||||
// 查询会员最新升级记录
|
||||
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrder.getPkId()).getData();
|
||||
if (null != cuMemberLevel) {
|
||||
return iGradeServiceApi.getGrade(cuMemberLevel.getNewLevel()).getData();
|
||||
}
|
||||
|
||||
// 没有升级记录,直接查会员注册信息表
|
||||
CuMemberRegister cuMemberRegister = iCuMemberDetailServiceApi.getMemberRegister(cuMember.getPkId()).getData();
|
||||
if (null == cuMemberRegister) {
|
||||
throw new ServiceException("没有会员注册信息");
|
||||
}
|
||||
return iGradeServiceApi.getGrade(cuMemberRegister.getPkRegisterGrade()).getData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理撤销订单
|
||||
*
|
||||
* @param saOrderExt 订单信息
|
||||
* @param updSaOrder 升级订单
|
||||
* @param pkApprove 操作人
|
||||
* @param businessCommissionDTO 业务处理DTO
|
||||
*/
|
||||
private void handleCancelUpgradeOrder(SaOrderExt saOrderExt, SaOrder updSaOrder, Long pkApprove, BusinessCommissionDTO businessCommissionDTO) {
|
||||
private void handleCancelUpgradeOrder(SaOrderExt saOrderExt, Long pkApprove, BusinessCommissionDTO businessCommissionDTO) {
|
||||
// 其他撤单 撤销升级订单
|
||||
CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember());
|
||||
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 计算等级
|
||||
// 空单注册,从cu_member_register中获取
|
||||
if (updSaOrder == null) {
|
||||
CuMemberRegister cuMemberRegister = iMemberServiceApi.queryCuMemberRegister(saOrderExt.getPkMember()).getData();
|
||||
// 查询会员最新升级记录(主要是手动升级记录)
|
||||
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrderExt.getPkId(), null).getData();
|
||||
if (null != cuMemberLevel) {
|
||||
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
|
||||
} else {
|
||||
// 当前订单之前没有注册、升级订单,从空单注册cu_member_register中获取
|
||||
CuMemberRegister cuMemberRegister = iMemberServiceApi.queryCuMemberRegister(cuMember.getPkId()).getData();
|
||||
if (null == cuMemberRegister) {
|
||||
throw new ServiceException("没有会员注册信息");
|
||||
}
|
||||
cuMember.setPkRegisterGrade(cuMemberRegister.getPkRegisterGrade());
|
||||
cuMember.setPkSettleGrade(cuMemberRegister.getPkRegisterGrade());
|
||||
cuMember.setConsumeMoney(BigDecimal.ZERO);
|
||||
cuMember.setConsumeAchieve(cuMemberRegister.getConsumeAchieve());
|
||||
|
||||
// 查询会员最新升级记录
|
||||
CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrderExt.getPkId()).getData();
|
||||
if (null != cuMemberLevel) {
|
||||
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
|
||||
}
|
||||
} else {
|
||||
// 传的订单是当前撤的订单
|
||||
GradeDTO gradeDTO = calculateRetailCancelGrade(cuMember, saOrderExt);
|
||||
cuMember.setPkSettleGrade(gradeDTO.getPkId());
|
||||
}
|
||||
|
||||
Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
|
||||
|
|
|
|||
|
|
@ -660,16 +660,6 @@
|
|||
and pk_order = #{pkId}
|
||||
and del_flag = 0
|
||||
</update>
|
||||
<update id="updateOrderItemsById">
|
||||
update SA_ORDER_ITEMS
|
||||
set del_flag = 1,
|
||||
pk_modified=#{pkApprove},
|
||||
modified_time=#{currentDate}
|
||||
where del_flag = 0 and pk_id in
|
||||
<foreach collection="pkOrderItemsId" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 根据订单ID查询订单明细列表(前台使用,尽量只查能用到的) -->
|
||||
<select id="queryListByOrderId" resultType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
|
||||
|
|
@ -1021,26 +1011,6 @@
|
|||
and soi.pk_order = #{pkOrder}
|
||||
</select>
|
||||
|
||||
<!-- 批量插入订单明细数据 -->
|
||||
<insert id="insertBach">
|
||||
INSERT ALL
|
||||
<foreach collection="orderItemsList" item="item" separator=" ">
|
||||
into SA_ORDER_ITEMS (
|
||||
PK_ORDER, PK_PRODUCT, QUANTITY, PK_RATE,
|
||||
PK_GRADE, PK_AWARDS, ORDER_STATUS,
|
||||
SPECS_NAME, SPECS_NAME_ID, WARES_QUANTITY,
|
||||
PK_CREATOR, CREATION_TIME, PK_COUNTRY
|
||||
)
|
||||
values (
|
||||
#{item.pkOrder}, #{item.pkProduct}, #{item.quantity}, #{item.pkRate, jdbcType=NUMERIC},
|
||||
#{item.pkGrade}, #{item.pkAwards}, #{item.orderStatus},
|
||||
#{item.specsName}, #{item.specsNameId}, #{item.waresQuantity},
|
||||
#{item.pkCreator}, #{item.creationTime}, #{item.pkCountry}
|
||||
)
|
||||
</foreach>
|
||||
SELECT 1 FROM dual
|
||||
</insert>
|
||||
|
||||
<!-- 校验订单商品是否下架 -->
|
||||
<select id="checkOrderItemsPutOn" resultType="int">
|
||||
select count(1)
|
||||
|
|
@ -1130,35 +1100,6 @@
|
|||
and so.ORDER_CODE = #{orderCode}
|
||||
</select>
|
||||
|
||||
<!-- 查询新零售购买指定商品数量 -->
|
||||
<select id="getRetailWaresQuantity" resultType="int">
|
||||
select nvl(sum(soi.wares_quantity), 0) wares_quantity
|
||||
from sa_order so
|
||||
left join sa_order_items soi
|
||||
on soi.pk_order = so.pk_id
|
||||
and soi.del_flag = 0
|
||||
and soi.is_gift = 1
|
||||
left join bd_wares bw
|
||||
on bw.pk_id = soi.pk_wares
|
||||
where so.del_flag = 0
|
||||
and so.order_status = 1
|
||||
and so.pk_member = #{pkMember}
|
||||
<if test="systemType != null">
|
||||
and so.system_type = #{systemType}
|
||||
</if>
|
||||
and so.order_type in
|
||||
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
and bw.wares_code in
|
||||
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
|
||||
#{items}
|
||||
</foreach>
|
||||
<if test="payTime != null">
|
||||
and so.pay_time > #{payTime}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 查询新零售购买指定商品数量(新) -->
|
||||
<select id="getRetailWaresQuantityNew" resultType="decimal">
|
||||
select sum(so.box_num) wares_quantity
|
||||
|
|
|
|||
|
|
@ -6,42 +6,21 @@ import com.hzs.common.domain.system.base.BdStorehouseAreaMiddle;
|
|||
import com.hzs.system.base.vo.BdStorehouseAreaMiddleVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库地区中间表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-05
|
||||
*/
|
||||
public interface BdStorehouseAreaMiddleMapper extends BaseMapper<BdStorehouseAreaMiddle> {
|
||||
|
||||
/**
|
||||
* @description: 查询地区绑定仓库列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:09
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: java.util.List<com.hzs.system.base.vo.BdStorehouseAreaMiddleVO>
|
||||
* 查询地区绑定仓库列表
|
||||
**/
|
||||
List<BdStorehouseAreaMiddleVO> getBdStorehouseAreaMiddleList(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
|
||||
|
||||
/*
|
||||
* @description: 根据省查询对应的发货仓库
|
||||
* @author: sui q
|
||||
* @date: 2023/5/8 14:22
|
||||
* @param: null null
|
||||
* 根据省查询对应的发货仓库
|
||||
**/
|
||||
List<BdStorehouse> queryBdStorehouseByProvince(@Param("province") Integer province, @Param("type") Integer type);
|
||||
|
||||
/**
|
||||
* 批量查询省对应仓库列表
|
||||
*
|
||||
* @param provinceList 省列表
|
||||
* @return
|
||||
*/
|
||||
List<BdStorehouse> queryStorehouseListByProvince(@Param("provinceList") Collection<Integer> provinceList);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,13 @@
|
|||
package com.hzs.system.base.provider;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.system.base.BdCurrency;
|
||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
|
||||
import com.hzs.common.domain.system.sys.SysCorp;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.base.param.BdCubasdocParam;
|
||||
import com.hzs.system.base.service.IBdCubasdocService;
|
||||
import com.hzs.system.base.service.IBdCurrencyService;
|
||||
import com.hzs.system.base.service.IBdStorehouseAreaMiddleService;
|
||||
import com.hzs.system.base.service.IBdStorehouseService;
|
||||
import com.hzs.system.sys.service.ISysCorpService;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
|
|
@ -28,12 +21,6 @@ public class CurrencyServiceProvider implements ICurrencyServiceApi {
|
|||
private IBdCurrencyService currencyService;
|
||||
@Autowired
|
||||
private IBdStorehouseAreaMiddleService storehouseAreaMiddleService;
|
||||
@Autowired
|
||||
private IBdCubasdocService bdCubasdocService;
|
||||
@Autowired
|
||||
private ISysCorpService sysCorpService;
|
||||
@Autowired
|
||||
private IBdStorehouseService storehouseService;
|
||||
|
||||
@Override
|
||||
public R<CurrencyDTO> getCurrency(Integer pkCountry) {
|
||||
|
|
@ -76,16 +63,6 @@ public class CurrencyServiceProvider implements ICurrencyServiceApi {
|
|||
return R.ok(storehouseAreaMiddleService.queryBdStorehouseByProvince(province, storeType));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<BdStorehouse> queryBdStorehouseById(Integer pkId) {
|
||||
return R.ok(storehouseService.getById(pkId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdStorehouse>> queryBdStorehouseMapByProvince(Collection<Integer> provinceList) {
|
||||
return R.ok(storehouseAreaMiddleService.queryStorehouseListByProvince(provinceList));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<CurrencyDTO> getByHistoryPkId(Integer currencyId) {
|
||||
BdCurrency bdCurrency = currencyService.getByHistoryPkid(currencyId);
|
||||
|
|
@ -99,39 +76,4 @@ public class CurrencyServiceProvider implements ICurrencyServiceApi {
|
|||
return R.ok(currencyDtoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<BdCubasdocExt> queryBdCubasdocById(Integer pkId, Integer pkCountry) {
|
||||
BdCubasdocParam cubasdocParam = BdCubasdocParam.builder()
|
||||
.pkCountry(pkCountry)
|
||||
.pkId(pkId)
|
||||
.build();
|
||||
List<BdCubasdocExt> bdCubasdocList = bdCubasdocService.querySupplierByCondition(cubasdocParam);
|
||||
if (CollectionUtil.isNotEmpty(bdCubasdocList)) {
|
||||
return R.ok(bdCubasdocList.get(0));
|
||||
}
|
||||
return R.ok(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<BdCubasdocExt> queryBdCustomerById(Integer pkId, Integer pkCountry) {
|
||||
BdCubasdocParam customerParam = BdCubasdocParam.builder()
|
||||
.pkCountry(pkCountry)
|
||||
.pkId(pkId)
|
||||
.build();
|
||||
List<BdCubasdocExt> bdCubasdocList = bdCubasdocService.queryCustomerByCondition(customerParam);
|
||||
if (CollectionUtil.isNotEmpty(bdCubasdocList)) {
|
||||
return R.ok(bdCubasdocList.get(0));
|
||||
}
|
||||
return R.ok(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<SysCorp> querySysCorp(Integer pkId, Integer pkCountry) {
|
||||
return R.ok(sysCorpService.getSysCorp(pkId, pkCountry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdStorehouse>> queryStorehouseByIds(Set<Integer> storehouseIdSet, Integer pkCountry, Integer pkCorp) {
|
||||
return R.ok(storehouseService.queryStorehouseByIds(storehouseIdSet, pkCountry, pkCorp));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,65 +1,35 @@
|
|||
package com.hzs.system.base.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||
import com.hzs.common.domain.system.base.BdStorehouseAreaMiddle;
|
||||
import com.hzs.system.base.vo.BdStorehouseAreaMiddleVO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库地区中间表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-05
|
||||
*/
|
||||
public interface IBdStorehouseAreaMiddleService extends IService<BdStorehouseAreaMiddle> {
|
||||
|
||||
/**
|
||||
* @description: 查询地区绑定仓库列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:09
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: java.util.List<com.hzs.system.base.vo.BdStorehouseAreaMiddleVO>
|
||||
* 查询地区绑定仓库列表
|
||||
**/
|
||||
List<BdStorehouseAreaMiddleVO> getBdStorehouseAreaMiddleList(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
|
||||
|
||||
/**
|
||||
* @description: 新增地区仓库
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:28
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: boolean
|
||||
* 新增地区仓库
|
||||
**/
|
||||
boolean intStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
|
||||
|
||||
/**
|
||||
* @description: 修改地区仓库
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:28
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: boolean
|
||||
* 修改地区仓库
|
||||
**/
|
||||
boolean upStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
|
||||
|
||||
/*
|
||||
* @description: 根据省查询对应的发货仓库
|
||||
* @author: sui q
|
||||
* @date: 2023/5/8 14:22
|
||||
* @param: null null
|
||||
* 根据省查询对应的发货仓库
|
||||
**/
|
||||
BdStorehouse queryBdStorehouseByProvince(Integer province, Integer type);
|
||||
|
||||
/**
|
||||
* 批量查询省对应仓库列表
|
||||
*
|
||||
* @param provinceList 省列表
|
||||
* @return
|
||||
*/
|
||||
List<BdStorehouse> queryStorehouseListByProvince(Collection<Integer> provinceList);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,39 +10,19 @@ import com.hzs.system.base.service.IBdStorehouseAreaMiddleService;
|
|||
import com.hzs.system.base.vo.BdStorehouseAreaMiddleVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库地区中间表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-05
|
||||
*/
|
||||
@Service
|
||||
public class BdStorehouseAreaMiddleServiceImpl extends ServiceImpl<BdStorehouseAreaMiddleMapper, BdStorehouseAreaMiddle> implements IBdStorehouseAreaMiddleService {
|
||||
|
||||
/**
|
||||
* @description: 查询地区绑定仓库列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:09
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: java.util.List<com.hzs.system.base.vo.BdStorehouseAreaMiddleVO>
|
||||
**/
|
||||
@Override
|
||||
public List<BdStorehouseAreaMiddleVO> getBdStorehouseAreaMiddleList(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO) {
|
||||
return baseMapper.getBdStorehouseAreaMiddleList(storehouseAreaMiddleVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 新增地区仓库
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:37
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: boolean
|
||||
**/
|
||||
@Override
|
||||
public boolean intStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO) {
|
||||
BdStorehouseAreaMiddle sto = BeanUtil.copyProperties(storehouseAreaMiddleVO, BdStorehouseAreaMiddle.class);
|
||||
|
|
@ -53,13 +33,6 @@ public class BdStorehouseAreaMiddleServiceImpl extends ServiceImpl<BdStorehouseA
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 修改地区仓库
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/5 20:37
|
||||
* @param: [storehouseAreaMiddleVO]
|
||||
* @return: boolean
|
||||
**/
|
||||
@Override
|
||||
public boolean upStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO) {
|
||||
BdStorehouseAreaMiddle sto = BeanUtil.copyProperties(storehouseAreaMiddleVO, BdStorehouseAreaMiddle.class);
|
||||
|
|
@ -80,9 +53,4 @@ public class BdStorehouseAreaMiddleServiceImpl extends ServiceImpl<BdStorehouseA
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdStorehouse> queryStorehouseListByProvince(Collection<Integer> provinceList) {
|
||||
return baseMapper.queryStorehouseListByProvince(provinceList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,19 +2,6 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.system.base.mapper.BdStorehouseAreaMiddleMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.base.BdStorehouseAreaMiddle">
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="PK_STOREHOUSE" property="pkStorehouse"/>
|
||||
<result column="PROVINCE" property="province"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="BdStorehouseAreaMiddleVO" type="com.hzs.system.base.vo.BdStorehouseAreaMiddleVO">
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
|
|
@ -26,7 +13,6 @@
|
|||
<result column="provinceVal" property="provinceVal"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!--查询地区绑定仓库列表-->
|
||||
<select id="getBdStorehouseAreaMiddleList" parameterType="com.hzs.system.base.vo.BdStorehouseAreaMiddleVO"
|
||||
resultMap="BdStorehouseAreaMiddleVO">
|
||||
|
|
@ -51,6 +37,7 @@
|
|||
AND bse.NAME like '%' || #{name} || '%'
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="queryBdStorehouseByProvince" resultType="com.hzs.common.domain.system.base.BdStorehouse">
|
||||
select bs.pk_id, bs.name, bs.code,bs.pk_corp
|
||||
from bd_storehouse bs
|
||||
|
|
@ -65,19 +52,4 @@
|
|||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 批量查询省对应仓库列表 -->
|
||||
<select id="queryStorehouseListByProvince" resultType="com.hzs.common.domain.system.base.BdStorehouse">
|
||||
select bs.pk_id, bs.name, bs.code, bm.province
|
||||
from bd_storehouse bs
|
||||
inner join bd_storehouse_area_middle bm
|
||||
on bs.pk_id = bm.pk_storehouse
|
||||
where bs.del_flag = 0
|
||||
and bm.del_flag = 0
|
||||
and bs.enable_state = 0
|
||||
and bm.province in
|
||||
<foreach collection="provinceList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -15,16 +15,6 @@ public class CommonMsgConstants {
|
|||
*/
|
||||
public static final String OPERATION_FAILED = "操作失败";
|
||||
|
||||
/**
|
||||
* 一般用于三方对接,处理失败,用户刷新后可以重新进行操作提示 -- 操作失败,请刷新后重试
|
||||
*/
|
||||
public static final String OPERATION_FAILED_FLUSH = "操作失败,请刷新后重试";
|
||||
|
||||
/**
|
||||
* 用户已转结算国,不能进行处理相关操作 -- 用户已转结算国,不能进行操作
|
||||
*/
|
||||
public static final String SETTLEMENT_COUNTRY_NOT_OPERATE = "用户已转结算国,不能进行操作";
|
||||
|
||||
/**
|
||||
* 签呈处理失败 -- 签呈处理失败
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1211,5 +1211,8 @@ public class ConfigMsgConstants {
|
|||
*/
|
||||
public static final String MEMBER_RETAIL_REGION_REPEAT = "会员已添加收益区域";
|
||||
|
||||
|
||||
/**
|
||||
* 会员手机号重复 -- 会员手机号重复
|
||||
*/
|
||||
public static final String MEMBER_RETAIL_PHONE_REPEAT = "会员手机号重复";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,6 +223,10 @@ public class MemberMsgConstants {
|
|||
* 空单注册,导入的会员编号中存在重复 -- 会员编号存在重复
|
||||
*/
|
||||
public static final String EMPTY_MEMBER_REPEAT = "会员编号存在重复";
|
||||
/**
|
||||
* 空单注册,导入的会员联系方式中存在重复 -- 联系方式存在重复
|
||||
*/
|
||||
public static final String EMPTY_PHONE_NOT = "联系方式存在重复";
|
||||
/**
|
||||
* 空单注册,导入的会员编号中存在重复 -- 推荐编号不存在
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -13,9 +13,6 @@ import lombok.experimental.Accessors;
|
|||
|
||||
/**
|
||||
* 空单批次
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ import lombok.experimental.Accessors;
|
|||
|
||||
/**
|
||||
* 空单批次明细产品
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-08-28
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -4,14 +4,8 @@ import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
|
|||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 空单批次明细扩展类
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/7/6 15:33
|
||||
* @Classname: CuMemberEmptyDetailExt
|
||||
* @PackageName: com.hzs.common.domain.member.empty.ext
|
||||
* 空单批次明细扩展类
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
|
|
@ -55,27 +49,9 @@ public class CuMemberEmptyDetailExt extends CuMemberEmptyDetail {
|
|||
*/
|
||||
private String awardsVal;
|
||||
|
||||
/**
|
||||
* 省名称
|
||||
*/
|
||||
private String recProvinceVal;
|
||||
/**
|
||||
* 市名称
|
||||
*/
|
||||
private String recCityVal;
|
||||
/**
|
||||
* 县名称
|
||||
*/
|
||||
private String recCountyVal;
|
||||
|
||||
/**
|
||||
* 生成备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 空单明细产品列表
|
||||
*/
|
||||
private List<CuMemberEmptyProductDTO> productDTOList;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
package com.hzs.common.domain.member.empty.ext;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description: 空单批次明细产品展示
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/30 10:44
|
||||
* @Classname: CuMemberEmptyProductOther
|
||||
* @PackageName: com.hzs.common.domain.member.empty.ext
|
||||
*/
|
||||
@Data
|
||||
public class CuMemberEmptyProductDTO {
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
private Integer pkProduct;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 产品规格名称
|
||||
*/
|
||||
private String specsName;
|
||||
|
||||
/**
|
||||
* 产品规格ID
|
||||
*/
|
||||
private String specsNameId;
|
||||
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
private Integer quantity;
|
||||
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
package com.hzs.common.domain.member.empty.ext;
|
||||
|
||||
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @Description: 空单明细产品扩展
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/30 11:51
|
||||
* @Classname: CuMemberEmptyProductExtt
|
||||
* @PackageName: com.hzs.common.domain.member.empty.ext
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class CuMemberEmptyProductExt extends CuMemberEmptyProduct {
|
||||
|
||||
private static final long serialVersionUID = 2283368663097538169L;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 产品编码
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
}
|
||||
|
|
@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓库地区中间表
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-05-05
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
|||
|
|
@ -14,11 +14,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* @Description: 在线支付配置
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/23 16:15
|
||||
* @Classname: OnlinePayConfigController
|
||||
* @PackageName: com.hzs.third.pay.controller.manage
|
||||
* 在线支付配置
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/online-config")
|
||||
|
|
@ -40,6 +36,16 @@ public class OnlinePayConfigController {
|
|||
OnlinePayConfigVO payConfigVO = new OnlinePayConfigVO();
|
||||
|
||||
// 各支付方式: true=显示,false=隐藏
|
||||
// 京东收银台(H5)
|
||||
String pay5 = String.format(PayConfigConstants.PAY_CONFIG_5, pkCountry);
|
||||
if (redisTemplate.hasKey(pay5)) {
|
||||
payConfigVO.setPay5((Boolean) redisTemplate.opsForValue().get(pay5));
|
||||
}
|
||||
// 京东收银台(PC)
|
||||
String pay6 = String.format(PayConfigConstants.PAY_CONFIG_6, pkCountry);
|
||||
if (redisTemplate.hasKey(pay6)) {
|
||||
payConfigVO.setPay6((Boolean) redisTemplate.opsForValue().get(pay6));
|
||||
}
|
||||
|
||||
// 新汇付PC微信扫码支付
|
||||
String pay81 = String.format(PayConfigConstants.PAY_CONFIG_81, pkCountry);
|
||||
|
|
|
|||
Loading…
Reference in New Issue