diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/account/IMemberAccountServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/account/IMemberAccountServiceApi.java index 37bf5c98..6eb06d6c 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/account/IMemberAccountServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/account/IMemberAccountServiceApi.java @@ -9,11 +9,7 @@ import java.math.BigDecimal; import java.util.List; /** - * @Description: 会员账户提供api操作实体 - * @Author: sui q - * @Time: 2022/9/5 14:27 - * @Classname: IMemberAccountServiceApi - * @PackageName: com.hzs.member.account + * 会员账户提供api操作实体 */ public interface IMemberAccountServiceApi { @@ -21,9 +17,6 @@ public interface IMemberAccountServiceApi { * 查询会员账户状态,账户信息 * * @param cuMemberAccount 会员账户条件信息 - * @return: List - * @Author: sui q - * @Date: 2022/9/5 11:57 */ R> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount); @@ -31,9 +24,6 @@ public interface IMemberAccountServiceApi { * 根据会员id 列表查询账户信息 * * @param pkMemberList 列表 - * @return: List - * @Author: sui q - * @Date: 2023/3/25 16:28 */ R> queryCuMemberAccountByPkMembers(List pkMemberList); @@ -44,7 +34,7 @@ public interface IMemberAccountServiceApi { * @param updateOrder 新订单 * @return */ - R orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder); + R orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder); /** * 订单调换货物扣费处理 @@ -55,18 +45,7 @@ public interface IMemberAccountServiceApi { * @param obj 追加后续业务实体 * @return */ - 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); + R orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj); /** * 订单退单注册会员 @@ -74,7 +53,7 @@ public interface IMemberAccountServiceApi { * @param pkMemberList 会员ID列表 * @param userId 操作用户ID */ - R orderReturnMember(List pkMemberList, Long userId); + R orderReturnMember(List pkMemberList, Long userId); /** * 订单自提退邮费 @@ -86,7 +65,7 @@ public interface IMemberAccountServiceApi { * @param userId 操作人ID * @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 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); } diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/account/dto/OrderReturnPaymentDTO.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/account/dto/OrderReturnPaymentDTO.java deleted file mode 100644 index 67b3bec1..00000000 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/account/dto/OrderReturnPaymentDTO.java +++ /dev/null @@ -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; - -} diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java index 4a7c207c..a488c6b9 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java @@ -17,6 +17,7 @@ import com.hzs.bonus.achieve.param.MemberAchieveParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.temporal.ChronoUnit; @@ -144,6 +145,7 @@ public class CuMemberAchieveServiceImpl extends ServiceImplbd-api-third - diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/provider/MemberAccountServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/provider/MemberAccountServiceProvider.java index ceeeee86..0bce26ab 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/account/provider/MemberAccountServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/account/provider/MemberAccountServiceProvider.java @@ -6,7 +6,6 @@ import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.member.account.IMemberAccountServiceApi; import com.hzs.member.account.service.ICuMemberAccountService; -import com.hzs.member.account.service.ICuMemberRechargeService; import com.hzs.member.base.service.ICuMemberBusinessService; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboService; @@ -15,42 +14,27 @@ import org.springframework.beans.factory.annotation.Autowired; import java.math.BigDecimal; import java.util.List; -/** - * @Description: - * @Author: sui q - * @Time: 2022/9/5 14:32 - * @Classname: MemberAccountServiceProvider - * @PackageName: com.hzs.member.account.provider - */ @Slf4j @DubboService public class MemberAccountServiceProvider implements IMemberAccountServiceApi { @Autowired - private ICuMemberAccountService cuMemberAccountService; + private ICuMemberAccountService iCuMemberAccountService; @Autowired private ICuMemberBusinessService iCuMemberBusinessService; - /** - * 查询会员账户状态,账户信息 - * - * @param cuMemberAccount 会员账户条件信息 - * @return: List - * @Author: sui q - * @Date: 2022/9/5 11:57 - */ @Override public R> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount) { - return R.ok(cuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount)); + return R.ok(iCuMemberAccountService.queryMemberAccountByCondition(cuMemberAccount)); } @Override public R> queryCuMemberAccountByPkMembers(List pkMemberList) { - return R.ok(cuMemberAccountService.queryCuMemberAccountByPkMembers(pkMemberList)); + return R.ok(iCuMemberAccountService.queryCuMemberAccountByPkMembers(pkMemberList)); } @Override - public R orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) { + public R orderChangeProductPre(SaOrder saOrder, SaOrder updateOrder) { try { String str = iCuMemberBusinessService.orderChangeProductPre(saOrder, updateOrder); if (null == str) { @@ -63,7 +47,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi { } @Override - public R orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) { + public R orderChangeProduct(SaOrder saOrder, SaOrder updateOrder, Long userId, Object obj) { try { iCuMemberBusinessService.orderChangeProduct(saOrder, updateOrder, userId, obj); } catch (Exception e) { @@ -73,17 +57,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi { } @Override - public R orderReturn(SaOrder saOrder, Long userId, BigDecimal changeAmount, String changeRemark) { - try { - iCuMemberBusinessService.orderReturn(saOrder, userId, changeAmount, changeRemark); - } catch (Exception e) { - return R.fail(e.getMessage()); - } - return R.ok(); - } - - @Override - public R orderReturnMember(List pkMemberList, Long userId) { + public R orderReturnMember(List pkMemberList, Long userId) { try { iCuMemberBusinessService.orderReturnMember(pkMemberList, userId); } catch (Exception e) { @@ -93,7 +67,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi { } @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 { String str = iCuMemberBusinessService.orderSelfDeliver(pkMember, pkRate, pkCountry, postage, userId); if (null != str) { @@ -106,7 +80,7 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi { } @Override - public R insertMemberTrade(SaOrder saOrder, CuMemberAccountExt cuMemberAccount) { + public R insertMemberTrade(SaOrder saOrder, CuMemberAccountExt cuMemberAccount) { try { iCuMemberBusinessService.insertMemberTrade(saOrder, cuMemberAccount); } catch (Exception e) { @@ -115,4 +89,14 @@ public class MemberAccountServiceProvider implements IMemberAccountServiceApi { 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(); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java index bfbf89e5..d92aa6f4 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java @@ -13,11 +13,6 @@ import java.math.BigDecimal; import java.util.List; import java.util.Map; -/** - * @Description: 会员服务需要保存不同的表 - * @Classname: ICuMemberBusinessService - * @PackageName: com.hzs.member.base.service - */ public interface ICuMemberBusinessService { /** @@ -87,7 +82,6 @@ public interface ICuMemberBusinessService { **/ 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); - /** - * 订单退单 - * - * @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); /** - * @description: 自助服务(修改收货地址)-生成订单 + * 自助服务(修改收货地址)-生成订单 **/ void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount); /* - * @description: 会员编号,账户类型,抽奖金额 + * 会员编号,账户类型,抽奖金额 **/ Boolean updateCuMemberAccountByDraw(Long pkMember, Integer pkCountry, Integer accountValue, BigDecimal rewardMoney); /* - * @description: 会员抽奖,购买抽奖次数支付金额 + * 会员抽奖,购买抽奖次数支付金额 **/ Boolean updateCuMemberAccountByDraw(CuMemberAccountExt cuMemberAccountExt, BigDecimal payMoney); /* - * @description: 会员抽奖,购买抽奖次数支付金额 + * 会员抽奖,购买抽奖次数支付金额 **/ Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt); @@ -194,7 +177,7 @@ public interface ICuMemberBusinessService { Boolean updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel); /* - * @description: 查询会员的安置位置 + * 查询会员的安置位置 **/ CuMember queryCuMemberPlaceDept(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve); @@ -206,4 +189,14 @@ public interface ICuMemberBusinessService { */ String handleMemberContinue(MemberContinueDTO memberContinueDTO); + /** + * 订单合单退单 + * + * @param saOrder 退单订单 + * @param userId 操作用户ID + * @return + */ + void orderReturnBatch(SaOrder saOrder, Long userId); + + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 2bd6273f..ead12a2e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -2,15 +2,17 @@ package com.hzs.member.base.service.impl; import cn.hutool.core.bean.BeanUtil; 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.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.constant.CacheConstants; 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.domain.R; import com.hzs.common.core.enums.*; 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.utils.CommonUtil; import com.hzs.common.core.utils.ComputeUtil; @@ -71,11 +73,6 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; -/** - * @Description: 会员服务需要保存不同的表, 用于处理服务内的事务 - * @Classname: CuMemberBusinessServiceImpl - * @PackageName: com.hzs.member.base.service.impl - */ @Slf4j @Service public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @@ -94,6 +91,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { ISaOrderServiceApi iSaOrderServiceApi; @DubboReference IGradeServiceApi iGradeServiceApi; + @DubboReference + IMemberSettleBonusApi iMemberSettleBonusApi; @Autowired private MemberToolsHandler memberToolsHandler; @@ -396,9 +395,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } /** + * 插入充值记录trade + * * @param saOrder 订单编号 * @param bdAccount 账户 - * @Description: 插入充值记录trade */ private CuMemberAccountExt insertRechargeTrade(SaOrder saOrder, BdAccount bdAccount) { // 扣款 扣款信息 @@ -429,9 +429,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } /** + * 插入会员的交易明细 + * * @param saOrder 订单 * @param cuMemberAccount 账户 - * @Description: 插入会员的交易明细 */ @Transactional(rollbackFor = Exception.class) @Override @@ -664,20 +665,20 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { CuMember member = iCuMemberService.getMember(saOrder.getPkMember()); //删除会员 - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("MEMBER_CODE", CommonUtil.deleteMemberCode(member.getMemberCode())); - updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue()); - updateWrapper.set("MODIFIED_TIME", DateUtils.currentDateTime()); - updateWrapper.set("PK_MODIFIED", saOrder.getPkModified()); - updateWrapper.eq("PK_ID", member.getPkId()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(CuMember::getMemberCode, CommonUtil.deleteMemberCode(member.getMemberCode())); + updateWrapper.set(CuMember::getDelFlag, EDelFlag.DELETE.getValue()); + updateWrapper.set(CuMember::getModifiedTime, DateUtils.currentDateTime()); + updateWrapper.set(CuMember::getPkModified, saOrder.getPkModified()); + updateWrapper.eq(CuMember::getPkId, member.getPkId()); iCuMemberService.update(updateWrapper); // 删除会员注册表 - UpdateWrapper updateWrapperRegister = new UpdateWrapper<>(); - updateWrapperRegister.set("DEL_FLAG", EDelFlag.DELETE.getValue()); - updateWrapperRegister.set("MODIFIED_TIME", DateUtils.currentDateTime()); - updateWrapperRegister.set("PK_MODIFIED", saOrder.getPkModified()); - updateWrapperRegister.eq("PK_MEMBER", member.getPkId()); + LambdaUpdateWrapper updateWrapperRegister = new LambdaUpdateWrapper<>(); + updateWrapperRegister.set(CuMemberRegister::getDelFlag, EDelFlag.DELETE.getValue()); + updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime()); + updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified()); + updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId()); iCuMemberRegisterService.update(updateWrapperRegister); } cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); @@ -767,7 +768,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } /** - * 插销订单,回退给创建人金额 + * 撤销订单,回退给创建人金额 * * @param pkApprove 审核人 * @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 newCuMemberTradeBonusList, List cuMemberTradeDetailList, CuMemberAccount updateMemberAccount, List cuMemberTradeList, CuMemberTrade cuMemberTrade, BigDecimal tradeMoney, AreaCurrencyDTO currencyDto) { @@ -950,7 +948,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 回退奖衔,根据订单从 cu_member_awards查询 iCuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); } - // 部分撤单 todo 发货后邮费不退,未发货退邮费 + // 部分撤单 todo 发货后邮费不退,未发货退邮费 if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) { cancelPartOrderBackAmount(pkApprove, saOrder); } 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 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 memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null); - - // 获取所有账户配置ID - List pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList()); - // 账户对应账户配置map - Map 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 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) @Override public void orderReturnMember(List pkMemberList, Long userId) { // 注册类订单,需要更新用户为已注销状态 - UpdateWrapper memberUpdateWrapper = new UpdateWrapper<>(); - memberUpdateWrapper.in(SystemFieldConstants.PK_ID, pkMemberList); - memberUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); - memberUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date()); - memberUpdateWrapper.set("CATEGORY", ECategory.LOGGED_OUT.getValue()); + LambdaUpdateWrapper memberUpdateWrapper = new LambdaUpdateWrapper<>(); + memberUpdateWrapper.in(CuMember::getPkId, pkMemberList); + memberUpdateWrapper.set(CuMember::getPkModified, userId); + memberUpdateWrapper.set(CuMember::getModifiedTime, new Date()); + memberUpdateWrapper.set(CuMember::getCategory, ECategory.LOGGED_OUT.getValue()); iCuMemberService.update(memberUpdateWrapper); // 添加会员信息修改记录 List cuMemberChangeLogList = new ArrayList<>(); @@ -1441,9 +1315,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { * @param isFirst 是否收单 * @param isFirstAchieve 受否判断首购业绩 * @param cuMemberAchieve 业绩 - * @return: Integer - * @Author: sui q - * @Date: 2023/3/15 9:35 */ private Integer getPlaceDept(Boolean isFirst, Boolean isFirstAchieve, CuMemberAchieve cuMemberAchieve, Long pkParent) { int placeDept = EPlaceDept.LEFT_DEPT.getValue(); @@ -1662,4 +1533,170 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { return null; } + @Transactional(rollbackFor = Exception.class) + @Override + public void orderReturnBatch(SaOrder saOrder, Long userId) { + // 当前时间 + Date nowDate = new Date(); +// // 交易明细数据 -- 入库使用 +// List saveMemberTradeList = new ArrayList<>(); +// // 会员账户map(key:会员ID, value:会员账户) +// Map memberAccountMap = new HashMap<>(); +// // 更新会员账户map(key:会员ID, value:会员账户) -- 入库使用 +// Map updateMemberAccountMap = new HashMap<>(); +// // 需要清除会员列表 +// List 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 memberTradeList = iCuMemberTradeService.querySourceCodeLastTrade(pkMember, orderCode, null); +// +// // 获取所有账户配置ID +// List pkAccountList = memberTradeList.stream().map(CuMemberTrade::getPkAccount).collect(Collectors.toList()); +// // 账户对应账户配置map +// Map 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 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) + ":" + "订单业务回退失败"); + } + + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberChangeLogMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberChangeLogMapper.java index 7ada64d7..8000909e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberChangeLogMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/mapper/CuMemberChangeLogMapper.java @@ -5,9 +5,6 @@ import com.hzs.common.domain.member.detail.CuMemberChangeLog; /** * 会员信息修改记录 Mapper 接口 - * - * @author hzs - * @since 2023-01-12 */ public interface CuMemberChangeLogMapper extends BaseMapper { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberChangeLogService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberChangeLogService.java index 934e2430..32ed07e0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberChangeLogService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/ICuMemberChangeLogService.java @@ -5,9 +5,6 @@ import com.hzs.common.domain.member.detail.CuMemberChangeLog; /** * 会员信息修改记录 服务类 - * - * @author hzs - * @since 2023-01-12 */ public interface ICuMemberChangeLogService extends IService { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberChangeLogServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberChangeLogServiceImpl.java index 521a50e4..ff4c32bf 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberChangeLogServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/detail/service/impl/CuMemberChangeLogServiceImpl.java @@ -8,9 +8,6 @@ import org.springframework.stereotype.Service; /** * 会员信息修改记录 服务实现类 - * - * @author hzs - * @since 2023-01-12 */ @Service public class CuMemberChangeLogServiceImpl extends ServiceImpl implements ICuMemberChangeLogService { diff --git a/bd-business/bd-business-member/src/main/resources/bootstrap.yml b/bd-business/bd-business-member/src/main/resources/bootstrap.yml index c8e643b8..eb95dce9 100644 --- a/bd-business/bd-business-member/src/main/resources/bootstrap.yml +++ b/bd-business/bd-business-member/src/main/resources/bootstrap.yml @@ -71,7 +71,7 @@ dubbo: threads: 400 cloud: # 订阅服务 - subscribed-services: bd-system, bd-third, bd-sale + subscribed-services: bd-system, bd-third, bd-sale, bd-bonus scan: # dubbo 服务扫描包(开启之后才会对外提供服务) base-packages: com.hzs.member diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java index d1472bed..20414e50 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java @@ -66,11 +66,7 @@ import java.util.*; 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 @RestController @@ -82,7 +78,9 @@ public class SaOrderBusinessController extends BaseController { @Autowired private IOrderBusinessService iOrderBusinessService; @Autowired - private ISaOrderSelfLogService saOrderSelfLogService; + private ISaOrderSelfLogService iSaOrderSelfLogService; + @Autowired + private ISaDeliverItemsService saDeliverItemsService; @Autowired private UserTokenService userTokenService; @@ -92,7 +90,7 @@ public class SaOrderBusinessController extends BaseController { @DubboReference IBusinessCommission iBusinessCommission; @DubboReference - IProductServiceApi productServiceApi; + IProductServiceApi iProductServiceApi; @DubboReference IUserServiceApi iUserServiceApi; @DubboReference @@ -102,14 +100,7 @@ public class SaOrderBusinessController extends BaseController { @DubboReference ICurrencyServiceApi iCurrencyServiceApi; @DubboReference - ISystemConfigServiceApi systemConfigServiceApi; - - private ISaDeliverItemsService saDeliverItemsService; - - @Autowired - public void setSaDeliverItemsService(ISaDeliverItemsService saDeliverItemsService) { - this.saDeliverItemsService = saDeliverItemsService; - } + ISystemConfigServiceApi iSystemConfigServiceApi; /** * 订单业务列表 @@ -138,7 +129,7 @@ public class SaOrderBusinessController extends BaseController { // 获取行政区划map Map 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) { // 省市区处理 @@ -896,7 +887,7 @@ public class SaOrderBusinessController extends BaseController { List orderCancelDetailVOList = new ArrayList<>(); if (ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue() == orderCancelParam.getCancelType()) { saOrderExt.getOrderItemsList().forEach(saOrderItems -> { - String productName = productServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); + String productName = iProductServiceApi.getProduct(saOrderItems.getPkProduct()).getData().getProductName(); OrderCancelDetailVO orderCancelDetailVO = OrderCancelDetailVO.builder() .pkId(saOrderItems.getPkId()) .productName(productName) @@ -992,7 +983,7 @@ public class SaOrderBusinessController extends BaseController { } Map productMap = new HashMap<>(ComputeUtil.mapInitCapacity(orderCancelParam.getOrderCancelDetailParamList().size())); 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); }); orderCancelParam.getOrderCancelDetailParamList().forEach(orderCancelDetailParam -> { @@ -1004,7 +995,6 @@ public class SaOrderBusinessController extends BaseController { return null; } - /** * 订单业务列表 * @@ -1018,7 +1008,7 @@ public class SaOrderBusinessController extends BaseController { if (selfPickUpParam.getEndDate() != null) { selfPickUpParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, selfPickUpParam.getEndDate())); } - List orderSelfLogList = saOrderSelfLogService.querySaOrderSelfLog(selfPickUpParam); + List orderSelfLogList = iSaOrderSelfLogService.querySaOrderSelfLog(selfPickUpParam); 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()) { return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY); } @@ -1057,7 +1047,7 @@ public class SaOrderBusinessController extends BaseController { return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.ORDER_CURRENT_DATE)); } selfPickUpParam.setPkCreator(SecurityUtils.getUserId()); - saOrderSelfLogService.updateSaOrderSelfLog(selfPickUpParam, selfPickUpParam.getPkId()); + iSaOrderSelfLogService.updateSaOrderSelfLog(selfPickUpParam, selfPickUpParam.getPkId()); return AjaxResult.success(selfPickUpParam); } } @@ -1073,7 +1063,7 @@ public class SaOrderBusinessController extends BaseController { if (selfPickUpParam.getPkId() == null) { 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()) { return AjaxResult.error(SaOrderMsgConstants.ORDER_EMPTY); } @@ -1134,11 +1124,9 @@ public class SaOrderBusinessController extends BaseController { } /** + * 撤销订单 + * * @param orderQueryParam 订单参数 - * @Description: 撤销订单 - * @return: AjaxResult - * @Author: sui q - * @Date: 2022/8/27 16:56 */ @PostMapping("/validate-bind") public AjaxResult validateOrderBindBarCode(@RequestBody OrderQueryParam orderQueryParam) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java index 16075edb..08bb4ffc 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java @@ -16,11 +16,7 @@ import java.util.List; import java.util.Map; /** - * @Description: 订单业务办理服务 - * @Author: jiang chao - * @Time: 2023/2/1 17:49 - * @Classname: IOrderBusinessService - * @PackageName: com.hzs.sale.order.service + * 订单业务办理服务 */ public interface IOrderBusinessService { @@ -152,9 +148,6 @@ public interface IOrderBusinessService { * * @param orderCancelParam 参数 * @param businessCode 审核验证的时候需要去掉自己 - * @return: Boolean - * @Author: sui q - * @Date: 2023/3/22 11:40 */ ValidateCancelOrderVO validateCancelOrder(OrderCancelParam orderCancelParam, String... businessCode); @@ -182,9 +175,6 @@ public interface IOrderBusinessService { * * @param approvalBusinessResultDTO 参数 * @param approvalBusiness 审核类型 - * @return: void - * @Author: sui q - * @Date: 2023/3/25 10:43 */ String cancelOrderApprovalAgree(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness); @@ -193,9 +183,6 @@ public interface IOrderBusinessService { * * @param approvalBusinessResultDTO 参数 * @param approvalBusiness 审核类型 - * @return: void - * @Author: sui q - * @Date: 2023/3/25 10:43 */ String cancelOrderApprovalReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, Integer approvalBusiness); @@ -232,11 +219,7 @@ public interface IOrderBusinessService { EAgentApprovalStatus approvalStatus, String remark); /** - * @description: 校验自助撤单 - * @author: zhang jing - * @date: 2023/11/21 15:24 - * @param: [orderCancelParam, businessCode] - * @return: com.hzs.sale.order.vo.ValidateCancelOrderVO + * 校验自助撤单 **/ MyOrderVO checkSelfOrder(Long userId, MyOrderVO myOrderVO); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index bc7a9cb0..2f325608 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -4,8 +4,8 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.hzs.activity.pick.service.IAcPickService; import com.hzs.bonus.settle.IMemberSettleBonusApi; 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.product.service.IBdProductService; 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.ICurrencyServiceApi; import com.hzs.system.base.ISystemConfigServiceApi; @@ -76,11 +75,7 @@ import java.util.*; 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 @Service @@ -114,7 +109,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { @DubboReference IMemberAccountServiceApi iMemberAccountServiceApi; @DubboReference - IMemberServiceApi memberServiceApi; + IMemberServiceApi iMemberServiceApi; @DubboReference ICurrencyServiceApi iCurrencyServiceApi; @DubboReference @@ -122,7 +117,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { @DubboReference IAccountServiceApi iAccountServiceApi; @DubboReference - ISystemConfigServiceApi systemConfigServiceApi; + ISystemConfigServiceApi iSystemConfigServiceApi; @DubboReference IAreaServiceApi iAreaServiceApi; @@ -321,7 +316,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 扣款业务处理 if (null != businessCommissionDTO) { - R tmpR = iBusinessCommission.businessCommissionSubmit(businessCommissionDTO); + R tmpR = iBusinessCommission.businessCommissionSubmit(businessCommissionDTO); if (!tmpR.isSuccess()) { log.error("订单业务处理扣款失败: {}", 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) .pkCreator(userId) .tradeType(EApprovalBusiness.ORDER_CHANGE_ADDRESS.getValue()) @@ -550,11 +545,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { if (CollectionUtil.isNotEmpty(saDeliverItemsList)) { // 删除发货明细数据 List deliverItemsIdList = saDeliverItemsList.stream().map(SaDeliverItems::getPkId).collect(Collectors.toList()); - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.in(SystemFieldConstants.PK_ID, deliverItemsIdList); - updateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); - updateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); - updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(SaDeliverItems::getPkId, deliverItemsIdList); + updateWrapper.set(SaDeliverItems::getDelFlag, EDelFlag.DELETE.getValue()); + updateWrapper.set(SaDeliverItems::getPkModified, userId); + updateWrapper.set(SaDeliverItems::getModifiedTime, nowDate); iSaDeliverItemsService.update(updateWrapper); // 删除发货明细数据后,处理是否需要删除发货单 @@ -646,9 +641,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { saOrder, afterData, userId, pkCountry, nowDate); // 添加校验,订单详情是否已经发货 - QueryWrapper orderItemsQueryWrapper = new QueryWrapper<>(); - orderItemsQueryWrapper.in(SystemFieldConstants.PK_ID, changeIdList); - orderItemsQueryWrapper.in("ORDER_STATUS", EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue()); + LambdaQueryWrapper orderItemsQueryWrapper = new LambdaQueryWrapper<>(); + orderItemsQueryWrapper.in(SaOrderItems::getPkId, changeIdList); + orderItemsQueryWrapper.in(SaOrderItems::getOrderStatus, EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue()); if (iSaOrderItemsService.count(orderItemsQueryWrapper) > 0) { // 订单已经发货,不能进行调换货物 return "订单已经发货,不能进行调换货物"; @@ -674,13 +669,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { if (orderCostFlag) { // 订单调换货物扣费处理 - R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto); + R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto); if (!resultR.isSuccess()) { throw new BaseException(resultR.getMsg()); } } else if (null != dto) { // 订单总价未变化,但是需要手续费 - R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto); + R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto); if (!resultR.isSuccess()) { throw new BaseException(resultR.getMsg()); } @@ -777,7 +772,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { updateOrder.setModifiedTime(nowDate); // 校验订单支付金额是否足够 - R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder); + R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder); if (!resultR.isSuccess()) { return resultR.getMsg(); } @@ -861,9 +856,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { saOrder, afterData, userId, pkCountry, nowDate); // 添加校验,订单详情是否已经发货 - QueryWrapper orderItemsQueryWrapper = new QueryWrapper<>(); - orderItemsQueryWrapper.in(SystemFieldConstants.PK_ID, changeIdList); - orderItemsQueryWrapper.in("ORDER_STATUS", EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue()); + LambdaQueryWrapper orderItemsQueryWrapper = new LambdaQueryWrapper<>(); + orderItemsQueryWrapper.in(SaOrderItems::getPkId, changeIdList); + orderItemsQueryWrapper.in(SaOrderItems::getOrderStatus, EOrderStatus.DELIVERED.getValue(), EOrderStatus.RECEIVED.getValue()); if (iSaOrderItemsService.count(orderItemsQueryWrapper) > 0) { // 订单已经发货,不能进行调换货物 return "订单已经发货,不能进行调换货物"; @@ -890,7 +885,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { if (orderCostFlag) { // 订单调换货物扣费处理 - R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, null); + R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, null); if (!resultR.isSuccess()) { log.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()) { // 不免付,驳回需要退款 // 驳回业务处理(扣款回退) - R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() + R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() .pkCountry(pkCountry) .pkCreator(userId) .tradeType(EApprovalBusiness.ORDER_CHANGE_PRODUCT.getValue()) @@ -979,13 +974,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { if (CollectionUtil.isNotEmpty(saDeliverItemsList)) { // 删除发货明细数据 List deliverItemsIdList = saDeliverItemsList.stream().map(SaDeliverItems::getPkId).collect(Collectors.toList()); - UpdateWrapper deliverItemsUpdateWrapper = new UpdateWrapper<>(); - deliverItemsUpdateWrapper.in(SystemFieldConstants.PK_ID, deliverItemsIdList); - deliverItemsUpdateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); - deliverItemsUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); - deliverItemsUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); + LambdaUpdateWrapper deliverItemsUpdateWrapper = new LambdaUpdateWrapper<>(); + deliverItemsUpdateWrapper.in(SaDeliverItems::getPkId, deliverItemsIdList); + deliverItemsUpdateWrapper.set(SaDeliverItems::getDelFlag, EDelFlag.DELETE.getValue()); + deliverItemsUpdateWrapper.set(SaDeliverItems::getPkModified, userId); + deliverItemsUpdateWrapper.set(SaDeliverItems::getModifiedTime, nowDate); // 逻辑删除旧发货单明细,并标记为换货 - deliverItemsUpdateWrapper.set("EXCHANGE_GOODS", EYesNo.YES.getIntValue()); + deliverItemsUpdateWrapper.set(SaDeliverItems::getExchangeGoods, EYesNo.YES.getIntValue()); iSaDeliverItemsService.update(deliverItemsUpdateWrapper); // 删除发货明细数据后,处理是否需要删除发货单 @@ -996,16 +991,16 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { } if (CollectionUtil.isNotEmpty(changeIdList)) { // 根据修改的订单明细ID,删除 已付款、已合单 之外的订单明细 - UpdateWrapper orderItemsUpdateWrapper = new UpdateWrapper<>(); - orderItemsUpdateWrapper.eq("PK_ORDER", orderPkId); - orderItemsUpdateWrapper.notIn(SystemFieldConstants.PK_ID, changeIdList); - orderItemsUpdateWrapper.in("ORDER_STATUS", Arrays.asList(EOrderStatus.PAY.getValue(), EOrderStatus.SHIPPING.getValue())); - orderItemsUpdateWrapper.eq(SystemFieldConstants.DEL_FLAG, EDelFlag.UN_DELETE.getValue()); - orderItemsUpdateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); + LambdaUpdateWrapper orderItemsUpdateWrapper = new LambdaUpdateWrapper<>(); + orderItemsUpdateWrapper.eq(SaOrderItems::getPkOrder, orderPkId); + orderItemsUpdateWrapper.notIn(SaOrderItems::getPkId, changeIdList); + orderItemsUpdateWrapper.in(SaOrderItems::getOrderStatus, Arrays.asList(EOrderStatus.PAY.getValue(), EOrderStatus.SHIPPING.getValue())); + orderItemsUpdateWrapper.eq(SaOrderItems::getDelFlag, EDelFlag.UN_DELETE.getValue()); + orderItemsUpdateWrapper.set(SaOrderItems::getDelFlag, EDelFlag.DELETE.getValue()); // 逻辑删除旧订单明细,并标记为换货 - orderItemsUpdateWrapper.set("EXCHANGE_GOODS", EYesNo.YES.getIntValue()); - orderItemsUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); - orderItemsUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); + orderItemsUpdateWrapper.set(SaOrderItems::getExchangeGoods, EYesNo.YES.getIntValue()); + orderItemsUpdateWrapper.set(SaOrderItems::getPkModified, userId); + orderItemsUpdateWrapper.set(SaOrderItems::getModifiedTime, nowDate); iSaOrderItemsService.update(orderItemsUpdateWrapper); } @@ -1078,31 +1073,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 订单退单编号列表 List orderCodeList = param.getOrderReturnParamList().stream().map(OrderReturnParam::getOrderCode).collect(Collectors.toList()); - // 2023.09.22 根据需求调整,目前只能撤单个用户下的非注册单或者所有单,涉及金额等不需要处理,只需要处理业绩上传 - -// // 订单前置校验等 -// 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 tmpSaOrderMap = validateCancelOrderVO.getSaOrderMap(); -// // 将退单人本身单号加入到map中 -// tmpSaOrderMap.put(validateCancelOrderVO.getSaOrderExt().getPkId(), validateCancelOrderVO.getSaOrderExt()); -// // 订单转为以orderCode为key的map -// Map saOrderMap = new HashMap<>(); -// for (Long key : tmpSaOrderMap.keySet()) { -// SaOrder saOrder = tmpSaOrderMap.get(key); -// saOrderMap.put(saOrder.getOrderCode(), saOrder); -// } - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.in("ORDER_CODE", orderCodeList); - queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SaOrder::getOrderCode, orderCodeList); + queryWrapper.eq(SaOrder::getPkCountry, pkCountry); List saOrderList = iSaOrderService.list(queryWrapper); if (CollectionUtil.isEmpty(saOrderList)) { return "订单不存在"; @@ -1111,7 +1084,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { 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)) { // 周结 @@ -1209,107 +1182,37 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 订单修改后实体 OrderReturnDTO orderReturnDTO = JSONUtil.toBean(saOrderChargeLog.getAfterData(), OrderReturnDTO.class); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("ORDER_CODE", orderReturnDTO.getOrderCode()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SaOrder::getOrderCode, orderReturnDTO.getOrderCode()); 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 orderIdList = new ArrayList<>(); -// -// // 合并退单伞下订单 -// Map tmpSaOrderMap = validateCancelOrderVO.getSaOrderMap(); -// // 将退单人本身单号加入到map中 -// tmpSaOrderMap.put(validateCancelOrderVO.getSaOrderExt().getPkId(), validateCancelOrderVO.getSaOrderExt()); -// // 订单转为以orderCode为key的map -// Map saOrderMap = new HashMap<>(); -// for (Long key : tmpSaOrderMap.keySet()) { -// SaOrder saOrder = tmpSaOrderMap.get(key); -// saOrderMap.put(saOrder.getOrderCode(), saOrder); -// -// orderIdList.add(saOrder.getPkId()); -// } - -// // 调用扣款DTO列表 -// List 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())) { // 处理订单修改记录成功 // 订单、订单明细状态变更为已删除 iSaOrderService.deleteOrderAndItems(Collections.singletonList(saOrder.getPkId()), userId, pkCountry); - // 根据订单退业绩 - 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()) { - // 乐学升级需要抽除代金券 + if (EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrder.getOrderType()) { + // 乐学升级需要扣除代金券 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; } -// // 根据订单原路退回支付信息 -// 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); } @@ -1377,7 +1280,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { orderCancelParam.getCancelType().equals(ECancelOrderType.OTHER_CANCEL_PART_ORDER.getValue())) { // 验证订单时间,只能撤销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 (DateUtils.compareDateAfter(DateUtils.parseStringToDate(DateUtils.getRecentlyTuesday(DateUtils.currentDate())), saOrderExt.getPayTime())) { 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) { validateCancelOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.MEMBER_DOES_NOT_EXITS)); return validateCancelOrderVO; @@ -1402,7 +1305,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return validateCancelOrderVO; } // 验证创建人是否还存在,不存在不能撤单 - CuMember createMember = memberServiceApi.getMember(saOrderExt.getPkCreator()).getData(); + CuMember createMember = iMemberServiceApi.getMember(saOrderExt.getPkCreator()).getData(); if (createMember == null) { validateCancelOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.CREATE_MEMBER_NOT_EXITS)); return validateCancelOrderVO; @@ -1461,7 +1364,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { if (orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_CANCEL_ORDER.getValue()) || orderCancelParam.getCancelType().equals(ECancelOrderType.MERGE_RETREAT_ORDER.getValue())) { // 查询用户伞下所有会员 - List cuMemberList = memberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData(); + List cuMemberList = iMemberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData(); cuMemberList.add(BeanUtil.copyProperties(cuMember, CuMemberExt.class)); List memberList = new ArrayList<>(cuMemberList.size()); // 验证,伞下会员是否存在报单中心 @@ -1539,11 +1442,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { } /** + * 根据订单获取 + * * @param pkMemberList 伞下会员 - * @Description: 根据订单获取 - * @return: Map - * @Author: sui q - * @Date: 2023/3/25 16:33 */ private Map getRevokeMemberBySaOrder(List pkMemberList) { List cuMemberAccountList = iMemberAccountServiceApi.queryCuMemberAccountByPkMembers(pkMemberList).getData(); @@ -1645,7 +1546,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 封装撤单后的数据 // 保存撤单记录,存在整单撤销 SaOrderExt saOrderExt = validateCancelOrderVO.getSaOrderExt(); - CuMember cuMember = memberServiceApi.getMember(saOrderExt.getPkMember()).getData(); + CuMember cuMember = iMemberServiceApi.getMember(saOrderExt.getPkMember()).getData(); orderCancelParam.setMemberCode(cuMember.getMemberCode()); orderCancelParam.setMemberName(cuMember.getMemberName()); 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())) { // 更新订单修改记录成功 // 驳回业务处理(扣款回退) - R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() + R resultR = iBusinessCommission.businessCommissionReject(BusinessCommissionDTO.builder() .pkCountry(pkCountry) .pkCreator(userId) .tradeType(eApprovalBusiness.getValue()) @@ -1890,11 +1791,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { @Override public List getSaOrderChargeLogs(ApprovalBusinessResultDTO resultDTO, Integer chargeType) { // 查询订单修改记录 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("CHARGE_TYPE", chargeType); - queryWrapper.eq("BUSINESS_CODE", resultDTO.getBusinessCode()); - queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, resultDTO.getLoginUser().getDataCountry()); - queryWrapper.orderByAsc(SystemFieldConstants.PK_ID); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SaOrderChargeLog::getChargeType, chargeType); + queryWrapper.eq(SaOrderChargeLog::getBusinessCode, resultDTO.getBusinessCode()); + queryWrapper.eq(SaOrderChargeLog::getPkCountry, resultDTO.getLoginUser().getDataCountry()); + queryWrapper.orderByAsc(SaOrderChargeLog::getPkId); return iSaOrderChargeLogService.list(queryWrapper); } @@ -1913,15 +1814,15 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { Integer pkCountry, Long userId, EAgentApprovalStatus approvalStatus, String remark) { // 处理订单修改记录 - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("CHARGE_TYPE", chargeType.getValue()); - updateWrapper.eq("BUSINESS_CODE", businessCode); - updateWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry); - updateWrapper.eq("APPROVAL_STATUS", EAgentApprovalStatus.UNAPPROVED.getValue()); - updateWrapper.set("APPROVAL_STATUS", approvalStatus.getValue()); - updateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); - updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date()); - updateWrapper.set("REMARK", remark); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(SaOrderChargeLog::getChargeType, chargeType.getValue()); + updateWrapper.eq(SaOrderChargeLog::getBusinessCode, businessCode); + updateWrapper.eq(SaOrderChargeLog::getPkCountry, pkCountry); + updateWrapper.eq(SaOrderChargeLog::getApprovalStatus, EAgentApprovalStatus.UNAPPROVED.getValue()); + updateWrapper.set(SaOrderChargeLog::getApprovalStatus, approvalStatus.getValue()); + updateWrapper.set(SaOrderChargeLog::getPkModified, userId); + updateWrapper.set(SaOrderChargeLog::getModifiedTime, new Date()); + updateWrapper.set(SaOrderChargeLog::getRemark, remark); return iSaOrderChargeLogService.update(updateWrapper); } @@ -1986,7 +1887,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 订单创建人ID列表 List pkCreatorList = orderList.stream().map(SaOrderExt::getPkCreator).distinct().collect(Collectors.toList()); // 订单创建会员列表 - List memberList = memberServiceApi.findMemberByMemberId(pkCreatorList, null).getData(); + List memberList = iMemberServiceApi.findMemberByMemberId(pkCreatorList, null).getData(); // 实际扣款国家map(key:国家ID, value:会员ID列表) Map> costMemberMap = new HashMap<>(); @@ -2266,7 +2167,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { // 扣款金额大于0,则进行处理 // 订单下单人信息 - CuMember cuMember = memberServiceApi.getMember(saOrder.getPkCreator()).getData(); + CuMember cuMember = iMemberServiceApi.getMember(saOrder.getPkCreator()).getData(); if (!costCountry.equals(cuMember.getPkSettleCountry())) { // 当前国家与订单创建人结算国家不同,跨国报单需要转换手续费 costCountry = cuMember.getPkSettleCountry(); @@ -2433,14 +2334,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return null; } - - /** - * @description: 校验自助撤单 - * @author: zhang jing - * @date: 2023/11/21 15:23 - * @param: [orderCancelParam, businessCode] - * @return: com.hzs.sale.order.vo.ValidateCancelOrderVO - **/ @Override public MyOrderVO checkSelfOrder(Long userId, MyOrderVO myOrderVO) { if (null == myOrderVO.getOrderType() || null == myOrderVO.getOrderCode()) { @@ -2460,9 +2353,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { } // 2024.04.01 添加需求,自提订单不能自助撤单 - QueryWrapper selfLog = new QueryWrapper<>(); - selfLog.eq("PK_ORDER", saOrderExt.getPkId()); - selfLog.orderByDesc(SystemFieldConstants.PK_ID); + LambdaQueryWrapper selfLog = new LambdaQueryWrapper<>(); + selfLog.eq(SaOrderSelfLog::getPkOrder, saOrderExt.getPkId()); + selfLog.orderByDesc(SaOrderSelfLog::getPkId); List selfLogList = iSaOrderSelfLogService.list(selfLog); if (CollectionUtil.isNotEmpty(selfLogList)) { SaOrderSelfLog saOrderSelfLog = selfLogList.get(0); @@ -2480,7 +2373,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return myOrderVO; } // 验证订单国家跟会员国家是否一致,是否转换过结算国 - CuMember cuMember = memberServiceApi.getMember(saOrderExt.getPkMember()).getData(); + CuMember cuMember = iMemberServiceApi.getMember(saOrderExt.getPkMember()).getData(); if (cuMember == null) { myOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.MEMBER_DOES_NOT_EXITS)); return myOrderVO; @@ -2490,7 +2383,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return myOrderVO; } // 验证创建人是否还存在,不存在不能撤单 - CuMember createMember = memberServiceApi.getMember(saOrderExt.getPkCreator()).getData(); + CuMember createMember = iMemberServiceApi.getMember(saOrderExt.getPkCreator()).getData(); if (createMember == null) { myOrderVO.setMsg(TransactionUtils.getContent(MemberMsgConstants.CREATE_MEMBER_NOT_EXITS)); return myOrderVO; @@ -2509,7 +2402,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { if (myOrderVO.getOrderType() == EOrderType.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)); return myOrderVO; } @@ -2521,7 +2414,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { } // 查询用户伞下所有会员 - List cuMemberList = memberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData(); + List cuMemberList = iMemberServiceApi.queryPlaceSponsorUnderUmbrella(saOrderExt.getPkMember()).getData(); cuMemberList.add(BeanUtil.copyProperties(cuMember, CuMemberExt.class)); List memberList = new ArrayList<>(cuMemberList.size()); // 验证,伞下会员是否存在报单中心 @@ -2718,9 +2611,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return "待抵扣订单不存在或已撤单"; } // 订单明细必须为已付款状态 - QueryWrapper orderItemsQueryWrapper = new QueryWrapper<>(); - orderItemsQueryWrapper.eq("PK_ORDER", newOrder.getPkId()); - orderItemsQueryWrapper.notIn("ORDER_STATUS", EOrderStatus.PAY.getValue()); + LambdaQueryWrapper orderItemsQueryWrapper = new LambdaQueryWrapper<>(); + orderItemsQueryWrapper.eq(SaOrderItems::getPkOrder, newOrder.getPkId()); + orderItemsQueryWrapper.notIn(SaOrderItems::getOrderStatus, EOrderStatus.PAY.getValue()); List orderItemsList = iSaOrderItemsService.list(orderItemsQueryWrapper); if (CollectionUtil.isNotEmpty(orderItemsList)) { return "待抵扣订单明细存在已合单或者已发货"; @@ -2733,11 +2626,11 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { && newOrder.getOrderAssAchieve().equals(oldOrder.getOrderAssAchieve()) ) { // 新订单的订单明细全部删除 - UpdateWrapper newOrderItemsUpdateWrapper = new UpdateWrapper<>(); - newOrderItemsUpdateWrapper.eq("PK_ORDER", newOrder.getPkId()); - newOrderItemsUpdateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue()); - newOrderItemsUpdateWrapper.set(SystemFieldConstants.PK_MODIFIED, userId); - newOrderItemsUpdateWrapper.set(SystemFieldConstants.MODIFIED_TIME, nowDate); + LambdaUpdateWrapper newOrderItemsUpdateWrapper = new LambdaUpdateWrapper<>(); + newOrderItemsUpdateWrapper.eq(SaOrderItems::getPkOrder, newOrder.getPkId()); + newOrderItemsUpdateWrapper.set(SaOrderItems::getDelFlag, EDelFlag.DELETE.getValue()); + newOrderItemsUpdateWrapper.set(SaOrderItems::getPkModified, userId); + newOrderItemsUpdateWrapper.set(SaOrderItems::getModifiedTime, nowDate); iSaOrderItemsService.update(newOrderItemsUpdateWrapper); // 新旧订单的订单明细全部插入新订单中,并且变更为未删除 diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuMemberChangeLog.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuMemberChangeLog.java index cc557f60..3da2c49f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuMemberChangeLog.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/detail/CuMemberChangeLog.java @@ -15,9 +15,6 @@ import lombok.experimental.Accessors; /** * 会员信息修改记录 - * - * @author hzs - * @since 2023-01-12 */ @Builder @AllArgsConstructor