package com.goafanti.demand.service.impl; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.common.constant.AFTConstants; import com.goafanti.common.constant.PageConstants; import com.goafanti.common.dao.AchievementDemandCountMapper; import com.goafanti.common.dao.AchievementDemandMapper; import com.goafanti.common.dao.AchievementKeywordMapper; import com.goafanti.common.dao.AchievementMapper; import com.goafanti.common.dao.BranchInformationMapper; import com.goafanti.common.dao.DemandFollowDetailMapper; import com.goafanti.common.dao.DemandInterestMapper; import com.goafanti.common.dao.DemandKeywordMapper; import com.goafanti.common.dao.DemandMapper; import com.goafanti.common.dao.DemandPublishMapper; import com.goafanti.common.dao.FieldGlossoryMapper; import com.goafanti.common.dao.NewsInterestMapper; import com.goafanti.common.dao.NoticeMapper; import com.goafanti.common.dao.OrganizationIdentityMapper; import com.goafanti.common.dao.ProjectInterestMapper; import com.goafanti.common.dao.UserIdentityMapper; import com.goafanti.common.dao.UserInterestMapper; import com.goafanti.common.dao.UserMapper; import com.goafanti.common.dao.UserRoleMapper; import com.goafanti.common.enums.DeleteStatus; import com.goafanti.common.enums.DemandAuditStatus; import com.goafanti.common.enums.DemandInfoSourceStatus; import com.goafanti.common.enums.DemandReleaseStatus; import com.goafanti.common.enums.DemandStatus; import com.goafanti.common.enums.InterestType; import com.goafanti.common.enums.NoticeReadStatus; import com.goafanti.common.enums.NoticeStatus; import com.goafanti.common.enums.UserType; import com.goafanti.common.model.AchievementDemand; import com.goafanti.common.model.AchievementDemandCount; import com.goafanti.common.model.Demand; import com.goafanti.common.model.DemandKeyword; import com.goafanti.common.model.DemandPublish; import com.goafanti.common.model.Notice; import com.goafanti.common.model.OrganizationIdentity; import com.goafanti.common.model.User; import com.goafanti.common.model.UserIdentity; import com.goafanti.common.utils.DateUtils; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.demand.bo.DemandDetailBo; import com.goafanti.demand.bo.DemandImportBo; import com.goafanti.demand.bo.DemandListBo; import com.goafanti.demand.bo.ObjectInterestListBo; import com.goafanti.demand.service.DemandService; import com.goafanti.portal.bo.DemandSearchDetailBo; import com.goafanti.portal.bo.DemandSearchListBo; @Service public class DemandServiceImpl extends BaseMybatisDao implements DemandService { @Autowired private DemandMapper demandMapper; @Autowired private UserMapper userMapper; @Autowired private UserRoleMapper userRoleMapper; @Autowired private NoticeMapper noticeMapper; @Autowired private DemandKeywordMapper demandKeywordMapper; @Autowired private AchievementDemandMapper achievementDemandMapper; @Autowired private AchievementKeywordMapper achievementKeywordMapper; @Autowired private AchievementDemandCountMapper achievementDemandCountMapper; @Autowired private UserIdentityMapper userIdentityMapper; @Autowired private OrganizationIdentityMapper organizationIdentityMapper; @Autowired private AchievementMapper achievementMapper; @Autowired private DemandInterestMapper demandInterestMapper; @Autowired private NewsInterestMapper newsInterestMapper; @Autowired private UserInterestMapper userInterestMapper; @Autowired ProjectInterestMapper projectInterestMapper; @Autowired DemandFollowDetailMapper demandFollowDetailMapper; @Autowired FieldGlossoryMapper fieldGlossoryMapper; @Autowired BranchInformationMapper branchInformationMapper; @Autowired DemandPublishMapper demandPublishMapper; private final int source_platform = 0; @Override public int updateUserDemand(Demand d, String validityPeriodFormattedDate, String[] keywords,List webPages,List appPages) { Date validityPeriod = null; if (!StringUtils.isBlank(validityPeriodFormattedDate)) { try { validityPeriod = DateUtils.parseDate(validityPeriodFormattedDate, AFTConstants.YYYYMMDD); } catch (ParseException e) { } } d.setValidityPeriod(validityPeriod); disposeDemandKeyword(keywords, d, true); disposeDemandPublish(d,webPages,appPages,true); demandMapper.updateByPrimaryKeySelective(d); return 1; } @Override public DemandDetailBo selectUserDemandDetail(String id) { return demandMapper.selectUserDemandDetail(id); } @Override public int deleteByPrimaryKey(List id) { demandKeywordMapper.batchDeleteByDemandIds(id); achievementDemandMapper.batchDeleteByDemandIds(id); for (String s : id) { Demand d = demandMapper.selectByPrimaryKey(s); if (null != d && DemandAuditStatus.AUDITED.getCode().equals(d.getAuditStatus()) && StringUtils.isNotBlank(d.getEmployerId())) { AchievementDemandCount adc = achievementDemandCountMapper.selectByUid(d.getEmployerId()); if (null != adc) { adc.setDemandCount(adc.getDemandCount() - 1); if (adc.getDemandCount() < 0) { adc.setDemandCount(0); } achievementDemandCountMapper.updateByPrimaryKeySelective(adc); } } } return demandMapper.batchDeleteByPrimaryKey(id); } @Override public DemandDetailBo selectOrgDemandDetail(String id) { return demandMapper.selectOrgDemandDetail(id); } @Override public Demand selectByPrimaryKey(String id) { return demandMapper.selectByPrimaryKey(id); } @Override public int updateReleaseStatus(Demand d) { d.setAuditStatus(DemandAuditStatus.AUDITED.getCode()); if(d.getReleaseStatus()==1){ Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); d.setReleaseDate(now.getTime()); } d.setStatus(DemandStatus.UNRESOLVED.getCode()); d.setAuditStatus(DemandAuditStatus.REVOKE.getCode()); int i=0; i=demandMapper.updateByPrimaryKeySelective(d); demandKeywordMapper.batchDeleteByDemandId(d.getId()); achievementDemandMapper.deleteByDemandId(d.getId()); if (StringUtils.isNotBlank(d.getEmployerId())) { AchievementDemandCount adc = achievementDemandCountMapper.selectByUid(d.getEmployerId()); if (null != adc) { adc.setDemandCount(adc.getDemandCount() - 1); if (adc.getDemandCount() < 0) { adc.setDemandCount(0); } achievementDemandCountMapper.updateByPrimaryKeySelective(adc); } } disposeDemandPublish(d, null, null, true); return i; } @Override public int updateAuditDemand(Demand d, String techBroderId, Integer auditStatus) { d.setAuditStatus(auditStatus); if (DemandAuditStatus.AUDITED.getCode().equals(auditStatus)) { Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); d.setReleaseDate(now.getTime()); d.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode()); d.setTechBrokerId(techBroderId); if (StringUtils.isNotBlank(d.getKeyword())) { String[] keywords = d.getKeyword().trim().split(",|,"); disposeDemandKeyword(keywords, d, false); } String employerId = d.getEmployerId(); if (StringUtils.isNotBlank(employerId)) { if (UserType.PERSONAL.getCode().equals(d.getDataCategory())) { UserIdentity ui = userIdentityMapper.selectUserIdentityByUserId(employerId); if (null != ui) { d.setEmployerName(ui.getUsername()); } } else if (UserType.ORGANIZATION.getCode().equals(d.getDataCategory())) { OrganizationIdentity oi = organizationIdentityMapper.selectOrgIdentityByUserId(employerId); if (null != oi) { d.setEmployerName(oi.getUnitName()); } } AchievementDemandCount adc = achievementDemandCountMapper.selectByUid(employerId); if (null == adc) { AchievementDemandCount achievementDemandCount = new AchievementDemandCount(); achievementDemandCount.setId(UUID.randomUUID().toString()); achievementDemandCount.setUid(employerId); achievementDemandCount.setDemandCount(AFTConstants.ACHIEVEMENT_DEMAND_FIRST_COUNT); achievementDemandCount.setAchievementCount(AFTConstants.ACHIEVEMENT_DEMAND_INIT_COUNT); achievementDemandCountMapper.insert(achievementDemandCount); } else { adc.setDemandCount(adc.getDemandCount() + 1); achievementDemandCountMapper.updateByPrimaryKeySelective(adc); } } } else { d.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode()); } createTechBorkerNotice(d); return demandMapper.updateByPrimaryKeySelective(d); } @Override public void saveDemand(Demand d, String validityPeriodFormattedDate, String[] keywords,List webPages, List appPages) { Date validityPeriod = null; if (!StringUtils.isBlank(validityPeriodFormattedDate)) { try { validityPeriod = DateUtils.parseDate(validityPeriodFormattedDate, AFTConstants.YYYYMMDD); } catch (ParseException e) { } } d.setValidityPeriod(validityPeriod); d.setId(UUID.randomUUID().toString()); d.setDeletedSign(DeleteStatus.UNDELETE.getCode()); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); d.setStatus(DemandStatus.UNRESOLVED.getCode()); d.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode()); d.setInfoSources(source_platform); if (DemandAuditStatus.INAUDIT.getCode().equals(d.getAuditStatus())) { createAuditorNotice(d); d.setReleaseDate(new Date()); } else { d.setAuditStatus(DemandAuditStatus.CREATE.getCode()); } d.setCreateTime(now.getTime()); demandMapper.insert(d); disposeDemandKeyword(keywords, d, false); disposeDemandPublish(d,webPages,appPages,false); } @Override public void insertImport(List data) { if (null == data || data.isEmpty()) { return; } Demand d = null; DemandKeyword dk = null; List demandList = new ArrayList<>(); List demandKeywordList = new ArrayList<>(); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); String techBrokerId = TokenManager.getAdminId(); for (DemandImportBo bo : data) { d = new Demand(); BeanUtils.copyProperties(bo, d); d.setId(UUID.randomUUID().toString()); d.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode()); d.setCreateTime(now.getTime()); d.setDeletedSign(DeleteStatus.UNDELETE.getCode()); d.setAuditStatus(DemandAuditStatus.INAUDIT.getCode()); d.setStatus(DemandStatus.UNRESOLVED.getCode()); d.setInfoSources(DemandInfoSourceStatus.IMPORT.getCode()); d.setTechBrokerId(techBrokerId); List keywordsList = bo.getKeywords(); if (null != keywordsList && keywordsList.size() > 0) { for (String s : keywordsList) { if (!StringUtils.isBlank(s)) { dk = new DemandKeyword(); dk.setDemandId(d.getId()); dk.setKeyword(s.trim()); dk.setId(UUID.randomUUID().toString()); demandKeywordList.add(dk); } } } demandList.add(d); } demandMapper.insertBatch(demandList); demandKeywordMapper.insertBatch(demandKeywordList); } @Override public DemandSearchDetailBo selectDemandSearchDetail(String uid, String id) { return demandMapper.selectDemandSearchDetail(uid, id); } private Map disposeParams(Integer auditStatus, Integer province, Integer serialNumber, String name, String keyword, Integer infoSources, Integer demandType, String validityPeriodStartDate, String validityPeriodEndDate, String username, Integer status, Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate,String createDateStartDate, String createDateEndDate, Integer boutique, Integer hot) { Map params = new HashMap<>(); Date vStart = null; Date vEnd = null; Date rStart = null; Date rEnd = null; Date cStart = null; Date cEnd = null; if (!StringUtils.isBlank(validityPeriodStartDate)) { try { vStart = DateUtils.parseDate(validityPeriodStartDate, AFTConstants.YYYYMMDD); } catch (ParseException e) { } } if (!StringUtils.isBlank(validityPeriodEndDate)) { try { vEnd = DateUtils.addDays(DateUtils.parseDate(validityPeriodEndDate, AFTConstants.YYYYMMDD), 1); } catch (ParseException e) { } } if (!StringUtils.isBlank(releaseDateStartDate)) { try { rStart = DateUtils.parseDate(releaseDateStartDate, AFTConstants.YYYYMMDD); } catch (ParseException e) { } } if (!StringUtils.isBlank(releaseDateEndDate)) { try { rEnd = DateUtils.addDays(DateUtils.parseDate(releaseDateEndDate, AFTConstants.YYYYMMDD), 1); } catch (ParseException e) { } } if (!StringUtils.isBlank(createDateStartDate)) { try { cStart = DateUtils.parseDate(createDateStartDate, AFTConstants.YYYYMMDD); } catch (ParseException e) { } } if (!StringUtils.isBlank(createDateEndDate)) { try { cEnd = DateUtils.addDays(DateUtils.parseDate(createDateEndDate, AFTConstants.YYYYMMDD), 1); } catch (ParseException e) { } } if (null != vStart) { params.put("vStart", vStart); } if (null != vEnd) { params.put("vEnd", vEnd); } if (null != rStart) { params.put("rStart", rStart); } if (null != rEnd) { params.put("rEnd", rEnd); } if (null != cStart) { params.put("cStart", cStart); } if (null != cEnd) { params.put("cEnd", cEnd); } if (null != auditStatus) { params.put("auditStatus", auditStatus); } if (null != province) { params.put("province", province); } if (null != serialNumber) { params.put("serialNumber", serialNumber); } if (!StringUtils.isBlank(name)) { params.put("name", name); } if (!StringUtils.isBlank(keyword)) { params.put("keyword", keyword); } /* * if (!StringUtils.isBlank(username)) { params.put("username", * username); } */ if (null != infoSources) { params.put("infoSources", infoSources); } if (null != demandType) { params.put("demandType", demandType); } if (null != status) { params.put("status", status); } if (null != releaseStatus) { params.put("releaseStatus", releaseStatus); } if (null != boutique) { params.put("boutique", boutique); } if (null != hot) { params.put("hot", hot); } return params; } // 给所有审核员发送审核通知 private void createAuditorNotice(Demand d) { List ids = userRoleMapper.listAuditor(); List list = new ArrayList<>(); if (null != ids && ids.size() > 0) { for (String s : ids) { list.add(disposeNotice(d, s)); } noticeMapper.insertBatch(list); } } // 给指派技术经纪人发送审核结果通知 private void createTechBorkerNotice(Demand a) { // noticeMapper.insert(disposeNotice(a, null)); } private Notice disposeNotice(Demand d, String aid) { Notice n = new Notice(); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); n.setId(UUID.randomUUID().toString()); n.setCreateTime(now.getTime()); n.setReaded(NoticeReadStatus.UNREAD.getCode()); n.setRid(d.getId()); User u = userMapper.selectByPrimaryKey(d.getEmployerId()); if (null != u) { n.setPid(u.getAid()); } if (StringUtils.isBlank(aid)) { n.setAid(d.getTechBrokerId()); if (UserType.PERSONAL.getCode().equals(d.getDataCategory())) { n.setContent("编号" + d.getSerialNumber() + NoticeStatus.PERSONALDEMAND.getDesc() + " " + (DemandAuditStatus.AUDITED.getCode().equals(d.getAuditStatus()) ? DemandAuditStatus.AUDITED.getDesc() : DemandAuditStatus.UNAUDITED.getDesc())); n.setNoticeType(NoticeStatus.PERSONALDEMAND.getCode()); } else if (UserType.ORGANIZATION.getCode().equals(d.getDataCategory())) { n.setContent("编号" + d.getSerialNumber() + NoticeStatus.ORGANIZATIONDEMAND.getDesc() + " " + (DemandAuditStatus.AUDITED.getCode().equals(d.getAuditStatus()) ? DemandAuditStatus.AUDITED.getDesc() : DemandAuditStatus.UNAUDITED.getDesc())); n.setNoticeType(NoticeStatus.ORGANIZATIONDEMAND.getCode()); } } else { n.setAid(aid); if (UserType.PERSONAL.getCode().equals(d.getDataCategory())) { n.setContent(NoticeStatus.PERSONALDEMAND.getDesc() + " " + DemandAuditStatus.INAUDIT.getDesc()); n.setNoticeType(NoticeStatus.PERSONALDEMAND.getCode()); } else if (UserType.ORGANIZATION.getCode().equals(d.getDataCategory())) { n.setContent(NoticeStatus.ORGANIZATIONDEMAND.getDesc() + " " + DemandAuditStatus.INAUDIT.getDesc()); n.setNoticeType(NoticeStatus.ORGANIZATIONDEMAND.getCode()); } } return n; } private void disposeDemandPublish(Demand d,List webPages,List appPages,boolean delete){ if(delete){ if(null != webPages && webPages.size()>0){ demandPublishMapper.batchDeleteByDemandId(d.getId()); } } DemandPublish dp = null; String defaultPlatformId = branchInformationMapper.selectByDomain(PageConstants.DEFAULT_DOMAIN).getId(); if(webPages != null && webPages.size()>0){ for(String page: webPages){ dp = new DemandPublish(); dp.setId(UUID.randomUUID().toString()); dp.setDemandId(d.getId()); dp.setPublisher(TokenManager.getUserId()); dp.setPublishTime(d.getReleaseDate()==null?new Date():d.getReleaseDate()); dp.setPublishClient(PageConstants.WEB_PLATFORM); dp.setPublishPage(page); dp.setPublishPlatform(defaultPlatformId); dp.setIfTop(AFTConstants.NO); dp.setTopNumber(PageConstants.DEFAULT_TOP_NUMBER); dp.setShowNumber(PageConstants.DEFAULT_SHOW_NUMBER); demandPublishMapper.insert(dp); } } if(appPages != null && appPages.size()>0){ for(String page: appPages){ dp = new DemandPublish(); dp.setId(UUID.randomUUID().toString()); dp.setDemandId(d.getId()); dp.setPublisher(TokenManager.getUserId()); dp.setPublishTime(d.getReleaseDate()==null?new Date():d.getReleaseDate()); dp.setPublishClient(PageConstants.APP_PLATFORM); dp.setPublishPage(page); dp.setPublishPlatform(defaultPlatformId); dp.setIfTop(AFTConstants.NO); dp.setTopNumber(PageConstants.DEFAULT_TOP_NUMBER); dp.setShowNumber(PageConstants.DEFAULT_SHOW_NUMBER); demandPublishMapper.insert(dp); } } } private void disposeDemandKeyword(String[] keywords, Demand d, boolean delete) { if (null != keywords && keywords.length > 0) { if (delete) { demandKeywordMapper.batchDeleteByDemandId(d.getId()); } List list = new ArrayList<>(); DemandKeyword dk = null; for (int i = 0; i < keywords.length; i++) { dk = new DemandKeyword(); dk.setId(UUID.randomUUID().toString()); dk.setDemandId(d.getId()); dk.setKeyword(keywords[i].trim()); list.add(dk); } demandKeywordMapper.insertBatch(list); } } @Override public int updateMatchAchievement(Demand d) { achievementDemandMapper.deleteByDemandId(d.getId()); List demand = demandKeywordMapper.selectKeywordsByDemandId(d.getId()); if (null != demand && demand.size() > 0) { List keyword = new ArrayList<>(); for (DemandKeyword k : demand) { if (!StringUtils.isBlank(k.getKeyword())) { keyword.add(k.getKeyword()); } } List list = achievementKeywordMapper.selectAchievementDemand(keyword); if (null != list && list.size() > 0) { for (AchievementDemand ad : list) { ad.setDemandId(d.getId()); } return achievementDemandMapper.insertBatch(list); } } return 0; } @Override public int updateByPrimaryKeySelective(Demand d) { return demandMapper.updateByPrimaryKeySelective(d); } @Override public DemandListBo selectAppDemandDetail(String id ) { DemandListBo d=demandMapper.selectAppByPrimaryKey(id); if (null!=d.getIndustryCategoryA()) { d.setIndustryCategory1(fieldGlossoryMapper.selectByPrimaryKey(d.getIndustryCategoryA()).getName()); } if (null!=d.getIndustryCategoryB()) { d.setIndustryCategory2(String.valueOf(fieldGlossoryMapper.selectByPrimaryKey(d.getIndustryCategoryB()).getName())); } if (null!=d.getIndustryCategoryC()) { d.setIndustryCategory3(String.valueOf(fieldGlossoryMapper.selectByPrimaryKey(d.getIndustryCategoryC()).getName())); } int i=demandMapper.countInterest(d.getId()); d.setCountInterest(String.valueOf(i)); String uid=TokenManager.getUserId(); if(TokenManager.isLogin()&&demandInterestMapper.checkUidAndDid(uid,id)>0){ d.setInterest("1");//已关注 }else { d.setInterest("0");//未关注 } return d; } @SuppressWarnings("unchecked") @Override public Pagination selectinterest(Integer type,Integer pNo, Integer pSize) { if (pNo == null || pNo < 0) { pNo = 1; } if (pSize == null || pSize < 0) { pSize = 10; } Map params=new HashMap<>(); params.put("type", type); if (StringUtils.isNotBlank(TokenManager.getUserId())) { params.put("uid", TokenManager.getUserId()); } //params.put("uid", "6d71349c-7bb8-4e8a-8c03-0c3f36fc66ae"); if (type==InterestType.POLICY.getCode()) { Pagination p=(Pagination) findPage("findAppNewsInterestByPage", "findAppNewsInterestCount", params, pNo, pSize); List l=(List) p.getList(); for (ObjectInterestListBo o : l) { int i=newsInterestMapper.countInterest(o.getId()); o.setCountInterest(String.valueOf(i)); o.setType(type); } return p; } if (type==InterestType.EXPERTS.getCode()) { Pagination p=(Pagination) findPage("findAppUserInterestByPage", "findAppUserInterestCount", params, pNo, pSize); List l=(List) p.getList(); for (ObjectInterestListBo o : l) { int i=userInterestMapper.countInterest(o.getId()); o.setCountInterest(String.valueOf(i)); o.setType(type); } return p; } if (type==InterestType.DEMAND.getCode()) { Pagination p=(Pagination) findPage("findAppDemandInterestByPage", "findAppDemandInterestCount", params, pNo, pSize); List l=(List) p.getList(); for (ObjectInterestListBo o : l) { int i=demandInterestMapper.checkCount(o.getId()); o.setCountInterest(String.valueOf(i)); o.setType(type); } return p; } if (null==type||type==InterestType.ACHIEVEMENT.getCode()) { Pagination p=(Pagination) findPage("findAppAchievementInterestByPage", "findAppAchievementInterestCount", params, pNo, pSize); List l=(List) p.getList(); for (ObjectInterestListBo o : l) { int i=achievementMapper.countInterest(o.getId()); o.setCountInterest(String.valueOf(i)); o.setType(type); } return p; } if (null==type||type==InterestType.PROJECT.getCode()) { Pagination p=(Pagination) findPage("findAppProjectInterestByPage", "findAppProjectInterestCount", params, pNo, pSize); List l=(List) p.getList(); for (ObjectInterestListBo o : l) { int i=projectInterestMapper.countInterest(o.getId()); o.setCountInterest(String.valueOf(i)); o.setType(type); } return p; } if (type==InterestType.COUNSELOR.getCode()) { Pagination p=(Pagination) findPage("findAppCounselorInterestByPage", "findAppCounselorInterestCount", params, pNo, pSize); List l=(List) p.getList(); for (ObjectInterestListBo o : l) { int i=userInterestMapper.countInterest(o.getId()); o.setCountInterest(String.valueOf(i)); o.setType(type); } return p; } return null; } @SuppressWarnings("unchecked") @Override public Pagination listMyDemand(Integer pNo, Integer pSize) { Map params = new HashMap<>(); if (pNo == null || pNo < 0) { pNo = 1; } if (pSize == null || pSize < 0) { pSize = 10; } if (StringUtils.isNotBlank(TokenManager.getUserId())) { params.put("employerId", TokenManager.getUserId()); } //params.put("employerId", "46433140-0a90-471e-a32f-6bc89c562e3d"); return (Pagination) findPage("findAppMyDemandListByPage", "findAppMyDemandCount", params, pNo, pSize); } public int saveAppUserDemand(Demand d, String validityPeriodFormattedDate, String[] keywords) { Date validityPeriod = null; if (!StringUtils.isBlank(validityPeriodFormattedDate)) { try { validityPeriod = DateUtils.parseDate(validityPeriodFormattedDate, AFTConstants.YYYYMMDD); } catch (ParseException e) { } } d.setInfoSources(1); if (null!=TokenManager.getUserId()) { d.setEmployerId(TokenManager.getUserId()); User u=userMapper.selectByPrimaryKey(TokenManager.getUserId()); if (null!=u.getType()) { d.setDataCategory(u.getType()); } if (StringUtils.isNotBlank(u.getId())) { d.setEmployerId(u.getId()); } if (StringUtils.isNotBlank(u.getMobile())) { d.setEmployerContactsMobile(u.getMobile()); } } d.setValidityPeriod(validityPeriod); d.setId(UUID.randomUUID().toString()); d.setTechBrokerId(TokenManager.getAdminId()); d.setDeletedSign(DeleteStatus.UNDELETE.getCode()); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); d.setStatus(DemandStatus.UNRESOLVED.getCode()); d.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode()); d.setPrincipalId(TokenManager.getAdminId()); d.setAuditStatus(DemandAuditStatus.INAUDIT.getCode()); createAuditorNotice(d); if (null==d.getKeyword()) { d.setKeyword(""); } d.setCreateTime(now.getTime()); //disposeDemandKeyword(keywords, d, false); return demandMapper.insert(d); } @Override public Demand DemandFollowDetails(String id) { return demandMapper.selectDemandFollow(id); } @Override public List recentDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.selectRecentDemand(size,pattern,showLocation); } @Override public List companyDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.selectCompanyDemand(size,pattern,showLocation); } @Override public List getUrgentDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getUrgentDemand(size,pattern,showLocation); } @Override public List getHotDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getHotDemand(size,pattern,showLocation); } @Override public List areaDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getAreaDemand(size,pattern,showLocation); } @Override public List proLearnStudyDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getProLearnStudyDemand(size,pattern,showLocation); } @Override public List getFundCrowdDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getFundCrowdDemand(size,pattern,showLocation); } @Override public List getPersonnelDemand(int size,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getPersonnelDemand(size,pattern,showLocation); } @SuppressWarnings("unchecked") @Override public Pagination listAppDemand(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer demandType,Integer industryCategoryA, String validityPeriodStartDate, String validityPeriodEndDate, Integer status, Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate,String employerId, Integer pNo, Integer pSize) { Map params = disposeParams(auditStatus, null, serialNumber, name, keyword, null, demandType, validityPeriodStartDate, validityPeriodEndDate, null, status, releaseStatus, releaseDateStartDate, releaseDateEndDate,null,null, null, null); if (null!=industryCategoryA) { params.put("industryCategoryA", industryCategoryA); } if (null!=employerId) { params.put("employerId", employerId); } if (pNo == null || pNo < 0) { pNo = 1; } if (pSize == null || pSize < 0) { pSize = 10; } Pagination p=(Pagination) findPage("findAppDemandListByPage", "findAppDemandCount", params, pNo, pSize); return p; } @Override public DemandListBo getDemandDetail(String id, Integer type) { // TODO Auto-generated method stub return demandMapper.getDemandDetail(id, type); } @Override public int getInterestCount(String id) { // TODO Auto-generated method stub return demandMapper.countInterest(id); } @Override public List getBoutiqueDemandList(int i,String pattern,String showLocation) { // TODO Auto-generated method stub return demandMapper.getBoutiqueDemandList(i,pattern,showLocation); } @SuppressWarnings("unchecked") @Override public Pagination listMyDemand(String name, String startDate, String endDate, Integer pageNo, Integer pageSize) { Map params = new HashMap(); if(StringUtils.isNotBlank(name)) params.put("name", name); if(StringUtils.isNotBlank(startDate)) params.put("startDate", startDate); if(StringUtils.isNotBlank(endDate)) params.put("endDate", endDate); params.put("employerId", TokenManager.getUserId()); return (Pagination) findPage("selectDemandListByPage", "selectDemandListCount", params, pageNo, pageSize); } @SuppressWarnings("unchecked") @Override public Pagination listDemand(String name, String employerName, Integer demandType, Integer auditStatus, Integer status, String startDate, String endDate,Integer pageNo, Integer pageSize) { Map params = new HashMap(); if(StringUtils.isNotBlank(name)) params.put("name", name); if(StringUtils.isNotBlank(employerName)) params.put("identifyName", employerName); if(demandType != null) params.put("demandType", demandType); if(auditStatus != null) params.put("auditStatus", auditStatus); if(status != null) params.put("status",status); if(StringUtils.isNotBlank(startDate)) params.put("startDate", startDate); if(StringUtils.isNotBlank(endDate)) params.put("endDate", endDate); return (Pagination) findPage("selectDemandListByPage", "selectDemandListCount", params, pageNo, pageSize); } @Override public DemandDetailBo selectDemandDetail(String id) { DemandDetailBo bo = demandMapper.selectDemandDetail(id); bo.setPublishPages(demandPublishMapper.selectPublishPages(id)); return bo; } }