package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.BisInspRdwpgdRgstrDao; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.BisInspRdwpgdRgstrParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.*; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Constant; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.com.goldenwater.id.util.UuidUtil; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Date; import java.util.Map; import java.util.Optional; /** * @author hjp * @date 2022-5-31 */ @Service @Transactional public class BisInspRdwpgdRgstrServiceImpl extends AbstractCrudService implements BisInspRdwpgdRgstrService, BisInspObjStrategy { @Autowired private BisInspRdwpgdRgstrDao bisInspRdwpgdRgstrDao; @Autowired private BisInspPblmService bisInspPblmService; @Autowired private AttRdwpgdBaseService attRdwpgdBaseService; public BisInspRdwpgdRgstrServiceImpl(BisInspRdwpgdRgstrDao bisInspRdwpgdRgstrDao) { super(bisInspRdwpgdRgstrDao); this.bisInspRdwpgdRgstrDao = bisInspRdwpgdRgstrDao; } @Override public int insert(BisInspRdwpgdRgstr bisInspRdwpgdRgstr) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspRdwpgdRgstr.setId(uuid); bisInspRdwpgdRgstr.setIntm(new Date()); bisInspRdwpgdRgstr.setUptm(new Date()); bisInspRdwpgdRgstr.setState(Constant.STRING_ZERO); bisInspRdwpgdRgstr.setDataStat(Constant.STRING_ZERO); return this.bisInspRdwpgdRgstrDao.insert(bisInspRdwpgdRgstr); } @Override public int update(BisInspRdwpgdRgstr bisInspRdwpgdRgstr) { if (StringUtils.isNotBlank(bisInspRdwpgdRgstr.getObjId())){ //更新基础表 updateBase(bisInspRdwpgdRgstr); } bisInspRdwpgdRgstr.setUptm(new Date()); return this.bisInspRdwpgdRgstrDao.update(bisInspRdwpgdRgstr); } @Override public int delete(String id) { return this.bisInspRdwpgdRgstrDao.delete(id); } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } PageHelper.startPage(typeParam); List list = this.bisInspRdwpgdRgstrDao.findPageList(typeParam); return new PageInfo<>(list); } @Override public void updateState(Map map) { BisInspRdwpgdRgstr rgstr = get(MapUtils.getString(map, "rgstrId")); rgstr.setUptm(new Date()); rgstr.setState(Constant.STRING_ONE); update(rgstr); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspRdwpgdRgstr b = new BisInspRdwpgdRgstr(); AttRdwpgdBase base = attRdwpgdBaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); b.setObjId(bisInspAllObj.getObjId()); insert(b); } @Override public String getType() { return BisInspEnum.RDWPGD.getValue(); } @Override public void cleanObjData(String objId) { BisInspRdwpgdRgstrParam rgstrParam = new BisInspRdwpgdRgstrParam(); rgstrParam.setObjId(objId); List list = this.bisInspRdwpgdRgstrDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); this.bisInspRdwpgdRgstrDao.delete(id); } } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspRdwpgdRgstrDao.findPageList(typeParam); } /** * 更新基础表 * @param bisInspRdwpgdRgstr */ private void updateBase(BisInspRdwpgdRgstr bisInspRdwpgdRgstr) { AttRdwpgdBase base = attRdwpgdBaseService.getObjId(bisInspRdwpgdRgstr.getObjId()); Optional.ofNullable(base).ifPresent(b -> { String id = b.getId(); BeanUtils.copyProperties(bisInspRdwpgdRgstr, b); b.setId(id); b.setIntm(null); attRdwpgdBaseService.update(b); }); } }