package com.fdkankan.sale.service.impl; import java.util.*; 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.sale.common.PageInfo; import com.fdkankan.sale.common.RepairStatusEnum; import com.fdkankan.sale.common.ResultCode; import com.fdkankan.sale.entity.*; import com.fdkankan.sale.exception.BusinessException; import com.fdkankan.sale.mapper.IRepairMapper; import com.fdkankan.sale.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.sale.util.DateUtil; import com.fdkankan.sale.util.StatusUtil; import com.fdkankan.sale.vo.request.*; import com.fdkankan.sale.vo.response.RepairRegisterPartVo; import com.fdkankan.sale.vo.response.RepairerVo; 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.util.stream.Collectors; /** *

* 服务实现类 *

* * @author * @since 2022-12-12 */ @Service public class RepairServiceImpl extends ServiceImpl implements IRepairService { @Autowired IRepairLogService repairLogService; @Autowired ISysUserService sysUserService; @Autowired IRepairPayService repairPayService; @Autowired IRepairFaultService repairFaultService; @Autowired IPriceListService priceListService; @Autowired RepairSupplyService repairSupplyService; @Autowired IRepairService repairService; @Override public void updateRepairStatus(String repairId, Integer status) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Repair::getRepairId,repairId); wrapper.set(Repair::getStatus,status); this.update(wrapper); } @Override public Page saleOrderList(RepairParam param) { return this.getBaseMapper().saleOrderList(new Page<>(param.getPageNum(),param.getPageSize()),param); } @Override public Page supplyOrderList( RepairParam param) { return this.getBaseMapper().supplyOrderList(new Page<>(param.getPageNum(),param.getPageSize()),param); } @Override public Page u8List( RepairParam param) { return this.getBaseMapper().u8List(new Page<>(param.getPageNum(),param.getPageSize()),param); } @Override public Page checkAccountList( RepairParam param) { return this.getBaseMapper().checkAccountList(new Page<>(param.getPageNum(),param.getPageSize()),param); } @Override public Page repairerOrderList(RepairParam param) { return this.getBaseMapper().repairerOrderList(new Page<>(param.getPageNum(),param.getPageSize()),param); } @Override public Page testOrderList(RepairParam param) { return this.getBaseMapper().testOrderList(new Page<>(param.getPageNum(),param.getPageSize()),param); } @Override public void paySuccess(String orderSn, String tradeNo, String openid) { RepairPay repairPay = repairPayService.getByOrderSn(orderSn); if(repairPay == null){ return; } Repair repair = repairService.getById(repairPay.getRepairId()); if(repair == null){ return; } repairPayService.updatePayStatus(orderSn,tradeNo,openid); if(orderSn.contains("se_s")){ List partVoList = repairSupplyService.partInfo(repairPay.getRepairId(), 1); if(partVoList.size() >0){ repairLogService.saveBySysUser(null,repairPay.getRepairId(), RepairStatusEnum.TO_BE_RECOVERED.status(),repair.getStatus(),"完成维修支付成功"); }else { repairLogService.saveBySysUser(null,repairPay.getRepairId(), RepairStatusEnum.TO_BE_SHIPPED.status(),repair.getStatus(),"完成维修支付成功"); } } if(orderSn.contains("se_c")){ List partVoList = repairSupplyService.partInfo(repairPay.getRepairId(), 1); if(partVoList.size() >0){ repairLogService.saveBySysUser(null,repairPay.getRepairId(), RepairStatusEnum.TO_BE_CANCELED_RECOVERED.status(),repair.getStatus(),"取消维修支付成功"); }else { repairLogService.saveBySysUser(null,repairPay.getRepairId(), RepairStatusEnum.TO_BE_SHIPPED.status(),repair.getStatus(),"取消维修支付成功"); } } } @Override public void updateCommentStatus(String repairId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Repair::getRepairId,repairId); wrapper.set(Repair::getCommentStatus,1); this.update(wrapper); } @Override public void updateInvoiceStatus(String repairId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Repair::getRepairId,repairId); wrapper.set(Repair::getInvoiceStatus,1); this.update(wrapper); } @Override public Page pageInfoList(RepairInfoListParam param) { if(param.getFaultId() != null){ List list = repairFaultService.getByFaultId(param.getFaultId()); if(list.size() >0){ Set repairIds = list.stream().map(RepairFault::getRepairId).collect(Collectors.toSet()); param.setRepairIds(repairIds); }else { Set repairIds = new HashSet<>(); repairIds.add("empty"); param.setRepairIds(repairIds); } } Page page = getBaseMapper().pageInfoList(new Page<>(param.getPageNum(), param.getPageSize()), param); sysUserService.setSaleNameAndRepairManName(page.getRecords()); return page; } @Override public List getBySnCode(String snCode) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Repair::getCameraSnCode,snCode); wrapper.orderByDesc(Repair::getCreateTime); return this.list(wrapper); } @Override public String getLastRepairId(Repair repair) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Repair::getCameraSnCode,repair.getCameraSnCode()); wrapper.lt(Repair::getCreateTime,repair.getCreateTime()); wrapper.notIn(Repair::getRepairId,Arrays.asList(repair.getRepairId())); wrapper.orderByAsc(Repair::getCreateTime); List list = this.list(wrapper); if(list.isEmpty()){ return null; } return list.get(0).getRepairId(); } @Override public void updateWarrantyType(String repairId, Integer warrantyType) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Repair::getRepairId,repairId); wrapper.set(Repair::getWarrantyType,warrantyType); this.update(wrapper); } @Override public void updateCancelStatus(String repairId, Integer status,String cancelRemark) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Repair::getRepairId,repairId); wrapper.set(Repair::getCancelStatus,status); wrapper.set(Repair::getCancelRemark,cancelRemark); this.update(wrapper); } @Override public void updateRepairInvoiceStatus(String repairId, Integer InvoiceStatus) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Repair::getRepairId,repairId); wrapper.set(Repair::getInvoiceStatus,InvoiceStatus); this.update(wrapper); } }