From 10ad2e710d2bd52aac31d5d63a7bb6beae76b6a8 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 07 Nov 2023 14:35:32 +0800 Subject: [PATCH] 用户列表增加搜索条件 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 320 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 308 insertions(+), 12 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java index 3de0c88..0a1ff03 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java @@ -2,13 +2,15 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; -import cc.mrbird.febs.mall.dto.DeliverGoodsDto; -import cc.mrbird.febs.mall.dto.MallOrderInfoDto; -import cc.mrbird.febs.mall.dto.MallOrderRefundDto; +import cc.mrbird.febs.common.enumerates.FlowTypeEnum; +import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.utils.RedisUtils; +import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IAdminMallOrderService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; @@ -19,12 +21,15 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.List; @Slf4j @Service @RequiredArgsConstructor +@Transactional public class AdminMallOrderService extends ServiceImpl<MallOrderInfoMapper, MallOrderInfo> implements IAdminMallOrderService { private final MallOrderInfoMapper mallOrderInfoMapper; @@ -37,14 +42,42 @@ private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper; + private final MallOrderRefundAddressMapper mallOrderRefundAddressMapper; + + private final MallGoodsCommentMapper mallGoodsCommentMapper; + private final MallMoneyFlowMapper mallMoneyFlowMapper; private final IApiMallMemberWalletService iApiMallMemberWalletService; + + private final MallMemberPaymentMapper mallMemberPaymentMapper; + + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final IMallMoneyFlowService mallMoneyFlowService; + + + @Override + public IPage<MallOrderInfo> findOrderListInPage(MallOrderInfo mallOrderInfo, QueryRequest request) { + Page<MallOrderInfo> page = new Page<>(request.getPageNum(), request.getPageSize()); + return this.baseMapper.selectInPage(mallOrderInfo, page); + } @Override public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { Page<AdminMallOrderInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<AdminMallOrderInfoVo> adminMallOrderInfoVos = this.baseMapper.selectOrderListInPage(page, mallOrderInfo); +// List<AdminMallOrderInfoVo> records = adminMallOrderInfoVos.getRecords(); +// if(CollUtil.isNotEmpty(records)){ +// for(AdminMallOrderInfoVo adminMallOrderInfoVo : records){ +// Long id = adminMallOrderInfoVo.getId(); +// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(id); +// StringBuffer stringBuffer = new StringBuffer(); +// for(MallOrderItem mallOrderItem : mallOrderItemList){ +// stringBuffer.append(mallOrderItem.getGoodsName()+"*"+mallOrderItem.getCnt()+";"); +// } +// adminMallOrderInfoVo.setGoodsName(stringBuffer.toString()); +// } +// } return adminMallOrderInfoVos; } @@ -125,13 +158,42 @@ if(ObjectUtil.isEmpty(mallOrderRefund)){ return new FebsResponse().fail().message("系统繁忙,请刷新重试"); } - mallOrderRefund.setStatus(2); + Integer status = mallOrderRefund.getStatus(); + if(status != 1){ + return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面"); + } + mallOrderRefund.setStatus(5); mallOrderRefundMapper.updateById(mallOrderRefund); + + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId()); + mallOrderInfo.setStatus(6); + mallOrderInfoMapper.updateById(mallOrderInfo); + + if(!"微信支付".equals(mallOrderInfo.getPayMethod()) && !"支付宝支付".equals(mallOrderInfo.getPayMethod())){ + BigDecimal amount = mallOrderRefund.getAmount(); + //用户钱包增加对应的余额 + iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId()); + + mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + + //积分池减少对应的数值 + String redisKey = "scorePool"; + String scorePoolRedis = redisUtils.getString(redisKey); + if(StrUtil.isBlank(scorePoolRedis)){ + redisUtils.set(redisKey,0,0L); + } + BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey)); + if(scorePoolOld.compareTo(amount) < 0){ + redisUtils.set(redisKey,0,0L); + }else{ + redisUtils.set(redisKey,scorePoolOld.subtract(amount).intValue(),0L); + } + } MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); mallOrderRefundOperation.setRefundId(mallOrderRefund.getId()); mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId()); - mallOrderRefundOperation.setContent("已同意退款申请"); + mallOrderRefundOperation.setContent("已同意退款不退货申请"); mallOrderRefundOperationMapper.insert(mallOrderRefundOperation); return new FebsResponse().success(); @@ -143,6 +205,10 @@ if(ObjectUtil.isEmpty(mallOrderRefund)){ return new FebsResponse().fail().message("系统繁忙,请刷新重试"); } + Integer status = mallOrderRefund.getStatus(); + if(status != 1){ + return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面"); + } mallOrderRefund.setStatus(3); mallOrderRefundMapper.updateById(mallOrderRefund); @@ -151,15 +217,24 @@ mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId()); mallOrderRefundOperation.setContent("不同意退款申请"); mallOrderRefundOperationMapper.insert(mallOrderRefundOperation); + //恢复订单状态 + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId()); + mallOrderInfo.setStatus(mallOrderRefund.getBeforeStatus()); + mallOrderInfoMapper.updateById(mallOrderInfo); return new FebsResponse().success(); } + private final RedisUtils redisUtils; @Override public FebsResponse refundConfirm(Long id) { MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); if(ObjectUtil.isEmpty(mallOrderRefund)){ return new FebsResponse().fail().message("系统繁忙,请刷新重试"); + } + Integer status = mallOrderRefund.getStatus(); + if(status != 4){ + return new FebsResponse().fail().message("申请记录不是已提交物流信息状态,请刷新页面"); } mallOrderRefund.setStatus(5); mallOrderRefundMapper.updateById(mallOrderRefund); @@ -177,19 +252,240 @@ mallOrderInfo.setStatus(6); mallOrderInfoMapper.updateById(mallOrderInfo); + BigDecimal refundAmount = mallOrderRefund.getAmount(); //用户钱包增加对应的余额 - iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId()); + iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId()); + //积分池减少对应的数值 + String redisKey = "scorePool"; + String scorePoolRedis = redisUtils.getString(redisKey); + if(StrUtil.isBlank(scorePoolRedis)){ + redisUtils.set(redisKey,0,0L); + } + BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey)); + if(scorePoolOld.compareTo(refundAmount) < 0){ + redisUtils.set(redisKey,0,0L); + }else{ + redisUtils.set(redisKey,scorePoolOld.subtract(refundAmount).intValue(),0L); + } //新增一条资金流水 - MallMoneyFlow mallMoneyFlow = new MallMoneyFlow(); - mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId()); - mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo()); - mallMoneyFlow.setType(4); - mallMoneyFlow.setAmount(mallOrderInfo.getAmount()); - mallMoneyFlowMapper.insert(mallMoneyFlow); + mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + return new FebsResponse().success(); + } + + @Override + public IPage<AdminMallOrderRefundAddressVo> getMallOrderRefundAddressInPage(MallOrderRefundAddressDto mallOrderRefundAddressDto, QueryRequest request) { + Page<AdminMallOrderRefundAddressVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallOrderRefundAddressVo> adminMallOrderRefundAddressVos = mallOrderRefundAddressMapper.getMallOrderRefundAddressInPage(page, mallOrderRefundAddressDto); + return adminMallOrderRefundAddressVos; + } + + @Override + public AdminMallOrderRefundAddressVo getMallOrderRefundAddressInfoById(long id) { + AdminMallOrderRefundAddressVo AdminMallOrderRefundAddressVo = mallOrderRefundAddressMapper.getMallOrderRefundAddressInfoById(id); + return AdminMallOrderRefundAddressVo; + } + + @Override + public FebsResponse addressUpdate(AddressUpdateDto addressUpdateDto) { + Long id = addressUpdateDto.getId(); + MallOrderRefundAddress mallOrderRefundAddress = mallOrderRefundAddressMapper.selectById(id); + mallOrderRefundAddress.setName(addressUpdateDto.getName()); + mallOrderRefundAddress.setPhone(addressUpdateDto.getPhone()); + mallOrderRefundAddress.setAddress(addressUpdateDto.getAddress()); + mallOrderRefundAddressMapper.updateById(mallOrderRefundAddress); + return new FebsResponse().success(); + } + + @Override + public FebsResponse deleteAddress(Long id) { + mallOrderRefundAddressMapper.deleteById(id); + return new FebsResponse().success(); + } + + @Override + public FebsResponse addAddress(AddAddressDto addAddressDto) { + MallOrderRefundAddress mallOrderRefundAddress = new MallOrderRefundAddress(); + mallOrderRefundAddress.setName(addAddressDto.getName()); + mallOrderRefundAddress.setPhone(addAddressDto.getPhone()); + mallOrderRefundAddress.setAddress(addAddressDto.getAddress()); + mallOrderRefundAddressMapper.insert(mallOrderRefundAddress); + return new FebsResponse().success(); + } + + @Override + public List<AdminAddAddressTreeVo> getRefundAddress() { + List<AdminAddAddressTreeVo> list = mallOrderRefundAddressMapper.getRefundAddress(); + return list; + } + + @Override + public FebsResponse withAddressUpdate(WithAddressUpdateDto withAddressUpdateDto) { + Long addressId = withAddressUpdateDto.getAddressId(); + MallOrderRefundAddress mallOrderRefundAddress = mallOrderRefundAddressMapper.selectById(addressId); + + MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(withAddressUpdateDto.getId()); + if(ObjectUtil.isEmpty(mallOrderRefund)){ + return new FebsResponse().fail().message("系统繁忙,请刷新重试"); + } + Integer status = mallOrderRefund.getStatus(); + if(status != 1){ + return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面"); + } + mallOrderRefund.setStatus(2); + mallOrderRefund.setName(mallOrderRefundAddress.getName()); + mallOrderRefund.setPhone(mallOrderRefundAddress.getPhone()); + mallOrderRefund.setAddress(mallOrderRefundAddress.getAddress()); + mallOrderRefundMapper.updateById(mallOrderRefund); + + MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); + mallOrderRefundOperation.setRefundId(mallOrderRefund.getId()); + mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId()); + mallOrderRefundOperation.setContent("已同意退款退货申请"); + mallOrderRefundOperationMapper.insert(mallOrderRefundOperation); return new FebsResponse().success(); } + @Override + public AdminMallOrderRefundVo getMallOrderRefundInfoById(long id) { + return mallOrderRefundMapper.getMallOrderRefundInfoById(id); + } + @Override + public IPage<AdminPayMethodVo> getPayMethodListInPage(PayMethodDto payMethodDto, QueryRequest request) { + payMethodDto.setType("PAYMENT_METHOD"); + Page<AdminPayMethodVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminPayMethodVo> adminPayMethodVos = dataDictionaryCustomMapper.getPayMethodListInPage(page, payMethodDto); + return adminPayMethodVos; + } + + @Override + public AdminMallPayMethodEditVo getMallPayMethodEditInfoById(long id) { + AdminMallPayMethodEditVo adminMallPayMethodEditVo = dataDictionaryCustomMapper.getMallPayMethodEditInfoById(id); + return adminMallPayMethodEditVo; + } + + @Override + public FebsResponse payMethodEdit(PayMethodEditDto payMethodEditDto) { + DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(payMethodEditDto.getId()); + if(ObjectUtil.isEmpty(dataDictionaryCustom)){ + return new FebsResponse().fail().message("系统繁忙,请刷新重试"); + } + dataDictionaryCustom.setValue(payMethodEditDto.getValue()); + dataDictionaryCustomMapper.updateById(dataDictionaryCustom); + return new FebsResponse().success(); + } + + @Override + public FebsResponse cancelOrder(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("系统繁忙,请刷新重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(status != 2){ + return new FebsResponse().fail().message("订单不是代发货状态"); + } + mallOrderInfo.setStatus(7); + mallOrderInfoMapper.updateById(mallOrderInfo); + return new FebsResponse().success(); + } + + @Override + public AdminMallMemberPaymentVo getMallMemberRefundPayInfoByFlowId(long id) { + AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo(); + MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); + AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallOrderRefund.getMemberId()); + if(ObjectUtil.isNotEmpty(adminMallMemberPaymentVoa)){ + adminMallMemberPaymentVo = adminMallMemberPaymentVoa; + } + return adminMallMemberPaymentVo; + } + + @Override + public IPage<AdminMallGoodsCommentVo> getCommentListInPage(AdminMallGoodsCommentDto adminMallGoodsCommentDto, QueryRequest request) { + Page<AdminMallGoodsCommentVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallGoodsCommentVo> adminMallGoodsCommentVos = mallGoodsCommentMapper.getCommentListInPage(page, adminMallGoodsCommentDto); + return adminMallGoodsCommentVos; + } + + @Override + public FebsResponse showStateSwitchOn(Long id) { + MallGoodsComment mallGoodsComment = mallGoodsCommentMapper.selectById(id); + if (ObjectUtil.isEmpty(mallGoodsComment)) { + return new FebsResponse().fail().message("评论不存在,请刷新当前页面"); + } + mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_ENABLE); + mallGoodsCommentMapper.updateById(mallGoodsComment); + return new FebsResponse().success(); + } + + @Override + public FebsResponse showStateSwitchOff(Long id) { + MallGoodsComment mallGoodsComment = mallGoodsCommentMapper.selectById(id); + if (ObjectUtil.isEmpty(mallGoodsComment)) { + return new FebsResponse().fail().message("评论不存在,请刷新当前页面"); + } + mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_DISABLED); + mallGoodsCommentMapper.updateById(mallGoodsComment); + return new FebsResponse().success(); + } + + @Override + public FebsResponse delOrder(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,请刷新重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(status != 7){ + return new FebsResponse().fail().message("订单不是已取消状态"); + } + mallOrderInfoMapper.deleteById(id); + return new FebsResponse().success(); + } + + @Override + public FebsResponse takeGoods(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(2 != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + + mallOrderInfo.setStatus(3); + mallOrderInfoMapper.updateById(mallOrderInfo); + return new FebsResponse().success(); + } + + @Override + public IPage<AdminMallMoneyFlowVo> orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo) { + MallOrderInfo mallOrder = this.baseMapper.selectById(mallOrderInfo.getId()); + Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = mallMoneyFlowMapper.selectOrderMoneyFlowInPage(page, mallOrder); + return adminMallMoneyFlowVos; + } + + @Override + public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); + if (mallOrderInfo == null) { + return; + } + + MallExpressInfo mallExpressInfo = new MallExpressInfo(); + mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); + mallExpressInfo.setOrderId(mallOrderInfo.getId()); + mallExpressInfo.setExpressNo(deliverGoodsDto.getExpressNo()); + mallExpressInfo.setExpressCom(deliverGoodsDto.getExpressCom()); + mallExpressInfo.setExpressCode(deliverGoodsDto.getExpressCode()); + mallExpressInfoMapper.insert(mallExpressInfo); + + mallOrderInfo.setStatus(3); + mallOrderInfoMapper.updateById(mallOrderInfo); + } } -- Gitblit v1.9.1