AchievementServiceImpl.java 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856
  1. package com.goafanti.achievement.service.impl;
  2. import java.text.ParseException;
  3. import java.util.ArrayList;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.UUID;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.BeanUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.cache.annotation.CacheEvict;
  16. import org.springframework.stereotype.Service;
  17. import com.goafanti.achievement.bo.AchievementEntity;
  18. import com.goafanti.achievement.bo.AchievementImportBo;
  19. import com.goafanti.achievement.bo.AchievementListBo;
  20. import com.goafanti.achievement.bo.AchievementOrgOwnerDetailBo;
  21. import com.goafanti.achievement.bo.AchievementPartnerListBo;
  22. import com.goafanti.achievement.bo.AchievementUserOwnerDetailBo;
  23. import com.goafanti.achievement.service.AchievementService;
  24. import com.goafanti.common.bo.MyCollection;
  25. import com.goafanti.common.bo.PolicyEntity;
  26. import com.goafanti.common.constant.AFTConstants;
  27. import com.goafanti.common.constant.PageConstants;
  28. import com.goafanti.common.dao.AchievementDemandCountMapper;
  29. import com.goafanti.common.dao.AchievementDemandMapper;
  30. import com.goafanti.common.dao.AchievementInterestMapper;
  31. import com.goafanti.common.dao.AchievementKeywordMapper;
  32. import com.goafanti.common.dao.AchievementMapper;
  33. import com.goafanti.common.dao.AchievementPublishMapper;
  34. import com.goafanti.common.dao.BranchInformationMapper;
  35. import com.goafanti.common.dao.DemandKeywordMapper;
  36. import com.goafanti.common.dao.NoticeMapper;
  37. import com.goafanti.common.dao.OrganizationIdentityMapper;
  38. import com.goafanti.common.dao.UserIdentityMapper;
  39. import com.goafanti.common.dao.UserMapper;
  40. import com.goafanti.common.dao.UserRoleMapper;
  41. import com.goafanti.common.enums.AchievementAuditStatus;
  42. import com.goafanti.common.enums.AchievementReleaseStatus;
  43. import com.goafanti.common.enums.AchievementSwitchSign;
  44. import com.goafanti.common.enums.DeleteStatus;
  45. import com.goafanti.common.enums.DemandReleaseStatus;
  46. import com.goafanti.common.enums.NoticeReadStatus;
  47. import com.goafanti.common.enums.NoticeStatus;
  48. import com.goafanti.common.enums.UserType;
  49. import com.goafanti.common.model.Achievement;
  50. import com.goafanti.common.model.AchievementDemand;
  51. import com.goafanti.common.model.AchievementDemandCount;
  52. import com.goafanti.common.model.AchievementKeyword;
  53. import com.goafanti.common.model.AchievementPublish;
  54. import com.goafanti.common.model.Admin;
  55. import com.goafanti.common.model.Notice;
  56. import com.goafanti.common.model.OrganizationIdentity;
  57. import com.goafanti.common.model.User;
  58. import com.goafanti.common.model.UserIdentity;
  59. import com.goafanti.common.utils.DateUtils;
  60. import com.goafanti.common.utils.LoggerUtils;
  61. import com.goafanti.core.mybatis.BaseMybatisDao;
  62. import com.goafanti.core.mybatis.page.Pagination;
  63. import com.goafanti.core.shiro.token.TokenManager;
  64. import com.goafanti.demand.bo.DemandAchievementListBo;
  65. import com.goafanti.portal.bo.AchievementDetailBo;
  66. import com.goafanti.portal.bo.AchievementObject;
  67. import com.goafanti.portal.bo.AchievementPortalDetailBo;
  68. import com.goafanti.portal.bo.AchievementResultObject;
  69. @Service
  70. public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
  71. @Autowired
  72. private AchievementMapper achievementMapper;
  73. @Autowired
  74. private UserRoleMapper userRoleMapper;
  75. @Autowired
  76. private NoticeMapper noticeMapper;
  77. @Autowired
  78. private AchievementKeywordMapper achievementKeywordMapper;
  79. @Autowired
  80. private AchievementDemandMapper achievementDemandMapper;
  81. @Autowired
  82. private DemandKeywordMapper demandKeywordMapper;
  83. @Autowired
  84. private AchievementDemandCountMapper achievementDemandCountMapper;
  85. @Autowired
  86. private UserIdentityMapper userIdentityMapper;
  87. @Autowired
  88. private OrganizationIdentityMapper organizationIdentityMapper;
  89. @Autowired
  90. private AchievementInterestMapper achievementInterestMapper;
  91. @Autowired
  92. private UserMapper userMapper;
  93. @Autowired
  94. BranchInformationMapper branchInformationMapper;
  95. @Autowired
  96. AchievementPublishMapper achievementPublishMapper;
  97. private static final Logger logger = LoggerFactory.getLogger(AchievementServiceImpl.class);
  98. @Override
  99. public void saveAchievement(Achievement a, String[] keywords,List<String >webPages,List<String>appPages) {
  100. a.setId(UUID.randomUUID().toString());
  101. a.setDeletedSign(DeleteStatus.UNDELETE.getCode());
  102. Calendar now = Calendar.getInstance();
  103. now.set(Calendar.MILLISECOND, 0);
  104. if (TokenManager.getToken() instanceof Admin) {
  105. a.setTechBrokerId(TokenManager.getAdminId());
  106. }
  107. a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
  108. if (AchievementAuditStatus.SUBMIT.getCode()==a.getAuditStatus()) {
  109. createAuditorNotice(a);
  110. } else {
  111. a.setAuditStatus(AchievementAuditStatus.CREATE.getCode());
  112. }
  113. String ownerId = "";
  114. if (TokenManager.getToken() instanceof User) {
  115. a.setOwnerId(TokenManager.getUserId());
  116. User u=userMapper.selectByPrimaryKey(TokenManager.getUserId());
  117. if (null != u) {
  118. ownerId = u.getId();
  119. }
  120. }
  121. a.setCreateTime(now.getTime());
  122. a.setOrgId(ownerId);
  123. a.setInfoSources(1);
  124. achievementMapper.insert(a);
  125. disposeAchievementKeyword(keywords, a, false);
  126. disposeAchievementPublish(a,webPages,appPages,false);
  127. }
  128. private void disposeAchievementPublish(Achievement a,List<String> webPages,List<String> appPages,boolean delete){
  129. if(delete){
  130. if(null != webPages && webPages.size()>0){
  131. achievementPublishMapper.deleteByAchievementId(a.getId());
  132. }
  133. }
  134. AchievementPublish ap = null;
  135. String defaultPlatformId = branchInformationMapper.selectByDomain(PageConstants.DEFAULT_DOMAIN).getId();
  136. if(webPages != null && webPages.size()>0){
  137. for(String page: webPages){
  138. ap = new AchievementPublish();
  139. ap.setId(UUID.randomUUID().toString());
  140. ap.setAchievementId((a.getId()));
  141. ap.setPublisher(TokenManager.getUserId());
  142. ap.setPublisher("1");
  143. ap.setPublishTime(a.getReleaseDate()==null?new Date():a.getReleaseDate());
  144. ap.setPublishClient(PageConstants.WEB_PLATFORM);
  145. ap.setPublishPage(page);
  146. ap.setPublishPlatform(defaultPlatformId);
  147. ap.setIfTop(AFTConstants.NO);
  148. ap.setTopNumber(PageConstants.DEFAULT_TOP_NUMBER);
  149. ap.setShowNumber(PageConstants.DEFAULT_SHOW_NUMBER);
  150. achievementPublishMapper.insert(ap);
  151. }
  152. }
  153. if(appPages != null && appPages.size()>0){
  154. for(String page: appPages){
  155. ap = new AchievementPublish();
  156. ap.setId(UUID.randomUUID().toString());
  157. ap.setAchievementId(a.getId());
  158. ap.setPublisher(TokenManager.getUserId());
  159. ap.setPublishTime(a.getReleaseDate()==null?new Date():a.getReleaseDate());
  160. ap.setPublishClient(PageConstants.APP_PLATFORM);
  161. ap.setPublishPage(page);
  162. ap.setPublishPlatform(defaultPlatformId);
  163. ap.setIfTop(AFTConstants.NO);
  164. ap.setTopNumber(PageConstants.DEFAULT_TOP_NUMBER);
  165. ap.setShowNumber(PageConstants.DEFAULT_SHOW_NUMBER);
  166. achievementPublishMapper.insert(ap);
  167. }
  168. }
  169. }
  170. @Override
  171. public int updateAchievement(Achievement a, String[] keywords, Integer switchSign,List<String>webPages,List<String>appPages) {
  172. if (AchievementAuditStatus.SUBMIT.getCode().equals(a.getAuditStatus())) {
  173. createAuditorNotice(a);
  174. }
  175. disposeAchievementKeyword(keywords, a, true);
  176. disposeAchievementPublish(a,webPages,appPages,true);
  177. if (null != switchSign && AchievementSwitchSign.CLOSE.getCode().equals(switchSign)) {
  178. a.setOwnerId("");
  179. }
  180. achievementMapper.updateByPrimaryKeySelective(a);
  181. return 1;
  182. }
  183. @Override
  184. public Achievement selectByPrimaryKey(String id) {
  185. return achievementMapper.selectByPrimaryKey(id);
  186. }
  187. @Override
  188. public int deleteByPrimaryKey(List<String> id) {
  189. achievementKeywordMapper.batchDeleteByAchievementIds(id);
  190. achievementDemandMapper.batchDeleteByAchievementIds(id);
  191. achievementPublishMapper.batchDeleteByAchievementIds(id);
  192. for (String s : id) {
  193. Achievement a = achievementMapper.selectByPrimaryKey(s);
  194. if (null != a && AchievementAuditStatus.AUDITED.getCode().equals(a.getAuditStatus())
  195. && StringUtils.isNotBlank(a.getOwnerId())) {
  196. AchievementDemandCount adc = achievementDemandCountMapper.selectByUid(a.getOwnerId());
  197. if (null != adc) {
  198. adc.setAchievementCount(adc.getAchievementCount() - 1);
  199. if (adc.getAchievementCount() < 0) {
  200. adc.setAchievementCount(0);
  201. }
  202. achievementDemandCountMapper.updateByPrimaryKeySelective(adc);
  203. }
  204. }
  205. }
  206. return achievementMapper.batchDeleteByPrimaryKey(id);
  207. }
  208. @SuppressWarnings("unchecked")
  209. @Override
  210. public Pagination<AchievementObject> listMyAchievement(Integer auditStatus, String name,Integer dataCategory,
  211. String startDate,String endDate, Integer pNo, Integer pSize) {
  212. System.out.println("as:"+auditStatus+" dc:"+ dataCategory);
  213. Map<String,Object> params = new HashMap<>();
  214. params.put("ownerId", TokenManager.getUserId());
  215. if (null != startDate) params.put("startDate", startDate);
  216. if (null != endDate) params.put("endDate", endDate);
  217. if (null != auditStatus) params.put("auditStatus", auditStatus);
  218. if(null != dataCategory) params.put("dataCategory", dataCategory);
  219. if (!StringUtils.isBlank(name)) params.put("name", name);
  220. return (Pagination<AchievementObject>) findPage("listMyAchievementByPage", "listMyAchievementCount",params,
  221. pNo, pSize);
  222. }
  223. private Map<String, Object> disposeParams(Integer ownerType,String username, String ownerName, String ownerId, Integer auditStatus,
  224. Integer serialNumber, String name, String keyword, Integer category, Integer status,
  225. String releaseDateStartDate, String releaseDateEndDate,String createDateStartDate, String createDateEndDate, Integer releaseStatus, Integer type,
  226. Integer boutique,String internationalFlag, Integer hot,String recordPerson) {
  227. Map<String, Object> params = new HashMap<>();
  228. Date rStart = null;
  229. Date rEnd = null;
  230. Date cStart = null;
  231. Date cEnd = null;
  232. if (null != ownerType) {
  233. params.put("ownerType", ownerType);
  234. }
  235. if (null != recordPerson) {
  236. params.put("recordPerson", recordPerson);
  237. }
  238. if (!StringUtils.isBlank(releaseDateStartDate)) {
  239. try {
  240. rStart = DateUtils.parseDate(releaseDateStartDate, AFTConstants.YYYYMMDD);
  241. } catch (ParseException e) {
  242. }
  243. }
  244. if (!StringUtils.isBlank(releaseDateEndDate)) {
  245. try {
  246. rEnd = DateUtils.addDays(DateUtils.parseDate(releaseDateEndDate, AFTConstants.YYYYMMDD), 1);
  247. } catch (ParseException e) {
  248. }
  249. }
  250. if (!StringUtils.isBlank(createDateStartDate)) {
  251. try {
  252. cStart = DateUtils.parseDate(createDateStartDate, AFTConstants.YYYYMMDD);
  253. } catch (ParseException e) {
  254. }
  255. }
  256. if (!StringUtils.isBlank(createDateEndDate)) {
  257. try {
  258. cEnd = DateUtils.addDays(DateUtils.parseDate(createDateEndDate, AFTConstants.YYYYMMDD), 1);
  259. } catch (ParseException e) {
  260. }
  261. }
  262. if (StringUtils.isNotBlank(ownerName)) {
  263. params.put("ownerName", ownerName);
  264. }
  265. if (null != type && StringUtils.isNotBlank(username)) {
  266. if (UserType.PERSONAL.getCode().equals(type)) {
  267. params.put("username", username);
  268. } else {
  269. params.put("unitName", username);
  270. }
  271. }
  272. if (null != rStart) {
  273. params.put("rStart", rStart);
  274. }
  275. if (null != rEnd) {
  276. params.put("rEnd", rEnd);
  277. }
  278. if (null != cStart) {
  279. params.put("cStart", cStart);
  280. }
  281. if (null != cEnd) {
  282. params.put("cEnd", cEnd);
  283. }
  284. if (null != auditStatus) {
  285. params.put("auditStatus", auditStatus);
  286. }
  287. if (!StringUtils.isBlank(ownerId)) {
  288. params.put("ownerId", ownerId);
  289. }
  290. if (null != serialNumber) {
  291. params.put("serialNumber", serialNumber);
  292. }
  293. if (!StringUtils.isBlank(name)) {
  294. params.put("name", name);
  295. }
  296. if (!StringUtils.isBlank(keyword)) {
  297. params.put("keyword", keyword);
  298. }
  299. if (null != category) {
  300. params.put("category", category);
  301. }
  302. if (null != status) {
  303. params.put("status", status);
  304. }
  305. if (null != releaseStatus) {
  306. params.put("releaseStatus", releaseStatus);
  307. }
  308. if (null != boutique) {
  309. params.put("boutique", boutique);
  310. }
  311. if (null != hot) {
  312. params.put("hot", hot);
  313. }
  314. if (null != internationalFlag) {
  315. params.put("internationalFlag", internationalFlag);
  316. }
  317. if (!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
  318. params.put("techBrokerId", TokenManager.getAdminId());
  319. }
  320. return params;
  321. }
  322. @Override
  323. public int updateAuditAchievement(Achievement a, String techBroderId, Integer auditStatus) {
  324. a.setAuditStatus(auditStatus);
  325. if (AchievementAuditStatus.AUDITED.getCode().equals(auditStatus)) {
  326. Calendar now = Calendar.getInstance();
  327. now.set(Calendar.MILLISECOND, 0);
  328. a.setReleaseDate(now.getTime());
  329. a.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode());
  330. a.setTechBrokerId(techBroderId);
  331. if (StringUtils.isNotBlank(a.getKeyword())) {
  332. String[] keywords = a.getKeyword().trim().split(",|,");
  333. disposeAchievementKeyword(keywords, a, false);
  334. }
  335. String ownerId = a.getOwnerId();
  336. if (StringUtils.isNotBlank(ownerId)) {
  337. if (UserType.PERSONAL.getCode().equals(a.getOwnerType())) {
  338. UserIdentity ui = userIdentityMapper.selectUserIdentityByUserId(ownerId);
  339. if (null != ui) {
  340. a.setOwnerName(ui.getUsername());
  341. }
  342. } else if (UserType.ORGANIZATION.getCode().equals(a.getOwnerType())) {
  343. OrganizationIdentity oi = organizationIdentityMapper.selectOrgIdentityByUserId(ownerId);
  344. if (null != oi) {
  345. a.setOwnerName(oi.getUnitName());
  346. }
  347. }
  348. AchievementDemandCount adc = achievementDemandCountMapper.selectByUid(ownerId);
  349. if (null == adc) {
  350. AchievementDemandCount achievementDemandCount = new AchievementDemandCount();
  351. achievementDemandCount.setId(UUID.randomUUID().toString());
  352. achievementDemandCount.setUid(ownerId);
  353. achievementDemandCount.setAchievementCount(AFTConstants.ACHIEVEMENT_DEMAND_FIRST_COUNT);
  354. achievementDemandCount.setDemandCount(AFTConstants.ACHIEVEMENT_DEMAND_INIT_COUNT);
  355. achievementDemandCountMapper.insert(achievementDemandCount);
  356. } else {
  357. adc.setAchievementCount(adc.getAchievementCount() + 1);
  358. achievementDemandCountMapper.updateByPrimaryKeySelective(adc);
  359. }
  360. }
  361. } else {
  362. a.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode());
  363. }
  364. createTechBorkerNotice(a);
  365. return achievementMapper.updateByPrimaryKeySelective(a);
  366. }
  367. @Override
  368. public int updateReleaseStatus(Achievement a) {
  369. a.setAuditStatus(AchievementAuditStatus.REVOKE.getCode());
  370. // if(a.getReleaseStatus()==1){
  371. // Calendar now = Calendar.getInstance();
  372. // now.set(Calendar.MILLISECOND, 0);
  373. // a.setReleaseDate(now.getTime());
  374. // }
  375. achievementDemandMapper.deleteByAchievementId(a.getId());
  376. // achievementKeywordMapper.batchDeleteByAchievementId(a.getId());
  377. achievementPublishMapper.deleteByAchievementId(a.getId());
  378. int i=0;
  379. i=achievementMapper.updateByPrimaryKeySelective(a);
  380. if (StringUtils.isNotBlank(a.getOwnerId())) {
  381. AchievementDemandCount adc = achievementDemandCountMapper.selectByUid(a.getOwnerId());
  382. if (null != adc) {
  383. adc.setAchievementCount(adc.getAchievementCount() - 1);
  384. if (adc.getAchievementCount() < 0) {
  385. adc.setAchievementCount(0);
  386. }
  387. achievementDemandCountMapper.updateByPrimaryKeySelective(adc);
  388. }
  389. }
  390. return i;
  391. }
  392. @Override
  393. public AchievementEntity selectAppUserOwnerDetail(String id) {
  394. String uid=TokenManager.getUserId();
  395. return achievementMapper.selectAppAchuevementDetail(id,uid);
  396. }
  397. @Override
  398. public AchievementOrgOwnerDetailBo selectOrgOwnerDetail(String id) {
  399. return achievementMapper.selectOrgOwnerDetail(id);
  400. }
  401. @Override
  402. public AchievementUserOwnerDetailBo selectUserOwnerDetail(String id) {
  403. return achievementMapper.selectUserOwnerDetail(id);
  404. }
  405. @Override
  406. public List<DemandAchievementListBo> selectAchievementDemandListByAchievementId(String id) {
  407. return achievementDemandMapper.selectAchievementDemandListByAchievementId(id);
  408. }
  409. @Override
  410. public void insertImport(List<AchievementImportBo> data) {
  411. if (null == data || data.isEmpty()) {
  412. return;
  413. }
  414. Achievement a = null;
  415. AchievementKeyword ak = null;
  416. List<Achievement> achievementList = new ArrayList<>();
  417. List<AchievementKeyword> AchievementKeywordList = new ArrayList<>();
  418. Calendar now = Calendar.getInstance();
  419. now.set(Calendar.MILLISECOND, 0);
  420. String techBrokerId = TokenManager.hasRole(AFTConstants.TECHBROKER) ? TokenManager.getAdminId() : null;
  421. for (AchievementImportBo bo : data) {
  422. a = new Achievement();
  423. BeanUtils.copyProperties(bo, a);
  424. a.setId(UUID.randomUUID().toString());
  425. a.setDeletedSign(DeleteStatus.UNDELETE.getCode());
  426. a.setCreateTime(now.getTime());
  427. a.setAuditStatus(AchievementAuditStatus.SUBMIT.getCode());
  428. a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
  429. a.setTechBrokerId(techBrokerId);
  430. List<String> keywordsList = bo.getKeywords();
  431. if (null != keywordsList && keywordsList.size() > 0) {
  432. for (String s : keywordsList) {
  433. if (!StringUtils.isBlank(s)) {
  434. ak = new AchievementKeyword();
  435. ak.setAchievementId(a.getId());
  436. ak.setKeyword(s.trim());
  437. ak.setId(UUID.randomUUID().toString());
  438. AchievementKeywordList.add(ak);
  439. }
  440. }
  441. }
  442. achievementList.add(a);
  443. }
  444. achievementMapper.insertBatch(achievementList);
  445. achievementKeywordMapper.insertBatch(AchievementKeywordList);
  446. }
  447. @Override
  448. public AchievementDetailBo selectAchievementDetail(String uid, String id) {
  449. return achievementMapper.selectAchievementDetail(uid, id);
  450. }
  451. private void createTechBorkerNotice(Achievement a) {
  452. // noticeMapper.insert(disposeNotice(a, null));
  453. }
  454. // 给所有审核员发送审核通知
  455. private void createAuditorNotice(Achievement a) {
  456. List<String> ids = userRoleMapper.listAuditor();
  457. List<Notice> list = new ArrayList<>();
  458. if (null != ids && ids.size() > 0) {
  459. for (String s : ids) {
  460. list.add(disposeNotice(a, s));
  461. }
  462. noticeMapper.insertBatch(list);
  463. }
  464. }
  465. private Notice disposeNotice(Achievement a, String aid) {
  466. Notice n = new Notice();
  467. Calendar now = Calendar.getInstance();
  468. now.set(Calendar.MILLISECOND, 0);
  469. n.setId(UUID.randomUUID().toString());
  470. n.setCreateTime(now.getTime());
  471. n.setReaded(NoticeReadStatus.UNREAD.getCode());
  472. n.setRid(a.getId());
  473. if (StringUtils.isBlank(aid)) {
  474. n.setAid(a.getTechBrokerId());
  475. if (UserType.PERSONAL.getCode().equals(a.getOwnerType())) {
  476. n.setContent("编号" + a.getSerialNumber() + NoticeStatus.PERSONALACHIEVEMENTT.getDesc() + " "
  477. + (AchievementAuditStatus.AUDITED.getCode().equals(a.getAuditStatus())
  478. ? AchievementAuditStatus.AUDITED.getDesc()
  479. : AchievementAuditStatus.UNAUDITED.getDesc()));
  480. n.setNoticeType(NoticeStatus.PERSONALACHIEVEMENTT.getCode());
  481. } else if (UserType.ORGANIZATION.getCode().equals(a.getOwnerType())) {
  482. n.setContent("编号" + a.getSerialNumber() + NoticeStatus.ORGANIZATIONACHIEVEMENT.getDesc() + " "
  483. + (AchievementAuditStatus.AUDITED.getCode().equals(a.getAuditStatus())
  484. ? AchievementAuditStatus.AUDITED.getDesc()
  485. : AchievementAuditStatus.UNAUDITED.getDesc()));
  486. n.setNoticeType(NoticeStatus.ORGANIZATIONACHIEVEMENT.getCode());
  487. }
  488. } else {
  489. n.setAid(aid);
  490. if (UserType.PERSONAL.getCode().equals(a.getOwnerType())) {
  491. n.setContent(
  492. NoticeStatus.PERSONALACHIEVEMENTT.getDesc() + " " + AchievementAuditStatus.SUBMIT.getDesc());
  493. n.setNoticeType(NoticeStatus.PERSONALACHIEVEMENTT.getCode());
  494. } else if (UserType.ORGANIZATION.getCode().equals(a.getOwnerType())) {
  495. n.setContent(
  496. NoticeStatus.ORGANIZATIONACHIEVEMENT.getDesc() + " " + AchievementAuditStatus.SUBMIT.getDesc());
  497. n.setNoticeType(NoticeStatus.ORGANIZATIONACHIEVEMENT.getCode());
  498. }
  499. }
  500. return n;
  501. }
  502. private void disposeAchievementKeyword(String[] keywords, Achievement a, boolean delete) {
  503. if (null != keywords && keywords.length > 0) {
  504. if (delete) {
  505. achievementKeywordMapper.batchDeleteByAchievementId(a.getId());
  506. }
  507. List<AchievementKeyword> list = new ArrayList<>();
  508. AchievementKeyword ak = null;
  509. for (int i = 0; i < keywords.length; i++) {
  510. ak = new AchievementKeyword();
  511. ak.setId(UUID.randomUUID().toString());
  512. ak.setAchievementId(a.getId());
  513. ak.setKeyword(keywords[i].trim());
  514. list.add(ak);
  515. }
  516. achievementKeywordMapper.insertBatch(list);
  517. }
  518. }
  519. @Override
  520. public int updateMatchDemand(Achievement a) {
  521. achievementDemandMapper.deleteByAchievementId(a.getId());// 删除之前匹配单
  522. List<AchievementKeyword> achievement = achievementKeywordMapper.selectKeywordsByAchievementId(a.getId());
  523. if (null != achievement && achievement.size() > 0) {
  524. List<String> keyword = new ArrayList<>();
  525. for (AchievementKeyword k : achievement) {
  526. if (!StringUtils.isBlank(k.getKeyword())) {
  527. keyword.add(k.getKeyword());
  528. }
  529. }
  530. List<AchievementDemand> list = demandKeywordMapper.selectAchievementDemand(keyword);
  531. if (null != list && list.size() > 0) {
  532. for (AchievementDemand ad : list) {
  533. ad.setAchievementId(a.getId());
  534. }
  535. return achievementDemandMapper.insertBatch(list);
  536. }
  537. }
  538. return 0;
  539. }
  540. @SuppressWarnings("unchecked")
  541. @Override
  542. public Pagination<AchievementPartnerListBo> listPartnerAchievement(String ownerId, Integer pNo, Integer pSize) {
  543. Map<String, Object> params = new HashMap<>();
  544. params.put("ownerId", ownerId);
  545. if (pNo == null || pNo < 0) {
  546. pNo = 1;
  547. }
  548. if (pSize == null || pSize < 0 || pSize > 10) {
  549. pSize = 10;
  550. }
  551. return (Pagination<AchievementPartnerListBo>) findPage("findPartnerAchievementListByPage",
  552. "findPartnerAchievementCount", params, pNo, pSize);
  553. }
  554. @Override
  555. public AchievementPortalDetailBo findUserPortalAchievementDetail(String id) {
  556. return achievementMapper.findUserPortalAchievementDetail(id, TokenManager.getUserId());
  557. }
  558. @Override
  559. public AchievementPortalDetailBo findOrgPortalAchievementDetail(String id) {
  560. return achievementMapper.findOrgPortalAchievementDetail(id, TokenManager.getUserId());
  561. }
  562. @Override
  563. public int updateByPrimaryKeySelective(Achievement a) {
  564. return achievementMapper.updateByPrimaryKeySelective(a);
  565. }
  566. @CacheEvict(value = "internationalAchievementList", allEntries = true)
  567. public void cleanInternationalAchievement() {
  568. LoggerUtils.debug(logger, "清除国际化技术列表");
  569. }
  570. @Override
  571. public Achievement selectAchievementDetail(String id) {
  572. return achievementMapper.selectByPrimaryKey(id);
  573. }
  574. @SuppressWarnings("unchecked")
  575. @Override
  576. public Pagination<AchievementPartnerListBo> listAppUserAchievement(Integer auditStatus, Integer serialNumber,
  577. String name, String keyword,Integer dataCategory, Integer category, Integer ownerType, Integer status,
  578. String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus,String ownerId,Integer fieldA, Integer pNo, Integer pSize) {
  579. if (pNo == null || pNo < 0) {
  580. pNo = 1;
  581. }
  582. if (pSize == null || pSize < 0 || pSize > 10) {
  583. pSize = 10;
  584. }
  585. Map<String, Object> params=disposeParams(ownerType,null, null, ownerId, auditStatus, serialNumber, name, keyword, category,
  586. status, releaseDateStartDate, releaseDateEndDate,null, null, releaseStatus, null, null,null, null,null);
  587. if (null!=fieldA) {
  588. params.put("fieldA", fieldA);
  589. }
  590. if (null != dataCategory) {
  591. params.put("dataCategory", dataCategory);
  592. }
  593. Pagination<AchievementPartnerListBo> p=(Pagination<AchievementPartnerListBo>) findPage("findAppAchievementListByPage", "findAppAchievementCount",
  594. params,pNo, pSize);
  595. return p;
  596. }
  597. @SuppressWarnings("unchecked")
  598. @Override
  599. public Pagination<AchievementPartnerListBo> listAppMyAchievement(Integer pNo, Integer pSize) {
  600. if (pNo == null || pNo < 0) {
  601. pNo = 1;
  602. }
  603. if (pSize == null || pSize < 0 || pSize > 10) {
  604. pSize = 10;
  605. }
  606. Map<String, Object> params = new HashMap<>();
  607. if (StringUtils.isNotBlank(TokenManager.getUserId())) {
  608. params.put("ownerId", TokenManager.getUserId());
  609. }
  610. //params.put("ownerId", "46433140-0a90-471e-a32f-6bc89c562e3d");
  611. return (Pagination<AchievementPartnerListBo>) findPage("findMyAchievementListByPage", "findMyAchievementCount",
  612. params,pNo, pSize);
  613. }
  614. @Override
  615. public int saveAppAchievement(Achievement a, String[] keywords) {
  616. a.setId(UUID.randomUUID().toString());
  617. a.setDeletedSign(DeleteStatus.UNDELETE.getCode());
  618. Calendar now = Calendar.getInstance();
  619. now.set(Calendar.MILLISECOND, 0);
  620. if (TokenManager.getToken() instanceof Admin) {
  621. a.setTechBrokerId(TokenManager.getAdminId());
  622. }
  623. a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
  624. if (AchievementAuditStatus.SUBMIT.getCode().equals(a.getAuditStatus())) {
  625. createAuditorNotice(a);
  626. } else {
  627. a.setAuditStatus(AchievementAuditStatus.SUBMIT.getCode());
  628. }
  629. if (null!=TokenManager.getUserId()) {
  630. a.setOwnerId(TokenManager.getUserId());
  631. User u=userMapper.selectByPrimaryKey(TokenManager.getUserId());
  632. if (null!=u.getType()) {
  633. a.setOwnerType(u.getType());
  634. }if (StringUtils.isNotBlank(u.getMobile())) {
  635. a.setOwnerMobile(u.getMobile());
  636. }if (StringUtils.isNotBlank(u.getNickname())) {
  637. a.setOwnerName(u.getNickname());
  638. }
  639. }
  640. a.setDataCategory(0);
  641. a.setCreateTime(now.getTime());
  642. disposeAchievementKeyword(keywords, a, false);
  643. return achievementMapper.insert(a);
  644. }
  645. @Override
  646. public List<AchievementObject> recentAchievements(int size, String url, String showLocation) {
  647. // TODO Auto-generated method stub
  648. return achievementMapper.getRecentAchievements(size,url,showLocation);
  649. }
  650. @Override
  651. public List<AchievementObject> getHotAchievements(int size, String url, String showLocation) {
  652. // TODO Auto-generated method stub
  653. return achievementMapper.getHotAchievements( size, url, showLocation);
  654. }
  655. @Override
  656. public List<AchievementObject> getPatentList(int size, String url, String showLocation) {
  657. // TODO Auto-generated method stub
  658. return achievementMapper.getPatentList(size,url,showLocation);
  659. }
  660. @Override
  661. public List<AchievementObject> getPracticalTechnologys(int size, String url, String showLocation) {
  662. // TODO Auto-generated method stub
  663. return achievementMapper.getPracticalTechnologys(size,url,showLocation);
  664. }
  665. @Override
  666. public List<PolicyEntity> getIntellectualProperty(int size) {
  667. // TODO Auto-generated method stub
  668. return achievementMapper.getIntellectualProperty(size);
  669. }
  670. @Override
  671. public AchievementObject getAchievementDetail(String id, Integer type) {
  672. // TODO Auto-generated method stub
  673. return achievementMapper.getAchievementDetail(id,type);
  674. }
  675. @Override
  676. public List<AchievementObject> getBoutiquePatent(int size) {
  677. // TODO Auto-generated method stub
  678. return achievementMapper.getBoutiquePatent( size);
  679. }
  680. @Override
  681. public List<AchievementObject> guessYouLike(int size) {
  682. // TODO Auto-generated method stub
  683. return achievementMapper.guessYouLike(size);
  684. }
  685. @Override
  686. public AchievementResultObject getAchievementDetailById(String id) {
  687. // TODO Auto-generated method stub
  688. return achievementMapper.getAchievementDetailById(id);
  689. }
  690. @SuppressWarnings("unchecked")
  691. @Override
  692. public Pagination<AchievementObject> listAchievement(String name, String ownerName, Integer category,
  693. Integer dataCategory, Integer auditStatus, String startDate, String endDate, Integer pageNo,
  694. Integer pageSize) {
  695. Map<String,Object> params = new HashMap<>();
  696. if (null != startDate) params.put("startDate", startDate);
  697. if (null != endDate) params.put("endDate", endDate);
  698. if (null != auditStatus) params.put("auditStatus", auditStatus);
  699. if (null != category) params.put("category", category);
  700. if (null != dataCategory) params.put("dataCategory", dataCategory);
  701. if (StringUtils.isNotBlank(name)) params.put("name", name);
  702. if (StringUtils.isNotBlank(ownerName)) params.put("ownerName", ownerName);
  703. return (Pagination<AchievementObject>) findPage("listMyAchievementByPage", "listMyAchievementCount",params,
  704. pageNo, pageSize);
  705. }
  706. @Override
  707. public int updateAuditAchievement(String id, Integer auditResult,String auditInfo) {
  708. // TODO Auto-generated method stub
  709. int auditStatus=AchievementAuditStatus.AUDITED.getCode().intValue();
  710. if(auditResult.intValue() == 0) {
  711. auditStatus=AchievementAuditStatus.UNAUDITED.getCode().intValue();
  712. }
  713. else auditStatus=AchievementAuditStatus.AUDITED.getCode().intValue();
  714. Achievement achievement=new Achievement();
  715. achievement.setId(id);
  716. achievement.setAuditStatus(auditStatus);
  717. achievement.setAuditInfo(auditInfo);
  718. achievement.setReleaseDate(new Date());
  719. achievementMapper.updateByPrimaryKeySelective(achievement);
  720. return auditStatus;
  721. }
  722. @SuppressWarnings("unchecked")
  723. @Override
  724. public Pagination<AchievementObject> getAchievementObjects(AchievementObject achievementObject,Integer pageNo,Integer pageSize) {
  725. if(pageNo==null ||pageNo<1)pageNo=1;
  726. if(pageSize== null ||pageSize<1)pageSize=10;
  727. // TODO Auto-generated method stub
  728. return (Pagination<AchievementObject>)findPage("findAchievementListWithPid","findAchievementCountWithPid",disposeAchievementParams(achievementObject), pageNo, pageSize);
  729. }
  730. private Map<String, Object> disposeAchievementParams(AchievementObject achievementObject) {
  731. Map<String, Object> params=new HashMap<String,Object>();
  732. if(null !=achievementObject.getName()) {
  733. params.put("name", achievementObject.getName());
  734. }
  735. if(null != achievementObject.getFieldA())
  736. {
  737. params.put("fieldA", achievementObject.getFieldA());
  738. }
  739. if(null != achievementObject.getFieldB()) {
  740. params.put("fieldB", achievementObject.getFieldB());
  741. }
  742. return params;
  743. }
  744. @Override
  745. public List<AchievementPartnerListBo> findPartnerAchievementList(String uid) {
  746. return achievementMapper.findPartnerAchievementListByPage(uid);
  747. }
  748. @SuppressWarnings("unchecked")
  749. @Override
  750. public Pagination<AchievementObject> listInterestedAchievement(Integer pageNo, Integer pageSize) {
  751. if(pageNo==null ||pageNo<1)pageNo=1;
  752. if(pageSize== null ||pageSize<1)pageSize=10;
  753. Map<String, Object> params=new HashMap<String,Object>();
  754. params.put("uid", TokenManager.getUserId());
  755. params.put("uid", "1180fa62-7c42-44be-bc41-5583814d69f4");
  756. return (Pagination<AchievementObject>) findPage("listInterestedAchievement", "listInterestedAchievementCount", params, pageNo, pageSize);
  757. }
  758. @SuppressWarnings("unchecked")
  759. @Override
  760. public Pagination<MyCollection> myCollectionAchievement(Integer pageNo, Integer pageSize) {
  761. if(pageNo==null ||pageNo<1)pageNo=1;
  762. if(pageSize== null ||pageSize<1)pageSize=10;
  763. Map<String, Object> params=new HashMap<String,Object>();
  764. params.put("uid", TokenManager.getUserId());
  765. // params.put("uid", "1180fa62-7c42-44be-bc41-5583814d69f4");
  766. return (Pagination<MyCollection>) findPage("myCollectionAchievementList", "myCollectionAchievementCount", params, pageNo, pageSize);
  767. }
  768. }