package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspVillgdNvillDao; import cn.com.goldenwater.dcproj.model.BisInspVillgd; import cn.com.goldenwater.dcproj.model.BisInspVillgdNvill; import cn.com.goldenwater.dcproj.model.BisInspVillgdVillUsr; import cn.com.goldenwater.dcproj.model.BisInspVillgdVillWtsp; import cn.com.goldenwater.dcproj.param.BisInspVillgdNvillParam; import cn.com.goldenwater.dcproj.param.BisInspVillgdVillUsrParam; import cn.com.goldenwater.dcproj.param.BisInspVillgdVillWtspParam; import cn.com.goldenwater.dcproj.service.BisInspVillgdNvillService; import cn.com.goldenwater.dcproj.service.BisInspVillgdService; import cn.com.goldenwater.dcproj.service.BisInspVillgdVillUsrService; import cn.com.goldenwater.dcproj.service.BisInspVillgdVillWtspService; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.id.util.UuidUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.Optional; /** * @author lhc * @date 2021-4-23 */ @Service @Transactional public class BisInspVillgdNvillServiceImpl extends AbstractCrudService implements BisInspVillgdNvillService { @Autowired private BisInspVillgdNvillDao bisInspVillgdNvillDao; @Autowired private BisInspVillgdVillUsrService bisInspVillgdVillUsrService; @Autowired private BisInspVillgdVillWtspService bisInspVillgdVillWtspService; @Autowired private BisInspVillgdService bisInspVillgdService; public BisInspVillgdNvillServiceImpl(BisInspVillgdNvillDao bisInspVillgdNvillDao) { super(bisInspVillgdNvillDao); this.bisInspVillgdNvillDao = bisInspVillgdNvillDao; } @Override public int insert(BisInspVillgdNvill bisInspVillgdNvill) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspVillgdNvill.setId(uuid); bisInspVillgdNvill.setIntm(new Date()); bisInspVillgdNvill.setUptm(new Date()); bisInspVillgdNvill.setDataStat("0"); return this.bisInspVillgdNvillDao.insert(bisInspVillgdNvill); } @Override public BisInspVillgdNvill get(String key) { BisInspVillgdNvill bisInspVillgdNvill = super.get(key); Optional.ofNullable(bisInspVillgdNvill).ifPresent(vill -> { BisInspVillgd villgd = bisInspVillgdService.get(vill.getRgstrId()); Optional.ofNullable(villgd).map(BisInspVillgd::getObjId).ifPresent(vill::setObjId); vill.setVillUsrCount(bisInspVillgdVillUsrService.selectCount(Builder.of(BisInspVillgdVillUsr::new).with(BisInspVillgdVillUsr::setVillId, key).build())); vill.setVillWtspCount(bisInspVillgdVillWtspService.selectCount(Builder.of(BisInspVillgdVillWtsp::new).with(BisInspVillgdVillWtsp::setVillId, key).build())); }); return bisInspVillgdNvill; } @Override public int update(BisInspVillgdNvill bisInspVillgdNvill) { bisInspVillgdNvill.setUptm(new Date()); return this.bisInspVillgdNvillDao.update(bisInspVillgdNvill); } @Override public int delete(String id) { bisInspVillgdVillUsrService.deleteBy(Builder.of(BisInspVillgdVillUsrParam::new).with(BisInspVillgdVillUsrParam::setVillId, id).build()); bisInspVillgdVillWtspService.deleteBy(Builder.of(BisInspVillgdVillWtspParam::new).with(BisInspVillgdVillWtspParam::setVillId, id).build()); return this.bisInspVillgdNvillDao.delete(id); } @Override public int selectCount(BisInspVillgdNvill bisInspVillgdNvill) { return bisInspVillgdNvillDao.selectCount(bisInspVillgdNvill); } }