From 990c09c842d87d1f179e3a0070541da0457b8393 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 21 Nov 2023 14:07:19 +0800
Subject: [PATCH] 匹配
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 230 insertions(+), 9 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 3416ef8..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,11 +2,15 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+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;
@@ -17,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 +44,40 @@
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,8 +158,37 @@
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());
@@ -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,17 +252,24 @@
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();
}
@@ -246,6 +328,10 @@
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());
@@ -266,5 +352,140 @@
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