From 9f03ae0b6bab4f2bb0abbe40ec66abd1d1ae87c4 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Sun, 26 Sep 2021 15:11:05 +0800 Subject: [PATCH] 20210926 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 309 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 303 insertions(+), 6 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 c0503ee..1cfe28a 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 @@ -1,12 +1,16 @@ package cc.mrbird.febs.mall.service.impl; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; -import cc.mrbird.febs.mall.dto.MallOrderInfoDto; -import cc.mrbird.febs.mall.entity.MallOrderInfo; -import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; +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.vo.AdminMallOrderInfoVo; -import cc.mrbird.febs.mall.vo.AdminMallOrderVo; +import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.mall.vo.*; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -14,13 +18,31 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.List; + @Slf4j @Service @RequiredArgsConstructor public class AdminMallOrderService extends ServiceImpl<MallOrderInfoMapper, MallOrderInfo> implements IAdminMallOrderService { - private final MallOrderInfoMapper mallOrderInfoMapper; + + private final MallExpressInfoMapper mallExpressInfoMapper; + + private final MallOrderItemMapper mallOrderItemMapper; + + private final MallOrderRefundMapper mallOrderRefundMapper; + + private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper; + + private final MallOrderRefundAddressMapper mallOrderRefundAddressMapper; + + private final MallMoneyFlowMapper mallMoneyFlowMapper; + + private final IApiMallMemberWalletService iApiMallMemberWalletService; + + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + @Override public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { Page<AdminMallOrderInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); @@ -32,4 +54,279 @@ public AdminMallOrderVo getMallOrderInfoById(long id) { return this.baseMapper.getMallOrderInfoById(id); } + + @Override + public FebsResponse deliverGoods(DeliverGoodsDto deliverGoodsDto) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(deliverGoodsDto.getId()); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(2 != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + String expressNo = deliverGoodsDto.getExpressNo(); + if(StrUtil.isEmpty(expressNo)){ + return new FebsResponse().fail().message("请输入物流单号"); + } + String expressCom = deliverGoodsDto.getExpressCom(); + if(StrUtil.isEmpty(expressCom)){ + return new FebsResponse().fail().message("请输入物流公司"); + } + MallExpressInfo mallExpressInfo = new MallExpressInfo(); + mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); + mallExpressInfo.setOrderId(mallOrderInfo.getId()); + mallExpressInfo.setExpressNo(expressNo); + mallExpressInfo.setExpressCom(expressCom); + mallExpressInfoMapper.insert(mallExpressInfo); + + mallOrderInfo.setStatus(3); + mallOrderInfoMapper.updateById(mallOrderInfo); + return new FebsResponse().success(); + } + + @Override + public AdminOrderDetailVo getMallOrderDetailById(long id) { + AdminOrderDetailVo adminOrderDetailVo = mallOrderInfoMapper.getMallOrderDetailById(id); + MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(id); + if(ObjectUtil.isNotEmpty(mallExpressInfo)){ + adminOrderDetailVo.setExpressNo(mallExpressInfo.getExpressNo()); + adminOrderDetailVo.setExpressCom(mallExpressInfo.getExpressCom()); + } + List<MallOrderItem> mallOrderItems = mallOrderInfoMapper.getMallOrderItemByOrderId(id); + if(CollUtil.isNotEmpty(mallOrderItems)){ + StringBuffer orderItems = new StringBuffer(); + for (MallOrderItem item : mallOrderItems){ + StringBuffer orderItem = new StringBuffer(); + orderItems.append(item.getGoodsName()+"-"+item.getCnt()+"*"+item.getPrice()+"-合计"+item.getAmount()+"; \n "); + orderItems.append(orderItem); + } + adminOrderDetailVo.setOrderItems(orderItems.toString()); + } + + return adminOrderDetailVo; + } + + @Override + public IPage<AdminMallOrderRefundVo> getRefundListInPage(MallOrderRefundDto mallOrderRefundDto, QueryRequest request) { + Page<AdminMallOrderRefundVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallOrderRefundVo> adminMallOrderRefundVos = mallOrderRefundMapper.selectRefundListInPage(page, mallOrderRefundDto); + return adminMallOrderRefundVos; + } + + @Override + public IPage<AdminMallOrderRefundOperationVo> seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund) { + Page<AdminMallOrderRefundOperationVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallOrderRefundOperationVo> adminMallOrderRefundOperationVos = mallOrderRefundOperationMapper.selectRefundOperationInPage(page, mallOrderRefund); + return adminMallOrderRefundOperationVos; + } + + @Override + public FebsResponse agreeRefund(Long id) { + MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderRefund)){ + return new FebsResponse().fail().message("系统繁忙,请刷新重试"); + } + Integer status = mallOrderRefund.getStatus(); + if(status != 1){ + return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面"); + } + mallOrderRefund.setStatus(2); + 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 FebsResponse disagreeRefund(Long id) { + MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); + 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); + + MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); + mallOrderRefundOperation.setRefundId(mallOrderRefund.getId()); + 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(); + } + + @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); + + MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); + mallOrderRefundOperation.setRefundId(mallOrderRefund.getId()); + mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId()); + mallOrderRefundOperation.setContent("已退款到用户账户"); + mallOrderRefundOperationMapper.insert(mallOrderRefundOperation); + + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId()); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("系统繁忙,请刷新重试"); + } + mallOrderInfo.setStatus(6); + mallOrderInfoMapper.updateById(mallOrderInfo); + + //用户钱包增加对应的余额 + iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId()); + + //新增一条资金流水 + MallMoneyFlow mallMoneyFlow = new MallMoneyFlow(); + mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId()); + mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo()); + mallMoneyFlow.setType(4); + mallMoneyFlow.setAmount(mallOrderInfo.getAmount()); + mallMoneyFlowMapper.insert(mallMoneyFlow); + + 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(); + } + + } -- Gitblit v1.9.1