ActivityService.java 26 KB

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