|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.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.vo.*; | 
|---|
|  |  |  | import cn.hutool.core.collection.CollUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | 
|---|
|  |  |  | import lombok.RequiredArgsConstructor; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | @RequiredArgsConstructor | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public class AdminMallOrderService extends ServiceImpl<MallOrderInfoMapper, MallOrderInfo> implements IAdminMallOrderService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallOrderInfoMapper mallOrderInfoMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | private final MallOrderRefundMapper mallOrderRefundMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallOrderRefundAddressMapper mallOrderRefundAddressMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMoneyFlowMapper mallMoneyFlowMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final IApiMallMemberWalletService iApiMallMemberWalletService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMemberPaymentMapper mallMemberPaymentMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { | 
|---|
|  |  |  | 
|---|
|  |  |  | return new FebsResponse().fail().message("请输入物流公司"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MallExpressInfo mallExpressInfo = new MallExpressInfo(); | 
|---|
|  |  |  | mallExpressInfo.setMemberId(mallExpressInfo.getMemberId()); | 
|---|
|  |  |  | mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); | 
|---|
|  |  |  | mallExpressInfo.setOrderId(mallOrderInfo.getId()); | 
|---|
|  |  |  | mallExpressInfo.setExpressNo(expressNo); | 
|---|
|  |  |  | mallExpressInfo.setExpressCom(expressCom); | 
|---|
|  |  |  | mallExpressInfoMapper.insert(mallExpressInfo); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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())){ | 
|---|
|  |  |  | //用户钱包增加对应的余额 | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); | 
|---|
|  |  |  | mallOrderRefundOperation.setRefundId(mallOrderRefund.getId()); | 
|---|
|  |  |  | mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId()); | 
|---|
|  |  |  | mallOrderRefundOperation.setContent("已同意退款申请"); | 
|---|
|  |  |  | mallOrderRefundOperation.setContent("已同意退款不退货申请"); | 
|---|
|  |  |  | mallOrderRefundOperationMapper.insert(mallOrderRefundOperation); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|