ActivityOpenController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. package platform.modules.api.web;
  2. import org.apache.commons.lang3.StringUtils;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.util.CollectionUtils;
  5. import org.springframework.web.bind.annotation.*;
  6. import platform.common.Constant;
  7. import platform.common.annotation.OperationLog;
  8. import platform.common.base.controller.BaseController;
  9. import platform.common.util.ShiroUtils;
  10. import platform.modules.build.entity.Company;
  11. import platform.modules.build.service.CompanyService;
  12. import platform.modules.government.dto.ParamRegistration;
  13. import platform.modules.government.entity.Attachment;
  14. import platform.modules.government.entity.FileDown;
  15. import platform.modules.government.entity.User;
  16. import platform.modules.government.service.AttachmentService;
  17. import platform.modules.government.service.UserService;
  18. import platform.modules.sys.entity.ActivityDetail;
  19. import platform.modules.sys.entity.ActivityFavourite;
  20. import platform.modules.sys.entity.ActivityRegistration;
  21. import platform.modules.sys.service.ActivityFavouriteService;
  22. import platform.modules.sys.service.ActivityRegistrationService;
  23. import platform.modules.sys.service.ActivityService;
  24. import platform.modules.sys.service.WaitToDoService;
  25. import platform.modules.sys.web.ResponseMessage;
  26. import java.util.*;
  27. /**
  28. * @Author :huZhiHao
  29. * @Date :Created in 2019/12/16 15:23
  30. * @Description: TODO
  31. * @Modified By:
  32. * @Version: v0.0.1
  33. */
  34. @RestController
  35. @RequestMapping(value = "/activity")
  36. public class ActivityOpenController extends BaseController {
  37. @Autowired
  38. private ActivityService activityService;
  39. @Autowired
  40. private ActivityRegistrationService activityRegistrationService;
  41. @Autowired
  42. private AttachmentService attachmentService;
  43. @Autowired
  44. private ActivityFavouriteService activityFavouriteService;
  45. @Autowired
  46. private UserService userService;
  47. @Autowired
  48. private CompanyService companyService;
  49. @Autowired
  50. private WaitToDoService waitToDoService;
  51. /**
  52. * @Author: huZhiHao
  53. * @Description: 获取详情
  54. * @Date: 2019/12/17
  55. * @Params: [activity_id]
  56. * @Return: platform.modules.sys.web.ResponseMessage
  57. **/
  58. @GetMapping(value = "/detail/{activity_id}")
  59. public ResponseMessage getActivityDetail(@PathVariable("activity_id") int id) throws Exception {
  60. ActivityDetail activityDetail = activityService.findOne(id + "");
  61. activityService.increment(id + "");
  62. List<ActivityRegistration> registrationList = activityRegistrationService.findRegistrationList(id);
  63. int num = 0;
  64. String quota = activityDetail.getActivity_quota();
  65. if (StringUtils.isBlank(quota)) quota = "0";
  66. for (ActivityRegistration activityRegistration : registrationList) {
  67. if (Objects.equals(activityRegistration.getReview_state(), "1")) {
  68. num++;
  69. }
  70. }
  71. int remain = Integer.parseInt(quota) - num;
  72. if (remain < 0) {
  73. remain = 0;
  74. }
  75. activityDetail.setActivity_remain(remain + "");
  76. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activityDetail.getId(), null);
  77. if (null != attachments && attachments.size() > 0) {
  78. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  79. activityDetail.setFileDown(fileDown);
  80. }
  81. return ResponseMessage.success("查询成功!", activityDetail);
  82. }
  83. /**
  84. * @Author: huZhiHao
  85. * @Description: 是否已报名
  86. * @Date: 2019/12/17
  87. * @Params: [activity_id]
  88. * @Return: platform.modules.sys.web.ResponseMessage
  89. **/
  90. @GetMapping(value = "/is_regist")
  91. public ResponseMessage getActivityDetail(@RequestParam("activity_id") String id, @RequestParam("phone") String phone) {
  92. List<ActivityRegistration> activityRegistrationList = activityRegistrationService.getCurrRegUsers(id, phone);
  93. if (!CollectionUtils.isEmpty(activityRegistrationList)) {
  94. for (ActivityRegistration activityRegistration : activityRegistrationList) {
  95. if (!Objects.equals("3", activityRegistration.getReview_state())) {
  96. return ResponseMessage.success("查询成功!", true);
  97. }
  98. }
  99. }
  100. return ResponseMessage.success("查询成功!", false);
  101. }
  102. /**
  103. * 获取已报名的用户
  104. *
  105. * @return
  106. */
  107. @GetMapping(value = "/getRegUsers")
  108. public ResponseMessage getRegUsers(String activity_id, String user_id) {
  109. log.info("获取已报名的用户!");
  110. return ResponseMessage.success("查询成功!", activityRegistrationService.getCurrRegUsers(activity_id, user_id));
  111. }
  112. /**
  113. * @Author: huZhiHao
  114. * @Description: 活动报名
  115. * @Date: 2019/12/17
  116. * @Params: [paramRegistration]
  117. * @Return: platform.modules.sys.web.ResponseMessage
  118. **/
  119. @OperationLog(value = "报名活动")
  120. @PostMapping(value = "/joinActivity")
  121. public ResponseMessage joinActivity(@RequestBody ParamRegistration paramRegistration) {
  122. log.info("活动报名");
  123. Integer id = paramRegistration.getRegistrationList().get(0).getActivity_id();
  124. ActivityDetail activityDetail = activityService.findById(id);
  125. String quota = activityDetail.getActivity_quota();
  126. String isReview = activityDetail.getIs_review();
  127. int registrationNumber = 0;
  128. if (!Objects.equals(quota, null) && !Objects.equals(quota, "")) {
  129. //名额有限
  130. if (Objects.equals(isReview, "1")) {
  131. //需要审核
  132. //已报名人数
  133. registrationNumber = activityRegistrationService.getActivityRegistrationNumber(id);
  134. if (registrationNumber >= Integer.parseInt(quota)) {
  135. return ResponseMessage.error("名额不足,仅剩" + (Integer.parseInt(quota) - registrationNumber) + "个名额,请修改人数!");
  136. }
  137. }
  138. }
  139. List<ActivityRegistration> registrationList = paramRegistration.getRegistrationList();
  140. if (!org.apache.commons.collections.CollectionUtils.isEmpty(registrationList)) {
  141. List<ActivityRegistration> registrations = activityRegistrationService.findByActivityIdAndUserIdAndPhones(id + "", registrationList.get(0).getUser_id() + "", registrationList);
  142. if (!org.apache.commons.collections.CollectionUtils.isEmpty(registrations)) {
  143. String phone = "";
  144. for (ActivityRegistration registration : registrations) {
  145. phone += registration.getPhone() + " ";
  146. }
  147. return ResponseMessage.error("手机号码为:" + phone + "的用户已报名");
  148. }
  149. for (ActivityRegistration registration : registrationList) {
  150. // if (registration.getId() == null) {
  151. activityRegistrationService.saveActivityRegistration(registration);
  152. // }
  153. }
  154. List<User> pusers = userService.findUsersByPermission("G_ACTIVITY_MANAGE");
  155. waitToDoService.completeAllTODO(activityDetail.getId(), Constant.DictionaryType.ACTIVITY_APPLICATION);
  156. for (User puser : pusers) {
  157. waitToDoService.newTODO(activityDetail.getActivity_title() + "审核", "/government/activity/review/" + activityDetail.getId(), Constant.WaitToDo_OperType.AUDIT, activityDetail.getId(),
  158. Constant.DictionaryType.ACTIVITY_APPLICATION, null, puser.getId().toString(), Constant.WaitToDo_IsSerial.IS_SERIAL, false);
  159. }
  160. }
  161. if (!Objects.equals(quota, null) && !Objects.equals(quota, "")) {
  162. //名额有限
  163. if (Objects.equals(isReview, "1")) {
  164. //需要审核
  165. //已报名人数
  166. registrationNumber = activityRegistrationService.getActivityRegistrationNumber(id);
  167. return ResponseMessage.success("报名成功,剩余" + (Integer.parseInt(quota) - registrationNumber) + "个名额!", true);
  168. }
  169. }
  170. return ResponseMessage.success("报名成功!", true);
  171. }
  172. @OperationLog(value = "取消报名")
  173. @DeleteMapping(value = "/cancel_regist")
  174. public ResponseMessage cancelRegist(@RequestParam("activity_id") String id, @RequestParam("phone") String phone) {
  175. List<ActivityRegistration> activityRegistrationList = activityRegistrationService.getCurrRegUsers(id, phone);
  176. if (!CollectionUtils.isEmpty(activityRegistrationList)) {
  177. List<String> ids = new ArrayList<>();
  178. for (ActivityRegistration activityRegistration : activityRegistrationList) {
  179. ids.add(activityRegistration.getId() + "");
  180. }
  181. activityRegistrationService.adortRegister(ids);
  182. }
  183. return ResponseMessage.success("操作成功!");
  184. }
  185. @OperationLog(value = "删除报名")
  186. @DeleteMapping(value = "/delete_regist")
  187. public ResponseMessage deleteRegist(@RequestParam("regist_id") String registId) {
  188. ActivityRegistration activityRegistration = new ActivityRegistration();
  189. activityRegistration.setId(Integer.parseInt(registId));
  190. activityRegistration.setDel_flag(true);
  191. activityRegistrationService.updateSelective(activityRegistration);
  192. return ResponseMessage.success("操作成功!");
  193. }
  194. /**
  195. * @Author: huZhiHao
  196. * @Description: 获取已报名
  197. * @Date: 2019/12/17
  198. * @Params: [id]
  199. * @Return: platform.modules.sys.web.ResponseMessage
  200. **/
  201. @GetMapping(value = "/regist_user/list")
  202. public ResponseMessage getCurrRegUsers(@RequestParam("activity_id") String id, @RequestParam("phone") String phone) {
  203. List<ActivityRegistration> activityRegistrationList = activityRegistrationService.getCurrRegUsers(id, phone);
  204. return ResponseMessage.success("查询成功!", activityRegistrationList);
  205. }
  206. /**
  207. * @Author: huZhiHao
  208. * @Description: 查询是否收藏
  209. * @Date: 2019/12/17
  210. * @Params: [id]
  211. * @Return: platform.modules.sys.web.ResponseMessage
  212. **/
  213. @GetMapping(value = "/is_favourite")
  214. public ResponseMessage isFavourite(@RequestParam("activity_id") String activityId, @RequestParam("user_id") String userId) throws Exception {
  215. log.info("查询是否收藏!activity_id = {}", activityId);
  216. ActivityFavourite activityFavourite = activityFavouriteService.selectByActivityIdAndUserId(activityId, userId);
  217. if (Objects.equals(activityFavourite, null)) return ResponseMessage.success("查询成功!", false);
  218. return ResponseMessage.success("查询成功!", true);
  219. }
  220. /**
  221. * @Author: huZhiHao
  222. * @Description: 添加收藏
  223. * @Date: 2019/12/17
  224. * @Params: [id]
  225. * @Return: platform.modules.sys.web.ResponseMessage
  226. **/
  227. @OperationLog(value = "收藏活动")
  228. @PostMapping(value = "/add_favourite")
  229. public ResponseMessage addFavourite(@RequestBody ActivityFavourite activityFavourite) throws Exception {
  230. int count = activityFavouriteService.saveActivityFavourite(activityFavourite);
  231. if (count > 0) return ResponseMessage.success("收藏成功!");
  232. return ResponseMessage.success("收藏失败!");
  233. }
  234. /**
  235. * @Author: huZhiHao
  236. * @Description: 取消收藏
  237. * @Date: 2019/12/17
  238. * @Params: [id]
  239. * @Return: platform.modules.sys.web.ResponseMessage
  240. **/
  241. @OperationLog(value = "取消收藏活动")
  242. @DeleteMapping(value = "/remove_favourite")
  243. public ResponseMessage removeFavourite(@RequestParam("activity_id") String activity_id, @RequestParam("user_id") String userId) throws Exception {
  244. boolean b = activityFavouriteService.deleteByActivityIdAndUserId(activity_id, userId);
  245. if (b) return ResponseMessage.success("取消收藏成功!");
  246. return ResponseMessage.success("取消收藏失败!");
  247. }
  248. //更新登记表
  249. @OperationLog(value = "更新登记表")
  250. @PutMapping(value = "/registration")
  251. public ResponseMessage updateRegistration(@RequestBody ActivityRegistration activityRegistration) {
  252. Integer ret = activityRegistrationService.updateSelective(activityRegistration);
  253. if (ret > 0) return ResponseMessage.success("更新成功!");
  254. return ResponseMessage.success("更新失败!");
  255. }
  256. //根据手机号获取报名信息
  257. @OperationLog(value = "根据手机号获取报名信息")
  258. @GetMapping(value = "/registration")
  259. public ResponseMessage getByPhone(@RequestParam("activity_id") Integer id, @RequestParam("phone") String phone) {
  260. ActivityRegistration activityRegistration = new ActivityRegistration();
  261. activityRegistration.setActivity_id(id);
  262. activityRegistration.setPhone(phone);
  263. List<ActivityRegistration> ret = activityRegistrationService.findListByWhere(activityRegistration);
  264. Iterator<ActivityRegistration> it = ret.iterator();
  265. while (it.hasNext()) {
  266. if (Objects.equals(it.next().getReview_state(), "3"))
  267. it.remove();
  268. }
  269. if (CollectionUtils.isEmpty(ret)) return ResponseMessage.success("查询成功!");
  270. return ResponseMessage.success("查询成功!", ret.get(0));
  271. }
  272. //签到
  273. @OperationLog(value = "签到")
  274. @PutMapping(value = "/sign")
  275. public ResponseMessage getByPhone(@RequestBody ActivityRegistration activityRegistration) {
  276. activityRegistration.setReview_state("1");
  277. ActivityRegistration activityRegistration1 = activityRegistrationService.findOne(activityRegistration);
  278. if (activityRegistration1 != null) {
  279. ActivityRegistration activityRegistration_n = new ActivityRegistration();
  280. activityRegistration_n.setId(activityRegistration1.getId());
  281. activityRegistration_n.setSign_state("0");
  282. activityRegistration_n.setSign_time(new Date());
  283. activityRegistrationService.updateState(activityRegistration_n);
  284. return ResponseMessage.success("签到成功!");
  285. }
  286. return ResponseMessage.error("签到失败!");
  287. }
  288. //根据手机号获取用户信息和企业信息
  289. @OperationLog(value = "根据手机号获取用户信息和企业信息")
  290. @GetMapping(value = "/user_info")
  291. public ResponseMessage getuserInfoByPhone(@RequestParam("phone") String phone) {
  292. Map<String, String> map = new HashMap<>();
  293. User user = userService.findByMobile(phone);
  294. if (user != null) {
  295. map.put("user_id", user.getId() + "");
  296. map.put("user_name", user.getUser_name());
  297. map.put("phone", user.getPhone());
  298. map.put("email", user.getEmail());
  299. if (user.getCompany_id() != null) {
  300. Company company = companyService.findById(user.getCompany_id());
  301. map.put("company_name", company.getCompany_name());
  302. map.put("industry_name", company.getIndustry_name());
  303. }
  304. }
  305. return ResponseMessage.success("查询成功!", map);
  306. }
  307. }