AdminGiftCardHandler.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. package com.iamberry.wechat.handles.admin;
  2. import java.io.UnsupportedEncodingException;
  3. import java.net.URLDecoder;
  4. import java.net.URLEncoder;
  5. import java.util.List;
  6. import javax.servlet.http.HttpServletRequest;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestParam;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13. import org.springframework.web.servlet.ModelAndView;
  14. import com.iamberry.wechat.core.entity.Page;
  15. import com.iamberry.wechat.core.entity.PaperBean;
  16. import com.iamberry.wechat.core.entity.ResultMsg;
  17. import com.iamberry.wechat.core.entity.banner.MessageDTO;
  18. import com.iamberry.wechat.core.entity.giftCard.AgentInfo;
  19. import com.iamberry.wechat.core.entity.giftCard.AgentMachine;
  20. import com.iamberry.wechat.core.entity.giftCard.CardCashInfo;
  21. import com.iamberry.wechat.core.entity.giftCard.GiftCardPayCode;
  22. import com.iamberry.wechat.core.entity.giftCard.UserMachineInfo;
  23. import com.iamberry.wechat.face.giftCard.AgentMachineService;
  24. import com.iamberry.wechat.face.giftCard.AgentService;
  25. import com.iamberry.wechat.face.giftCard.GiftCardPayCodeService;
  26. import com.iamberry.wechat.face.giftCard.GiftCardService;
  27. import com.iamberry.wechat.tools.ResponseJson;
  28. /**
  29. * 礼品卡后台管理
  30. * @company 深圳爱贝源科技有限公司
  31. * @website www.iamberry.com
  32. * @author 献
  33. * @tel 18271840547
  34. * @date 2017年2月16日
  35. */
  36. @Controller
  37. @RequestMapping("/admin/card")
  38. public class AdminGiftCardHandler {
  39. @Autowired
  40. private GiftCardService cardService;
  41. @Autowired
  42. private AgentMachineService agentMachineService;
  43. @Autowired
  44. private AgentService agentService;
  45. @Autowired
  46. private GiftCardPayCodeService payCodeService;
  47. /**
  48. * 礼品卡列表
  49. * @return
  50. * @author 献
  51. * @Time 2017年2月16日
  52. */
  53. @RequestMapping(value = "/list")
  54. public ModelAndView list(
  55. @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
  56. @RequestParam(value = "pageNO", required = false, defaultValue = "1") Integer pageNO) throws Exception {
  57. ModelAndView mv = new ModelAndView("admin/giftCard/list");
  58. List<UserMachineInfo> list = cardService.page(pageNO, pageSize);
  59. //将昵称转码
  60. if (list != null && list.size() > 0) {
  61. for (UserMachineInfo userMachineInfo : list) {
  62. if (StringUtils.isNotEmpty(userMachineInfo.getUserNickName())) {
  63. userMachineInfo.setUserNickName(URLDecoder.decode(userMachineInfo.getUserNickName(),"UTF-8"));
  64. }
  65. }
  66. }
  67. mv.addObject("list", list);
  68. mv.addObject("pageSize", PaperBean.justPaperCount(cardService.count(), pageSize));
  69. mv.addObject("pageNO", pageNO);
  70. mv.addObject("url", "/admin/card/list?pageSize=" + pageSize + "&pageNO=");
  71. return mv;
  72. }
  73. /**
  74. * 兑换发货
  75. * @return
  76. * @author 献
  77. * @Time 2017年2月17日
  78. */
  79. @ResponseBody
  80. @RequestMapping("/send")
  81. public ResponseJson send(@RequestParam("postNum") String postNum,
  82. @RequestParam("postFirm") String postFirm,
  83. @RequestParam("userMachineId") Integer userMachineId) {
  84. UserMachineInfo info = new UserMachineInfo();
  85. info.setUserMachineId(userMachineId);
  86. info.setUserMachinePostNum(postNum);
  87. info.setUserMachinePostName(postFirm);
  88. info.setUserMachineStatus(2);
  89. int i = cardService.update(info);
  90. if (i<=0) {
  91. ResponseJson json = new ResponseJson();
  92. json.setResultCode(200);
  93. json.setReturnCode(500);
  94. return json;
  95. } else {
  96. ResponseJson json = new ResponseJson();
  97. json.setResultCode(200);
  98. json.setReturnCode(200);
  99. return json;
  100. }
  101. }
  102. /**
  103. * 分页查询礼品卡兑现的记录
  104. * @param request
  105. * @param pageSize
  106. * @param pageNO
  107. * @return
  108. * @throws Exception
  109. */
  110. @RequestMapping("/selectCardCashList")
  111. public ModelAndView selectCardCashList(HttpServletRequest request,
  112. @RequestParam(value = "pageSize", required = false, defaultValue = "2") Integer pageSize,
  113. @RequestParam(value = "pageNO", required = false, defaultValue = "1") Integer pageNO) throws Exception {
  114. ModelAndView mv = new ModelAndView("admin/giftCard/cardCashList");
  115. StringBuilder url = new StringBuilder("/admin/card/selectCardCashList?pageSize=" + pageSize);
  116. CardCashInfo cardCashInfo = new CardCashInfo();
  117. String nickName = request.getParameter("nickName");
  118. String agentTel = request.getParameter("agentTel");
  119. String cardPassword = request.getParameter("cardPassword");
  120. String cardCashStatus = request.getParameter("cardCashStatus");
  121. if (StringUtils.isNotEmpty(nickName)) {
  122. mv.addObject("nickName", nickName);
  123. url.append("&nickName=" + nickName);
  124. cardCashInfo.setCardCashSalesNickname(URLEncoder.encode(nickName, "UTF-8"));
  125. }
  126. if (StringUtils.isNotEmpty(agentTel)) {
  127. mv.addObject("agentTel", agentTel);
  128. url.append("&agentTel=" + agentTel);
  129. cardCashInfo.setAgentTel(agentTel);
  130. }
  131. if (StringUtils.isNotEmpty(cardPassword)) {
  132. mv.addObject("cardPassword", cardPassword);
  133. url.append("&cardPassword=" + cardPassword);
  134. cardCashInfo.setCardPassword(cardPassword);
  135. }
  136. if (StringUtils.isNotEmpty(cardCashStatus)) {
  137. mv.addObject("cardCashStatus", cardCashStatus);
  138. url.append("&cardCashStatus=" + cardCashStatus);
  139. cardCashInfo.setCardCashStatus(Integer.parseInt(cardCashStatus));
  140. }
  141. cardCashInfo.getPage().setPageNumber(pageNO);
  142. cardCashInfo.getPage().setPageSize(pageSize);
  143. cardCashInfo.getPage().initRecordBegin();
  144. //分页查询礼品卡兑现列表
  145. List<CardCashInfo> cardCashList = cardService.selectCardCashList(cardCashInfo);
  146. if (cardCashList != null && cardCashList.size() > 0) {
  147. for (CardCashInfo cardCash : cardCashList) {
  148. cardCash.setCardCashSalesNickname(URLDecoder.decode(cardCash.getCardCashSalesNickname(), "UTF-8"));
  149. }
  150. }
  151. url.append("&pageNO=");
  152. mv.addObject("cardCashList", cardCashList);
  153. mv.addObject("pageSize", cardService.selectCardCashCount(cardCashInfo));
  154. mv.addObject("pageNO", pageNO);
  155. mv.addObject("url", url.toString());
  156. return mv;
  157. }
  158. /**
  159. * 审核礼品卡兑现方法
  160. * @param request
  161. * @return
  162. * @throws Exception
  163. */
  164. @ResponseBody
  165. @RequestMapping(value="/checkCash",produces = {"application/json;charset=UTF-8"})
  166. public boolean checkCash(HttpServletRequest request) throws Exception {
  167. CardCashInfo cardCashInfo = new CardCashInfo();
  168. String cardCashStatus = request.getParameter("cardCashStatus");
  169. String cardCashRemark = request.getParameter("cardCashRemark");
  170. String cardCashId = request.getParameter("cardCashId");
  171. if (StringUtils.isNotEmpty(cardCashStatus)) {
  172. cardCashInfo.setCardCashStatus(Integer.parseInt(cardCashStatus));
  173. }
  174. if (StringUtils.isNotEmpty(cardCashId)) {
  175. cardCashInfo.setCardCashId(Integer.parseInt(cardCashId));
  176. }
  177. if (StringUtils.isNotEmpty(cardCashRemark)) {
  178. cardCashInfo.setCardCashRemark(cardCashRemark);
  179. }
  180. cardCashInfo.setCardCashOldStatus(1);
  181. //根据状态和id修改兑现记录状态
  182. Integer num = cardService.updateCardCashStatus(cardCashInfo);
  183. if (num > 0) {
  184. return true;
  185. } else {
  186. return false;
  187. }
  188. }
  189. /**
  190. * 跳转到添加礼品卡页面
  191. * @param request
  192. * @return
  193. * @throws Exception
  194. */
  195. @RequestMapping("/addCardInfo")
  196. public ModelAndView addCardInfo(HttpServletRequest request) throws Exception {
  197. ModelAndView mv = new ModelAndView("admin/giftCard/addCard");
  198. return mv;
  199. }
  200. /**
  201. * 查询所有付费代理商信息
  202. * @param request
  203. * @return
  204. * @throws Exception
  205. */
  206. @ResponseBody
  207. @RequestMapping("/selectAgentList")
  208. public ResultMsg selectAgentList(HttpServletRequest request) throws Exception {
  209. ResultMsg msg = new ResultMsg();
  210. //查询所有付费代理商信息
  211. List<AgentInfo> agentList = agentService.selectAgentList();
  212. if (agentList != null && agentList.size() > 0) {
  213. for (AgentInfo agentInfo : agentList) {
  214. agentInfo.setAgentNickname(URLDecoder.decode(agentInfo.getAgentNickname(), "UTF-8"));
  215. }
  216. msg.setData(agentList);
  217. msg.setStatus(true);
  218. } else {
  219. msg.setStatus(false);
  220. }
  221. return msg;
  222. }
  223. /**
  224. * 批量生成礼品卡信息
  225. * @param request
  226. * @return
  227. * @throws Exception
  228. */
  229. @RequestMapping("/saveCardList")
  230. public ModelAndView saveCardList(HttpServletRequest request) throws Exception {
  231. String openId = request.getParameter("openId");
  232. String cardNum = request.getParameter("cardNum");
  233. ModelAndView mv = new ModelAndView("admin/msg/msg");
  234. if (!StringUtils.isNotEmpty(openId)) {
  235. mv.addObject("msgObj", new MessageDTO(true, "操作结果", "添加失败,openId为空!"));
  236. return mv;
  237. }
  238. if (!StringUtils.isNotEmpty(cardNum)) {
  239. mv.addObject("msgObj", new MessageDTO(true, "操作结果", "添加失败,礼品卡数量为空!"));
  240. return mv;
  241. }
  242. //批量添加礼品卡
  243. boolean flag = cardService.saveCardList(openId, Integer.parseInt(cardNum));
  244. if (flag) {
  245. mv.addObject("msgObj", new MessageDTO(true, "操作结果", "添加成功!"));
  246. } else {
  247. mv.addObject("msgObj", new MessageDTO(true, "操作结果", "添加失败!"));
  248. }
  249. return mv;
  250. }
  251. /**
  252. * 兑换入口 - 页面
  253. * @return
  254. * @author 献
  255. * @Time 2017年2月15日
  256. */
  257. @RequestMapping(value = "/deliveryUI")
  258. public ModelAndView exchangeUI(HttpServletRequest request) {
  259. ModelAndView mv = new ModelAndView();
  260. String agentMachineId = request.getParameter("agentMachineId");
  261. String agentMachineStatus = request.getParameter("agentMachineStatus");
  262. mv.addObject("agentMachineId", agentMachineId);
  263. mv.addObject("agentMachineStatus", agentMachineStatus);
  264. mv.setViewName("/admin/giftCard/deliveryUI");
  265. return mv;
  266. }
  267. /**
  268. * 物流信息列表(后台)
  269. * @param pageNO
  270. * @param pageSize
  271. * @param agentMachineStatus
  272. * @param request
  273. * @return
  274. * @author LJK
  275. * @Time 2017年2月16日
  276. * @throws Exception
  277. */
  278. @ResponseBody
  279. @RequestMapping(value = "/agentMachineList")
  280. public ModelAndView agentMachineList(
  281. @RequestParam(value = "pageNO", defaultValue = "1", required = false) int pageNO,
  282. @RequestParam(value = "pageSize", defaultValue = "5", required = false) int pageSize,
  283. HttpServletRequest request) throws Exception {
  284. AgentMachine agentMachine = new AgentMachine();
  285. ModelAndView mv = new ModelAndView();
  286. Page page = new Page();
  287. String beginDate = request.getParameter("beginDate");
  288. String endDate = request.getParameter("endDate");
  289. String agentMachineStatus = request.getParameter("agentMachineStatus");
  290. StringBuilder url = new StringBuilder("/admin/card/agentMachineList?pageSize=" + pageSize);
  291. if (agentMachineStatus != null && !"".equals(agentMachineStatus)) {
  292. agentMachine.setAgentMachineStatus(Integer.valueOf(agentMachineStatus));//赠送状态
  293. url.append("&agentMachineStatus=" + agentMachineStatus);
  294. mv.addObject("agentMachineStatus", agentMachineStatus);
  295. }
  296. if (beginDate != null && !"".equals(beginDate)) {
  297. agentMachine.setBeginDate(beginDate);
  298. url.append("&beginDate=" + beginDate);
  299. mv.addObject("beginDate", beginDate);
  300. }
  301. if (endDate != null && !"".equals(endDate)) {
  302. agentMachine.setEndDate(endDate);
  303. url.append("&endDate=" + endDate);
  304. mv.addObject("endDate", endDate);
  305. }
  306. page.setPageNo((pageNO - 1) * pageSize);
  307. int count = agentMachineService.selectAllAgentMachineCount(agentMachine);
  308. int pageCount = count % pageSize == 0 ? count / pageSize : count
  309. / pageSize + 1;
  310. page.setPageSize(pageSize);
  311. agentMachine.setPage(page);
  312. List<AgentMachine> agentMachineList = agentMachineService.selectAllAgentMachine(agentMachine);
  313. url.append("&pageNO=");
  314. mv.addObject("agentMachineList", agentMachineList);
  315. mv.addObject("pageNO", pageNO);
  316. mv.addObject("pageSize", pageCount);
  317. mv.addObject("url", url);
  318. mv.setViewName("/admin/giftCard/agentMachineList");
  319. return mv;
  320. }
  321. /**
  322. * 进行发货操作
  323. * @return
  324. * @author LJK
  325. * @Time 2017年2月16日
  326. */
  327. @ResponseBody
  328. @RequestMapping("/updateAgentMachineStatus")
  329. public ResponseJson updateAgentMachineStatus(HttpServletRequest httpServletRequest,AgentMachine agentMachine) {
  330. ResponseJson json = new ResponseJson();
  331. if (agentMachine == null) {
  332. json.setReturnCode(503);
  333. json.setResultCode(200);
  334. json.addResponseKeyValue("操作失败!");
  335. return json;
  336. }
  337. if(agentMachine.getAgentMachineStatus() == 1){
  338. agentMachine.setAgentMachineStatus(2);
  339. }
  340. Integer msg = agentMachineService.updateAgentMachine(agentMachine);
  341. if(msg > 0){
  342. json.setResultCode(200);
  343. json.setReturnCode(200);
  344. json.addResponseKeyValue("操作成功!");
  345. }else{
  346. json.setReturnCode(503);
  347. json.setResultCode(200);
  348. json.addResponseKeyValue("操作失败!");
  349. }
  350. return json;
  351. }
  352. /**
  353. * 进入批量添加抵扣密码页面
  354. * 2017年3月15日
  355. * @author muzx
  356. * @return
  357. */
  358. @RequestMapping("/pay_code_list")
  359. public ModelAndView toAddPayCodeList(
  360. @RequestParam(value = "pageSize", required = false, defaultValue = "8") Integer pageSize,
  361. @RequestParam(value = "pageNO", required = false, defaultValue = "1") Integer pageNO){
  362. ModelAndView mv = new ModelAndView("admin/giftCard/payCodeList");
  363. GiftCardPayCode payCode = new GiftCardPayCode();
  364. payCode.getPage().setPageSize(pageSize);
  365. payCode.getPage().setPageNumber(pageNO);
  366. List<GiftCardPayCode> list = payCodeService.listPayCode(payCode);
  367. //将昵称转码
  368. if (list != null) {
  369. for (GiftCardPayCode code : list) {
  370. try {
  371. if (StringUtils.isNotEmpty(code.getCodeReferrerName())) {
  372. code.setCodeReferrerName(URLDecoder.decode(code.getCodeReferrerName(),"UTF-8"));
  373. }
  374. if (StringUtils.isNotEmpty(code.getCodeUseOpenName())) {
  375. code.setCodeUseOpenName(URLDecoder.decode(code.getCodeUseOpenName(),"UTF-8"));
  376. }
  377. } catch (UnsupportedEncodingException e) {
  378. // TODO Auto-generated catch block
  379. e.printStackTrace();
  380. }
  381. }
  382. }
  383. int count = payCodeService.countPayCode();
  384. int pageCount = count % payCode.getPage().getPageSize() == 0 ? count/payCode.getPage().getPageSize():(count/payCode.getPage().getPageSize()) + 1;
  385. //分页用
  386. mv.addObject("list", list);
  387. mv.addObject("pageNO", pageNO);
  388. mv.addObject("pageSize", pageCount);
  389. mv.addObject("url", "/admin/card/pay_code_list?pageSize=" + pageSize + "&pageNO=");
  390. return mv;
  391. }
  392. /**
  393. * 生成抵扣密码并加入到数据库中
  394. * 2017年3月3日
  395. * @author muzx
  396. * @return
  397. */
  398. @RequestMapping("/add_pay_password")
  399. @ResponseBody
  400. public ResultMsg getPayPassword(HttpServletRequest req){
  401. ResultMsg rm = new ResultMsg();
  402. rm.setStatus(false);
  403. rm.setMessage("操作有误!");
  404. rm.setResultCode("400");
  405. String num = req.getParameter("payCodeNum");
  406. String openId = req.getParameter("openId");
  407. if(StringUtils.isEmpty(openId) && StringUtils.isEmpty(num)){
  408. return rm;
  409. }
  410. payCodeService.insertPayCodeList(openId, StringUtils.isEmpty(num) ? 1 : Integer.parseInt(num));
  411. rm.setStatus(true);
  412. rm.setData("");
  413. rm.setResultCode("200");
  414. rm.setMessage("");
  415. return rm;
  416. }
  417. }