3
0
Fork 0

## 撤单处理逻辑调整;

This commit is contained in:
cabbage 2025-08-22 15:11:32 +08:00
parent d260e06634
commit 2182d31de2
16 changed files with 94 additions and 436 deletions

View File

@ -61,12 +61,7 @@ public interface IMemberServiceApi {
* @param pkApprove 审核人 * @param pkApprove 审核人
* @param saOrder 销售订单 * @param saOrder 销售订单
*/ */
R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO); R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO, boolean selfBool);
/**
* 自助撤单-注册单撤单
**/
R<Boolean> singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
/** /**
* 撤销订单需要更新会员合并撤单直接删除会员 * 撤销订单需要更新会员合并撤单直接删除会员

View File

@ -1,7 +1,6 @@
package com.hzs.member.detail; package com.hzs.member.detail;
import com.hzs.common.core.domain.R; 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.common.domain.member.detail.CuMemberLevel;
import java.util.List; import java.util.List;
@ -14,11 +13,12 @@ public interface ICuMemberDetailServiceApi {
/** /**
* 查询升级的最新一条 * 查询升级的最新一条
* *
* @param pkMember 会员ID * @param pkMember 会员ID
* @param pkOrder 订单ID可为null * @param pkOrder 订单ID可为null
* @param notUpType 不查询的升级方式可为null
* @return * @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); R<List<CuMemberLevel>> getUpgradeList(Long pkMember);
/**
* 查询会员注册信息
*
* @param pkMember 会员ID
* @return
*/
R<CuMemberRegister> getMemberRegister(Long pkMember);
} }

View File

@ -78,9 +78,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
} }
@Override @Override
public R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO) { public R<Boolean> singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO, boolean selfBool) {
try { try {
if (iCuMemberBusinessService.singleRevokeMemberByRegisterOrder(pkApprove, saOrder, businessCommissionDTO)) { if (iCuMemberBusinessService.singleRevokeMemberByRegisterOrder(pkApprove, saOrder, businessCommissionDTO, selfBool)) {
return R.ok(); return R.ok();
} }
return R.fail("会员信息处理失败"); 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 @Override
public R<Boolean> mergeRevokeMemberByRegisterOrder(Long pkApprove, List<Long> memberList, Map<Long, SaOrderExt> saOrderMap, BusinessCommissionDTO businessCommissionDTO) { public R<Boolean> mergeRevokeMemberByRegisterOrder(Long pkApprove, List<Long> memberList, Map<Long, SaOrderExt> saOrderMap, BusinessCommissionDTO businessCommissionDTO) {
try { try {

View File

@ -83,13 +83,10 @@ public interface ICuMemberBusinessService {
* *
* @param pkApprove 审核人 * @param pkApprove 审核人
* @param saOrder 销售订单 * @param saOrder 销售订单
* @param selfBool 是否自助撤单
*/ */
Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO); Boolean singleRevokeMemberByRegisterOrder(Long pkApprove, SaOrderExt saOrder,
BusinessCommissionDTO businessCommissionDTO, boolean selfBool);
/**
* 自助撤单-注册单撤单
**/
Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
/** /**

View File

@ -558,7 +558,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @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); deductCancelOrderCost(businessCommissionDTO);
Date currentDateTime = DateUtils.currentDateTime(); Date currentDateTime = DateUtils.currentDateTime();
@ -566,18 +567,36 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) { if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()) {
// 会员账号 验证会员账户是否存在金额 // 会员账号 验证会员账户是否存在金额
CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember()); CuMember member = iCuMemberService.getMemberById(saOrder.getPkMember());
// 会员变为死点 if (selfBool) {
member.setCategory(ECategory.LOGGED_OUT.getValue()); // 自助撤单删除会员相关信息
member.setCustomerType(ECustomerType.DEAD_POINT.getValue()); LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
member.setPkModified(saOrder.getPkModified()); updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
member.setModifiedTime(DateUtils.currentDateTime()); updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue());
iCuMemberService.updateById(member); updateWrapper.set(CuMember::getModifiedTime, currentDateTime);
// 撤销正常订单修改 cu_member_register 账户状态为死点 updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified());
CuMemberRegister cuMemberRegister = new CuMemberRegister(); updateWrapper.eq(CuMember::getPkId, member.getPkId());
cuMemberRegister.setPkMember(member.getPkId()); iCuMemberService.update(updateWrapper);
cuMemberRegister.setPkCountry(saOrder.getPkCountry()); // 删除会员注册表
cuMemberRegister.setPkModified(saOrder.getPkCreator()); LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>();
iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapperRegister.set(CuMemberRegister::getModifiedTime, currentDateTime);
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);
}
} }
// 处理推荐人等级 // 处理推荐人等级
@ -600,51 +619,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
return true; 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());
//删除会员
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set(CuMember::getModifiedTime, currentDateTime);
updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified());
updateWrapper.eq(CuMember::getPkId, member.getPkId());
iCuMemberService.update(updateWrapper);
// 删除会员注册表
LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>();
updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapperRegister.set(CuMemberRegister::getModifiedTime, currentDateTime);
updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified());
updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId());
iCuMemberRegisterService.update(updateWrapperRegister);
}
// 处理推荐人等级
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;
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount) { public void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount) {
@ -902,8 +876,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) { if (EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
// 升级订单 // 升级订单
// 回退等级 // 删除购买升级的升级记录
iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
// TODO 处理会员自己等级
// 如果会员等级非代理则需要删除会员区域 // 如果会员等级非代理则需要删除会员区域
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
if (gradeDTO.getGradeValue() != EGrade.REGION.getValue() if (gradeDTO.getGradeValue() != EGrade.REGION.getValue()

View File

@ -16,12 +16,14 @@ public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {
/** /**
* 查询最新升级记录 * 查询最新升级记录
* *
* @param pkMember 会员ID * @param pkMember 会员ID
* @param pkOrder 订单ID可为null * @param pkOrder 订单ID可为null
* @param notUpType 不查询的升级方式可为null
* @return * @return
*/ */
CuMemberLevel getLastUpgrade(@Param("pkMember") Long pkMember, CuMemberLevel getLastUpgrade(@Param("pkMember") Long pkMember,
@Param("pkOrder") Long pkOrder); @Param("pkOrder") Long pkOrder,
@Param("notUpType") Integer notUpType);
/** /**
* 查询所有升级记录 * 查询所有升级记录

View File

@ -1,9 +1,7 @@
package com.hzs.member.detail.provider; package com.hzs.member.detail.provider;
import com.hzs.common.core.domain.R; 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.common.domain.member.detail.CuMemberLevel;
import com.hzs.member.base.service.ICuMemberRegisterService;
import com.hzs.member.detail.ICuMemberDetailServiceApi; import com.hzs.member.detail.ICuMemberDetailServiceApi;
import com.hzs.member.detail.service.ICuMemberLevelService; import com.hzs.member.detail.service.ICuMemberLevelService;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
@ -19,12 +17,10 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
@Autowired @Autowired
private ICuMemberLevelService iCuMemberLevelService; private ICuMemberLevelService iCuMemberLevelService;
@Autowired
private ICuMemberRegisterService iCuMemberRegisterService;
@Override @Override
public R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder) { public R<CuMemberLevel> getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType) {
return R.ok(iCuMemberLevelService.getLastUpgrade(pkMember, pkOrder)); return R.ok(iCuMemberLevelService.getLastUpgrade(pkMember, pkOrder, notUpType));
} }
@Override @Override
@ -32,9 +28,4 @@ public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
return R.ok(iCuMemberLevelService.getUpgradeList(pkMember)); return R.ok(iCuMemberLevelService.getUpgradeList(pkMember));
} }
@Override
public R<CuMemberRegister> getMemberRegister(Long pkMember) {
return R.ok(iCuMemberRegisterService.queryCuMemberRegister(pkMember));
}
} }

View File

@ -24,11 +24,12 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
/** /**
* 查询最新升级记录 * 查询最新升级记录
* *
* @param pkMember 会员ID * @param pkMember 会员ID
* @param pkOrder 订单ID可为null * @param pkOrder 订单ID可为null
* @param notUpType 不查询的升级方式可为null
* @return * @return
*/ */
CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder); CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType);
/** /**
* 查询所有升级记录 * 查询所有升级记录

View File

@ -32,8 +32,8 @@ public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, C
} }
@Override @Override
public CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder) { public CuMemberLevel getLastUpgrade(Long pkMember, Long pkOrder, Integer notUpType) {
return baseMapper.getLastUpgrade(pkMember, pkOrder); return baseMapper.getLastUpgrade(pkMember, pkOrder, notUpType);
} }
@Override @Override

View File

@ -30,6 +30,9 @@
<if test="pkOrder != null"> <if test="pkOrder != null">
and (cml.pk_order != #{pkOrder} or cml.pk_order is null ) and (cml.pk_order != #{pkOrder} or cml.pk_order is null )
</if> </if>
<if test="notUpType != null">
and cml.up_type != #{notUpType}
</if>
and cml.pk_member = #{pkMember} and cml.pk_member = #{pkMember}
order by cml.upgrade_time desc order by cml.upgrade_time desc
) t ) t

View File

@ -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.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo; 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.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
@ -129,13 +128,7 @@ public class SaOrderBusinessController extends BaseController {
for (OrderBusinessVO orderBusinessVO : list) { for (OrderBusinessVO orderBusinessVO : list) {
// 省市区处理 // 省市区处理
OrderUtil.handleOrderAddress(areaMap, orderBusinessVO); OrderUtil.handleOrderAddress(areaMap, orderBusinessVO);
orderBusinessVO.setOrderAchieveRmb(orderBusinessVO.getOrderAchieve());
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
if (null != orderBusinessVO.getInExchangeRate()) {
orderBusinessVO.setOrderAchieveRmb(orderBusinessVO.getOrderAchieve().multiply(orderBusinessVO.getInExchangeRate()));
}
}
// 处理撤单时间 // 处理撤单时间
orderBusinessVO.setCancelTime(DateUtils.getStartTime(orderBusinessVO.getPayTime())); orderBusinessVO.setCancelTime(DateUtils.getStartTime(orderBusinessVO.getPayTime()));
@ -224,14 +217,6 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_NOT_EXIST)); 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); 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)); 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); Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(saOrder), EApprovalBusiness.ORDER_CHANGE_PRODUCT, pkCountry);
// 调换货物订单以及产品PV是否需要处理 // 调换货物订单以及产品PV是否需要处理
if (saOrder.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) { if (saOrder.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) {
// 如果是中国订单 // 如果是中国订单
// 汇率目前只有中国需要由美金转人民币显示其它国家显示就是美金不需要转换 for (SaOrderItemsExt saOrderItemsExt : saOrder.getOrderItemsExtList()) {
BigDecimal baseExchangeRate = saOrder.getInExchangeRate(); saOrderItemsExt.setAchievementRmb(saOrderItemsExt.getAchievement());
if (null != baseExchangeRate) {
// 基础汇率不为空则进行转换
saOrder.setOrderAchieve(saOrder.getOrderAchieve().multiply(baseExchangeRate));
for (SaOrderItemsExt saOrderItemsExt : saOrder.getOrderItemsExtList()) {
saOrderItemsExt.setAchievementRmb(saOrderItemsExt.getAchievement().multiply(baseExchangeRate));
}
} }
} }
@ -572,39 +541,14 @@ public class SaOrderBusinessController extends BaseController {
if (orderQueryChargeDTO.getCost().compareTo(BigDecimal.ZERO) > 0) { if (orderQueryChargeDTO.getCost().compareTo(BigDecimal.ZERO) > 0) {
// 扣款金额大于0则进行处理 // 扣款金额大于0则进行处理
// 扣款国家
Integer costCountry = pkCountry;
// 扣款账户 // 扣款账户
Integer costAccount = orderQueryChargeDTO.getPkAccount(); Integer costAccount = orderQueryChargeDTO.getPkAccount();
// 扣款金额 // 扣款金额
BigDecimal cost = orderQueryChargeDTO.getCost(); 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() List<MemberBalanceDTO> memberBalanceDTOList = iBusinessCommission.selectBalanceNotEnoughMember(BusinessCommissionDTO.builder()
.pkCountry(costCountry) .pkCountry(pkCountry)
.pkAccount(costAccount) .pkAccount(costAccount)
.memberAmountDTOList(Collections.singletonList(MemberAmountDTO.builder() .memberAmountDTOList(Collections.singletonList(MemberAmountDTO.builder()
// 订单创建人下单人 // 订单创建人下单人
@ -653,7 +597,6 @@ public class SaOrderBusinessController extends BaseController {
} }
Integer pkCountry = SecurityUtils.getPkCountry(); Integer pkCountry = SecurityUtils.getPkCountry();
// 校验订单是否存在进行中的签呈 // 校验订单是否存在进行中的签呈
String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry); String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry);
if (null != checkStr) { if (null != checkStr) {
@ -698,7 +641,6 @@ public class SaOrderBusinessController extends BaseController {
} }
Integer pkCountry = SecurityUtils.getPkCountry(); Integer pkCountry = SecurityUtils.getPkCountry();
// 校验订单是否存在进行中的签呈 // 校验订单是否存在进行中的签呈
String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry); String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry);
if (null != checkStr) { if (null != checkStr) {
@ -732,19 +674,6 @@ public class SaOrderBusinessController extends BaseController {
// 未支付订单不能进行退单 // 未支付订单不能进行退单
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_UNPAID_NOT_RETURN)); 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); return AjaxResult.success(saOrder);
} }
@ -768,7 +697,6 @@ public class SaOrderBusinessController extends BaseController {
} }
Integer pkCountry = SecurityUtils.getPkCountry(); Integer pkCountry = SecurityUtils.getPkCountry();
// 校验订单是否存在进行中的签呈 // 校验订单是否存在进行中的签呈
String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry); String checkStr = iOrderBusinessService.checkBusinessExist(Collections.singletonList(param.getOrderCode()), pkCountry);
if (null != checkStr) { if (null != checkStr) {
@ -803,38 +731,7 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_UNPAID_NOT_RETURN)); return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_UNPAID_NOT_RETURN));
} }
// if (EOrderType.REGISTER_ORDER.getValue() != saOrder.getOrderType() return AjaxResult.success(Collections.singletonList(saOrder));
// && 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);
} }
/** /**
@ -896,14 +793,8 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(validateCancelOrderVO.getMsg()); return AjaxResult.error(validateCancelOrderVO.getMsg());
} }
// 本次业务修改费用 // 本次业务修改费用
List<SaOrderExt> saOrderExtList = new ArrayList<>();
SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt(); SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
saOrderExtList.add(saOrderExt); Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(saOrderExt), EApprovalBusiness.ORDER_CANCEL, SecurityUtils.getPkCountry());
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());
OrderQueryChargeDTO dto = queryChargeMap.get(saOrderExt.getPkId()); OrderQueryChargeDTO dto = queryChargeMap.get(saOrderExt.getPkId());
// 撤销订单撤销产品撤销除升级订单 // 撤销订单撤销产品撤销除升级订单
if (ECancelOrderType.MERGE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { if (ECancelOrderType.MERGE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) {
@ -921,20 +812,6 @@ public class SaOrderBusinessController extends BaseController {
.orderCode(saOrderExt.getOrderCode()) .orderCode(saOrderExt.getOrderCode())
.build(); .build();
List<OrderCancelDetailVO> orderCancelDetailVOList = new ArrayList<>(); 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 -> { saOrderExt.getOrderItemsExtList().forEach(saOrderItems -> {
OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder() OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
.pkId(saOrderItems.getPkId()) .pkId(saOrderItems.getPkId())
@ -946,7 +823,6 @@ public class SaOrderBusinessController extends BaseController {
.build(); .build();
orderCancelDetailVOList.add(orderCancelDetailVO); orderCancelDetailVOList.add(orderCancelDetailVO);
}); });
// }
orderCancelVO.setOrderCancelDetailVOList(orderCancelDetailVOList); orderCancelVO.setOrderCancelDetailVOList(orderCancelDetailVOList);
orderCancelVO.setMemberCode(saOrderExt.getMemberCode()); orderCancelVO.setMemberCode(saOrderExt.getMemberCode());
orderCancelVO.setMemberName(saOrderExt.getMemberName()); orderCancelVO.setMemberName(saOrderExt.getMemberName());
@ -967,11 +843,6 @@ public class SaOrderBusinessController extends BaseController {
@Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT) @Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT)
public AjaxResult cancelOrder(@RequestBody OrderCancelParam orderCancelParam) { public AjaxResult cancelOrder(@RequestBody OrderCancelParam orderCancelParam) {
orderCancelParam.setPkCountry(SecurityUtils.getPkCountry()); 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); ValidateCancelOrderVO validateCancelOrderVO = iOrderBusinessService.validateCancelOrder(orderCancelParam);
AjaxResult validateCancelOrder = validateCancelOrderVO(orderCancelParam, validateCancelOrderVO); AjaxResult validateCancelOrder = validateCancelOrderVO(orderCancelParam, validateCancelOrderVO);
if (validateCancelOrder != null) { if (validateCancelOrder != null) {
@ -982,7 +853,7 @@ public class SaOrderBusinessController extends BaseController {
} }
/** /**
* 撤销订单并入库,全免 * 撤销订单并入库,全免 -- 目前撤单使用
* *
* @param orderCancelParam 参数 * @param orderCancelParam 参数
*/ */
@ -990,11 +861,6 @@ public class SaOrderBusinessController extends BaseController {
@Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT) @Log(module = EOperationModule.CANCEL_ORDER_CONFIRM, method = EOperationMethod.INSERT)
public AjaxResult freeCostCancelOrder(@RequestBody OrderCancelParam orderCancelParam) { public AjaxResult freeCostCancelOrder(@RequestBody OrderCancelParam orderCancelParam) {
orderCancelParam.setPkCountry(SecurityUtils.getPkCountry()); 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)) { if (orderCancelParam.getCancelRoad() == null || (orderCancelParam.getCancelRoad() != 1 && orderCancelParam.getCancelRoad() != 3)) {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY)); return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
} }
@ -1012,22 +878,6 @@ public class SaOrderBusinessController extends BaseController {
if (validateCancelOrderVO.getSaOrderExt() == null) { if (validateCancelOrderVO.getSaOrderExt() == null) {
return AjaxResult.error(validateCancelOrderVO.getMsg()); 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; return null;
} }
@ -1042,9 +892,6 @@ public class SaOrderBusinessController extends BaseController {
public TableDataInfo selfOrderList(@RequestBody SelfPickUpParam selfPickUpParam) { public TableDataInfo selfOrderList(@RequestBody SelfPickUpParam selfPickUpParam) {
startPage(); startPage();
selfPickUpParam.setPkSettleCountry(SecurityUtils.getPkCountry()); selfPickUpParam.setPkSettleCountry(SecurityUtils.getPkCountry());
// if (selfPickUpParam.getApproveStatus() == null) {
// selfPickUpParam.setApproveStatus(EApproveRechargeStatus.SUBMIT.getValue());
// }
if (selfPickUpParam.getEndDate() != null) { if (selfPickUpParam.getEndDate() != null) {
selfPickUpParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, selfPickUpParam.getEndDate())); selfPickUpParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, selfPickUpParam.getEndDate()));
} }
@ -1170,7 +1017,6 @@ public class SaOrderBusinessController extends BaseController {
*/ */
@PostMapping("/validate-bind") @PostMapping("/validate-bind")
public AjaxResult validateOrderBindBarCode(@RequestBody OrderQueryParam orderQueryParam) { public AjaxResult validateOrderBindBarCode(@RequestBody OrderQueryParam orderQueryParam) {
log.info(orderQueryParam.getOrderCode());
// 验证订单编号订单类型是否存在 // 验证订单编号订单类型是否存在
if (StringUtils.isEmpty(orderQueryParam.getOrderCode())) { if (StringUtils.isEmpty(orderQueryParam.getOrderCode())) {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CODE_EMPTY)); return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CODE_EMPTY));

View File

@ -1,8 +1,5 @@
package com.hzs.sale.order.param; 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 lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -10,11 +7,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* @Description: 订单查询参数 * 订单查询参数
* @Author: sui q
* @Time: 2022/10/19 16:49
* @Classname: OrderQueryParam
* @PackageName: com.hzs.sale.order.param
*/ */
@Data @Data
public class OrderQueryParam implements Serializable { public class OrderQueryParam implements Serializable {

View File

@ -16,11 +16,7 @@ import java.util.List;
import java.util.Map; 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 { public interface IOrderBusinessService {
@ -161,9 +157,6 @@ public interface IOrderBusinessService {
* *
* @param orderCancelParam 参数 * @param orderCancelParam 参数
* @param businessCode 审核验证的时候需要去掉自己 * @param businessCode 审核验证的时候需要去掉自己
* @return: Boolean
* @Author: sui q
* @Date: 2023/3/22 11:40
*/ */
ValidateCancelOrderVO validateCancelOrder(OrderCancelParam orderCancelParam, String... businessCode); ValidateCancelOrderVO validateCancelOrder(OrderCancelParam orderCancelParam, String... businessCode);
@ -191,9 +184,6 @@ public interface IOrderBusinessService {
* *
* @param approvalBusinessResultDTO 参数 * @param approvalBusinessResultDTO 参数
* @param approvalBusiness 审核类型 * @param approvalBusiness 审核类型
* @return: void
* @Author: sui q
* @Date: 2023/3/25 10:43
*/ */
String cancelOrderApprovalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness); String cancelOrderApprovalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness);
@ -202,9 +192,6 @@ public interface IOrderBusinessService {
* *
* @param approvalBusinessResultDTO 参数 * @param approvalBusinessResultDTO 参数
* @param approvalBusiness 审核类型 * @param approvalBusiness 审核类型
* @return: void
* @Author: sui q
* @Date: 2023/3/25 10:43
*/ */
String cancelOrderApprovalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness); String cancelOrderApprovalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness);
@ -241,11 +228,7 @@ public interface IOrderBusinessService {
EAgentApprovalStatus approvalStatus, String remark); 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); MyOrderVO checkSelfOrder(Long userId, MyOrderVO myOrderVO);

View File

@ -203,7 +203,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
dto.setPkAccount(serviceChargeDTO.getPkAccount()); dto.setPkAccount(serviceChargeDTO.getPkAccount());
dto.setAccountKey(serviceChargeDTO.getAccountKey()); dto.setAccountKey(serviceChargeDTO.getAccountKey());
} }
break; break;
} }
} }
@ -323,7 +322,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
throw new ServiceException(tmpR.getMsg()); throw new ServiceException(tmpR.getMsg());
} }
} }
// 推送业务操作日志 // 推送业务操作日志
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, dtoList); rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, dtoList);
@ -1013,7 +1011,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
} }
} }
@Override @Override
public String returnOrderApprovalSubmit(OrderReturnParam param, LoginUser loginUser) { public String returnOrderApprovalSubmit(OrderReturnParam param, LoginUser loginUser) {
// 所属国家 // 所属国家
@ -1109,7 +1106,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 订单变动日志 // 订单变动日志
List<SaOrderChargeLog> saOrderChargeLogList = new ArrayList<>(); List<SaOrderChargeLog> saOrderChargeLogList = new ArrayList<>();
for (SaOrder tmpSaOrder : saOrderList) { for (SaOrder tmpSaOrder : saOrderList) {
SaOrderChargeLog saOrderChargeLog = new SaOrderChargeLog(); SaOrderChargeLog saOrderChargeLog = new SaOrderChargeLog();
saOrderChargeLog.setPkOrder(saOrder.getPkId()); saOrderChargeLog.setPkOrder(saOrder.getPkId());
saOrderChargeLog.setChargeType(EApprovalBusiness.ORDER_RETURN.getValue()); 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); rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, dtoList);
} }
return submitStr; return submitStr;
} }
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED); return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED);
@ -1248,23 +1243,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return validateCancelOrderVO; return validateCancelOrderVO;
} }
int approveBusiness = EApprovalBusiness.ORDER_CANCEL.getValue(); int approveBusiness = EApprovalBusiness.ORDER_CANCEL.getValue();
SaOrderExt saOrderExt; SaOrderExt saOrderExt = iSaOrderService.queryOrderByCode(orderCancelParam.getOrderCode(), orderCancelParam.getPkCountry());
// 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());
// }
if (saOrderExt == null || EOrderStatus.WAIT_PAY.getValue() == saOrderExt.getOrderStatus()) { if (saOrderExt == null || EOrderStatus.WAIT_PAY.getValue() == saOrderExt.getOrderStatus()) {
validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY)); validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_EMPTY));
return validateCancelOrderVO; return validateCancelOrderVO;
@ -1272,7 +1251,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue()) if (orderCancelParam.getCancelType().equals(ECancelOrderType.SINGLE_CANCEL_ORDER.getValue())
|| orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_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_ORDER.getValue())
// || orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())
) { ) {
// 验证订单时间只能撤销7天以内的支付订单 // 验证订单时间只能撤销7天以内的支付订单
// 周结只能撤销当前期间的订单不能撤销上个期间的订单 // 周结只能撤销当前期间的订单不能撤销上个期间的订单
@ -1460,9 +1438,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.DEFAULT); String businessCode = CommonUtil.createSerialNumber(EOrderPrefix.DEFAULT);
// 修改类型 // 修改类型
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL;
// if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
// approveBusiness = EApprovalBusiness.ORDER_CANCEL_PRODUCT;
// }
// 封装修改地址业务日志 // 封装修改地址业务日志
List<BusinessLogDTO> dtoList = new ArrayList<>(); List<BusinessLogDTO> dtoList = new ArrayList<>();
@ -1549,13 +1524,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
orderCancelParam.setMemberCode(cuMember.getMemberCode()); orderCancelParam.setMemberCode(cuMember.getMemberCode());
orderCancelParam.setMemberName(cuMember.getMemberName()); orderCancelParam.setMemberName(cuMember.getMemberName());
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; 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; Map<Long, OrderQueryChargeDTO> queryChargeMap = null;
if (orderCancelParam.getCancelRoad() == null || orderCancelParam.getCancelRoad() != 2) { if (orderCancelParam.getCancelRoad() == null || orderCancelParam.getCancelRoad() != 2) {

View File

@ -1265,9 +1265,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
BusinessCommissionDTO businessCommissionDTO = null; BusinessCommissionDTO businessCommissionDTO = null;
if (orderCancelParam.getCancelRoad() == 1) { if (orderCancelParam.getCancelRoad() == 1) {
EApprovalBusiness approveBusiness = EApprovalBusiness.ORDER_CANCEL; 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()), Map<Long, OrderQueryChargeDTO> queryChargeMap = iOrderBusinessService.queryChargeLog(Collections.singletonList(validateCancelOrderVO.getSaOrderExt()),
approveBusiness, orderCancelParam.getPkCountry()); approveBusiness, orderCancelParam.getPkCountry());
if (queryChargeMap != null && queryChargeMap.containsKey(saOrderExt.getPkId())) { 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()); saOrderExt.setDelFlag(EDelFlag.DELETE.getValue());
Date currentDate = DateUtils.currentDateTime(); Date currentDate = DateUtils.currentDateTime();
@ -1355,7 +1311,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 撤销注册订单 单点撤单 // 撤销注册订单 单点撤单
if (ECancelOrderType.SINGLE_CANCEL_ORDER.getValue() == orderCancelParam.getCancelType()) { 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()) { if (!tmpR.isSuccess()) {
throw new ServiceException("撤单失败 " + tmpR.getMsg()); throw new ServiceException("撤单失败 " + tmpR.getMsg());
} }
@ -1375,9 +1331,8 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
} }
} else { } else {
// 其他撤单 // 其他撤单
this.handleCancelUpgradeOrder(saOrderExt, validateCancelOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO); this.handleCancelUpgradeOrder(saOrderExt, pkApprove, businessCommissionDTO);
} }
// }
try { try {
// 推送MQ的列表 // 推送MQ的列表
@ -1811,12 +1766,13 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 撤销注册订单 // 撤销注册订单
if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue()) { if (myOrderVO.getOrderType() == EOrderType.RETAIL_REGISTER.getValue()) {
// 逻辑删除会员 // 逻辑删除会员
if (!iMemberServiceApi.singleRevokeMemberBySelfRevokeOrder(pkApprove, saOrderExt, businessCommissionDTO).getData()) { R<Boolean> tmpR = iMemberServiceApi.singleRevokeMemberByRegisterOrder(pkApprove, saOrderExt, businessCommissionDTO, true);
throw new ServiceException("撤单失败"); if (!tmpR.isSuccess()) {
throw new ServiceException("撤单失败 " + tmpR.getMsg());
} }
} else { } else {
// 其他撤单 // 其他撤单
this.handleCancelUpgradeOrder(saOrderExt, myOrderVO.getUpdSaOrder(), pkApprove, businessCommissionDTO); this.handleCancelUpgradeOrder(saOrderExt, pkApprove, businessCommissionDTO);
} }
try { try {
@ -2026,59 +1982,32 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return flag; 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 saOrderExt 订单信息
* @param updSaOrder 升级订单
* @param pkApprove 操作人 * @param pkApprove 操作人
* @param businessCommissionDTO 业务处理DTO * @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()); CuMember cuMember = getCuMemberByKey(saOrderExt.getPkMember());
if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// 计算等级 // 计算等级
// 空单注册从cu_member_register中获取 // 查询会员最新升级记录主要是手动升级记录
if (updSaOrder == null) { CuMemberLevel cuMemberLevel = iCuMemberDetailServiceApi.getLastUpgrade(cuMember.getPkId(), saOrderExt.getPkId(), null).getData();
CuMemberRegister cuMemberRegister = iMemberServiceApi.queryCuMemberRegister(saOrderExt.getPkMember()).getData(); if (null != cuMemberLevel) {
cuMember.setPkRegisterGrade(cuMemberRegister.getPkRegisterGrade()); cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
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());
} }
// 当前订单之前没有注册升级订单从空单注册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());
Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId()); Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
if (null == firstDate) { if (null == firstDate) {

View File

@ -15,16 +15,6 @@ public class CommonMsgConstants {
*/ */
public static final String OPERATION_FAILED = "操作失败"; public static final String OPERATION_FAILED = "操作失败";
/**
* 一般用于三方对接处理失败用户刷新后可以重新进行操作提示 -- 操作失败请刷新后重试
*/
public static final String OPERATION_FAILED_FLUSH = "操作失败,请刷新后重试";
/**
* 用户已转结算国不能进行处理相关操作 -- 用户已转结算国不能进行操作
*/
public static final String SETTLEMENT_COUNTRY_NOT_OPERATE = "用户已转结算国,不能进行操作";
/** /**
* 签呈处理失败 -- 签呈处理失败 * 签呈处理失败 -- 签呈处理失败
*/ */