ActivityService.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. package platform.modules.sys.service;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.aliyuncs.exceptions.ClientException;
  5. import com.github.pagehelper.PageHelper;
  6. import com.github.pagehelper.PageInfo;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.apache.ibatis.annotations.Param;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import org.springframework.util.CollectionUtils;
  14. import platform.common.Constant;
  15. import platform.common.base.model.DictionaryItem;
  16. import platform.common.base.service.BaseService;
  17. import platform.common.base.service.DictionaryItemService;
  18. import platform.common.util.*;
  19. import platform.modules.build.entity.BuildInfo;
  20. import platform.modules.government.dao.AttachmentDao;
  21. import platform.modules.government.dto.*;
  22. import platform.modules.government.entity.*;
  23. import platform.modules.government.service.AttachmentService;
  24. import platform.modules.government.service.UserService;
  25. import platform.modules.home.request.FindRequest;
  26. import platform.modules.home.response.FindResponse;
  27. import platform.modules.home.response.ListResponse;
  28. import platform.modules.home.service.HomeRefactorService;
  29. import platform.modules.sys.dao.ActivityDetailDao;
  30. import platform.modules.sys.dao.ActivityPushDao;
  31. import platform.modules.sys.entity.ActivityDetail;
  32. import platform.modules.sys.entity.ActivityFeedback;
  33. import platform.modules.sys.entity.ActivityPush;
  34. import platform.modules.sys.entity.ActivityRegistration;
  35. import tk.mybatis.mapper.entity.Example;
  36. import java.io.IOException;
  37. import java.io.InputStream;
  38. import java.time.LocalDateTime;
  39. import java.time.format.DateTimeFormatter;
  40. import java.util.*;
  41. @Service
  42. @Transactional
  43. public class ActivityService extends BaseService<ActivityDetail> {
  44. @Autowired
  45. private ActivityDetailDao activityDetailDao;
  46. @Autowired
  47. private ActivityPushService activityPushService;
  48. @Autowired
  49. private AttachmentDao attachmentDao;
  50. @Autowired
  51. private AttachmentService attachmentService;
  52. @Autowired
  53. private DictionaryItemService dictionaryItemService;
  54. @Autowired
  55. private ActivityService activityService;
  56. @Autowired
  57. private UserService userService;
  58. @Autowired
  59. private ActivityRegistrationService activityRegistrationService;
  60. @Autowired
  61. private ActivityFeedbackService activityFeedbackService;
  62. @Autowired
  63. private HomeRefactorService homeRefactorService;
  64. /**
  65. * 新增
  66. *
  67. * @param activityDetail
  68. * @return
  69. * @throws Exception
  70. */
  71. public Integer saveActivity(ActivityDetail activityDetail) throws Exception {
  72. this.insertAndGetId(activityDetail);
  73. Integer activityId = activityDetail.getId();
  74. //名额不限
  75. if (activityDetail.getIs_quota().equals("0")) {
  76. activityDetailDao.updateQuotaById(activityId + "", null);
  77. }
  78. String streetIds = activityDetail.getPush_street_ids();
  79. String buildIds = activityDetail.getPush_build_ids();
  80. String companyIds = activityDetail.getPush_company_ids();
  81. String[] streetIdsArr = streetIds.split(",");
  82. String[] buildIdsArr = buildIds.split(",");
  83. String[] companyIdsArr = companyIds.split(",");
  84. List<ActivityPush> ids = new ArrayList<ActivityPush>();
  85. if (streetIdsArr.length > 0) {
  86. for (String id : streetIdsArr) {
  87. if (!Objects.equals(id, "")) {
  88. ActivityPush activityPush = new ActivityPush();
  89. activityPush.setUser_type("4");
  90. activityPush.setUser_id(Integer.parseInt(id));
  91. activityPush.setActivity_id(activityId);
  92. ids.add(activityPush);
  93. }
  94. }
  95. }
  96. if (buildIdsArr.length > 0) {
  97. for (String id : buildIdsArr) {
  98. if (!Objects.equals(id, "")) {
  99. ActivityPush activityPush = new ActivityPush();
  100. activityPush.setUser_type("1");
  101. activityPush.setUser_id(Integer.parseInt(id));
  102. activityPush.setActivity_id(activityId);
  103. ids.add(activityPush);
  104. }
  105. }
  106. }
  107. if (companyIdsArr.length > 0) {
  108. for (String id : companyIdsArr) {
  109. if (!Objects.equals(id, "")) {
  110. ActivityPush activityPush = new ActivityPush();
  111. activityPush.setUser_type("3");
  112. activityPush.setUser_id(Integer.parseInt(id));
  113. activityPush.setActivity_id(activityId);
  114. ids.add(activityPush);
  115. //发送短信
  116. User companyAdmin = userService.findCompanyAdmin(Integer.parseInt(id));
  117. Map<String, String> params = new HashMap<>();
  118. params.put("project_no", activityDetail.getActivity_title());
  119. params.put("start_time", activityDetail.getActivity_starttime());
  120. params.put("end_time", activityDetail.getActivity_endtime());
  121. String tempalteCode = Constant.SMS_TemplateCode.REMIND_COMPANY_APPLY_PROJECT;
  122. try {
  123. AlibabaSMSUtil.sendSMS(
  124. companyAdmin.getPhone(), tempalteCode, Constant.SINGNAMW, JSONObject.toJSONString(params));
  125. } catch (ClientException | InterruptedException e) {
  126. e.printStackTrace();
  127. }
  128. }
  129. }
  130. }
  131. activityDetail.setPushList(ids);
  132. if (!CollectionUtils.isEmpty(activityDetail.getPushList())) {
  133. List<ActivityPush> list = assemblingPushlist(activityDetail.getPushList(), activityId);
  134. activityPushService.insertBatch(list);
  135. }
  136. attachmentDao.deleteByBusiness(Constant.Attachment.ACTIVITY, activityDetail.getId());
  137. attachmentDao.updateAttachment(Constant.Attachment.ACTIVITY, activityDetail.getId(), activityDetail.getFileDown().getFile_id());
  138. return activityId;
  139. }
  140. /**
  141. * 更新
  142. *
  143. * @param activityDetail
  144. * @return
  145. * @throws Exception
  146. */
  147. public boolean updateActivity(ActivityDetail activityDetail) throws Exception {
  148. Integer activityId = activityDetail.getId();
  149. activityPushService.deleteByActivityid(activityDetail.getId());
  150. String streetIds = activityDetail.getPush_street_ids();
  151. String buildIds = activityDetail.getPush_build_ids();
  152. String companyIds = activityDetail.getPush_company_ids();
  153. String[] streetIdsArr = streetIds.split(",");
  154. String[] buildIdsArr = buildIds.split(",");
  155. String[] companyIdsArr = companyIds.split(",");
  156. List<ActivityPush> ids = new ArrayList<ActivityPush>();
  157. if (streetIdsArr.length > 0) {
  158. for (String id : streetIdsArr) {
  159. if (!Objects.equals(id, "")) {
  160. ActivityPush activityPush = new ActivityPush();
  161. activityPush.setUser_type("4");
  162. activityPush.setUser_id(Integer.parseInt(id));
  163. activityPush.setActivity_id(activityId);
  164. ids.add(activityPush);
  165. }
  166. }
  167. }
  168. if (buildIdsArr.length > 0) {
  169. for (String id : buildIdsArr) {
  170. if (!Objects.equals(id, "")) {
  171. ActivityPush activityPush = new ActivityPush();
  172. activityPush.setUser_type("1");
  173. activityPush.setUser_id(Integer.parseInt(id));
  174. activityPush.setActivity_id(activityId);
  175. ids.add(activityPush);
  176. }
  177. }
  178. }
  179. if (companyIdsArr.length > 0) {
  180. for (String id : companyIdsArr) {
  181. if (!Objects.equals(id, "")) {
  182. ActivityPush activityPush = new ActivityPush();
  183. activityPush.setUser_type("3");
  184. activityPush.setUser_id(Integer.parseInt(id));
  185. activityPush.setActivity_id(activityId);
  186. ids.add(activityPush);
  187. }
  188. }
  189. }
  190. activityDetail.setPushList(ids);
  191. if (!CollectionUtils.isEmpty(activityDetail.getPushList())) {
  192. List<ActivityPush> list = assemblingPushlist(activityDetail.getPushList(), activityDetail.getId());
  193. activityPushService.insertBatch(list);
  194. }
  195. if (null != activityDetail.getFileDown().getFile_id()) {
  196. attachmentDao.deleteByBusiness(Constant.Attachment.ACTIVITY, activityDetail.getId());
  197. attachmentDao.updateAttachment(Constant.Attachment.ACTIVITY, activityDetail.getId(), activityDetail.getFileDown().getFile_id());
  198. }
  199. if (Objects.equals(this.updateSelective(activityDetail), 1)) {
  200. //名额不限
  201. if (activityDetail.getIs_quota().equals("0")) {
  202. /*activityDetail.setActivity_quota("-1");*/
  203. activityDetailDao.updateQuotaById(activityId + "", null);
  204. }
  205. return true;
  206. }
  207. return false;
  208. }
  209. /**
  210. * 装配推送实体
  211. *
  212. * @param list
  213. * @return
  214. */
  215. private List<ActivityPush> assemblingPushlist(List<ActivityPush> list, Integer id) {
  216. if (CollectionUtils.isEmpty(list)) return list;
  217. User currUser = ShiroUtils.getUserEntity();
  218. Date now = new Date();
  219. for (ActivityPush activityPush : list) {
  220. activityPush.setActivity_id(id);
  221. //activityPush.setUser_id(currUser.getId());
  222. //activityPush.setUser_type(currUser.getUser_type().toString());
  223. activityPush.setPush_time(now);
  224. activityPush.setCreate_by(currUser.getId());
  225. activityPush.setCreate_name(currUser.getUser_name());
  226. activityPush.setCreate_time(DateUtil.getTimeString(now));
  227. activityPush.setUpdate_by(currUser.getId());
  228. activityPush.setUpdate_name(currUser.getUser_name());
  229. activityPush.setUpdate_time(DateUtil.getTimeString(now));
  230. }
  231. return list;
  232. }
  233. /*@Transactional(readOnly = true)
  234. public PageInfo<ActivityDetail> findPage(Integer pageNum, Integer pageSize, String param) throws Exception {
  235. Example example = new Example(ActivityDetail.class);
  236. Example.Criteria criteria = example.createCriteria();
  237. criteria.andEqualTo("del_flag", false);
  238. if (StringUtils.isNotBlank(param)) {
  239. *//*criteria.andLike("title", "%" + param + "%");
  240. criteria.orLike("create_name", "%" + param + "%");*//*
  241. criteria.andCondition("CONCAT(activity_title) like", "%" + WebUtil.covertData(param) + "%");
  242. }
  243. //倒序
  244. example.orderBy("create_time").desc();
  245. PageHelper.startPage(pageNum, pageSize);
  246. List<ActivityDetail> activityDetail = this.selectByExample(example);
  247. return new PageInfo<ActivityDetail>(activityDetail);
  248. }*/
  249. /**
  250. * 后台列表页
  251. *
  252. * @param pageNum
  253. * @param pageSize
  254. * @param param
  255. * @return
  256. * @throws Exception
  257. */
  258. @Transactional(readOnly = true)
  259. public PageInfo<ActivityDetail> findAvtivityList(Integer pageNum, Integer pageSize, ActivitySearchCondition param) throws Exception {
  260. PageHelper.startPage(pageNum, pageSize);
  261. List<ActivityDetail> list = activityDetailDao.findAvtivityList(param);
  262. for (ActivityDetail activityDetail : list) {
  263. List<DictionaryItem> activityTypeList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.ACTIVITY_TYPE);
  264. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activityDetail.getId(), null);
  265. if (null != attachments && attachments.size() > 0) {
  266. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  267. activityDetail.setFileDown(fileDown);
  268. }
  269. if (null != activityTypeList && activityTypeList.size() > 0) {
  270. for (DictionaryItem dictionaryItem : activityTypeList) {
  271. if (Objects.equals(activityDetail.getActivity_type(), dictionaryItem.getValue())) {
  272. activityDetail.setActivity_type(dictionaryItem.getName());
  273. }
  274. }
  275. }
  276. }
  277. return new PageInfo<ActivityDetail>(list);
  278. }
  279. /**
  280. * 前台列表页
  281. *
  282. * @param pageNum
  283. * @param pageSize
  284. * @param activityDetail
  285. * @return
  286. * @throws Exception
  287. */
  288. @Transactional(readOnly = true)
  289. public PageInfo<ActivityDetail> findAvtivityPage(Integer pageNum, Integer pageSize, ActivityDetail activityDetail) throws Exception {
  290. PageHelper.startPage(pageNum, pageSize);
  291. List<ActivityDetail> list = activityDetailDao.findAvtivityPage(activityDetail);
  292. return new PageInfo<ActivityDetail>(list);
  293. }
  294. public ListResponse findContents(FindRequest request) {
  295. ListResponse response = new ListResponse();
  296. List<ActivityDetail> contents = new ArrayList<>();
  297. int lastPageNumber = 1;
  298. ActivityDetail activityDetail = new ActivityDetail();
  299. activityDetail.setActivity_type(request.getType());
  300. activityDetail.setSort_criteria(request.getCriteria());
  301. activityDetail.setActivity_title(request.getKeyword());
  302. activityDetail.setIs_expired(request.getIsinvalid());
  303. if (Objects.equals(activityDetail.getSort_criteria(), null) || Objects.equals(activityDetail.getSort_criteria(), "")) {
  304. activityDetail.setSort_criteria("0");
  305. }
  306. int count = activityDetailDao.findAvtivityPage(activityDetail).size();
  307. if (count > 0) {
  308. // 处理分页参数
  309. if (request.getPage_size() > 0) {
  310. //如果输入的页码大于实际的分页数,将页码设置为最后一页的页码
  311. lastPageNumber = (int) ((count - 1) / request.getPage_size() + 1);
  312. if (request.getPage_number() > lastPageNumber) {
  313. request.setPage_no(lastPageNumber);
  314. }
  315. }
  316. contents = activityDetailDao.findAvtivityPage(activityDetail);
  317. for (ActivityDetail ad : contents) {
  318. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, ad.getId(), null);
  319. if (null != attachments && attachments.size() > 0) {
  320. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  321. ad.setFileDown(fileDown);
  322. }
  323. }
  324. }
  325. response.setContents(contents);
  326. response.setCounts(count);
  327. response.setPage_no(request.getPage_no());
  328. return response;
  329. }
  330. /**
  331. * 单个查询
  332. *
  333. * @param id
  334. * @return
  335. * @throws Exception
  336. */
  337. @Transactional(readOnly = true)
  338. public ActivityDetail findOne(String id) {
  339. return activityDetailDao.findOne(id);
  340. }
  341. public List<StreetsBuildingsCompanies> findStreetBuildCompanyByName(String name) throws Exception {
  342. return activityDetailDao.findStreetBuildCompanyByName(name);
  343. }
  344. /**
  345. * 更新部分
  346. *
  347. * @param activityDetail
  348. * @return
  349. * @throws Exception
  350. */
  351. public Integer updateActivitySelective(ActivityDetail activityDetail) throws Exception {
  352. return this.updateSelective(activityDetail);
  353. }
  354. /**
  355. * 查找我的收藏
  356. *
  357. * @param id
  358. * @return
  359. * @throws Exception
  360. */
  361. public List<ActivityDetail> findFavouriteList(String id, String title) throws Exception {
  362. List<ActivityDetail> list = activityDetailDao.findFavouriteList(id, title);
  363. for (ActivityDetail activityDetail : list) {
  364. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, Integer.parseInt(activityDetail.getActivity_id()), null);
  365. if (null != attachments && attachments.size() > 0) {
  366. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  367. activityDetail.setFileDown(fileDown);
  368. }
  369. }
  370. return list;
  371. }
  372. /**
  373. * 查找推送我的活动
  374. *
  375. * @param activityDetail
  376. * @return
  377. */
  378. public List<ActivityDetail> findPushList(ActivityDetail activityDetail) {
  379. List<ActivityDetail> list = activityDetailDao.findPushList(activityDetail);
  380. for (ActivityDetail activity : list) {
  381. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activity.getId(), null);
  382. if (null != attachments && attachments.size() > 0) {
  383. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  384. activity.setFileDown(fileDown);
  385. }
  386. }
  387. return list;
  388. }
  389. public List<ActivityDetail> getRecommend() {
  390. List<String> typeList = activityDetailDao.getTypes(ShiroUtils.getUserId());
  391. Set<String> set = new HashSet<>();
  392. if (!CollectionUtils.isEmpty(typeList)) {
  393. for (String type : typeList) {
  394. set.add(type);
  395. }
  396. }
  397. List<ActivityDetail> list = activityDetailDao.getActivityByType(set);
  398. for (ActivityDetail activity : list) {
  399. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activity.getId(), null);
  400. if (null != attachments && attachments.size() > 0) {
  401. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  402. activity.setFileDown(fileDown);
  403. }
  404. }
  405. return list;
  406. }
  407. public void increment(String id) throws Exception {
  408. ActivityDetail activityDetail = activityService.findOne(id);
  409. int count = activityDetail.getReading_number();
  410. ++count;
  411. activityDetailDao.updateReadingnumberById(id, count);
  412. }
  413. public List<String> getAllEventsDate(String type) {
  414. List<String> dates = activityDetailDao.getAllEventsDate(type);
  415. Set<String> set = new HashSet<>();
  416. if (!CollectionUtils.isEmpty(dates)) {
  417. for (String date : dates) {
  418. set.add(date.split(" ")[0]);
  419. }
  420. }
  421. List<String> result = new ArrayList<String>(set);
  422. return result;
  423. }
  424. public List<ActivityDetail> getEventList(String time) {
  425. String start1 = time + " 00:00";
  426. String start2 = time + " 23:59";
  427. List<ActivityDetail> dates = activityDetailDao.getEventList(start1, start2, null, ShiroUtils.getUserId());
  428. return dates;
  429. }
  430. public Integer getAllActivityCount() {
  431. int count = activityDetailDao.getAllActivityCount();
  432. return count;
  433. }
  434. public Integer getJoinedActivityCount() {
  435. SearchCondition condition = new SearchCondition();
  436. if (ShiroUtils.getUserType().equals(Constant.UserType.STREET)) {
  437. condition.setUser_type(Constant.UserType.STREET);
  438. condition.setStreet_id(ShiroUtils.getStreetId());
  439. }
  440. int count = activityDetailDao.getJoinedActivityCount(condition);
  441. return count;
  442. }
  443. public PageInfo<ActivityDetail> findContentList(FindRequest request) {
  444. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  445. ActivityDetail activityDetail = new ActivityDetail();
  446. activityDetail.setActivity_type(request.getType());
  447. activityDetail.setSort_criteria(request.getCriteria());
  448. activityDetail.setActivity_title(request.getKeyword());
  449. activityDetail.setIs_expired(request.getIsinvalid());
  450. if (Objects.equals(activityDetail.getSort_criteria(), null) || Objects.equals(activityDetail.getSort_criteria(), "")) {
  451. activityDetail.setSort_criteria("0");
  452. }
  453. PageHelper.startPage(request.getPage_no(), request.getPage_size());
  454. List<ActivityDetail> contents = activityDetailDao.findAvtivityPage(activityDetail);
  455. if (contents.size() > 0) {
  456. for (ActivityDetail ad : contents) {
  457. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, ad.getId(), null);
  458. if (null != attachments && attachments.size() > 0) {
  459. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), request.getFile_url());
  460. ad.setFileDown(fileDown);
  461. }
  462. if (ad.getActivity_deadline() != null) {
  463. LocalDateTime deadline = LocalDateTime.parse(ad.getActivity_deadline(), formatter);
  464. if (!deadline.isBefore(LocalDateTime.now())) {
  465. ad.setCan_sign_up(true);
  466. }
  467. } else {
  468. ad.setCan_sign_up(true);
  469. }
  470. if (homeRefactorService.isFavourited(ad.getId(), request.getUser_id())) {
  471. ad.setIs_favourited("1");
  472. } else {
  473. ad.setIs_favourited("0");
  474. }
  475. }
  476. }
  477. return new PageInfo<>(contents);
  478. }
  479. /**
  480. * 获取已结束的活动列表
  481. *
  482. * @param condition
  483. * @return
  484. */
  485. public PageInfo<ActivityDetail> findOverList(QueryCondition condition) {
  486. condition.setPageSize(5);
  487. PageHelper.startPage(condition.getPageNum(), condition.getPageSize());
  488. List<ActivityDetail> details = activityDetailDao.findOverList(condition);
  489. for (ActivityDetail activityDetail : details) {
  490. List<DictionaryItem> activityTypeList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.ACTIVITY_TYPE);
  491. if (null != activityTypeList && activityTypeList.size() > 0) {
  492. for (DictionaryItem dictionaryItem : activityTypeList) {
  493. if (Objects.equals(activityDetail.getActivity_type(), dictionaryItem.getValue())) {
  494. activityDetail.setActivity_type(dictionaryItem.getName());
  495. }
  496. }
  497. }
  498. }
  499. return new PageInfo<>(details);
  500. }
  501. /**
  502. * 我报名的活动
  503. *
  504. * @param pageNum
  505. * @param pagesize
  506. * @param condition
  507. * @return
  508. */
  509. public PageInfo<ActivityDetail> findMyActivityPage(Integer pageNum, Integer pagesize, ActivityRegistration condition) {
  510. PageHelper.startPage(pageNum, pagesize);
  511. List<ActivityDetail> details = activityDetailDao.findMyActivityPage(condition);
  512. return new PageInfo<>(details);
  513. }
  514. /**
  515. * 获取用户报名活动详情
  516. *
  517. * @param id
  518. * @return
  519. */
  520. public ActivityOrderDetail findUserActivityOrderDetail(Integer id, Integer pageNum) {
  521. // ActivityDetail detail = this.findById(id);
  522. ActivityDetail detail = activityDetailDao.findByActivityId(id);
  523. PageHelper.startPage(pageNum, 5);
  524. List<ActivityRegistration> registrations =
  525. activityRegistrationService.getActivityRegistration(id+"", ShiroUtils.getUserId()+"");
  526. ActivityOrderDetail orderDetail = new ActivityOrderDetail();
  527. orderDetail.setActivityDetail(detail);
  528. orderDetail.setActivityRegistration(new PageInfo<>(registrations));
  529. //反馈信息
  530. ActivityFeedback feedback = activityFeedbackService.findUserFeedback(id, ShiroUtils.getUserId());
  531. orderDetail.setActivityFeedback(feedback);
  532. return orderDetail;
  533. }
  534. /**
  535. * 活动详情
  536. *
  537. * @param id
  538. * @return
  539. */
  540. private ActivityDetail findByActivityId(Integer id) {
  541. return activityDetailDao.findByActivityId(id);
  542. }
  543. /**
  544. * 强烈推荐
  545. *
  546. * @param pageNum
  547. * @param pageSize
  548. * @return
  549. */
  550. public PageInfo<ActivityDetail> findHighlyRecommended(Integer pageNum, Integer pageSize) {
  551. PageHelper.startPage(pageNum, pageSize);
  552. List<ActivityDetail> highlyRecommendedList = activityDetailDao.findHighlyRecommended();
  553. for (ActivityDetail activityDetail : highlyRecommendedList) {
  554. //活动图片
  555. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activityDetail.getId(), null);
  556. if (null != attachments && attachments.size() > 0) {
  557. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  558. activityDetail.setFileDown(fileDown);
  559. }
  560. }
  561. return new PageInfo<>(highlyRecommendedList);
  562. }
  563. /**
  564. * @Author: huZhiHao
  565. * @Description: 获取二维码 1 详情 2 签到
  566. * @Date: 2019/12/19
  567. * @Params: [accessToken, type, width, scene]
  568. * @Return: java.io.InputStream
  569. **/
  570. public InputStream getQRcode(String type, String width, String scene) {
  571. String obj = WxAppUtil.getAccessToken(APP_ID, APP_SERCRET);
  572. System.out.println("access_token:" + obj);
  573. String access_token = JSON.parseObject(obj).getString("access_token");
  574. String path = "";
  575. InputStream is = null;
  576. try {
  577. if (Objects.equals("1", type)) {
  578. path = ACTIVITY_PAGE_PATH_DETAIL;
  579. } else if (Objects.equals("2", type)) {
  580. path = ACTIVITY_PAGE_PATH_SIGN;
  581. }
  582. is = WxAppUtil.getUnlimitedQRCode(access_token, path, width, scene);
  583. } catch (IOException e) {
  584. e.printStackTrace();
  585. }
  586. return is;
  587. }
  588. @Value("${app_id}")
  589. private String APP_ID;
  590. @Value("${app_sercet}")
  591. private String APP_SERCRET;
  592. @Value("${activity_page_path_detail}")
  593. private String ACTIVITY_PAGE_PATH_DETAIL;
  594. @Value("${activity_page_path_sign}")
  595. private String ACTIVITY_PAGE_PATH_SIGN;
  596. }