package com.farriver.bwf.service.vip; import com.farriver.bwf.common.model.ApiData; import com.farriver.bwf.common.model.ApiPageData; import com.farriver.bwf.common.options.ActionType; import com.farriver.bwf.common.options.MapDataType; import com.farriver.bwf.common.statics.LangConstants; import com.farriver.bwf.data.master.mapper.VIPMasterPaperRelationMapper; import com.farriver.bwf.data.master.model.VIPMasterPaperRelation; import com.farriver.bwf.data.master.model.VIPMasterPaperRelationExample; import com.farriver.bwf.data.transferobject.queryobject.vip.VIPMasterPaperRelationQueryObject; import com.farriver.bwf.data.transferobject.viewmodel.vip.VIPMasterPaperRelationViewModel; import com.farriver.bwf.service.ServiceBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import jakarta.annotation.Resource; import java.util.*; @Service @CacheConfig(cacheNames = "bwf_VIPMasterPaperRelation_cache") public class VIPMasterPaperRelationService extends ServiceBase { private static final Logger logger = LoggerFactory.getLogger(VIPMasterPaperRelationService.class); private String message; @Resource VIPMasterPaperRelationMapper mapper; public Map GetList(VIPMasterPaperRelationQueryObject queryObject) { if (queryObject == null) return null; VIPMasterPaperRelationExample example = new VIPMasterPaperRelationExample(); VIPMasterPaperRelationExample.Criteria criteria = example.createCriteria(); //查询条件 if (queryObject.getFilter() != null && !queryObject.getFilter().isEmpty()) { criteria.andMastercodeLike("%" + queryObject.getFilter() + "%"); VIPMasterPaperRelationExample.Criteria criteria2 = example.createCriteria(); criteria2.andMasternameLike("%" + queryObject.getFilter() + "%"); example.or(criteria2); VIPMasterPaperRelationExample.Criteria criteria3 = example.createCriteria(); criteria3.andPapercodeLike("%" + queryObject.getFilter() + "%"); example.or(criteria3); VIPMasterPaperRelationExample.Criteria criteria4 = example.createCriteria(); criteria4.andPapernameLike("%" + queryObject.getFilter() + "%"); example.or(criteria4); } else { if (queryObject.getId() != null && !queryObject.getId().isEmpty()) { criteria.andIdEqualTo(queryObject.getId()); } if (queryObject.getMasterid() != null && !queryObject.getMasterid().isEmpty()) { criteria.andMasteridEqualTo(queryObject.getMasterid()); } if (queryObject.getMastercode() != null && !queryObject.getMastercode().isEmpty()) { criteria.andMastercodeLike("%" + queryObject.getMastercode() + "%"); } if (queryObject.getMastername() != null && !queryObject.getMastername().isEmpty()) { criteria.andMasternameLike("%" + queryObject.getMastername() + "%"); } if (queryObject.getPaperid() != null && !queryObject.getPaperid().isEmpty()) { criteria.andPaperidEqualTo(queryObject.getPaperid()); } if (queryObject.getPapercode() != null && !queryObject.getPapercode().isEmpty()) { criteria.andPapercodeLike("%" + queryObject.getPapercode() + "%"); } if (queryObject.getPapername() != null && !queryObject.getPapername().isEmpty()) { criteria.andPapernameLike("%" + queryObject.getPapername() + "%"); } if (queryObject.getStatus() != null && queryObject.getStatus() >= 0) { criteria.andStatusEqualTo(queryObject.getStatus()); } if (queryObject.getStatuslist() != null && queryObject.getStatuslist().size() > 0) { criteria.andStatusIn(queryObject.getStatuslist()); } } //查询总数 long total = mapper.countByExample(example); //分页 int pageIndex = queryObject.getPageIndex(); int pageSize = queryObject.getPageSize(); if (pageIndex > 0 && pageSize > 0) { example.setRows(pageSize); example.setOffset((pageIndex - 1) * pageSize); } example.setOrderByClause("createtime desc"); List list = mapper.selectByExample(example); Map map = new HashMap<>(); map.put(MapDataType.DATA_LIST, list); map.put(MapDataType.TOTAL_COUNT, total); map.put(MapDataType.PAGE_INDEX, pageIndex); map.put(MapDataType.PAGE_SIZE, pageSize); return map; } public VIPMasterPaperRelation GetDetail(VIPMasterPaperRelationQueryObject queryObject) { Map map = GetList(queryObject); Object object = map.get(MapDataType.DATA_LIST); if (object != null) { List list = (List) object; if (list != null && list.size() == 1) return list.get(0); } return null; } @CacheEvict(allEntries = true) public ApiData Create(VIPMasterPaperRelationViewModel model) { VIPMasterPaperRelation entity = Check(ActionType.CREATE, model); if (entity != null) { return ApiData.ok(LangConstants.MSG_INFO_SUCCESS, mapper.insertSelective(entity)); } else { return ApiData.error(message); } } @CacheEvict(allEntries = true) public ApiData Update(VIPMasterPaperRelationViewModel model) { VIPMasterPaperRelation entity = Check(ActionType.UPDATE, model); if (entity != null) { return ApiData.ok(LangConstants.MSG_INFO_SUCCESS, mapper.updateByPrimaryKeySelective(entity)); } else { return ApiData.error(message); } } @CacheEvict(allEntries = true) public ApiData Delete(String id) { return ApiData.ok("", mapper.deleteByPrimaryKey(id)); } @Transactional @CacheEvict(allEntries = true) public ApiData BatchDelete(VIPMasterPaperRelationQueryObject queryObject) { Map map = GetList(queryObject); Object object = map.get(MapDataType.DATA_LIST); int count = 0; if (object != null) { List list = (List) object; if (list != null && list.size() == 1) { count += mapper.deleteByPrimaryKey(list.get(0).getId()); } } return ApiData.ok("", count); } @Transactional @CacheEvict(allEntries = true) public void BatchUpdate(List models) { if (models == null) { return; } for (VIPMasterPaperRelationViewModel model : models) { Update(model); } } @Cacheable public VIPMasterPaperRelationViewModel GetViewDetail(String masterid) { if (masterid == null) { return null; } VIPMasterPaperRelationQueryObject queryObject = new VIPMasterPaperRelationQueryObject(); queryObject.setMasterid(masterid); VIPMasterPaperRelation entity = GetDetail(queryObject); return BuildViewModel(entity); } @Cacheable public VIPMasterPaperRelationViewModel GetViewDetail(VIPMasterPaperRelationQueryObject queryObject) { VIPMasterPaperRelation entity = GetDetail(queryObject); return BuildViewModel(entity); } @Cacheable public ApiPageData GetViewPageList(VIPMasterPaperRelationQueryObject queryObject) { Map map = GetList(queryObject); List list = (List) map.get(MapDataType.DATA_LIST); List viewModels = new ArrayList<>(); for (VIPMasterPaperRelation entity : list) { VIPMasterPaperRelationViewModel viewModel = BuildViewModel(entity); viewModels.add(viewModel); } ApiPageData bean = ApiPageData.build(); bean.setData(viewModels); bean.setTotal((Long) map.get(MapDataType.TOTAL_COUNT)); return bean; } @Cacheable public ApiPageData GetViewPageListByPrimaryKey(String masterid) { if (masterid == null) { return ApiPageData.error(LangConstants.MSG_ERROR_PARAMETERS); } VIPMasterPaperRelationQueryObject queryObject = new VIPMasterPaperRelationQueryObject(); queryObject.setMasterid(masterid); Map map = GetList(queryObject); List list = (List) map.get(MapDataType.DATA_LIST); List viewModels = new ArrayList<>(); for (VIPMasterPaperRelation entity : list) { VIPMasterPaperRelationViewModel viewModel = BuildViewModel(entity); viewModels.add(viewModel); } ApiPageData bean = ApiPageData.build(); bean.setData(viewModels); bean.setTotal((Long) map.get(MapDataType.TOTAL_COUNT)); return bean; } //private methods private static VIPMasterPaperRelationViewModel BuildViewModel(VIPMasterPaperRelation entity) { if (entity == null) return null; VIPMasterPaperRelationViewModel model = new VIPMasterPaperRelationViewModel(); model.setId(entity.getId()); model.setIsdeleted(entity.getIsdeleted()); model.setRemark(entity.getRemark()); model.setCreatetime(entity.getCreatetime()); model.setUpdatetime(entity.getUpdatetime()); model.setStatus(entity.getStatus()); model.setMasterid(entity.getMasterid()); model.setMastercode(entity.getMastercode()); model.setMastername(entity.getMastername()); model.setPaperid(entity.getPaperid()); model.setPapercode(entity.getPapercode()); model.setPapername(entity.getPapername()); model.setBuyedtime(entity.getBuyedtime()); model.setAmount(entity.getAmount()); return model; } public VIPMasterPaperRelation Check(ActionType actionType, VIPMasterPaperRelationViewModel model) { message = ""; if (model == null) { message = LangConstants.MSG_ERROR_PARAMETERS; return null; } if (model.getMasterid() == null) { message = LangConstants.MSG_ERROR_PARAMETERS; return null; } VIPMasterPaperRelation entity = null; if (ActionType.CREATE == actionType) { entity = new VIPMasterPaperRelation(); if (model.getId() != null && !model.getId().isEmpty()) { entity.setId(model.getId()); } else { entity.setId(UUID.randomUUID().toString()); } entity.setCreatetime(new Date()); entity.setIsdeleted(false); entity.setBuyedtime(new Date()); } else { VIPMasterPaperRelationQueryObject queryObject = new VIPMasterPaperRelationQueryObject(); queryObject.setId(model.getId()); entity = GetDetail(queryObject); entity.setUpdatetime(new Date()); entity.setBuyedtime(model.getBuyedtime()); } entity.setRemark(model.getRemark()); entity.setStatus(model.getStatus()); entity.setMasterid(model.getMasterid()); entity.setMastercode(model.getMastercode()); entity.setMastername(model.getMastername()); entity.setPaperid(model.getPaperid()); entity.setPapercode(model.getPapercode()); entity.setPapername(model.getPapername()); entity.setAmount(model.getAmount()); return entity; } }