123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package com.fdkankan.sale.service.impl;
- import cn.hutool.core.io.FileUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.sale.common.CacheUtil;
- import com.fdkankan.sale.common.FilePath;
- import com.fdkankan.sale.common.ResultCode;
- import com.fdkankan.sale.entity.*;
- import com.fdkankan.sale.exception.BusinessException;
- import com.fdkankan.sale.mapper.IRepairInvoiceMapper;
- import com.fdkankan.sale.service.*;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.sale.vo.request.RepairInvoiceParam;
- import com.fdkankan.sale.vo.response.RepairInvoiceVo;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.io.File;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2023-02-22
- */
- @Service
- public class RepairInvoiceServiceImpl extends ServiceImpl<IRepairInvoiceMapper, RepairInvoice> implements IRepairInvoiceService {
- @Autowired
- IMailTemplateService mailTemplateService;
- @Autowired
- IRepairService repairService;
- @Autowired
- FYunFileServiceInterface fYunFileServiceInterface;
- @Autowired
- ICustomerService customerService;
- @Override
- public RepairInvoice getByRepairId(String repairId) {
- LambdaQueryWrapper<RepairInvoice> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(RepairInvoice::getRepairId,repairId);
- return this.getOne(wrapper);
- }
- @Override
- public Page<RepairInvoiceVo> pageList(RepairInvoiceParam param) {
- Page<RepairInvoiceVo> voList = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
- return voList;
- }
- @Override
- public void invoiceRegister(RepairInvoice param, Long userId) {
- if(StringUtils.isBlank(param.getRepairId()) ){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- Repair repair = repairService.getById(param.getRepairId());
- if(repair == null){
- throw new BusinessException(ResultCode.ORDER_PAY_NOT_EXITS);
- }
- RepairInvoice repairInvoice = this.getByRepairId(param.getRepairId());
- if(repairInvoice !=null){
- throw new BusinessException(ResultCode.ORDER_INVOICE_EXITS);
- }
- repairInvoice = new RepairInvoice();
- BeanUtils.copyProperties(param,repairInvoice);
- this.save(repairInvoice);
- repairService.updateRepairInvoiceStatus(repair.getRepairId(),1);
- }
- @Override
- public void open(RepairInvoice param, Long userId) {
- if(param.getInvoiceId() == null ){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- RepairInvoice repairInvoice = this.getById(param.getInvoiceId());
- if(repairInvoice == null ){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- if(repairInvoice.getStatus() == 1){
- throw new BusinessException(ResultCode.ORDER_INVOICE_OPEN);
- }
- if(repairInvoice.getInvoiceType() == 0){ //普通发票邮件发送,专用发票邮寄
- if(StringUtils.isBlank(param.getInvoiceNo()) || StringUtils.isBlank(param.getInvoiceImg())){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- String userName = repairInvoice.getInvoiceEmail();
- Customer customer = customerService.getByRepairId(repairInvoice.getRepairId());
- if(customer != null){
- userName = customer.getCompanyName();
- }
- MailTemplate mailTemplate = this.setMailMsg(repairInvoice.getRepairId(),userName);
- String imagePath = param.getInvoiceImg().replaceAll(CacheUtil.host,"");
- String localPath = FilePath.file_path + imagePath;
- fYunFileServiceInterface.downloadFile(imagePath,localPath);
- Boolean mail = mailTemplateService.sendMail(repairInvoice.getInvoiceEmail(), mailTemplate,localPath);
- if(!mail){
- throw new BusinessException(ResultCode.MAIL_SEND_ERROR);
- }
- FileUtil.del(localPath);
- LambdaUpdateWrapper<RepairInvoice> wrapper = new LambdaUpdateWrapper<>();
- wrapper.eq(RepairInvoice::getInvoiceId,param.getInvoiceId());
- wrapper.set(RepairInvoice::getInvoiceNo,param.getInvoiceNo());
- wrapper.set(RepairInvoice::getInvoiceImg,param.getInvoiceImg());
- wrapper.set(RepairInvoice::getStatus,1);
- wrapper.set(RepairInvoice::getSysUserId,userId);
- this.update(wrapper);
- }
- if(repairInvoice.getInvoiceType() == 1){ //普通发票邮件发送,专用发票邮寄
- if(StringUtils.isBlank(param.getInvoiceNo()) || StringUtils.isBlank(param.getTrackingNum())){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- LambdaUpdateWrapper<RepairInvoice> wrapper = new LambdaUpdateWrapper<>();
- wrapper.eq(RepairInvoice::getInvoiceId,param.getInvoiceId());
- wrapper.set(RepairInvoice::getTrackingNum,param.getTrackingNum());
- wrapper.set(RepairInvoice::getInvoiceNo,param.getInvoiceNo());
- wrapper.set(RepairInvoice::getStatus,1);
- wrapper.set(RepairInvoice::getSysUserId,userId);
- this.update(wrapper);
- }
- repairService.updateInvoiceStatus(param.getRepairId());
- }
- private MailTemplate setMailMsg(String orderNum, String userName) {
- MailTemplate mailTemplate = mailTemplateService.getById(1);
- if(mailTemplate != null){
- String subject = mailTemplate.getSubject();
- if(StringUtils.isNotBlank(orderNum)){
- subject = subject.replace("{orderNum}",orderNum);
- }
- mailTemplate.setSubject(subject);
- String msg = mailTemplate.getMsg();
- if(StringUtils.isNotBlank(orderNum)){
- msg = msg.replace("{orderNum}",orderNum);
- }
- if(StringUtils.isNotBlank(userName)){
- msg = msg.replace("{userName}",userName);
- }
- mailTemplate.setMsg(msg);
- }
- return mailTemplate;
- }
- }
|