## 订单退单回退支付金额(101);

This commit is contained in:
cabbage 2025-05-21 11:48:49 +08:00
parent 36968317b8
commit f19b6a45ec
15 changed files with 363 additions and 556 deletions

View File

@ -9,11 +9,7 @@ import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
* @Description: 会员账户提供api操作实体 * 会员账户提供api操作实体
* @Author: sui q
* @Time: 2022/9/5 14:27
* @Classname: IMemberAccountServiceApi
* @PackageName: com.hzs.member.account
*/ */
public interface IMemberAccountServiceApi { public interface IMemberAccountServiceApi {
@ -21,9 +17,6 @@ public interface IMemberAccountServiceApi {
* 查询会员账户状态账户信息 * 查询会员账户状态账户信息
* *
* @param cuMemberAccount 会员账户条件信息 * @param cuMemberAccount 会员账户条件信息
* @return: List<CuMemberAccountExt>
* @Author: sui q
* @Date: 2022/9/5 11:57
*/ */
R<List<CuMemberAccountExt>> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount); R<List<CuMemberAccountExt>> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount);
@ -31,9 +24,6 @@ public interface IMemberAccountServiceApi {
* 根据会员id 列表查询账户信息 * 根据会员id 列表查询账户信息
* *
* @param pkMemberList 列表 * @param pkMemberList 列表
* @return: List<CuMemberAccount>
* @Author: sui q
* @Date: 2023/3/25 16:28
*/ */
R<List<CuMemberAccount>> queryCuMemberAccountByPkMembers(List<Long> pkMemberList); R<List<CuMemberAccount>> queryCuMemberAccountByPkMembers(List<Long> pkMemberList);
@ -44,7 +34,7 @@ public interface IMemberAccountServiceApi {
* @param updateOrder 新订单 * @param updateOrder 新订单
* @return * @return
*/ */
R orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder); R<?> orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder);
/** /**
* 订单调换货物扣费处理 * 订单调换货物扣费处理
@ -55,18 +45,7 @@ public interface IMemberAccountServiceApi {
* @param obj 追加后续业务实体 * @param obj 追加后续业务实体
* @return * @return
*/ */
R orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj); R<?> orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj);
/**
* 订单退单
*
* @param saOrder 退单订单
* @param userId 操作用户ID
* @param changeAmount 变动金额除订单退回外又追加的补偿或者扣款 -- 非必传
* @param changeRemark 变动备注 -- 非必传
* @return
*/
R orderReturn(SaOrder saOrder, Long userId, BigDecimal changeAmount, String changeRemark);
/** /**
* 订单退单注册会员 * 订单退单注册会员
@ -74,7 +53,7 @@ public interface IMemberAccountServiceApi {
* @param pkMemberList 会员ID列表 * @param pkMemberList 会员ID列表
* @param userId 操作用户ID * @param userId 操作用户ID
*/ */
R orderReturnMember(List<Long> pkMemberList, Long userId); R<?> orderReturnMember(List<Long> pkMemberList, Long userId);
/** /**
* 订单自提退邮费 * 订单自提退邮费
@ -86,7 +65,7 @@ public interface IMemberAccountServiceApi {
* @param userId 操作人ID * @param userId 操作人ID
* @return * @return
*/ */
R orderSelfDeliver(Long pkMember, Integer pkRate, Integer pkCountry, BigDecimal postage, Long userId); R<?> orderSelfDeliver(Long pkMember, Integer pkRate, Integer pkCountry, BigDecimal postage, Long userId);
/** /**
* 扣款并插入明细 * 扣款并插入明细
@ -94,6 +73,15 @@ public interface IMemberAccountServiceApi {
* @param saOrder 订单 * @param saOrder 订单
* @param cuMemberAccount 会员账户 * @param cuMemberAccount 会员账户
*/ */
R insertMemberTrade(SaOrder saOrder, CuMemberAccountExt cuMemberAccount); R<?> insertMemberTrade(SaOrder saOrder, CuMemberAccountExt cuMemberAccount);
/**
* 订单合单退单
*
* @param saOrder 退单订单
* @param userId 操作用户ID
* @return
*/
R<?> orderReturnBatch(SaOrder saOrder, Long userId);
} }

View File

@ -1,47 +0,0 @@
package com.hzs.member.account.dto;
import com.hzs.common.domain.sale.order.SaOrder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Description: 订单退单扣款DTO
* @Author: jiang chao
* @Time: 2023/4/4 11:40
* @Classname: ReturnOrderDTO
* @PackageName: com.hzs.member.account.dto
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class OrderReturnPaymentDTO implements Serializable {
private static final long serialVersionUID = -8842651861054394386L;
/**
* 订单编号
*/
private String orderCode;
/**
* 退还金额
*/
private BigDecimal returnAmount;
/**
* 退单备注
*/
private String returnRemark;
/**
* 订单信息
*/
private SaOrder saOrder;
}

View File

@ -17,6 +17,7 @@ import com.hzs.bonus.achieve.param.MemberAchieveParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
@ -144,6 +145,7 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMappe
return baseMapper.queryCuMemberMonthAchieveByMemberIdList(settleTableName, memberSwingNetExtList); return baseMapper.queryCuMemberMonthAchieveByMemberIdList(settleTableName, memberSwingNetExtList);
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public Boolean chargeBackSaOrder(SaOrder saOrder) { public Boolean chargeBackSaOrder(SaOrder saOrder) {
// 根据支付时间查询期间 // 根据支付时间查询期间

View File

@ -51,12 +51,10 @@
<artifactId>bd-api-third</artifactId> <artifactId>bd-api-third</artifactId>
</dependency> </dependency>
<!-- 活动服务接口
<dependency> <dependency>
<groupId>com.bd</groupId> <groupId>com.bd</groupId>
<artifactId>bd-api-activity</artifactId> <artifactId>bd-api-bonus</artifactId>
</dependency> </dependency>
-->
<!-- rabbit mq --> <!-- rabbit mq -->
<dependency> <dependency>

View File

@ -6,7 +6,6 @@ import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.member.account.IMemberAccountServiceApi; import com.hzs.member.account.IMemberAccountServiceApi;
import com.hzs.member.account.service.ICuMemberAccountService; import com.hzs.member.account.service.ICuMemberAccountService;
import com.hzs.member.account.service.ICuMemberRechargeService;
import com.hzs.member.base.service.ICuMemberBusinessService; import com.hzs.member.base.service.ICuMemberBusinessService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
@ -15,42 +14,27 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
/**
* @Description:
* @Author: sui q
* @Time: 2022/9/5 14:32
* @Classname: MemberAccountServiceProvider
* @PackageName: com.hzs.member.account.provider
*/
@Slf4j @Slf4j
@DubboService @DubboService
public class MemberAccountServiceProvider implements IMemberAccountServiceApi { public class MemberAccountServiceProvider implements IMemberAccountServiceApi {
@Autowired @Autowired
private ICuMemberAccountService cuMemberAccountService; private ICuMemberAccountService iCuMemberAccountService;
@Autowired @Autowired
private ICuMemberBusinessService iCuMemberBusinessService; private ICuMemberBusinessService iCuMemberBusinessService;
/**
* 查询会员账户状态账户信息
*
* @param cuMemberAccount 会员账户条件信息
* @return: List<CuMemberAccountExt>
* @Author: sui q
* @Date: 2022/9/5 11:57
*/
@Override @Override
public R<List<CuMemberAccountExt>> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount) { public R<List<CuMemberAccountExt>> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount) {
return R.ok(cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount)); return R.ok(iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount));
} }
@Override @Override
public R<List<CuMemberAccount>> queryCuMemberAccountByPkMembers(List<Long> pkMemberList) { public R<List<CuMemberAccount>> queryCuMemberAccountByPkMembers(List<Long> pkMemberList) {
return R.ok(cuMemberAccountService.queryCuMemberAccountByPkMembers(pkMemberList)); return R.ok(iCuMemberAccountService.queryCuMemberAccountByPkMembers(pkMemberList));
} }
@Override @Override
public R orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) { public R<?> orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) {
try { try {
String str = iCuMemberBusinessService.orderChangeProductPre(saOrder, updateOrder); String str = iCuMemberBusinessService.orderChangeProductPre(saOrder, updateOrder);
if (null == str) { if (null == str) {
@ -63,7 +47,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi {
} }
@Override @Override
public R orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) { public R<?> orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) {
try { try {
iCuMemberBusinessService.orderChangeProduct(saOrder, updateOrder, userId, obj); iCuMemberBusinessService.orderChangeProduct(saOrder, updateOrder, userId, obj);
} catch (Exception e) { } catch (Exception e) {
@ -73,17 +57,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi {
} }
@Override @Override
public R orderReturn(SaOrder saOrder, Long userId, BigDecimal changeAmount, String changeRemark) { public R<?> orderReturnMember(List<Long> pkMemberList, Long userId) {
try {
iCuMemberBusinessService.orderReturn(saOrder, userId, changeAmount, changeRemark);
} catch (Exception e) {
return R.fail(e.getMessage());
}
return R.ok();
}
@Override
public R orderReturnMember(List<Long> pkMemberList, Long userId) {
try { try {
iCuMemberBusinessService.orderReturnMember(pkMemberList, userId); iCuMemberBusinessService.orderReturnMember(pkMemberList, userId);
} catch (Exception e) { } catch (Exception e) {
@ -93,7 +67,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi {
} }
@Override @Override
public R orderSelfDeliver(Long pkMember, Integer pkRate, Integer pkCountry, BigDecimal postage, Long userId) { public R<?> orderSelfDeliver(Long pkMember, Integer pkRate, Integer pkCountry, BigDecimal postage, Long userId) {
try { try {
String str = iCuMemberBusinessService.orderSelfDeliver(pkMember, pkRate, pkCountry, postage, userId); String str = iCuMemberBusinessService.orderSelfDeliver(pkMember, pkRate, pkCountry, postage, userId);
if (null != str) { if (null != str) {
@ -106,7 +80,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi {
} }
@Override @Override
public R insertMemberTrade(SaOrder saOrder, CuMemberAccountExt cuMemberAccount) { public R<?> insertMemberTrade(SaOrder saOrder, CuMemberAccountExt cuMemberAccount) {
try { try {
iCuMemberBusinessService.insertMemberTrade(saOrder, cuMemberAccount); iCuMemberBusinessService.insertMemberTrade(saOrder, cuMemberAccount);
} catch (Exception e) { } catch (Exception e) {
@ -115,4 +89,14 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi {
return R.ok(); return R.ok();
} }
@Override
public R<?> orderReturnBatch(SaOrder saOrder, Long userId) {
try {
iCuMemberBusinessService.orderReturnBatch(saOrder, userId);
} catch (Exception e) {
return R.fail(e.getMessage());
}
return R.ok();
}
} }

View File

@ -13,11 +13,6 @@ import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* @Description: 会员服务需要保存不同的表
* @Classname: ICuMemberBusinessService
* @PackageName: com.hzs.member.base.service
*/
public interface ICuMemberBusinessService { public interface ICuMemberBusinessService {
/** /**
@ -87,7 +82,6 @@ public interface ICuMemberBusinessService {
**/ **/
Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO); Boolean singleRevokeMemberBySelfRevokeOrder(Long pkApprove, SaOrderExt saOrder, BusinessCommissionDTO businessCommissionDTO);
/** /**
* 撤销订单需要更新会员合并撤单直接删除会员 * 撤销订单需要更新会员合并撤单直接删除会员
* *
@ -133,17 +127,6 @@ public interface ICuMemberBusinessService {
*/ */
void orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj); void orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj);
/**
* 订单退单
*
* @param saOrder 订单
* @param userId 操作用户ID
* @param changeAmount 变动金额除订单退回外又追加的补偿或者扣款 -- 非必传
* @param changeRemark 变动备注 -- 非必传
* @return
*/
void orderReturn(SaOrder saOrder, Long userId, BigDecimal changeAmount, String changeRemark);
/** /**
* 订单退单注册会员 * 订单退单注册会员
* *
@ -165,22 +148,22 @@ public interface ICuMemberBusinessService {
String orderSelfDeliver(Long pkMember, Integer pkRate, Integer pkCountry, BigDecimal postage, Long userId); String orderSelfDeliver(Long pkMember, Integer pkRate, Integer pkCountry, BigDecimal postage, Long userId);
/** /**
* @description: 自助服务(修改收货地址)-生成订单 * 自助服务(修改收货地址)-生成订单
**/ **/
void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount); void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount);
/* /*
* @description: 会员编号账户类型抽奖金额 * 会员编号账户类型抽奖金额
**/ **/
Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney); Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney);
/* /*
* @description: 会员抽奖购买抽奖次数支付金额 * 会员抽奖购买抽奖次数支付金额
**/ **/
Boolean updateCuMemberAccountByDraw(CuMemberAccountExt cuMemberAccountExt, BigDecimal payMoney); Boolean updateCuMemberAccountByDraw(CuMemberAccountExt cuMemberAccountExt, BigDecimal payMoney);
/* /*
* @description: 会员抽奖购买抽奖次数支付金额 * 会员抽奖购买抽奖次数支付金额
**/ **/
Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt); Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
@ -194,7 +177,7 @@ public interface ICuMemberBusinessService {
Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel); Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
/* /*
* @description: 查询会员的安置位置 * 查询会员的安置位置
**/ **/
CuMember queryCuMemberPlaceDept(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve); CuMember queryCuMemberPlaceDept(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve);
@ -206,4 +189,14 @@ public interface ICuMemberBusinessService {
*/ */
String handleMemberContinue(MemberContinueDTO memberContinueDTO); String handleMemberContinue(MemberContinueDTO memberContinueDTO);
/**
* 订单合单退单
*
* @param saOrder 退单订单
* @param userId 操作用户ID
* @return
*/
void orderReturnBatch(SaOrder saOrder, Long userId);
} }

View File

@ -2,15 +2,17 @@ package com.hzs.member.base.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.hzs.activity.pick.IAcPickServiceApi; import com.hzs.activity.pick.IAcPickServiceApi;
import com.hzs.bonus.settle.IMemberSettleBonusApi;
import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.constant.MemberFieldConstants; import com.hzs.common.core.constant.MemberFieldConstants;
import com.hzs.common.core.constant.SystemFieldConstants; import com.hzs.common.core.constant.msg.CommonMsgConstants;
import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants;
import com.hzs.common.core.domain.R; import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*; import com.hzs.common.core.enums.*;
import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.exception.base.BaseException;
import com.hzs.common.core.service.RedisService; import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.CommonUtil; import com.hzs.common.core.utils.CommonUtil;
import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.ComputeUtil;
@ -71,11 +73,6 @@ import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/**
* @Description: 会员服务需要保存不同的表, 用于处理服务内的事务
* @Classname: CuMemberBusinessServiceImpl
* @PackageName: com.hzs.member.base.service.impl
*/
@Slf4j @Slf4j
@Service @Service
public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@ -94,6 +91,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
ISaOrderServiceApi iSaOrderServiceApi; ISaOrderServiceApi iSaOrderServiceApi;
@DubboReference @DubboReference
IGradeServiceApi iGradeServiceApi; IGradeServiceApi iGradeServiceApi;
@DubboReference
IMemberSettleBonusApi iMemberSettleBonusApi;
@Autowired @Autowired
private MemberToolsHandler memberToolsHandler; private MemberToolsHandler memberToolsHandler;
@ -396,9 +395,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
/** /**
* 插入充值记录trade
*
* @param saOrder 订单编号 * @param saOrder 订单编号
* @param bdAccount 账户 * @param bdAccount 账户
* @Description: 插入充值记录trade
*/ */
private CuMemberAccountExt insertRechargeTrade(SaOrder saOrder, BdAccount bdAccount) { private CuMemberAccountExt insertRechargeTrade(SaOrder saOrder, BdAccount bdAccount) {
// 扣款 扣款信息 // 扣款 扣款信息
@ -429,9 +429,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
/** /**
* 插入会员的交易明细
*
* @param saOrder 订单 * @param saOrder 订单
* @param cuMemberAccount 账户 * @param cuMemberAccount 账户
* @Description: 插入会员的交易明细
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
@ -664,20 +665,20 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
CuMember member = iCuMemberService.getMember(saOrder.getPkMember()); CuMember member = iCuMemberService.getMember(saOrder.getPkMember());
//删除会员 //删除会员
UpdateWrapper<CuMember> updateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set("MEMBER_CODE", CommonUtil.deleteMemberCode(member.getMemberCode())); updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode()));
updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue()); updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set("MODIFIED_TIME", DateUtils.currentDateTime()); updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime());
updateWrapper.set("PK_MODIFIED", saOrder.getPkModified()); updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified());
updateWrapper.eq("PK_ID", member.getPkId()); updateWrapper.eq(CuMember::getPkId, member.getPkId());
iCuMemberService.update(updateWrapper); iCuMemberService.update(updateWrapper);
// 删除会员注册表 // 删除会员注册表
UpdateWrapper<CuMemberRegister> updateWrapperRegister = new UpdateWrapper<>(); LambdaUpdateWrapper<CuMemberRegister> updateWrapperRegister = new LambdaUpdateWrapper<>();
updateWrapperRegister.set("DEL_FLAG", EDelFlag.DELETE.getValue()); updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapperRegister.set("MODIFIED_TIME", DateUtils.currentDateTime()); updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime());
updateWrapperRegister.set("PK_MODIFIED", saOrder.getPkModified()); updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified());
updateWrapperRegister.eq("PK_MEMBER", member.getPkId()); updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId());
iCuMemberRegisterService.update(updateWrapperRegister); iCuMemberRegisterService.update(updateWrapperRegister);
} }
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
@ -767,7 +768,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
/** /**
* 销订单回退给创建人金额 * 销订单回退给创建人金额
* *
* @param pkApprove 审核人 * @param pkApprove 审核人
* @param saOrder 订单 * @param saOrder 订单
@ -830,10 +831,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
/** /**
* @Description: 撤销订单回退奖金账户金额 * 撤销订单回退奖金账户金额
* @return: void
* @Author: sui q
* @Date: 2023/3/30 15:32
*/ */
private void revokeBonusAccount(Long pkApprove, SaOrder saOrder, CuMemberAccount payMemberAccount, List<CuMemberTradeBonus> newCuMemberTradeBonusList, private void revokeBonusAccount(Long pkApprove, SaOrder saOrder, CuMemberAccount payMemberAccount, List<CuMemberTradeBonus> newCuMemberTradeBonusList,
List<CuMemberTradeDetail> cuMemberTradeDetailList, CuMemberAccount updateMemberAccount, List<CuMemberTrade> cuMemberTradeList, CuMemberTrade cuMemberTrade, BigDecimal tradeMoney, AreaCurrencyDTO currencyDto) { List<CuMemberTradeDetail> cuMemberTradeDetailList, CuMemberAccount updateMemberAccount, List<CuMemberTrade> cuMemberTradeList, CuMemberTrade cuMemberTrade, BigDecimal tradeMoney, AreaCurrencyDTO currencyDto) {
@ -950,7 +948,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 回退奖衔,根据订单从 cu_member_awards查询 // 回退奖衔,根据订单从 cu_member_awards查询
iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime);
} }
// 部分撤单 todo 发货后邮费不退未发货退邮费 // 部分撤单 todo 发货后邮费不退未发货退邮费
if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) { if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) {
cancelPartOrderBackAmount(pkApprove, saOrder); cancelPartOrderBackAmount(pkApprove, saOrder);
} else { } else {
@ -1129,139 +1127,15 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
} }
} }
@Transactional(rollbackFor = Exception.class)
@Override
public void orderReturn(SaOrder saOrder, Long userId, BigDecimal changeAmount, String changeRemark) {
// 当前时间
Date nowDate = new Date();
// 订单编号
String orderCode = saOrder.getOrderCode();
// 订单购买人
Long pkMember = saOrder.getPkCreator();
// 订单所属国
Integer pkCountry = saOrder.getPkCountry();
// 更新账户余额
CuMemberAccount updateMemberAccount = new CuMemberAccount();
updateMemberAccount.setPkMember(pkMember);
updateMemberAccount.setPkCountry(pkCountry);
// 红冲交易明细数据
List<CuMemberTrade> saveMemberTradeList = new ArrayList<>();
// 查询订单创建人账户
CuMemberAccount cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
// 订单所属专区扣币的第一位配置
AreaCurrencyDTO areaCurrencyDTO = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), pkCountry).getData().get(0);
// 专区扣币的第一位配置所用字段
String accountField = MemberFieldConstants.ACCOUNT + areaCurrencyDTO.getFieldValue();
if (EOrderPayType.WALLET.getValue() == saOrder.getPayType()) {
// 钱包支付
// 查询之前订单的支付明细
List<CuMemberTrade> memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null);
// 获取所有账户配置ID
List<Integer> pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList());
// 账户对应账户配置map
Map<Integer, BdAccount> accountMap = iAccountServiceApi.getAccountMap(pkAccountList).getData();
// 根据之前交易明细生成红冲交易数据
for (CuMemberTrade cuMemberTrade : memberTradeList) {
// 账户取值所用字段
String field = MemberFieldConstants.ACCOUNT + accountMap.get(cuMemberTrade.getPkAccount()).getFieldValue();
// 交易金额
BigDecimal tradeAmount = cuMemberTrade.getTradeAmount().negate();
// 交易前余额
BigDecimal tradeBeforeBalance = ReflectUtils.invokeGetter(cuMemberAccount, field);
// 交易余额
BigDecimal tradeBalance = tradeBeforeBalance.add(tradeAmount);
// 封装红冲交易明细
saveMemberTradeList.add(this.createMemberTradeByTrade(cuMemberTrade, ETradeType.RETURN_MONEY, ETradeClassify.REFUND, tradeBeforeBalance, tradeAmount, ETradeType.RETURN_MONEY.getLabel(), userId));
// 原账户余额
ReflectUtils.invokeSetter(cuMemberAccount, field, tradeBalance);
// 设置更新账户变动余额
ReflectUtils.invokeSetter(updateMemberAccount, field, tradeAmount);
}
} else {
// 在线支付
// 交易金额订单金额 + 邮费
BigDecimal tradeAmount = saOrder.getOrderAmount().add(saOrder.getPostage());
// 交易前余额
BigDecimal tradeBeforeBalance = ReflectUtils.invokeGetter(cuMemberAccount, accountField);
// 交易余额
BigDecimal tradeBalance = tradeBeforeBalance.add(tradeAmount);
// 封装交易流水
saveMemberTradeList.add(this.createMemberTradeByOrder(saOrder, areaCurrencyDTO.getPkAccount(), ETradeType.RETURN_MONEY, ETradeClassify.REFUND, tradeBeforeBalance, tradeAmount, ETradeType.RETURN_MONEY.getLabel(), userId));
// 原账户余额
ReflectUtils.invokeSetter(cuMemberAccount, accountField, tradeBalance);
// 设置更新账户余额
ReflectUtils.invokeSetter(updateMemberAccount, accountField, tradeAmount);
}
if (null != changeAmount && changeAmount.compareTo(BigDecimal.ZERO) != 0) {
// 存在退返金额 并且不为0则进行处理退回给订单所属专区扣币第一位配置
// 交易前余额
BigDecimal tradeBeforeBalance = ReflectUtils.invokeGetter(cuMemberAccount, accountField);
// 封装交易流水
saveMemberTradeList.add(this.createMemberTradeByOrder(saOrder, areaCurrencyDTO.getPkAccount(), ETradeType.ORDER_REFUND_ADJUST, ETradeClassify.REFUND, tradeBeforeBalance, changeAmount, changeRemark, userId));
// 变动前账户
BigDecimal changeBeforeAccount = ReflectUtils.invokeGetter(updateMemberAccount, accountField);
if (null == changeBeforeAccount) {
// 如果为空直接赋值
ReflectUtils.invokeSetter(updateMemberAccount, accountField, changeAmount);
} else {
// 如果不为空进行累加
ReflectUtils.invokeSetter(updateMemberAccount, accountField, changeBeforeAccount.add(changeAmount));
}
}
// 批量插入会员明细
iCuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList);
// 奖金账户有变化需要同步处理 可提现奖金账户
BigDecimal bonusBigDecimal = ReflectUtils.invokeGetter(updateMemberAccount, MemberFieldConstants.ACCOUNT + 4);
if (null != bonusBigDecimal && bonusBigDecimal.compareTo(BigDecimal.ZERO) != 0) {
// 奖金账户变化不为空则需要同步处理 奖金可提现账户
ReflectUtils.invokeSetter(updateMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + 4, bonusBigDecimal);
}
// 更新会员余额
iCuMemberAccountService.updateMemberAccount(updateMemberAccount, userId);
// 更新创建人账号根据订单类型不同进行处理
switch (EOrderType.getEnumByValue(saOrder.getOrderType())) {
case REGISTER_ORDER:
case SPECIAL_REGISTER_ORDER:
// 注册类订单需要更新用户为已注销状态
UpdateWrapper<CuMember> memberUpdateWrapper = new UpdateWrapper<>();
memberUpdateWrapper.eq(SystemFieldConstants.PK_ID, saOrder.getPkMember());
memberUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId);
memberUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate);
memberUpdateWrapper.set("CATEGORY", ECategory.LOGGED_OUT.getValue());
iCuMemberService.update(memberUpdateWrapper);
// 添加会员信息修改记录
CuMemberChangeLog cuMemberChangeLog = new CuMemberChangeLog();
cuMemberChangeLog.setPkMember(saOrder.getPkMember());
cuMemberChangeLog.setChangeType(EMemberChangeType.ORDER_RETURN.getValue());
cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel());
iCuMemberChangeLogService.save(cuMemberChangeLog);
}
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void orderReturnMember(List<Long> pkMemberList, Long userId) { public void orderReturnMember(List<Long> pkMemberList, Long userId) {
// 注册类订单需要更新用户为已注销状态 // 注册类订单需要更新用户为已注销状态
UpdateWrapper<CuMember> memberUpdateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<CuMember> memberUpdateWrapper = new LambdaUpdateWrapper<>();
memberUpdateWrapper.in(SystemFieldConstants.PK_ID, pkMemberList); memberUpdateWrapper.in(CuMember::getPkId, pkMemberList);
memberUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); memberUpdateWrapper.set(CuMember::getPkModified, userId);
memberUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date()); memberUpdateWrapper.set(CuMember::getModifiedTime, new Date());
memberUpdateWrapper.set("CATEGORY", ECategory.LOGGED_OUT.getValue()); memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue());
iCuMemberService.update(memberUpdateWrapper); iCuMemberService.update(memberUpdateWrapper);
// 添加会员信息修改记录 // 添加会员信息修改记录
List<CuMemberChangeLog> cuMemberChangeLogList = new ArrayList<>(); List<CuMemberChangeLog> cuMemberChangeLogList = new ArrayList<>();
@ -1441,9 +1315,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
* @param isFirst 是否收单 * @param isFirst 是否收单
* @param isFirstAchieve 受否判断首购业绩 * @param isFirstAchieve 受否判断首购业绩
* @param cuMemberAchieve 业绩 * @param cuMemberAchieve 业绩
* @return: Integer
* @Author: sui q
* @Date: 2023/3/15 9:35
*/ */
private Integer getPlaceDept(Boolean isFirst, Boolean isFirstAchieve, CuMemberAchieve cuMemberAchieve, Long pkParent) { private Integer getPlaceDept(Boolean isFirst, Boolean isFirstAchieve, CuMemberAchieve cuMemberAchieve, Long pkParent) {
int placeDept = EPlaceDept.LEFT_DEPT.getValue(); int placeDept = EPlaceDept.LEFT_DEPT.getValue();
@ -1662,4 +1533,170 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
return null; return null;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public void orderReturnBatch(SaOrder saOrder, Long userId) {
// 当前时间
Date nowDate = new Date();
// // 交易明细数据 -- 入库使用
// List<CuMemberTrade> saveMemberTradeList = new ArrayList<>();
// // 会员账户mapkey会员ID value会员账户
// Map<Long, CuMemberAccount> memberAccountMap = new HashMap<>();
// // 更新会员账户mapkey会员ID value会员账户 -- 入库使用
// Map<Long, CuMemberAccount> updateMemberAccountMap = new HashMap<>();
// // 需要清除会员列表
// List<Long> pkMemberList = new ArrayList<>();
//
// for (OrderReturnPaymentDTO paymentDTO : returnDTOList) {
// // 订单
// SaOrder saOrder = paymentDTO.getSaOrder();
// // 订单编号
// String orderCode = saOrder.getOrderCode();
// // 订单所属国
// int pkCountry = saOrder.getPkCountry();
// // 订单购买人
// long pkMember = saOrder.getPkCreator();
// // 记录会员ID最后用于清除会员信息
// pkMemberList.add(pkMember);
//
// // 订单创建人账户
// CuMemberAccount cuMemberAccount = memberAccountMap.get(pkMember);
// if (null == cuMemberAccount) {
// // 不存在则查询
// cuMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(pkMember);
// memberAccountMap.put(pkMember, cuMemberAccount);
// }
// // 更新会员账户
// CuMemberAccount updateMemberAccount = updateMemberAccountMap.get(pkMember);
// if (null == updateMemberAccount) {
// // 不存在则新建
// updateMemberAccount = new CuMemberAccount();
// updateMemberAccount.setPkMember(pkMember);
// updateMemberAccount.setPkCountry(pkCountry);
// updateMemberAccountMap.put(pkMember, updateMemberAccount);
// }
//
// // 订单所属专区扣币的第一位配置
// AreaCurrencyDTO areaCurrencyDTO = iAreaCurrencyServiceApi.queryAreaCurrencyByCondition(saOrder.getOrderType(), pkCountry).getData().get(0);
// // 专区扣币的第一位配置所用字段
// String accountField = MemberFieldConstants.ACCOUNT + areaCurrencyDTO.getFieldValue();
//
// if (EOrderPayType.WALLET.getValue() == saOrder.getPayType()) {
// // 钱包支付
// // 查询之前订单的支付明细
// List<CuMemberTrade> memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null);
//
// // 获取所有账户配置ID
// List<Integer> pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList());
// // 账户对应账户配置map
// Map<Integer, BdAccount> accountMap = iAccountServiceApi.getAccountMap(pkAccountList).getData();
//
// // 根据之前交易明细生成红冲交易数据
// for (CuMemberTrade cuMemberTrade : memberTradeList) {
// // 账户取值所用字段
// String field = MemberFieldConstants.ACCOUNT + accountMap.get(cuMemberTrade.getPkAccount()).getFieldValue();
// // 交易金额
// BigDecimal tradeAmount = cuMemberTrade.getTradeAmount().negate();
// // 交易前余额
// BigDecimal tradeBeforeBalance = ReflectUtils.invokeGetter(cuMemberAccount, field);
// // 交易余额
// BigDecimal tradeBalance = tradeBeforeBalance.add(tradeAmount);
//
// // 封装交易明细
// saveMemberTradeList.add(this.createMemberTradeByTrade(cuMemberTrade, ETradeType.ORDER_REFUND_ADJUST, ETradeClassify.REFUND, tradeBeforeBalance, tradeBalance, null, userId));
//
// // 原账户余额
// ReflectUtils.invokeSetter(cuMemberAccount, field, tradeBalance);
// // 设置更新账户变动余额
// ReflectUtils.invokeSetter(updateMemberAccount, field, tradeAmount);
// }
// } else {
// // 在线支付
// // 交易金额订单金额 + 邮费
// BigDecimal tradeAmount = saOrder.getOrderAmount().add(saOrder.getPostage());
// // 交易前余额
// BigDecimal tradeBeforeBalance = ReflectUtils.invokeGetter(cuMemberAccount, accountField);
// // 交易余额
// BigDecimal tradeBalance = tradeBeforeBalance.add(tradeAmount);
//
// // 封装交易流水
// saveMemberTradeList.add(this.createMemberTradeByOrder(saOrder, areaCurrencyDTO.getPkAccount(), ETradeType.RETURN_MONEY, ETradeClassify.REFUND, tradeBeforeBalance, tradeAmount, ETradeType.RETURN_MONEY.getLabel(), userId));
//
// // 原账户余额
// ReflectUtils.invokeSetter(cuMemberAccount, accountField, tradeBalance);
// // 设置更新账户余额
// ReflectUtils.invokeSetter(updateMemberAccount, accountField, tradeAmount);
// }
//
// // 变动金额
// BigDecimal changeAmount = paymentDTO.getReturnAmount();
// // 变动备注
// String changeRemark = paymentDTO.getReturnRemark();
//
// if (null != changeAmount && changeAmount.compareTo(BigDecimal.ZERO) != 0) {
// // 存在退返金额 并且不为0则进行处理退回给订单所属专区扣币第一位配置
// // 交易前余额
// BigDecimal tradeBeforeBalance = ReflectUtils.invokeGetter(cuMemberAccount, accountField);
//
// // 封装交易流水
// saveMemberTradeList.add(this.createMemberTradeByOrder(saOrder, areaCurrencyDTO.getPkAccount(), ETradeType.ORDER_REFUND_ADJUST, ETradeClassify.REFUND, tradeBeforeBalance, changeAmount, changeRemark, userId));
//
// // 变动前账户
// BigDecimal changeBeforeAccount = ReflectUtils.invokeGetter(updateMemberAccount, accountField);
// if (null == changeBeforeAccount) {
// // 如果为空直接赋值
// ReflectUtils.invokeSetter(updateMemberAccount, accountField, changeAmount);
// } else {
// // 如果不为空进行累加
// ReflectUtils.invokeSetter(updateMemberAccount, accountField, changeBeforeAccount.add(changeAmount));
// }
// }
// }
//
// // 批量插入会员明细
// iCuMemberTradeService.batchSaveTradeByMemberCode(saveMemberTradeList);
//
// // 批量更新会员余额
// for (Long key : updateMemberAccountMap.keySet()) {
// CuMemberAccount cuMemberAccount = updateMemberAccountMap.get(key);
// // 奖金账户有变化需要同步处理 可提现奖金账户
// BigDecimal bonusBigDecimal = ReflectUtils.invokeGetter(cuMemberAccount, MemberFieldConstants.ACCOUNT + 4);
// if (null != bonusBigDecimal && bonusBigDecimal.compareTo(BigDecimal.ZERO) != 0) {
// // 奖金账户变化不为空则需要同步处理 奖金可提现账户
// ReflectUtils.invokeSetter(cuMemberAccount, MemberFieldConstants.WITHDRAW_ACCOUNT + 4, bonusBigDecimal);
// }
// iCuMemberAccountService.updateMemberAccount(cuMemberAccount, userId);
// }
CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
// 回退账号余额
cancelOrderBackAccount(userId, saOrder, payMemberAccount);
if (EOrderType.REGISTER_ORDER.getValue() == saOrder.getOrderType()
|| EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrder.getOrderType()) {
// 注册类订单需要更新用户为已注销状态
LambdaUpdateWrapper<CuMember> memberUpdateWrapper = new LambdaUpdateWrapper<>();
memberUpdateWrapper.eq(CuMember::getPkId, saOrder.getPkMember());
memberUpdateWrapper.set(CuMember::getPkModified, userId);
memberUpdateWrapper.set(CuMember::getModifiedTime, nowDate);
memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue());
iCuMemberService.update(memberUpdateWrapper);
// 添加会员信息修改记录
CuMemberChangeLog cuMemberChangeLog = new CuMemberChangeLog();
cuMemberChangeLog.setPkMember(saOrder.getPkMember());
cuMemberChangeLog.setChangeType(EMemberChangeType.ORDER_RETURN.getValue());
cuMemberChangeLog.setChangeFront("");
cuMemberChangeLog.setChangeAfter(ECategory.LOGGED_OUT.getLabel());
iCuMemberChangeLogService.save(cuMemberChangeLog);
}
// 根据订单退业绩
Boolean bool = iMemberSettleBonusApi.chargeBackSaOrder(saOrder);
if (!bool) {
log.error("订单退单同意处理失败: 订单退业绩失败");
throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + "订单业务回退失败");
}
}
} }

View File

@ -5,9 +5,6 @@ import com.hzs.common.domain.member.detail.CuMemberChangeLog;
/** /**
* 会员信息修改记录 Mapper 接口 * 会员信息修改记录 Mapper 接口
*
* @author hzs
* @since 2023-01-12
*/ */
public interface CuMemberChangeLogMapper extends BaseMapper<CuMemberChangeLog> { public interface CuMemberChangeLogMapper extends BaseMapper<CuMemberChangeLog> {

View File

@ -5,9 +5,6 @@ import com.hzs.common.domain.member.detail.CuMemberChangeLog;
/** /**
* 会员信息修改记录 服务类 * 会员信息修改记录 服务类
*
* @author hzs
* @since 2023-01-12
*/ */
public interface ICuMemberChangeLogService extends IService<CuMemberChangeLog> { public interface ICuMemberChangeLogService extends IService<CuMemberChangeLog> {

View File

@ -8,9 +8,6 @@ import org.springframework.stereotype.Service;
/** /**
* 会员信息修改记录 服务实现类 * 会员信息修改记录 服务实现类
*
* @author hzs
* @since 2023-01-12
*/ */
@Service @Service
public class CuMemberChangeLogServiceImpl extends ServiceImpl<CuMemberChangeLogMapper, CuMemberChangeLog> implements ICuMemberChangeLogService { public class CuMemberChangeLogServiceImpl extends ServiceImpl<CuMemberChangeLogMapper, CuMemberChangeLog> implements ICuMemberChangeLogService {

View File

@ -71,7 +71,7 @@ dubbo:
threads: 400 threads: 400
cloud: cloud:
# 订阅服务 # 订阅服务
subscribed-services: bd-system, bd-third, bd-sale subscribed-services: bd-system, bd-third, bd-sale, bd-bonus
scan: scan:
# dubbo 服务扫描包(开启之后才会对外提供服务) # dubbo 服务扫描包(开启之后才会对外提供服务)
base-packages: com.hzs.member base-packages: com.hzs.member

View File

@ -66,11 +66,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Description: 订单业务办理 * 订单业务办理
* @Author: jiang chao
* @Time: 2023/1/31 10:31
* @Classname: OrderBusinessController
* @PackageName: com.hzs.sale.order.controller.manager
*/ */
@Slf4j @Slf4j
@RestController @RestController
@ -82,7 +78,9 @@ public class SaOrderBusinessController extends BaseController {
@Autowired @Autowired
private IOrderBusinessService iOrderBusinessService; private IOrderBusinessService iOrderBusinessService;
@Autowired @Autowired
private ISaOrderSelfLogService saOrderSelfLogService; private ISaOrderSelfLogService iSaOrderSelfLogService;
@Autowired
private ISaDeliverItemsService saDeliverItemsService;
@Autowired @Autowired
private UserTokenService userTokenService; private UserTokenService userTokenService;
@ -92,7 +90,7 @@ public class SaOrderBusinessController extends BaseController {
@DubboReference @DubboReference
IBusinessCommission iBusinessCommission; IBusinessCommission iBusinessCommission;
@DubboReference @DubboReference
IProductServiceApi productServiceApi; IProductServiceApi iProductServiceApi;
@DubboReference @DubboReference
IUserServiceApi iUserServiceApi; IUserServiceApi iUserServiceApi;
@DubboReference @DubboReference
@ -102,14 +100,7 @@ public class SaOrderBusinessController extends BaseController {
@DubboReference @DubboReference
ICurrencyServiceApi iCurrencyServiceApi; ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference @DubboReference
ISystemConfigServiceApi systemConfigServiceApi; ISystemConfigServiceApi iSystemConfigServiceApi;
private ISaDeliverItemsService saDeliverItemsService;
@Autowired
public void setSaDeliverItemsService(ISaDeliverItemsService saDeliverItemsService) {
this.saDeliverItemsService = saDeliverItemsService;
}
/** /**
* 订单业务列表 * 订单业务列表
@ -138,7 +129,7 @@ public class SaOrderBusinessController extends BaseController {
// 获取行政区划map // 获取行政区划map
Map<Integer, String> areaMap = iAreaServiceApi.getAreaMap(pkCountry).getData(); Map<Integer, String> areaMap = iAreaServiceApi.getAreaMap(pkCountry).getData();
// 获得当前国家是日结还是周结 // 获得当前国家是日结还是周结
String settleCycle = systemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData(); String settleCycle = iSystemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
for (OrderBusinessVO orderBusinessVO : list) { for (OrderBusinessVO orderBusinessVO : list) {
// 省市区处理 // 省市区处理
@ -896,7 +887,7 @@ public class SaOrderBusinessController extends BaseController {
List<OrderCancelDetailVO> orderCancelDetailVOList = new ArrayList<>(); List<OrderCancelDetailVO> orderCancelDetailVOList = new ArrayList<>();
if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) {
saOrderExt.getOrderItemsList().forEach(saOrderItems -> { saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); String productName = iProductServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder() OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder()
.pkId(saOrderItems.getPkId()) .pkId(saOrderItems.getPkId())
.productName(productName) .productName(productName)
@ -992,7 +983,7 @@ public class SaOrderBusinessController extends BaseController {
} }
Map<Long, String> productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size())); Map<Long, String> productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size()));
saOrderExt.getOrderItemsList().forEach(saOrderItems -> { saOrderExt.getOrderItemsList().forEach(saOrderItems -> {
String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); String productName = iProductServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName();
productMap.put(saOrderItems.getPkId(), productName); productMap.put(saOrderItems.getPkId(), productName);
}); });
orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> { orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> {
@ -1004,7 +995,6 @@ public class SaOrderBusinessController extends BaseController {
return null; return null;
} }
/** /**
* 订单业务列表 * 订单业务列表
* *
@ -1018,7 +1008,7 @@ public class SaOrderBusinessController extends BaseController {
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()));
} }
List<SaOrderSelfLogExt> orderSelfLogList = saOrderSelfLogService.querySaOrderSelfLog(selfPickUpParam); List<SaOrderSelfLogExt> orderSelfLogList = iSaOrderSelfLogService.querySaOrderSelfLog(selfPickUpParam);
return getDataTable(orderSelfLogList); return getDataTable(orderSelfLogList);
} }
@ -1039,7 +1029,7 @@ public class SaOrderBusinessController extends BaseController {
} }
} }
SaOrderSelfLog saOrderSelfLog = saOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId()); SaOrderSelfLog saOrderSelfLog = iSaOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId());
if (saOrderSelfLog == null || selfPickUpParam.getApproveStatus() <= saOrderSelfLog.getApproveStatus()) { if (saOrderSelfLog == null || selfPickUpParam.getApproveStatus() <= saOrderSelfLog.getApproveStatus()) {
return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY); return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY);
} }
@ -1057,7 +1047,7 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CURRENT_DATE)); return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CURRENT_DATE));
} }
selfPickUpParam.setPkCreator(SecurityUtils.getUserId()); selfPickUpParam.setPkCreator(SecurityUtils.getUserId());
saOrderSelfLogService.updateSaOrderSelfLog(selfPickUpParam, selfPickUpParam.getPkId()); iSaOrderSelfLogService.updateSaOrderSelfLog(selfPickUpParam, selfPickUpParam.getPkId());
return AjaxResult.success(selfPickUpParam); return AjaxResult.success(selfPickUpParam);
} }
} }
@ -1073,7 +1063,7 @@ public class SaOrderBusinessController extends BaseController {
if (selfPickUpParam.getPkId() == null) { if (selfPickUpParam.getPkId() == null) {
return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY); return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY);
} }
SaOrderSelfLog saOrderSelfLog = saOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId()); SaOrderSelfLog saOrderSelfLog = iSaOrderSelfLogService.querySaOrderSelfLogById(selfPickUpParam.getPkId());
if (saOrderSelfLog == null || EApproveRechargeStatus.WAIT.getValue() != saOrderSelfLog.getApproveStatus()) { if (saOrderSelfLog == null || EApproveRechargeStatus.WAIT.getValue() != saOrderSelfLog.getApproveStatus()) {
return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY); return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY);
} }
@ -1134,11 +1124,9 @@ public class SaOrderBusinessController extends BaseController {
} }
/** /**
* 撤销订单
*
* @param orderQueryParam 订单参数 * @param orderQueryParam 订单参数
* @Description: 撤销订单
* @return: AjaxResult
* @Author: sui q
* @Date: 2022/8/27 16:56
*/ */
@PostMapping("/validate-bind") @PostMapping("/validate-bind")
public AjaxResult validateOrderBindBarCode(@RequestBody OrderQueryParam orderQueryParam) { public AjaxResult validateOrderBindBarCode(@RequestBody OrderQueryParam orderQueryParam) {

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 {
@ -152,9 +148,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);
@ -182,9 +175,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);
@ -193,9 +183,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);
@ -232,11 +219,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

@ -4,8 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.hzs.activity.pick.service.IAcPickService; import com.hzs.activity.pick.service.IAcPickService;
import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.bonus.settle.IMemberSettleBonusApi;
import com.hzs.common.core.constant.*; import com.hzs.common.core.constant.*;
@ -52,7 +52,6 @@ import com.hzs.sale.order.vo.OrderCancelRegisterMemberVO;
import com.hzs.sale.order.vo.ValidateCancelOrderVO; import com.hzs.sale.order.vo.ValidateCancelOrderVO;
import com.hzs.sale.product.service.IBdProductService; import com.hzs.sale.product.service.IBdProductService;
import com.hzs.sale.pub.dto.OrderDeductionDTO; import com.hzs.sale.pub.dto.OrderDeductionDTO;
import com.hzs.sale.wares.service.IBdWaresService;
import com.hzs.system.base.IAreaServiceApi; import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.ISystemConfigServiceApi; import com.hzs.system.base.ISystemConfigServiceApi;
@ -76,11 +75,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Description: 订单业务办理服务 * 订单业务办理服务
* @Author: jiang chao
* @Time: 2023/2/1 17:49
* @Classname: OrderBusinessServiceImpl
* @PackageName: com.hzs.sale.order.service.impl
*/ */
@Slf4j @Slf4j
@Service @Service
@ -114,7 +109,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
@DubboReference @DubboReference
IMemberAccountServiceApi iMemberAccountServiceApi; IMemberAccountServiceApi iMemberAccountServiceApi;
@DubboReference @DubboReference
IMemberServiceApi memberServiceApi; IMemberServiceApi iMemberServiceApi;
@DubboReference @DubboReference
ICurrencyServiceApi iCurrencyServiceApi; ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference @DubboReference
@ -122,7 +117,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
@DubboReference @DubboReference
IAccountServiceApi iAccountServiceApi; IAccountServiceApi iAccountServiceApi;
@DubboReference @DubboReference
ISystemConfigServiceApi systemConfigServiceApi; ISystemConfigServiceApi iSystemConfigServiceApi;
@DubboReference @DubboReference
IAreaServiceApi iAreaServiceApi; IAreaServiceApi iAreaServiceApi;
@ -321,7 +316,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 扣款业务处理 // 扣款业务处理
if (null != businessCommissionDTO) { if (null != businessCommissionDTO) {
R tmpR = iBusinessCommission.businessCommissionSubmit(businessCommissionDTO); R<?> tmpR = iBusinessCommission.businessCommissionSubmit(businessCommissionDTO);
if (!tmpR.isSuccess()) { if (!tmpR.isSuccess()) {
log.error("订单业务处理扣款失败: {}", tmpR.getMsg()); log.error("订单业务处理扣款失败: {}", tmpR.getMsg());
throw new ServiceException(tmpR.getMsg()); throw new ServiceException(tmpR.getMsg());
@ -518,7 +513,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 更新订单修改记录成功 // 更新订单修改记录成功
// 驳回业务处理扣款回退 // 驳回业务处理扣款回退
R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() R<?> resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder()
.pkCountry(pkCountry) .pkCountry(pkCountry)
.pkCreator(userId) .pkCreator(userId)
.tradeType(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue()) .tradeType(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue())
@ -550,11 +545,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (CollectionUtil.isNotEmpty(saDeliverItemsList)) { if (CollectionUtil.isNotEmpty(saDeliverItemsList)) {
// 删除发货明细数据 // 删除发货明细数据
List<Long> deliverItemsIdList = saDeliverItemsList.stream().map(SaDeliverItems::getPkId).collect(Collectors.toList()); List<Long> deliverItemsIdList = saDeliverItemsList.stream().map(SaDeliverItems::getPkId).collect(Collectors.toList());
UpdateWrapper<SaDeliverItems> updateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<SaDeliverItems> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(SystemFieldConstants.PK_ID, deliverItemsIdList); updateWrapper.in(SaDeliverItems::getPkId, deliverItemsIdList);
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); updateWrapper.set(SaDeliverItems::getDelFlag, EDelFlag.DELETE.getValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); updateWrapper.set(SaDeliverItems::getPkModified, userId);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); updateWrapper.set(SaDeliverItems::getModifiedTime, nowDate);
iSaDeliverItemsService.update(updateWrapper); iSaDeliverItemsService.update(updateWrapper);
// 删除发货明细数据后处理是否需要删除发货单 // 删除发货明细数据后处理是否需要删除发货单
@ -646,9 +641,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
saOrder, afterData, userId, pkCountry, nowDate); saOrder, afterData, userId, pkCountry, nowDate);
// 添加校验订单详情是否已经发货 // 添加校验订单详情是否已经发货
QueryWrapper<SaOrderItems> orderItemsQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<SaOrderItems> orderItemsQueryWrapper = new LambdaQueryWrapper<>();
orderItemsQueryWrapper.in(SystemFieldConstants.PK_ID, changeIdList); orderItemsQueryWrapper.in(SaOrderItems::getPkId, changeIdList);
orderItemsQueryWrapper.in("ORDER_STATUS", EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue()); orderItemsQueryWrapper.in(SaOrderItems::getOrderStatus, EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue());
if (iSaOrderItemsService.count(orderItemsQueryWrapper) > 0) { if (iSaOrderItemsService.count(orderItemsQueryWrapper) > 0) {
// 订单已经发货不能进行调换货物 // 订单已经发货不能进行调换货物
return "订单已经发货,不能进行调换货物"; return "订单已经发货,不能进行调换货物";
@ -674,13 +669,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (orderCostFlag) { if (orderCostFlag) {
// 订单调换货物扣费处理 // 订单调换货物扣费处理
R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto); R<?> resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto);
if (!resultR.isSuccess()) { if (!resultR.isSuccess()) {
throw new BaseException(resultR.getMsg()); throw new BaseException(resultR.getMsg());
} }
} else if (null != dto) { } else if (null != dto) {
// 订单总价未变化但是需要手续费 // 订单总价未变化但是需要手续费
R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto); R<?> resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto);
if (!resultR.isSuccess()) { if (!resultR.isSuccess()) {
throw new BaseException(resultR.getMsg()); throw new BaseException(resultR.getMsg());
} }
@ -777,7 +772,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
updateOrder.setModifiedTime(nowDate); updateOrder.setModifiedTime(nowDate);
// 校验订单支付金额是否足够 // 校验订单支付金额是否足够
R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder); R<?> resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder);
if (!resultR.isSuccess()) { if (!resultR.isSuccess()) {
return resultR.getMsg(); return resultR.getMsg();
} }
@ -861,9 +856,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
saOrder, afterData, userId, pkCountry, nowDate); saOrder, afterData, userId, pkCountry, nowDate);
// 添加校验订单详情是否已经发货 // 添加校验订单详情是否已经发货
QueryWrapper<SaOrderItems> orderItemsQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<SaOrderItems> orderItemsQueryWrapper = new LambdaQueryWrapper<>();
orderItemsQueryWrapper.in(SystemFieldConstants.PK_ID, changeIdList); orderItemsQueryWrapper.in(SaOrderItems::getPkId, changeIdList);
orderItemsQueryWrapper.in("ORDER_STATUS", EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue()); orderItemsQueryWrapper.in(SaOrderItems::getOrderStatus, EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue());
if (iSaOrderItemsService.count(orderItemsQueryWrapper) > 0) { if (iSaOrderItemsService.count(orderItemsQueryWrapper) > 0) {
// 订单已经发货不能进行调换货物 // 订单已经发货不能进行调换货物
return "订单已经发货,不能进行调换货物"; return "订单已经发货,不能进行调换货物";
@ -890,7 +885,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (orderCostFlag) { if (orderCostFlag) {
// 订单调换货物扣费处理 // 订单调换货物扣费处理
R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, null); R<?> resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, null);
if (!resultR.isSuccess()) { if (!resultR.isSuccess()) {
log.error("订单调换货物同意处理失败: {}", resultR.getMsg()); log.error("订单调换货物同意处理失败: {}", resultR.getMsg());
throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + resultR.getMsg()); throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + resultR.getMsg());
@ -939,7 +934,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (EYesNo.NO.getIntValue() == afterData.getPayFlag()) { if (EYesNo.NO.getIntValue() == afterData.getPayFlag()) {
// 不免付驳回需要退款 // 不免付驳回需要退款
// 驳回业务处理扣款回退 // 驳回业务处理扣款回退
R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() R<?> resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder()
.pkCountry(pkCountry) .pkCountry(pkCountry)
.pkCreator(userId) .pkCreator(userId)
.tradeType(EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue()) .tradeType(EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue())
@ -979,13 +974,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (CollectionUtil.isNotEmpty(saDeliverItemsList)) { if (CollectionUtil.isNotEmpty(saDeliverItemsList)) {
// 删除发货明细数据 // 删除发货明细数据
List<Long> deliverItemsIdList = saDeliverItemsList.stream().map(SaDeliverItems::getPkId).collect(Collectors.toList()); List<Long> deliverItemsIdList = saDeliverItemsList.stream().map(SaDeliverItems::getPkId).collect(Collectors.toList());
UpdateWrapper<SaDeliverItems> deliverItemsUpdateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<SaDeliverItems> deliverItemsUpdateWrapper = new LambdaUpdateWrapper<>();
deliverItemsUpdateWrapper.in(SystemFieldConstants.PK_ID, deliverItemsIdList); deliverItemsUpdateWrapper.in(SaDeliverItems::getPkId, deliverItemsIdList);
deliverItemsUpdateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); deliverItemsUpdateWrapper.set(SaDeliverItems::getDelFlag, EDelFlag.DELETE.getValue());
deliverItemsUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); deliverItemsUpdateWrapper.set(SaDeliverItems::getPkModified, userId);
deliverItemsUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); deliverItemsUpdateWrapper.set(SaDeliverItems::getModifiedTime, nowDate);
// 逻辑删除旧发货单明细并标记为换货 // 逻辑删除旧发货单明细并标记为换货
deliverItemsUpdateWrapper.set("EXCHANGE_GOODS", EYesNo.YES.getIntValue()); deliverItemsUpdateWrapper.set(SaDeliverItems::getExchangeGoods, EYesNo.YES.getIntValue());
iSaDeliverItemsService.update(deliverItemsUpdateWrapper); iSaDeliverItemsService.update(deliverItemsUpdateWrapper);
// 删除发货明细数据后处理是否需要删除发货单 // 删除发货明细数据后处理是否需要删除发货单
@ -996,16 +991,16 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
} }
if (CollectionUtil.isNotEmpty(changeIdList)) { if (CollectionUtil.isNotEmpty(changeIdList)) {
// 根据修改的订单明细ID删除 已付款已合单 之外的订单明细 // 根据修改的订单明细ID删除 已付款已合单 之外的订单明细
UpdateWrapper<SaOrderItems> orderItemsUpdateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<SaOrderItems> orderItemsUpdateWrapper = new LambdaUpdateWrapper<>();
orderItemsUpdateWrapper.eq("PK_ORDER", orderPkId); orderItemsUpdateWrapper.eq(SaOrderItems::getPkOrder, orderPkId);
orderItemsUpdateWrapper.notIn(SystemFieldConstants.PK_ID, changeIdList); orderItemsUpdateWrapper.notIn(SaOrderItems::getPkId, changeIdList);
orderItemsUpdateWrapper.in("ORDER_STATUS", Arrays.asList(EOrderStatus.PAY.getValue(), EOrderStatus.SHIPPING.getValue())); orderItemsUpdateWrapper.in(SaOrderItems::getOrderStatus, Arrays.asList(EOrderStatus.PAY.getValue(), EOrderStatus.SHIPPING.getValue()));
orderItemsUpdateWrapper.eq(SystemFieldConstants.DEL_FLAG, EDelFlag.UN_DELETE.getValue()); orderItemsUpdateWrapper.eq(SaOrderItems::getDelFlag, EDelFlag.UN_DELETE.getValue());
orderItemsUpdateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); orderItemsUpdateWrapper.set(SaOrderItems::getDelFlag, EDelFlag.DELETE.getValue());
// 逻辑删除旧订单明细并标记为换货 // 逻辑删除旧订单明细并标记为换货
orderItemsUpdateWrapper.set("EXCHANGE_GOODS", EYesNo.YES.getIntValue()); orderItemsUpdateWrapper.set(SaOrderItems::getExchangeGoods, EYesNo.YES.getIntValue());
orderItemsUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); orderItemsUpdateWrapper.set(SaOrderItems::getPkModified, userId);
orderItemsUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); orderItemsUpdateWrapper.set(SaOrderItems::getModifiedTime, nowDate);
iSaOrderItemsService.update(orderItemsUpdateWrapper); iSaOrderItemsService.update(orderItemsUpdateWrapper);
} }
@ -1078,31 +1073,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 订单退单编号列表 // 订单退单编号列表
List<String> orderCodeList = param.getOrderReturnParamList().stream().map(OrderReturnParam::getOrderCode).collect(Collectors.toList()); List<String> orderCodeList = param.getOrderReturnParamList().stream().map(OrderReturnParam::getOrderCode).collect(Collectors.toList());
// 2023.09.22 根据需求调整目前只能撤单个用户下的非注册单或者所有单涉及金额等不需要处理只需要处理业绩上传 LambdaQueryWrapper<SaOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SaOrder::getOrderCode, orderCodeList);
// // 订单前置校验等 queryWrapper.eq(SaOrder::getPkCountry, pkCountry);
// ValidateCancelOrderVO validateCancelOrderVO = this.validateCancelOrder(OrderCancelParam.builder()
// .cancelType(ECancelOrderType.MERGE_RETREAT_ORDER.getValue())
// .orderCode(orderReturnParamList.get(0).getOrderCode())
// .pkCountry(pkCountry)
// .build());
// if (null == validateCancelOrderVO.getSaOrderExt()) {
// return validateCancelOrderVO.getMsg();
// }
//
// // 合并退单伞下订单
// Map<Long, SaOrderExt> tmpSaOrderMap = validateCancelOrderVO.getSaOrderMap();
// // 将退单人本身单号加入到map中
// tmpSaOrderMap.put(validateCancelOrderVO.getSaOrderExt().getPkId(), validateCancelOrderVO.getSaOrderExt());
// // 订单转为以orderCode为key的map
// Map<String, SaOrder> saOrderMap = new HashMap<>();
// for (Long key : tmpSaOrderMap.keySet()) {
// SaOrder saOrder = tmpSaOrderMap.get(key);
// saOrderMap.put(saOrder.getOrderCode(), saOrder);
// }
QueryWrapper<SaOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.in("ORDER_CODE", orderCodeList);
queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
List<SaOrder> saOrderList = iSaOrderService.list(queryWrapper); List<SaOrder> saOrderList = iSaOrderService.list(queryWrapper);
if (CollectionUtil.isEmpty(saOrderList)) { if (CollectionUtil.isEmpty(saOrderList)) {
return "订单不存在"; return "订单不存在";
@ -1111,7 +1084,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
SaOrder saOrder = saOrderList.get(0); SaOrder saOrder = saOrderList.get(0);
// 获得当前国家是日结还是周结 // 获得当前国家是日结还是周结
String settleCycle = systemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData(); String settleCycle = iSystemConfigServiceApi.getBonusSystemConfig(pkCountry, ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
// 控制是否显示退单 // 控制是否显示退单
if (Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), settleCycle)) { if (Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), settleCycle)) {
// 周结 // 周结
@ -1209,107 +1182,37 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 订单修改后实体 // 订单修改后实体
OrderReturnDTO orderReturnDTO = JSONUtil.toBean(saOrderChargeLog.getAfterData(), OrderReturnDTO.class); OrderReturnDTO orderReturnDTO = JSONUtil.toBean(saOrderChargeLog.getAfterData(), OrderReturnDTO.class);
QueryWrapper<SaOrder> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<SaOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq("ORDER_CODE", orderReturnDTO.getOrderCode()); queryWrapper.eq(SaOrder::getOrderCode, orderReturnDTO.getOrderCode());
SaOrder saOrder = iSaOrderService.getOne(queryWrapper); SaOrder saOrder = iSaOrderService.getOne(queryWrapper);
// 2023.09.22 新需求目前两种类型处理方式一致此处暂时注释掉
// if (2 == orderReturnDTO.getReturnType()) {
// // 合并退单有多单批量操作
// // 订单前置校验等
// ValidateCancelOrderVO validateCancelOrderVO = this.validateCancelOrder(OrderCancelParam.builder()
// .cancelType(ECancelOrderType.MERGE_RETREAT_ORDER.getValue())
// .orderCode(orderReturnDTO.getOrderCode())
// .pkCountry(pkCountry)
// .build());
// if (null == validateCancelOrderVO.getSaOrderExt()) {
// log.error("订单退单同意处理失败: {}", validateCancelOrderVO.getMsg());
// throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + validateCancelOrderVO.getMsg());
// }
//
// // 需要删除的订单ID列表
// List<Long> orderIdList = new ArrayList<>();
//
// // 合并退单伞下订单
// Map<Long, SaOrderExt> tmpSaOrderMap = validateCancelOrderVO.getSaOrderMap();
// // 将退单人本身单号加入到map中
// tmpSaOrderMap.put(validateCancelOrderVO.getSaOrderExt().getPkId(), validateCancelOrderVO.getSaOrderExt());
// // 订单转为以orderCode为key的map
// Map<String, SaOrder> saOrderMap = new HashMap<>();
// for (Long key : tmpSaOrderMap.keySet()) {
// SaOrder saOrder = tmpSaOrderMap.get(key);
// saOrderMap.put(saOrder.getOrderCode(), saOrder);
//
// orderIdList.add(saOrder.getPkId());
// }
// // 调用扣款DTO列表
// List<OrderReturnPaymentDTO> paymentDTOList = new ArrayList<>();
// for (SaOrderChargeLog orderChargeLog : saOrderChargeLogList) {
// OrderReturnDTO returnDTO = JSONUtil.toBean(orderChargeLog.getAfterData(), OrderReturnDTO.class);
// paymentDTOList.add(OrderReturnPaymentDTO.builder()
// .orderCode(returnDTO.getOrderCode())
// .returnAmount(returnDTO.getReturnAmount())
// .returnRemark(returnDTO.getReturnRemark())
// .saOrder(saOrder)
// .build());
// }
if (this.updateSaOrderChargeLog(EApprovalBusiness.ORDER_RETURN, approvalBusinessResultDTO.getBusinessCode(), pkCountry, userId, EAgentApprovalStatus.APPROVED, approvalBusinessResultDTO.getApproveRemark())) { if (this.updateSaOrderChargeLog(EApprovalBusiness.ORDER_RETURN, approvalBusinessResultDTO.getBusinessCode(), pkCountry, userId, EAgentApprovalStatus.APPROVED, approvalBusinessResultDTO.getApproveRemark())) {
// 处理订单修改记录成功 // 处理订单修改记录成功
// 订单订单明细状态变更为已删除 // 订单订单明细状态变更为已删除
iSaOrderService.deleteOrderAndItems(Collections.singletonList(saOrder.getPkId()), userId, pkCountry); iSaOrderService.deleteOrderAndItems(Collections.singletonList(saOrder.getPkId()), userId, pkCountry);
// 根据订单退业绩 if (EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrder.getOrderType()) {
Boolean bool = iMemberSettleBonusApi.chargeBackSaOrder(saOrder); // 乐学升级需要扣除代金券
if (!bool) {
log.error("订单退单同意处理失败: 订单退业绩失败");
throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + "订单业务回退失败");
}
if (EOrderType.REGISTER_ORDER.getValue() == saOrder.getOrderType()
|| EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrder.getOrderType()
) {
// 注册类退单取消注册会员
iMemberAccountServiceApi.orderReturnMember(Collections.singletonList(saOrder.getPkMember()), userId);
} else if (EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrder.getOrderType()) {
// 乐学升级需要抽除代金券
iAcPickService.deductionsCouponByOrder(saOrder.getPkMember(), saOrder.getPkId()); iAcPickService.deductionsCouponByOrder(saOrder.getPkMember(), saOrder.getPkId());
} }
// // 根据订单退业绩
// Boolean bool = iMemberSettleBonusApi.chargeBackSaOrder(saOrder);
// if (!bool) {
// log.error("订单退单同意处理失败: 订单退业绩失败");
// throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + "订单业务回退失败");
// }
// 根据订单原路退回支付信息
R<?> resultR = iMemberAccountServiceApi.orderReturnBatch(saOrder, userId);
if (!resultR.isSuccess()) {
log.error("订单退单同意处理失败: {}", resultR.getMsg());
throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + resultR.getMsg());
}
return null; return null;
} }
// // 根据订单原路退回支付信息
// R resultR = iMemberAccountServiceApi.orderReturnBatch(paymentDTOList, userId);
// if (!resultR.isSuccess()) {
// log.error("订单退单同意处理失败: {}", resultR.getMsg());
// throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + resultR.getMsg());
// }
// return null;
// }
// } else {
// // 单点退单一单直接操作
// SaOrderExt saOrder = iSaOrderService.queryOrderByPkId(saOrderChargeLog.getPkOrder(), null);
// if (null == saOrder) {
// log.error("订单退单同意处理失败: {} 订单不存在", saOrderChargeLog.getPkOrder());
// return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_NOT_EXISTS);
// }
//
// if (this.updateSaOrderChargeLog(EApprovalBusiness.ORDER_RETURN, approvalBusinessResultDTO.getBusinessCode(), pkCountry, userId, EAgentApprovalStatus.APPROVED, approvalBusinessResultDTO.getApproveRemark())) {
// // 处理订单修改记录成功
//
// // 订单订单明细状态变更为已删除
// iSaOrderService.deleteOrderAndItems(Collections.singletonList(saOrder.getPkId()), userId, pkCountry);
//
// // 根据订单原路退回支付信息
// R resultR = iMemberAccountServiceApi.orderReturn(saOrder, userId, orderReturnDTO.getReturnAmount(), orderReturnDTO.getReturnRemark());
// if (!resultR.isSuccess()) {
// log.error("订单退单同意处理失败: {}", resultR.getMsg());
// throw new BaseException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + "" + resultR.getMsg());
// }
// return null;
// }
// }
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_ERROR); return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_ERROR);
} }
@ -1377,7 +1280,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())) { orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())) {
// 验证订单时间只能撤销7天以内的支付订单 // 验证订单时间只能撤销7天以内的支付订单
// 周结只能撤销当前期间的订单不能撤销上个期间的订单 // 周结只能撤销当前期间的订单不能撤销上个期间的订单
String settleCycle = systemConfigServiceApi.getBonusSystemConfig(orderCancelParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData(); String settleCycle = iSystemConfigServiceApi.getBonusSystemConfig(orderCancelParam.getPkCountry(), ESystemConfig.EXPAND_CAP_METHOD.getKey()).getData();
if (Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), settleCycle)) { if (Objects.equals(Integer.toString(EExpandCapMethod.WEEK_SETTLE.getValue()), settleCycle)) {
if (DateUtils.compareDateAfter(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(DateUtils.currentDate())), saOrderExt.getPayTime())) { if (DateUtils.compareDateAfter(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(DateUtils.currentDate())), saOrderExt.getPayTime())) {
validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.WEEK_CANCEL_SEVEN_PAY_ORDER)); validateCancelOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.WEEK_CANCEL_SEVEN_PAY_ORDER));
@ -1392,7 +1295,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
} }
} }
// 验证订单国家跟会员国家是否一致是否转换过结算国 // 验证订单国家跟会员国家是否一致是否转换过结算国
CuMember cuMember = memberServiceApi.getMember(saOrderExt.getPkMember()).getData(); CuMember cuMember = iMemberServiceApi.getMember(saOrderExt.getPkMember()).getData();
if (cuMember == null) { if (cuMember == null) {
validateCancelOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.MEMBER_DOES_NOT_EXITS)); validateCancelOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.MEMBER_DOES_NOT_EXITS));
return validateCancelOrderVO; return validateCancelOrderVO;
@ -1402,7 +1305,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return validateCancelOrderVO; return validateCancelOrderVO;
} }
// 验证创建人是否还存在不存在不能撤单 // 验证创建人是否还存在不存在不能撤单
CuMember createMember = memberServiceApi.getMember(saOrderExt.getPkCreator()).getData(); CuMember createMember = iMemberServiceApi.getMember(saOrderExt.getPkCreator()).getData();
if (createMember == null) { if (createMember == null) {
validateCancelOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.CREATE_MEMBER_NOT_EXITS)); validateCancelOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.CREATE_MEMBER_NOT_EXITS));
return validateCancelOrderVO; return validateCancelOrderVO;
@ -1461,7 +1364,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue()) || if (orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue()) ||
orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_RETREAT_ORDER.getValue())) { orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_RETREAT_ORDER.getValue())) {
// 查询用户伞下所有会员 // 查询用户伞下所有会员
List<CuMemberExt> cuMemberList = memberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData(); List<CuMemberExt> cuMemberList = iMemberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData();
cuMemberList.add(BeanUtil.copyProperties(cuMember, CuMemberExt.class)); cuMemberList.add(BeanUtil.copyProperties(cuMember, CuMemberExt.class));
List<OrderCancelRegisterMemberVO> memberList = new ArrayList<>(cuMemberList.size()); List<OrderCancelRegisterMemberVO> memberList = new ArrayList<>(cuMemberList.size());
// 验证伞下会员是否存在报单中心 // 验证伞下会员是否存在报单中心
@ -1539,11 +1442,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
} }
/** /**
* 根据订单获取
*
* @param pkMemberList 伞下会员 * @param pkMemberList 伞下会员
* @Description: 根据订单获取
* @return: Map<Long, CuMemberAccount>
* @Author: sui q
* @Date: 2023/3/25 16:33
*/ */
private Map<Long, CuMemberAccount> getRevokeMemberBySaOrder(List<Long> pkMemberList) { private Map<Long, CuMemberAccount> getRevokeMemberBySaOrder(List<Long> pkMemberList) {
List<CuMemberAccount> cuMemberAccountList = iMemberAccountServiceApi.queryCuMemberAccountByPkMembers(pkMemberList).getData(); List<CuMemberAccount> cuMemberAccountList = iMemberAccountServiceApi.queryCuMemberAccountByPkMembers(pkMemberList).getData();
@ -1645,7 +1546,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 封装撤单后的数据 // 封装撤单后的数据
// 保存撤单记录存在整单撤销 // 保存撤单记录存在整单撤销
SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt(); SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt();
CuMember cuMember = memberServiceApi.getMember(saOrderExt.getPkMember()).getData(); CuMember cuMember = iMemberServiceApi.getMember(saOrderExt.getPkMember()).getData();
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;
@ -1850,7 +1751,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (this.updateSaOrderChargeLog(eApprovalBusiness, approvalBusinessResultDTO.getBusinessCode(), pkCountry, userId, EAgentApprovalStatus.REFUSE, approvalBusinessResultDTO.getApproveRemark())) { if (this.updateSaOrderChargeLog(eApprovalBusiness, approvalBusinessResultDTO.getBusinessCode(), pkCountry, userId, EAgentApprovalStatus.REFUSE, approvalBusinessResultDTO.getApproveRemark())) {
// 更新订单修改记录成功 // 更新订单修改记录成功
// 驳回业务处理扣款回退 // 驳回业务处理扣款回退
R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() R<?> resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder()
.pkCountry(pkCountry) .pkCountry(pkCountry)
.pkCreator(userId) .pkCreator(userId)
.tradeType(eApprovalBusiness.getValue()) .tradeType(eApprovalBusiness.getValue())
@ -1890,11 +1791,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
@Override @Override
public List<SaOrderChargeLog> getSaOrderChargeLogs(ApprovalBusinessResultDTO resultDTO, Integer chargeType) { public List<SaOrderChargeLog> getSaOrderChargeLogs(ApprovalBusinessResultDTO resultDTO, Integer chargeType) {
// 查询订单修改记录 // 查询订单修改记录
QueryWrapper<SaOrderChargeLog> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<SaOrderChargeLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq("CHARGE_TYPE", chargeType); queryWrapper.eq(SaOrderChargeLog::getChargeType, chargeType);
queryWrapper.eq("BUSINESS_CODE", resultDTO.getBusinessCode()); queryWrapper.eq(SaOrderChargeLog::getBusinessCode, resultDTO.getBusinessCode());
queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, resultDTO.getLoginUser().getDataCountry()); queryWrapper.eq(SaOrderChargeLog::getPkCountry, resultDTO.getLoginUser().getDataCountry());
queryWrapper.orderByAsc(SystemFieldConstants.PK_ID); queryWrapper.orderByAsc(SaOrderChargeLog::getPkId);
return iSaOrderChargeLogService.list(queryWrapper); return iSaOrderChargeLogService.list(queryWrapper);
} }
@ -1913,15 +1814,15 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
Integer pkCountry, Long userId, Integer pkCountry, Long userId,
EAgentApprovalStatus approvalStatus, String remark) { EAgentApprovalStatus approvalStatus, String remark) {
// 处理订单修改记录 // 处理订单修改记录
UpdateWrapper<SaOrderChargeLog> updateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<SaOrderChargeLog> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq("CHARGE_TYPE", chargeType.getValue()); updateWrapper.eq(SaOrderChargeLog::getChargeType, chargeType.getValue());
updateWrapper.eq("BUSINESS_CODE", businessCode); updateWrapper.eq(SaOrderChargeLog::getBusinessCode, businessCode);
updateWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry); updateWrapper.eq(SaOrderChargeLog::getPkCountry, pkCountry);
updateWrapper.eq("APPROVAL_STATUS", EAgentApprovalStatus.UNAPPROVED.getValue()); updateWrapper.eq(SaOrderChargeLog::getApprovalStatus, EAgentApprovalStatus.UNAPPROVED.getValue());
updateWrapper.set("APPROVAL_STATUS", approvalStatus.getValue()); updateWrapper.set(SaOrderChargeLog::getApprovalStatus, approvalStatus.getValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); updateWrapper.set(SaOrderChargeLog::getPkModified, userId);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date()); updateWrapper.set(SaOrderChargeLog::getModifiedTime, new Date());
updateWrapper.set("REMARK", remark); updateWrapper.set(SaOrderChargeLog::getRemark, remark);
return iSaOrderChargeLogService.update(updateWrapper); return iSaOrderChargeLogService.update(updateWrapper);
} }
@ -1986,7 +1887,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 订单创建人ID列表 // 订单创建人ID列表
List<Long> pkCreatorList = orderList.stream().map(SaOrderExt::getPkCreator).distinct().collect(Collectors.toList()); List<Long> pkCreatorList = orderList.stream().map(SaOrderExt::getPkCreator).distinct().collect(Collectors.toList());
// 订单创建会员列表 // 订单创建会员列表
List<CuMemberExt> memberList = memberServiceApi.findMemberByMemberId(pkCreatorList, null).getData(); List<CuMemberExt> memberList = iMemberServiceApi.findMemberByMemberId(pkCreatorList, null).getData();
// 实际扣款国家mapkey国家ID value会员ID列表 // 实际扣款国家mapkey国家ID value会员ID列表
Map<Integer, List<Long>> costMemberMap = new HashMap<>(); Map<Integer, List<Long>> costMemberMap = new HashMap<>();
@ -2266,7 +2167,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 扣款金额大于0则进行处理 // 扣款金额大于0则进行处理
// 订单下单人信息 // 订单下单人信息
CuMember cuMember = memberServiceApi.getMember(saOrder.getPkCreator()).getData(); CuMember cuMember = iMemberServiceApi.getMember(saOrder.getPkCreator()).getData();
if (!costCountry.equals(cuMember.getPkSettleCountry())) { if (!costCountry.equals(cuMember.getPkSettleCountry())) {
// 当前国家与订单创建人结算国家不同跨国报单需要转换手续费 // 当前国家与订单创建人结算国家不同跨国报单需要转换手续费
costCountry = cuMember.getPkSettleCountry(); costCountry = cuMember.getPkSettleCountry();
@ -2433,14 +2334,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return null; return null;
} }
/**
* @description: 校验自助撤单
* @author: zhang jing
* @date: 2023/11/21 15:23
* @param: [orderCancelParam, businessCode]
* @return: com.hzs.sale.order.vo.ValidateCancelOrderVO
**/
@Override @Override
public MyOrderVO checkSelfOrder(Long userId, MyOrderVO myOrderVO) { public MyOrderVO checkSelfOrder(Long userId, MyOrderVO myOrderVO) {
if (null == myOrderVO.getOrderType() || null == myOrderVO.getOrderCode()) { if (null == myOrderVO.getOrderType() || null == myOrderVO.getOrderCode()) {
@ -2460,9 +2353,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
} }
// 2024.04.01 添加需求自提订单不能自助撤单 // 2024.04.01 添加需求自提订单不能自助撤单
QueryWrapper<SaOrderSelfLog> selfLog = new QueryWrapper<>(); LambdaQueryWrapper<SaOrderSelfLog> selfLog = new LambdaQueryWrapper<>();
selfLog.eq("PK_ORDER", saOrderExt.getPkId()); selfLog.eq(SaOrderSelfLog::getPkOrder, saOrderExt.getPkId());
selfLog.orderByDesc(SystemFieldConstants.PK_ID); selfLog.orderByDesc(SaOrderSelfLog::getPkId);
List<SaOrderSelfLog> selfLogList = iSaOrderSelfLogService.list(selfLog); List<SaOrderSelfLog> selfLogList = iSaOrderSelfLogService.list(selfLog);
if (CollectionUtil.isNotEmpty(selfLogList)) { if (CollectionUtil.isNotEmpty(selfLogList)) {
SaOrderSelfLog saOrderSelfLog = selfLogList.get(0); SaOrderSelfLog saOrderSelfLog = selfLogList.get(0);
@ -2480,7 +2373,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return myOrderVO; return myOrderVO;
} }
// 验证订单国家跟会员国家是否一致是否转换过结算国 // 验证订单国家跟会员国家是否一致是否转换过结算国
CuMember cuMember = memberServiceApi.getMember(saOrderExt.getPkMember()).getData(); CuMember cuMember = iMemberServiceApi.getMember(saOrderExt.getPkMember()).getData();
if (cuMember == null) { if (cuMember == null) {
myOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.MEMBER_DOES_NOT_EXITS)); myOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.MEMBER_DOES_NOT_EXITS));
return myOrderVO; return myOrderVO;
@ -2490,7 +2383,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return myOrderVO; return myOrderVO;
} }
// 验证创建人是否还存在不存在不能撤单 // 验证创建人是否还存在不存在不能撤单
CuMember createMember = memberServiceApi.getMember(saOrderExt.getPkCreator()).getData(); CuMember createMember = iMemberServiceApi.getMember(saOrderExt.getPkCreator()).getData();
if (createMember == null) { if (createMember == null) {
myOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.CREATE_MEMBER_NOT_EXITS)); myOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.CREATE_MEMBER_NOT_EXITS));
return myOrderVO; return myOrderVO;
@ -2509,7 +2402,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
if (myOrderVO.getOrderType() == EOrderType.REGISTER_ORDER.getValue() || if (myOrderVO.getOrderType() == EOrderType.REGISTER_ORDER.getValue() ||
myOrderVO.getOrderType() == EOrderType.SPECIAL_REGISTER_ORDER.getValue()) { myOrderVO.getOrderType() == EOrderType.SPECIAL_REGISTER_ORDER.getValue()) {
//校验会员是否存在推荐或安置 //校验会员是否存在推荐或安置
if (memberServiceApi.checkLowerMember(myOrderVO.getPkMember()).getData()) { if (iMemberServiceApi.checkLowerMember(myOrderVO.getPkMember()).getData()) {
myOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.CHECK_MEMBER_LOWER_EXIST)); myOrderVO.setMsg(TransactionUtils.getContent(SaOrderMsgConstants.CHECK_MEMBER_LOWER_EXIST));
return myOrderVO; return myOrderVO;
} }
@ -2521,7 +2414,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
} }
// 查询用户伞下所有会员 // 查询用户伞下所有会员
List<CuMemberExt> cuMemberList = memberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData(); List<CuMemberExt> cuMemberList = iMemberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData();
cuMemberList.add(BeanUtil.copyProperties(cuMember, CuMemberExt.class)); cuMemberList.add(BeanUtil.copyProperties(cuMember, CuMemberExt.class));
List<OrderCancelRegisterMemberVO> memberList = new ArrayList<>(cuMemberList.size()); List<OrderCancelRegisterMemberVO> memberList = new ArrayList<>(cuMemberList.size());
// 验证伞下会员是否存在报单中心 // 验证伞下会员是否存在报单中心
@ -2718,9 +2611,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return "待抵扣订单不存在或已撤单"; return "待抵扣订单不存在或已撤单";
} }
// 订单明细必须为已付款状态 // 订单明细必须为已付款状态
QueryWrapper<SaOrderItems> orderItemsQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<SaOrderItems> orderItemsQueryWrapper = new LambdaQueryWrapper<>();
orderItemsQueryWrapper.eq("PK_ORDER", newOrder.getPkId()); orderItemsQueryWrapper.eq(SaOrderItems::getPkOrder, newOrder.getPkId());
orderItemsQueryWrapper.notIn("ORDER_STATUS", EOrderStatus.PAY.getValue()); orderItemsQueryWrapper.notIn(SaOrderItems::getOrderStatus, EOrderStatus.PAY.getValue());
List<SaOrderItems> orderItemsList = iSaOrderItemsService.list(orderItemsQueryWrapper); List<SaOrderItems> orderItemsList = iSaOrderItemsService.list(orderItemsQueryWrapper);
if (CollectionUtil.isNotEmpty(orderItemsList)) { if (CollectionUtil.isNotEmpty(orderItemsList)) {
return "待抵扣订单明细存在已合单或者已发货"; return "待抵扣订单明细存在已合单或者已发货";
@ -2733,11 +2626,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
&& newOrder.getOrderAssAchieve().equals(oldOrder.getOrderAssAchieve()) && newOrder.getOrderAssAchieve().equals(oldOrder.getOrderAssAchieve())
) { ) {
// 新订单的订单明细全部删除 // 新订单的订单明细全部删除
UpdateWrapper<SaOrderItems> newOrderItemsUpdateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<SaOrderItems> newOrderItemsUpdateWrapper = new LambdaUpdateWrapper<>();
newOrderItemsUpdateWrapper.eq("PK_ORDER", newOrder.getPkId()); newOrderItemsUpdateWrapper.eq(SaOrderItems::getPkOrder, newOrder.getPkId());
newOrderItemsUpdateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); newOrderItemsUpdateWrapper.set(SaOrderItems::getDelFlag, EDelFlag.DELETE.getValue());
newOrderItemsUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); newOrderItemsUpdateWrapper.set(SaOrderItems::getPkModified, userId);
newOrderItemsUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); newOrderItemsUpdateWrapper.set(SaOrderItems::getModifiedTime, nowDate);
iSaOrderItemsService.update(newOrderItemsUpdateWrapper); iSaOrderItemsService.update(newOrderItemsUpdateWrapper);
// 新旧订单的订单明细全部插入新订单中并且变更为未删除 // 新旧订单的订单明细全部插入新订单中并且变更为未删除

View File

@ -15,9 +15,6 @@ import lombok.experimental.Accessors;
/** /**
* 会员信息修改记录 * 会员信息修改记录
*
* @author hzs
* @since 2023-01-12
*/ */
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor