ActivityController.java 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093
  1. package platform.modules.government.web;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.aliyuncs.exceptions.ClientException;
  5. import com.github.pagehelper.PageInfo;
  6. import org.apache.catalina.Executor;
  7. import org.apache.commons.io.IOUtils;
  8. import org.apache.commons.lang3.StringUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.boot.autoconfigure.AutoConfigureOrder;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.ui.ModelMap;
  13. import org.springframework.util.CollectionUtils;
  14. import org.springframework.web.bind.annotation.*;
  15. import platform.common.Constant;
  16. import platform.common.annotation.OperationLog;
  17. import platform.common.base.controller.BaseController;
  18. import platform.common.base.model.Dict;
  19. import platform.common.base.model.DictionaryItem;
  20. import platform.common.base.service.DictService;
  21. import platform.common.base.service.DictionaryItemService;
  22. import platform.common.util.AlibabaSMSUtil;
  23. import platform.common.util.ExportExcel;
  24. import platform.common.util.ShiroUtils;
  25. import platform.common.util.WxAppUtil;
  26. import platform.modules.build.DTO.CompanyDto;
  27. import platform.modules.build.entity.BuildInfo;
  28. import platform.modules.build.entity.Company;
  29. import platform.modules.build.service.BuildInfoService;
  30. import platform.modules.build.service.CompanyService;
  31. import platform.modules.government.dto.ActivityReview;
  32. import platform.modules.government.dto.ActivitySearchCondition;
  33. import platform.modules.government.dto.SearchCondition;
  34. import platform.modules.government.dto.StreetsBuildingsCompanies;
  35. import platform.modules.government.entity.*;
  36. import platform.modules.government.service.AttachmentService;
  37. import platform.modules.government.service.StreetService;
  38. import platform.modules.government.service.UserService;
  39. import platform.modules.request.ActivityFindRequest;
  40. import platform.modules.request.ContractReportFindRequest;
  41. import platform.modules.sys.entity.*;
  42. import platform.modules.sys.report.ActivityRegistrationExports;
  43. import platform.modules.sys.report.ContractExport;
  44. import platform.modules.sys.service.*;
  45. import platform.modules.sys.web.ResponseMessage;
  46. import javax.servlet.http.HttpServletResponse;
  47. import java.io.IOException;
  48. import java.io.InputStream;
  49. import java.io.OutputStream;
  50. import java.text.SimpleDateFormat;
  51. import java.util.*;
  52. import java.util.concurrent.ExecutorService;
  53. import java.util.concurrent.Executors;
  54. import java.util.concurrent.ThreadPoolExecutor;
  55. @Controller
  56. @RequestMapping(value = "/government/activity")
  57. public class ActivityController extends BaseController {
  58. @Autowired
  59. private ActivityService activityService;
  60. @Autowired
  61. private ActivityRegistrationService activityRegistrationService;
  62. @Autowired
  63. private ActivityFeedbackService activityFeedbackService;
  64. @Autowired
  65. private DictionaryItemService dictionaryItemService;
  66. @Autowired
  67. private StreetService streetService;
  68. @Autowired
  69. private BuildInfoService buildInfoService;
  70. @Autowired
  71. private CompanyService companyService;
  72. @Autowired
  73. private AttachmentService attachmentService;
  74. @Autowired
  75. private MessageService messageService;
  76. @Autowired
  77. private UserService userService;
  78. @Autowired
  79. private WaitToDoService waitToDoService;
  80. @OperationLog(value = "查看活动列表")
  81. @GetMapping(value = "/list")
  82. public String list(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  83. ActivitySearchCondition condition, ModelMap modelMap) throws Exception {
  84. try {
  85. log.info("分页查询活动信息,pageNum = {},condition = {}", pageNum, condition.toString(), false);
  86. PageInfo<ActivityDetail> pageInfo = activityService.findAvtivityList(pageNum, PAGESIZE, condition);
  87. log.info("分页查询活动信息列表结果! pageInfo = {}", pageInfo);
  88. List<DictionaryItem> activityTypeList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.ACTIVITY_TYPE);
  89. modelMap.addAttribute("activity_type", activityTypeList);
  90. modelMap.put("pageInfo", pageInfo);
  91. modelMap.put("condition", condition);
  92. log.info("菜单跳转到活动管理页面!");
  93. } catch (Exception e) {
  94. e.printStackTrace();
  95. }
  96. return BASE_GOVERNMENT_PATH + "activity_list";
  97. }
  98. /**
  99. * 跳转到详情页面
  100. *
  101. * @return
  102. */
  103. @OperationLog(value = "查看活动详情")
  104. @GetMapping(value = "/get/{id}")
  105. public String view(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  106. log.info("跳转到活动详情页面!");
  107. ActivityDetail activityDetail = activityService.findOne(id.toString());
  108. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activityDetail.getId(), null);
  109. if (null != attachments && attachments.size() > 0) {
  110. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  111. activityDetail.setFileDown(fileDown);
  112. }
  113. List<DictionaryItem> activityTypeList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.ACTIVITY_TYPE);
  114. for (DictionaryItem item : activityTypeList) {
  115. if (Objects.equals(item.getValue(), activityDetail.getActivity_type())) {
  116. activityDetail.setActivity_type(item.getName());
  117. }
  118. }
  119. List<ActivityPush> pushList = activityDetail.getPushList();
  120. String streetIds = "", buildIds = "", companyIds = "", names = "";
  121. if (!CollectionUtils.isEmpty(pushList)) {
  122. for (ActivityPush push : pushList) {
  123. if (Objects.equals("4", push.getUser_type())) {
  124. streetIds += push.getUser_id() + ",";
  125. names += push.getUser_name() + ",";
  126. }
  127. if (Objects.equals("1", push.getUser_type())) {
  128. buildIds += push.getUser_id() + ",";
  129. names += push.getUser_name() + ",";
  130. }
  131. if (Objects.equals("3", push.getUser_type())) {
  132. companyIds += push.getUser_id() + ",";
  133. names += push.getUser_name() + ",";
  134. }
  135. }
  136. activityDetail.setPush_street_ids(streetIds);
  137. activityDetail.setPush_build_ids(buildIds);
  138. activityDetail.setPush_company_ids(companyIds);
  139. activityDetail.setPush_names(names);
  140. }
  141. modelMap.addAttribute("activity", activityDetail);
  142. List<ActivityRegistration> registrationList = activityRegistrationService.findRegistrationList(id);
  143. List<ActivityRegistration> signList = activityRegistrationService.findSginList(id);
  144. List<ActivityFeedback> feedbackList = activityFeedbackService.findAvtivityList(id);
  145. String quota = activityDetail.getActivity_quota();
  146. //if (StringUtils.isBlank(quota)) quota = "0";
  147. int num = 0;
  148. for (ActivityRegistration registration : registrationList) {
  149. if (Objects.equals("1", registration.getReview_state())) {
  150. num++;
  151. }
  152. }
  153. modelMap.put("fileUrl", setFileUrl());
  154. modelMap.addAttribute("registrationList", registrationList);
  155. modelMap.addAttribute("signList", signList);
  156. modelMap.addAttribute("feedbackList", feedbackList);
  157. modelMap.addAttribute("quota", quota);
  158. modelMap.addAttribute("num", num);
  159. return BASE_GOVERNMENT_PATH + "activity_detail";
  160. }
  161. /**
  162. * 跳转到打印详情页面
  163. *
  164. * @return
  165. */
  166. @OperationLog(value = "打印活动详情")
  167. @GetMapping(value = "/printReg/{id}")
  168. public String printReg(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  169. log.info("跳转到活动报名打印页面!");
  170. List<ActivityRegistration> registrationList = activityRegistrationService.findRegistrationList(id);
  171. modelMap.addAttribute("registrationList", registrationList);
  172. return BASE_GOVERNMENT_PATH + "activity_print";
  173. }
  174. /**
  175. * 跳转到导出excel
  176. *
  177. * @return
  178. */
  179. @OperationLog(value = "导出活动报名信息表")
  180. @GetMapping(value = "/exportExcel")
  181. public void exportExcel(HttpServletResponse response, ActivityFindRequest activityFindRequest) throws Exception {
  182. log.info("跳转到活动报名下载!");
  183. Integer id = activityFindRequest.getId();
  184. ActivityDetail activityDetail = activityService.findOne(id.toString());
  185. String fileName = activityDetail.getActivity_title() + "报名信息表.xlsx";
  186. List<ActivityRegistrationExports> registrationList = activityRegistrationService.findRegistrationListExports(id);
  187. for (ActivityRegistrationExports activityRegistrationExports : registrationList) {
  188. String regway = dictionaryItemService.findNameByTypeAndValue(Constant.DictionaryType.ACTIVITY_REGISTRATION_WAY, activityRegistrationExports.getRegistration_way());
  189. activityRegistrationExports.setRegistration_way(regway);
  190. if (Objects.equals(activityRegistrationExports.getReview_state(), "0")) {
  191. activityRegistrationExports.setReview_state("待审核");
  192. }
  193. if (Objects.equals(activityRegistrationExports.getReview_state(), "1")) {
  194. activityRegistrationExports.setReview_state("通过");
  195. }
  196. if (Objects.equals(activityRegistrationExports.getReview_state(), "2")) {
  197. activityRegistrationExports.setReview_state("驳回");
  198. }
  199. if (Objects.equals(activityRegistrationExports.getReview_state(), "3")) {
  200. activityRegistrationExports.setReview_state("取消报名");
  201. }
  202. }
  203. new ExportExcel(activityDetail.getActivity_title() + "报名信息表", ActivityRegistrationExports.class).setDataList(registrationList).write(response, fileName).dispose();
  204. }
  205. /**
  206. * 跳转到详情页面
  207. *
  208. * @return
  209. */
  210. @GetMapping(value = "/printPass/{id}")
  211. public String printPass(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  212. log.info("跳转到活动报名打印页面!");
  213. List<ActivityRegistration> registrationList = activityRegistrationService.findRegistrationList(id);
  214. List<ActivityRegistration> resultList = new ArrayList<>();
  215. for (ActivityRegistration activityRegistration : registrationList) {
  216. if (Objects.equals(activityRegistration.getReview_state(), "1")) {
  217. resultList.add(activityRegistration);
  218. }
  219. }
  220. modelMap.addAttribute("registrationList", resultList);
  221. return BASE_GOVERNMENT_PATH + "activity_print";
  222. }
  223. /**
  224. * 跳转到审核页面
  225. *
  226. * @return
  227. */
  228. @GetMapping(value = "/review/{id}")
  229. public String review(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  230. log.info("跳转到活动审核页面!");
  231. List<ActivityRegistration> registrationList = activityRegistrationService.findRegistrationList(id);
  232. ActivityDetail activity = activityService.findOne(id + "");
  233. List<ActivityRegistration> registration_waited = new ArrayList<ActivityRegistration>();
  234. List<ActivityRegistration> registration_passed = new ArrayList<ActivityRegistration>();
  235. List<ActivityRegistration> registration_reject = new ArrayList<ActivityRegistration>();
  236. List<String> registration_waited_name_list = new ArrayList<>();
  237. List<String> registration_passed_name_list = new ArrayList<>();
  238. List<String> registration_reject_name_list = new ArrayList<>();
  239. for (ActivityRegistration activityRegistration : registrationList) {
  240. if (Objects.equals(activityRegistration.getReview_state(), "0")) {
  241. registration_waited.add(activityRegistration);
  242. boolean flag = true;
  243. for (String name : registration_waited_name_list) {
  244. if (Objects.equals(name, activityRegistration.getUser_name())) {
  245. flag = false;
  246. }
  247. }
  248. if (flag) {
  249. registration_waited_name_list.add(activityRegistration.getUser_name());
  250. }
  251. }
  252. if (Objects.equals(activityRegistration.getReview_state(), "1")) {
  253. registration_passed.add(activityRegistration);
  254. boolean flag = true;
  255. for (String name : registration_passed_name_list) {
  256. if (Objects.equals(name, activityRegistration.getUser_name())) {
  257. flag = false;
  258. }
  259. }
  260. if (flag) {
  261. registration_passed_name_list.add(activityRegistration.getUser_name());
  262. }
  263. }
  264. if (Objects.equals(activityRegistration.getReview_state(), "2")) {
  265. registration_reject.add(activityRegistration);
  266. boolean flag = true;
  267. for (String name : registration_reject_name_list) {
  268. if (Objects.equals(name, activityRegistration.getUser_name())) {
  269. flag = false;
  270. }
  271. }
  272. if (flag) {
  273. registration_reject_name_list.add(activityRegistration.getUser_name());
  274. }
  275. }
  276. }
  277. List<ActivityReview> registration_waited_list = new ArrayList<>();
  278. List<ActivityReview> registration_passed_list = new ArrayList<>();
  279. List<ActivityReview> registration_rejected_list = new ArrayList<>();
  280. for (String name : registration_waited_name_list) {
  281. ActivityReview activityReview = new ActivityReview();
  282. activityReview.setUser_name(name);
  283. List<ActivityRegistration> temp = new ArrayList<>();
  284. for (ActivityRegistration reg : registration_waited) {
  285. if (Objects.equals(name, reg.getUser_name())) {
  286. activityReview.setRegistration_time(reg.getRegistration_time());
  287. temp.add(reg);
  288. }
  289. activityReview.setActivityRegistrationList(temp);
  290. }
  291. registration_waited_list.add(activityReview);
  292. }
  293. for (String name : registration_passed_name_list) {
  294. ActivityReview activityReview = new ActivityReview();
  295. activityReview.setUser_name(name);
  296. List<ActivityRegistration> temp = new ArrayList<>();
  297. for (ActivityRegistration reg : registration_passed) {
  298. if (Objects.equals(name, reg.getUser_name())) {
  299. activityReview.setRegistration_time(reg.getRegistration_time());
  300. temp.add(reg);
  301. }
  302. activityReview.setActivityRegistrationList(temp);
  303. }
  304. registration_passed_list.add(activityReview);
  305. }
  306. for (String name : registration_reject_name_list) {
  307. ActivityReview activityReview = new ActivityReview();
  308. activityReview.setUser_name(name);
  309. List<ActivityRegistration> temp = new ArrayList<>();
  310. for (ActivityRegistration reg : registration_reject) {
  311. if (Objects.equals(name, reg.getUser_name())) {
  312. activityReview.setRegistration_time(reg.getRegistration_time());
  313. temp.add(reg);
  314. }
  315. activityReview.setActivityRegistrationList(temp);
  316. }
  317. registration_rejected_list.add(activityReview);
  318. }
  319. String quota = activity.getActivity_quota();
  320. if (StringUtils.isBlank(quota)) quota = "0";
  321. int num = 0;
  322. int Outnumber = 0;
  323. for (ActivityReview activityReview : registration_passed_list) {
  324. num += activityReview.getActivityRegistrationList().size();
  325. }
  326. int remain = Integer.parseInt(quota) - num;
  327. if (remain < 0) {
  328. remain = 0;
  329. Outnumber = num - Integer.parseInt(quota);
  330. }
  331. modelMap.addAttribute("activityId", id);
  332. modelMap.addAttribute("Outnumber", Outnumber);
  333. modelMap.addAttribute("quota", quota);
  334. modelMap.addAttribute("remain", remain);
  335. modelMap.addAttribute("registration_waited", registration_waited_list);
  336. modelMap.addAttribute("registration_passed", registration_passed_list);
  337. modelMap.addAttribute("registration_reject", registration_rejected_list);
  338. modelMap.put("fileUrl", setFileUrl());
  339. return BASE_GOVERNMENT_PATH + "activity_review";
  340. }
  341. /**
  342. * 跳转到签到页面
  343. *
  344. * @return
  345. */
  346. @GetMapping(value = "/sign/{id}")
  347. public String sign(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  348. log.info("跳转到活动签到页面!");
  349. List<ActivityRegistration> signList = activityRegistrationService.findSginList(id);
  350. List<ActivityRegistration> sign_waited = new ArrayList<ActivityRegistration>();
  351. List<ActivityRegistration> sign_passed = new ArrayList<ActivityRegistration>();
  352. List<ActivityRegistration> sign_reject = new ArrayList<ActivityRegistration>();
  353. for (ActivityRegistration activityRegistration : signList) {
  354. if (Objects.equals(activityRegistration.getSign_state(), "0")) {
  355. sign_passed.add(activityRegistration);
  356. } else if (Objects.equals(activityRegistration.getSign_state(), "1")) {
  357. sign_reject.add(activityRegistration);
  358. } else if (!Objects.equals(activityRegistration.getReview_state(), "0")) {
  359. sign_waited.add(activityRegistration);
  360. }
  361. }
  362. modelMap.addAttribute("sign_waited", sign_waited);
  363. modelMap.addAttribute("sign_passed", sign_passed);
  364. modelMap.addAttribute("sign_reject", sign_reject);
  365. return BASE_GOVERNMENT_PATH + "activity_sign";
  366. }
  367. /**
  368. * 跳转到取消活动页面
  369. *
  370. * @return
  371. */
  372. @GetMapping(value = "/abort/{id}")
  373. public String abort(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  374. log.info("跳转到活动取消页面!");
  375. modelMap.addAttribute("activity_id", id);
  376. return BASE_GOVERNMENT_PATH + "activity_cancel";
  377. }
  378. /**
  379. * 取消活动
  380. *
  381. * @param id
  382. * @param state
  383. * @param message
  384. * @param modelMap
  385. * @return
  386. * @throws Exception
  387. */
  388. @OperationLog(value = "取消活动")
  389. @ResponseBody
  390. @PostMapping(value = "/activityAbort")
  391. public ResponseMessage activityAbort(@RequestParam("id") String id, @RequestParam("state") String state, @RequestParam("message") String message, ModelMap modelMap) throws Exception {
  392. if (IsTooFrequently()) {
  393. return ResponseMessage.success("操作过于频繁,请稍后再试!");
  394. }
  395. log.info("更新活动状态");
  396. ActivityDetail activityDetail = new ActivityDetail();
  397. activityDetail.setId(Integer.parseInt(id));
  398. activityDetail.setActivity_state(state);
  399. //取消消息
  400. if (Objects.equals("2", state)) {
  401. ActivityDetail activity = activityService.findOne(id + "");
  402. String streetids = "", buildids = "", companyids = "", governmentids = "";
  403. List<ActivityRegistration> activityRegistrationList = activityRegistrationService.findRegistrationList(Integer.parseInt(id));
  404. //-2018-05-30-发送活动取消短信
  405. activityRegistrationService.sendActivityAbortSMS(activity, activityRegistrationList);
  406. for (ActivityRegistration registration : activityRegistrationList) {
  407. String type = registration.getUser_type();
  408. if (Objects.equals(type, Constant.UserType.STREET.toString())) {
  409. String streetId = userService.getUser(registration.getUser_id()).getStreet_id().toString();
  410. streetids += streetId + ",";
  411. } else if (Objects.equals(type, Constant.UserType.BUILD.toString())) {
  412. String buildId = userService.getUser(registration.getUser_id()).getBuild_id().toString();
  413. buildids += buildId + ",";
  414. } else if (Objects.equals(type, Constant.UserType.COMPANY.toString())) {
  415. String companyId = userService.getUser(registration.getUser_id()).getCompany_id().toString();
  416. companyids += companyId + ",";
  417. } else if (Objects.equals(type, Constant.UserType.GOVERNMENT.toString())) {
  418. //String governmentId = userService.getUser(registration.getUser_id()).get.toString();
  419. governmentids += registration.getUser_id() + ",";
  420. }
  421. }
  422. Message messages = new Message();
  423. messages.setApply_id(Integer.parseInt(id));
  424. messages.setTitle(activity.getActivity_title() + "活动取消");
  425. messages.setContent(message);
  426. messages.setBusiness_type(Constant.Message_Business_type.ACTIVITY);
  427. if (!StringUtils.isEmpty(streetids)) {
  428. String[] streetArr = streetids.split(",");
  429. Set<String> set = new HashSet<>();
  430. for (int i = 0; i < streetArr.length; i++) {
  431. set.add(streetArr[i]);
  432. }
  433. String[] streetArrs = (String[]) set.toArray(new String[set.size()]);
  434. int[] streetArrInt = new int[streetArrs.length];
  435. for (int i = 0; i < streetArrs.length; i++) {
  436. streetArrInt[i] = Integer.parseInt(streetArrs[i]);
  437. }
  438. messageService.saveMessageAndPush(messages, streetArrInt, Constant.UserType.STREET);
  439. }
  440. if (!StringUtils.isEmpty(buildids)) {
  441. String[] buildArr = buildids.split(",");
  442. Set<String> set = new HashSet<>();
  443. for (int i = 0; i < buildArr.length; i++) {
  444. set.add(buildArr[i]);
  445. }
  446. String[] buildArrs = (String[]) set.toArray(new String[set.size()]);
  447. int[] buildArrInt = new int[buildArrs.length];
  448. for (int i = 0; i < buildArrs.length; i++) {
  449. buildArrInt[i] = Integer.parseInt(buildArrs[i]);
  450. }
  451. messageService.saveMessageAndPush(messages, buildArrInt, Constant.UserType.BUILD);
  452. }
  453. if (!StringUtils.isEmpty(companyids)) {
  454. String[] companyArr = companyids.split(",");
  455. Set<String> set = new HashSet<>();
  456. for (int i = 0; i < companyArr.length; i++) {
  457. set.add(companyArr[i]);
  458. }
  459. String[] companyArrs = (String[]) set.toArray(new String[set.size()]);
  460. int[] companyArrInt = new int[companyArrs.length];
  461. for (int i = 0; i < companyArrs.length; i++) {
  462. companyArrInt[i] = Integer.parseInt(companyArrs[i]);
  463. }
  464. messageService.saveMessageAndPush(messages, companyArrInt, Constant.UserType.COMPANY);
  465. }
  466. if (!StringUtils.isEmpty(governmentids)) {
  467. String[] governmentArr = governmentids.split(",");
  468. Set<String> set = new HashSet<>();
  469. for (int i = 0; i < governmentArr.length; i++) {
  470. set.add(governmentArr[i]);
  471. }
  472. String[] governmentArrs = (String[]) set.toArray(new String[set.size()]);
  473. int[] governmentArrInt = new int[governmentArrs.length];
  474. for (int i = 0; i < governmentArrs.length; i++) {
  475. governmentArrInt[i] = Integer.parseInt(governmentArrs[i]);
  476. }
  477. messageService.saveMessageAndPush(messages, governmentArrInt, Constant.UserType.GOVERNMENT);
  478. }
  479. }
  480. return ResponseMessage.success("操作成功", activityService.updateActivitySelective(activityDetail));
  481. }
  482. /**
  483. * 跳转到添加页面
  484. *
  485. * @return
  486. */
  487. @GetMapping(value = "/add")
  488. public String add(ModelMap modelMap) {
  489. log.info("跳转到活动添加页面!");
  490. List<DictionaryItem> activityTypeList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.ACTIVITY_TYPE);
  491. modelMap.addAttribute("activity_type", activityTypeList);
  492. return BASE_GOVERNMENT_PATH + "activity_add";
  493. }
  494. /**
  495. * 跳转到修改页面
  496. *
  497. * @return
  498. */
  499. @GetMapping(value = "/edit/{id}")
  500. public String edit(@PathVariable("id") Integer id, ModelMap modelMap) throws Exception {
  501. log.info("跳转到活动编辑页面!");
  502. List<DictionaryItem> activityTypeList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.ACTIVITY_TYPE);
  503. modelMap.addAttribute("activity_type", activityTypeList);
  504. ActivityDetail activityDetail = activityService.findOne(id.toString());
  505. List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activityDetail.getId(), null);
  506. if (null != attachments && attachments.size() > 0) {
  507. FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
  508. activityDetail.setFileDown(fileDown);
  509. }
  510. List<ActivityPush> pushList = activityDetail.getPushList();
  511. String streetIds = "", buildIds = "", companyIds = "", names = "";
  512. if (!CollectionUtils.isEmpty(pushList)) {
  513. for (ActivityPush push : pushList) {
  514. if (Objects.equals("4", push.getUser_type())) {
  515. streetIds += push.getUser_id() + ",";
  516. names += push.getUser_name() + ",";
  517. }
  518. if (Objects.equals("1", push.getUser_type())) {
  519. buildIds += push.getUser_id() + ",";
  520. names += push.getUser_name() + ",";
  521. }
  522. if (Objects.equals("3", push.getUser_type())) {
  523. companyIds += push.getUser_id() + ",";
  524. names += push.getUser_name() + ",";
  525. }
  526. }
  527. activityDetail.setPush_street_ids(streetIds);
  528. activityDetail.setPush_build_ids(buildIds);
  529. activityDetail.setPush_company_ids(companyIds);
  530. activityDetail.setPush_names(names);
  531. }
  532. modelMap.put("fileUrl", setFileUrl());
  533. modelMap.addAttribute("activity", activityDetail);
  534. return BASE_GOVERNMENT_PATH + "activity_edit";
  535. }
  536. /**
  537. * 添加活动信息
  538. *
  539. * @param activityDetail
  540. * @return
  541. */
  542. @OperationLog(value = "添加活动")
  543. @ResponseBody
  544. @PostMapping(value = "/save")
  545. public ResponseMessage saveActivity(ActivityDetail activityDetail, @RequestParam("activity_state") String activity_state) throws Exception {
  546. log.debug("添加活动信息! ActivityDetail = {}", activityDetail);
  547. if (IsTooFrequently()) {
  548. return ResponseMessage.success("操作过于频繁,请稍后再试!");
  549. }
  550. if (Objects.equals("1", activity_state)) {
  551. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  552. Date currentTime = new Date();
  553. String dateString = formatter.format(currentTime);
  554. activityDetail.setActivity_publishtime(dateString);
  555. }
  556. int activityid = activityService.saveActivity(activityDetail);
  557. if (Objects.equals("1", activity_state)) {
  558. if (Objects.equals(activityDetail.getPush_level(), "1")) {
  559. String streetids = activityDetail.getPush_street_ids();
  560. String buildids = activityDetail.getPush_build_ids();
  561. String companyids = activityDetail.getPush_company_ids();
  562. Message message = new Message();
  563. message.setApply_id(activityid);
  564. message.setTitle("您接收到了一条关于" + activityDetail.getActivity_title() + "的活动推送");
  565. message.setContent(activityDetail.getContent());
  566. message.setBusiness_type(Constant.Message_Business_type.ACTIVITY);
  567. if (!StringUtils.isEmpty(streetids)) {
  568. String[] streetArr = streetids.split(",");
  569. int[] streetArrInt = new int[streetArr.length];
  570. for (int i = 0; i < streetArr.length; i++) {
  571. streetArrInt[i] = Integer.parseInt(streetArr[i]);
  572. }
  573. messageService.saveMessageAndPush(message, streetArrInt, Constant.UserType.STREET);
  574. }
  575. if (!StringUtils.isEmpty(buildids)) {
  576. String[] buildArr = buildids.split(",");
  577. int[] buildArrInt = new int[buildArr.length];
  578. for (int i = 0; i < buildArr.length; i++) {
  579. buildArrInt[i] = Integer.parseInt(buildArr[i]);
  580. }
  581. messageService.saveMessageAndPush(message, buildArrInt, Constant.UserType.BUILD);
  582. }
  583. if (!StringUtils.isEmpty(companyids)) {
  584. String[] companyArr = companyids.split(",");
  585. int[] companyArrInt = new int[companyArr.length];
  586. for (int i = 0; i < companyArr.length; i++) {
  587. companyArrInt[i] = Integer.parseInt(companyArr[i]);
  588. }
  589. messageService.saveMessageAndPush(message, companyArrInt, Constant.UserType.COMPANY);
  590. }
  591. }
  592. }
  593. return ResponseMessage.success("保存成功!");
  594. }
  595. /**
  596. * 编辑活动信息
  597. *
  598. * @param activityDetail
  599. * @return
  600. */
  601. @OperationLog(value = "编辑活动")
  602. @ResponseBody
  603. @PostMapping(value = "/edit")
  604. public ResponseMessage editActivity(ActivityDetail activityDetail, @RequestParam("activity_state") String activity_state) throws Exception {
  605. log.debug("编辑活动信息! ActivityDetail = {}", activityDetail);
  606. if (IsTooFrequently()) {
  607. return ResponseMessage.success("操作过于频繁,请稍后再试!");
  608. }
  609. if (Objects.equals("1", activity_state)) {
  610. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  611. Date currentTime = new Date();
  612. String dateString = formatter.format(currentTime);
  613. activityDetail.setActivity_publishtime(dateString);
  614. }
  615. activityService.updateActivity(activityDetail);
  616. if (Objects.equals("1", activity_state)) {
  617. if (Objects.equals(activityDetail.getPush_level(), "1")) {
  618. String streetids = activityDetail.getPush_street_ids();
  619. String buildids = activityDetail.getPush_build_ids();
  620. String companyids = activityDetail.getPush_company_ids();
  621. Message message = new Message();
  622. message.setApply_id(activityDetail.getId());
  623. message.setTitle(activityDetail.getActivity_title() + "活动修改");
  624. message.setContent(activityDetail.getActivity_reason());
  625. message.setBusiness_type(Constant.Message_Business_type.ACTIVITY);
  626. if (!StringUtils.isEmpty(streetids)) {
  627. String[] streetArr = streetids.split(",");
  628. int[] streetArrInt = new int[streetArr.length];
  629. for (int i = 0; i < streetArr.length; i++) {
  630. streetArrInt[i] = Integer.parseInt(streetArr[i]);
  631. }
  632. messageService.saveMessageAndPush(message, streetArrInt, Constant.UserType.STREET);
  633. }
  634. if (!StringUtils.isEmpty(buildids)) {
  635. String[] buildArr = buildids.split(",");
  636. int[] buildArrInt = new int[buildArr.length];
  637. for (int i = 0; i < buildArr.length; i++) {
  638. buildArrInt[i] = Integer.parseInt(buildArr[i]);
  639. }
  640. messageService.saveMessageAndPush(message, buildArrInt, Constant.UserType.BUILD);
  641. }
  642. if (!StringUtils.isEmpty(companyids)) {
  643. String[] companyArr = companyids.split(",");
  644. int[] companyArrInt = new int[companyArr.length];
  645. for (int i = 0; i < companyArr.length; i++) {
  646. companyArrInt[i] = Integer.parseInt(companyArr[i]);
  647. }
  648. messageService.saveMessageAndPush(message, companyArrInt, Constant.UserType.COMPANY);
  649. }
  650. //发送活动编辑变更短信
  651. List<ActivityRegistration> activityRegistrationList = activityRegistrationService.findRegistrationList(activityDetail.getId());
  652. activityRegistrationService.sendActivityUpdateSMS(activityDetail, activityRegistrationList);
  653. }
  654. }
  655. return ResponseMessage.success("保存成功!");
  656. }
  657. /**
  658. * 跳转到添加推送页面
  659. *
  660. * @return
  661. * @throws Exception
  662. */
  663. @GetMapping(value = "/addPush")
  664. public String addPush(ModelMap modelMap) throws Exception {
  665. log.info("跳转到添加推送页面!");
  666. List<Street> streetList = streetService.findList();
  667. modelMap.addAttribute("streetList", streetList);
  668. return BASE_GOVERNMENT_PATH + "activityMessagepush_add";
  669. }
  670. /**
  671. * 跳转到添加推送页面
  672. *
  673. * @return
  674. * @throws Exception
  675. */
  676. @GetMapping(value = "/calendar")
  677. public String calendar(ModelMap modelMap) throws Exception {
  678. log.info("跳转到活动日历!");
  679. return BASE_GOVERNMENT_PATH + "activity_calendar";
  680. }
  681. @ResponseBody
  682. @GetMapping(value = "/getAllEvents")
  683. public ResponseMessage getAllEvents() {
  684. log.info("获取所有活动时间");
  685. List<String> dates = activityService.getAllEventsDate(null);
  686. return ResponseMessage.success("", dates);
  687. }
  688. @ResponseBody
  689. @PostMapping(value = "/getEventList")
  690. public ResponseMessage getEventList(ActivityDetail activityDetail) {
  691. log.info("获取一天内的所有活动");
  692. List<ActivityDetail> dates = activityService.getEventList(activityDetail.getActivity_starttime());
  693. return ResponseMessage.success("", dates);
  694. }
  695. /**
  696. * 跳转到签到页面
  697. *
  698. * @return
  699. */
  700. @GetMapping(value = "/preview")
  701. public String preview(ModelMap modelMap) throws Exception {
  702. log.info("跳转预览页面!");
  703. return BASE_GOVERNMENT_PATH + "activity_preview";
  704. }
  705. @ResponseBody
  706. @PostMapping(value = "/getBuildsByStreetIds")
  707. public ResponseMessage getBuildsByStreetIds(@RequestParam("streetIds") String streetIds) {
  708. log.info("根据街道ids获取园区!");
  709. String[] idsArr = streetIds.split(",");
  710. List<String> ids = new ArrayList<String>();
  711. for (String id : idsArr) {
  712. ids.add(id);
  713. }
  714. List<BuildInfo> buildList = buildInfoService.findBuildsByStreetIds(ids);
  715. return ResponseMessage.success("", buildList);
  716. }
  717. @ResponseBody
  718. @PostMapping(value = "/getCompanysByBuildIds")
  719. public ResponseMessage getCompanysByBuildIds(@RequestParam("buildIds") String buildIds, @RequestParam("type_id") String type_id) {
  720. log.info("根据街道ids获取园区!");
  721. String[] idsArr = buildIds.split(",");
  722. List<String> ids = new ArrayList<String>();
  723. for (String id : idsArr) {
  724. ids.add(id);
  725. }
  726. List<Company> companyList = companyService.findCompanysByBuildIds(ids, type_id);
  727. return ResponseMessage.success("", companyList);
  728. }
  729. @ResponseBody
  730. @PostMapping(value = "/findStreetBuildCompanyByName")
  731. public ResponseMessage findStreetBuildCompanyByName(@RequestParam("name") String name, ModelMap modelMap) throws Exception {
  732. log.info("模糊查询街道园区企业");
  733. return ResponseMessage.success("", activityService.findStreetBuildCompanyByName(name));
  734. }
  735. @ResponseBody
  736. @PostMapping(value = "/updateSignState")
  737. public ResponseMessage updateState(@RequestParam("id") String id, @RequestParam("state") String state, ModelMap modelMap) throws Exception {
  738. log.info("更新活动签到状态");
  739. ActivityRegistration activityRegistration = new ActivityRegistration();
  740. activityRegistration.setId(Integer.parseInt(id));
  741. activityRegistration.setSign_state(state);
  742. return ResponseMessage.success("操作成功", activityRegistrationService.updateState(activityRegistration));
  743. }
  744. @ResponseBody
  745. @PostMapping(value = "/updateSignStateBatch")
  746. public ResponseMessage updateStateBatch(@RequestParam("ids") String ids, @RequestParam("state") String state, ModelMap modelMap) throws Exception {
  747. log.info("批量更新活动签到状态");
  748. ActivityRegistration activityRegistration = new ActivityRegistration();
  749. activityRegistration.setSign_state(state);
  750. String[] idsArr = ids.split(",");
  751. List<String> idList = new ArrayList<String>();
  752. if (idsArr.length > 0) {
  753. for (String id : idsArr) {
  754. idList.add(id);
  755. }
  756. }
  757. activityRegistrationService.updateStateBatch(idList, activityRegistration);
  758. return ResponseMessage.success("操作成功", null);
  759. }
  760. @ResponseBody
  761. @PostMapping(value = "/updateReviewState")
  762. public ResponseMessage updateReviewState(@RequestParam("id") String id, @RequestParam("state") String state, @RequestParam("message") String message, ModelMap modelMap) throws Exception {
  763. log.info("更新活动审核状态");
  764. ActivityRegistration activityRegistration = new ActivityRegistration();
  765. activityRegistration.setId(Integer.parseInt(id));
  766. activityRegistration.setReview_state(state);
  767. ActivityRegistration reg = activityRegistrationService.findById(Integer.parseInt(id));
  768. ActivityDetail activity = activityService.findOne(reg.getActivity_id() + "");
  769. Message messages = new Message();
  770. messages.setApply_id(activity.getId());
  771. messages.setTitle("企业报名审核确认");
  772. messages.setBusiness_type(Constant.Message_Business_type.ACTIVITY);
  773. String templateCode = Constant.SMS_TemplateCode.ACT_REGISTRATION_SUCCESS;
  774. //驳回消息
  775. if (Objects.equals("2", state)) {
  776. messages.setContent("您关于" + activity.getActivity_title() + "活动的报名信息已被确认不通过");
  777. templateCode = Constant.SMS_TemplateCode.ACT_REGISTRATION_FAILED;
  778. }
  779. //通过消息
  780. if (Objects.equals("1", state)) {
  781. messages.setContent("您关于" + activity.getActivity_title() + "活动的报名信息已被确认通过");
  782. }
  783. if (!reg.getUser_type().equals(Constant.UserType.PERSONAL.toString())) {
  784. int[] arrInt = new int[1];
  785. arrInt[0] = Integer.parseInt(reg.getRelation_id());
  786. if (Objects.equals(Constant.UserType.GOVERNMENT, reg.getUser_type())) {
  787. messageService.saveMessageAndPush(messages, arrInt, Constant.UserType.GOVERNMENT);
  788. } else if (Objects.equals(Constant.UserType.BUILD, reg.getUser_type())) {
  789. messageService.saveMessageAndPush(messages, arrInt, Constant.UserType.BUILD);
  790. } else if (Objects.equals(Constant.UserType.STREET, reg.getUser_type())) {
  791. messageService.saveMessageAndPush(messages, arrInt, Constant.UserType.STREET);
  792. } else if (Objects.equals(Constant.UserType.COMPANY, reg.getUser_type())) {
  793. messageService.saveMessageAndPush(messages, arrInt, Constant.UserType.COMPANY);
  794. }
  795. waitToDoService.completeAllTODO(activity.getId(), Constant.DictionaryType.ACTIVITY_APPLICATION);
  796. }
  797. //发送短息
  798. Map<String, String> params = new HashMap<>();
  799. params.put("activity_title", activity.getActivity_title());
  800. // User user = userService.findById(Integer.parseInt(id));
  801. AlibabaSMSUtil.sendSMS(
  802. reg.getPhone(), templateCode, Constant.SINGNAMW, JSONObject.toJSONString(params));
  803. return ResponseMessage.success("操作成功", activityRegistrationService.updateState(activityRegistration));
  804. }
  805. @ResponseBody
  806. @PostMapping(value = "/updateReviewStateBatch")
  807. public ResponseMessage updateReviewStateBatch(@RequestParam("ids") String ids, @RequestParam("state") String state, @RequestParam("message") String message, ModelMap modelMap) throws Exception {
  808. log.info("批量更新活动审核状态");
  809. ActivityRegistration activityRegistration = new ActivityRegistration();
  810. activityRegistration.setReview_state(state);
  811. String[] idsArr = ids.split(",");
  812. List<String> idList = new ArrayList<String>();
  813. //短信模版
  814. String templateCode = Constant.SMS_TemplateCode.ACT_REGISTRATION_SUCCESS;
  815. //发送短信线程池
  816. ExecutorService executor = Executors.newFixedThreadPool(10);
  817. if (idsArr.length > 0) {
  818. for (String id : idsArr) {
  819. idList.add(id);
  820. ActivityRegistration reg = activityRegistrationService.findById(Integer.parseInt(id));
  821. ActivityDetail activity = activityService.findOne(reg.getActivity_id() + "");
  822. Message messages = new Message();
  823. messages.setApply_id(activity.getId());
  824. messages.setTitle("企业报名审核确认");
  825. messages.setBusiness_type(Constant.Message_Business_type.ACTIVITY);
  826. //驳回消息
  827. if (Objects.equals("2", state)) {
  828. messages.setContent("您关于" + activity.getActivity_title() + "活动的报名信息已被确认不通过");
  829. templateCode = Constant.SMS_TemplateCode.ACT_REGISTRATION_FAILED;
  830. }
  831. //通过消息
  832. if (Objects.equals("1", state)) {
  833. messages.setContent("您关于" + activity.getActivity_title() + "活动的报名信息已被确认通过");
  834. }
  835. if (!reg.getUser_type().equals(Constant.UserType.PERSONAL.toString())) {
  836. int[] streetArrInt = new int[1];
  837. streetArrInt[0] = Integer.parseInt(reg.getRelation_id());
  838. if (Objects.equals(Constant.UserType.GOVERNMENT, reg.getUser_type())) {
  839. messageService.saveMessageAndPush(messages, streetArrInt, Constant.UserType.GOVERNMENT);
  840. } else if (Objects.equals(Constant.UserType.BUILD, reg.getUser_type())) {
  841. messageService.saveMessageAndPush(messages, streetArrInt, Constant.UserType.BUILD);
  842. } else if (Objects.equals(Constant.UserType.STREET, reg.getUser_type())) {
  843. messageService.saveMessageAndPush(messages, streetArrInt, Constant.UserType.STREET);
  844. } else if (Objects.equals(Constant.UserType.COMPANY, reg.getUser_type())) {
  845. messageService.saveMessageAndPush(messages, streetArrInt, Constant.UserType.COMPANY);
  846. }
  847. waitToDoService.completeAllTODO(activity.getId(), Constant.DictionaryType.ACTIVITY_APPLICATION);
  848. }
  849. //发送短信
  850. Map<String, String> params = new HashMap<>();
  851. params.put("activity_title", activity.getActivity_title());
  852. if (StringUtils.isNotBlank(reg.getPhone())) {
  853. String finalTemplateCode = templateCode;
  854. System.out.println("当前线程数:" + ((ThreadPoolExecutor) executor).getActiveCount());
  855. Runnable runnable = () -> {
  856. try {
  857. AlibabaSMSUtil.sendSMS(
  858. reg.getPhone(), finalTemplateCode, Constant.SINGNAMW, JSONObject.toJSONString(params));
  859. } catch (ClientException | InterruptedException e) {
  860. e.printStackTrace();
  861. }
  862. };
  863. executor.submit(runnable);
  864. }
  865. }
  866. }
  867. activityRegistrationService.updateStateBatch(idList, activityRegistration);
  868. return ResponseMessage.success("操作成功", null);
  869. }
  870. @GetMapping(value = "/reject/{id}")
  871. public String reject(@PathVariable("id") String id, ModelMap modelMap) throws Exception {
  872. log.info("跳转到审核驳回页面!");
  873. modelMap.addAttribute("activity_id", id);
  874. return BASE_GOVERNMENT_PATH + "activity_reject";
  875. }
  876. /**
  877. * 跳转到活动二维码
  878. *
  879. * @return
  880. */
  881. @GetMapping(value = "/qrcode/{id}")
  882. public String qrcode(@PathVariable("id") String id, ModelMap modelMap) {
  883. log.info("跳转到活动二维码!");
  884. try {
  885. InputStream is_detail = activityService.getQRcode("1", "350", "activity_id=" + id);
  886. byte[] bytes_detail = IOUtils.toByteArray(is_detail);
  887. String encoded_detail = Base64.getEncoder().encodeToString(bytes_detail);
  888. InputStream is_sign = activityService.getQRcode("2", "350", "activity_id=" + id);
  889. byte[] bytes_sign = IOUtils.toByteArray(is_sign);
  890. String encoded_sign = Base64.getEncoder().encodeToString(bytes_sign);
  891. modelMap.addAttribute("qrcode_detail", "data:image/jpg;base64," + encoded_detail);
  892. modelMap.addAttribute("qrcode_sign", "data:image/jpg;base64," + encoded_sign);
  893. } catch (IOException e) {
  894. e.printStackTrace();
  895. }
  896. modelMap.addAttribute("activity_id", id);
  897. return BASE_GOVERNMENT_PATH + "activity_qrcode";
  898. }
  899. /**
  900. * @Author: huZhiHao
  901. * @Description: 获取小程序二维码
  902. * @Date: 2019/12/18
  903. * @Params: [activity_id, type 1报名 2签到]
  904. * @Return: void
  905. **/
  906. @GetMapping(value = "/download/qrcode/{activity_id}/{type}")
  907. public void getDetailQRcode(@PathVariable("activity_id") String id, @PathVariable("type") String type, HttpServletResponse response) throws IOException {
  908. // try {
  909. // URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token);
  910. // HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
  911. // // conn.setConnectTimeout(10000);//连接超时 单位毫秒
  912. // // conn.setReadTimeout(2000);//读取超时 单位毫秒
  913. // // 发送POST请求必须设置如下两行
  914. // httpURLConnection.setDoOutput(true); // 打开写入属性
  915. // httpURLConnection.setDoInput(true); // 打开读取属性
  916. // httpURLConnection.setRequestMethod("POST");// 提交方式
  917. // // 不得不说一下这个提交方式转换!!真的坑。。改了好长时间!!一定要记得加响应头
  918. // httpURLConnection.setRequestProperty("Content-Type", "application/x-javascript; charset=UTF-8");// 设置响应头
  919. // // 获取URLConnection对象对应的输出流
  920. // PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
  921. // // 发送请求参数
  922. // JSONObject paramJson = new JSONObject();
  923. // paramJson.put("scene", "xxx"); // 你要放的内容
  924. // paramJson.put("path", "pages/index/index");
  925. // paramJson.put("width", 430); // 宽度
  926. // //paramJson.put("auto_color", true);
  927. // printWriter.write(paramJson.toString());
  928. // // flush输出流的缓冲
  929. // printWriter.flush();
  930. // BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
  931. // //创建一个空文件
  932. // OutputStream os = new FileOutputStream(new File("E:/upload/test.jpg"));
  933. // //ByteArrayOutputStream os = new ByteArrayOutputStream();
  934. // int len;
  935. // byte[] arr = new byte[1024];
  936. // while ((len = bis.read(arr)) != -1) {
  937. // os.write(arr, 0, len);
  938. // os.flush();
  939. // }
  940. // os.close();
  941. // // 上传云储存
  942. // //InputStream is = new ByteArrayInputStream(os.toByteArray());
  943. // //retMap = UploadUtils.upload(is);
  944. // } catch (Exception e) {
  945. // e.printStackTrace();
  946. // }
  947. InputStream is = null;
  948. String name = "";
  949. if ("1".equals(type)) {
  950. name = "报名二维码.jpg";
  951. is = activityService.getQRcode(type, "430", "activity_id=" + id);
  952. } else if ("2".equals(type)) {
  953. name = "签到二维码.jpg";
  954. is = activityService.getQRcode(type, "430", "activity_id=" + id);
  955. }
  956. name = new String(name.getBytes(), "ISO-8859-1");
  957. response.setHeader("Content-type", "application/octet-stream");
  958. response.setHeader("Content-disposition", "attachment;fileName=\"" + name + "\"");
  959. OutputStream os = response.getOutputStream(); //输出数据
  960. IOUtils.copy(is, os);
  961. is.close();
  962. os.close();
  963. }
  964. /**
  965. * 跳转到地图
  966. *
  967. * @return
  968. * @throws Exception
  969. */
  970. @GetMapping(value = "/map")
  971. public String toMap() throws Exception {
  972. log.info("跳转到地图!");
  973. return BASE_GOVERNMENT_PATH + "map_component/map";
  974. }
  975. }