package com.pj.api.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.pj.api.bo.InOutRecordBO; import com.pj.project.tb_business.TbBusiness; import com.pj.project.tb_business.TbBusinessService; import com.pj.project.tb_business_car.TbBusinessCar; import com.pj.project.tb_business_car.TbBusinessCarService; import com.pj.project.tb_costomer.TbCostomer; import com.pj.project.tb_costomer.TbCostomerService; import com.pj.project.tb_pass_record.TbPassRecord; import com.pj.project.tb_pass_record.TbPassRecordService; import com.pj.utils.cache.RedisUtil; import com.pj.utils.so.SoMap; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; /** * */ @Service @Transactional(rollbackFor = Exception.class) @Slf4j public class ApiService { @Resource TbCostomerService tbCostomerService; @Resource @Lazy TbBusinessService tbBusinessService; @Resource TbPassRecordService tbPassRecordService; @Resource @Lazy TbBusinessCarService tbBusinessCarService; public List getInOutRecord(SoMap so) { List passRecords = tbPassRecordService.getList(so); List recordList = new ArrayList<>(); for (TbPassRecord passRecord : passRecords) { InOutRecordBO record = new InOutRecordBO(); BeanUtil.copyProperties(passRecord, record); TbCostomer costomer = tbCostomerService.getById(passRecord.getCustomerId()); record.setCustomerContact(costomer.getPhone()).setDutyPeople(costomer.getDutyPeople()); recordList.add(record); } return recordList; } public List getCustomerList(SoMap so) { List list = tbCostomerService.getList(so); return list; } public void confirmCustomer(Long customerId, String judgeContent) { TbCostomer costomer = tbCostomerService.getById(customerId); if (costomer != null && costomer.getJudgeStatus() == 1) { tbCostomerService.judge(customerId + "", 2, judgeContent); } } public List searchPartCar(String carNo) { return tbBusinessCarService.searchPartCar(carNo); } public void confirm(List ids) { tbBusinessService.confirm(ids); } public Map getBusinessMoney(String businessId, String state) { return tbBusinessService.getBusinessMoney(businessId, state); } public Map getPartCarByChannel(String channel) { Map result = new HashMap<>(); String carNo = RedisUtil.get(channel); if (StrUtil.isEmpty(carNo)) { return result; } TbBusinessCar tbBusinessCar = tbBusinessCarService.findInBuNoOutAndNotPay(carNo); Date now=new Date(); BigDecimal price = tbBusinessService.calculationPartMoney(tbBusinessCar.getRealInTime(), now, tbBusinessCar.getCarSize()); BigDecimal dif = price.subtract(tbBusinessCar.getMoney()); Map car = new HashMap<>(); car.put("id",tbBusinessCar.getId()); car.put("carNo",tbBusinessCar.getCarNo()); car.put("price",dif); result.put("total",dif); result.put("cars",Collections.singleton(car)); return result; } }