MachineQrCodeHandler.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. package com.iamberry.wechat.handles.qrcode;
  2. import com.iamberry.app.tool.util.HttpUtility;
  3. import com.iamberry.wechat.core.entity.ResultMsg;
  4. import com.iamberry.wechat.core.entity.WechatUtils;
  5. import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
  6. import com.iamberry.wechat.core.entity.machineNumber.MachineNumber;
  7. import com.iamberry.wechat.core.entity.machineNumber.WarrantyCard;
  8. import com.iamberry.wechat.core.entity.member.Member;
  9. import com.iamberry.wechat.face.admin.SystemService;
  10. import com.iamberry.wechat.face.machineNumber.MachineNumberService;
  11. import com.iamberry.wechat.face.member.MemberService;
  12. import com.iamberry.wechat.face.order.CodeService;
  13. import com.iamberry.wechat.tools.*;
  14. import org.apache.commons.lang.StringUtils;
  15. import org.json.JSONException;
  16. import org.json.JSONObject;
  17. import org.jsoup.Jsoup;
  18. import org.jsoup.nodes.Document;
  19. import org.jsoup.nodes.Element;
  20. import org.jsoup.select.Elements;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Controller;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RequestParam;
  25. import org.springframework.web.bind.annotation.ResponseBody;
  26. import javax.servlet.ServletException;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpServletResponse;
  29. import java.io.IOException;
  30. import java.text.MessageFormat;
  31. import org.apache.http.ParseException;
  32. import java.text.SimpleDateFormat;
  33. import java.util.*;
  34. import java.util.regex.Matcher;
  35. import java.util.regex.Pattern;
  36. /**
  37. * Created by liuzhiwei on 2017/7/21.
  38. * 上海
  39. */
  40. @Controller
  41. @RequestMapping("/wechat/qrcode")
  42. public class MachineQrCodeHandler {
  43. @Autowired
  44. private MachineNumberService machineNumberService;
  45. @Autowired
  46. private MemberService memberService;
  47. @Autowired
  48. private CodeService codeService;
  49. @Autowired
  50. private SystemService systemService;
  51. /**
  52. * 查询我的机器列表
  53. * @param request
  54. * @param pageNO
  55. * @param pageSize
  56. * @return
  57. * @throws Exception
  58. */
  59. @ResponseBody
  60. @RequestMapping("/select_admin_machine")
  61. public ResultMsg selectAdminMachine(HttpServletRequest request,
  62. @RequestParam(value = "pageNO", defaultValue = "1", required = false) int pageNO,
  63. @RequestParam(value = "pageSize", defaultValue = "5", required = false) int pageSize) throws Exception {
  64. ResultMsg msg = new ResultMsg();
  65. MachineNumber machineNumber = new MachineNumber();
  66. Member member = WechatUtils.getUserBySession(request);
  67. machineNumber.setPage(null);
  68. machineNumber.setNumberOpenId(member.getUserOpenid());
  69. machineNumber.setNumberStatus(1);//启用状态
  70. //分页查询机器编号集合
  71. List<MachineNumber> numberList = machineNumberService.listMachineNumber(machineNumber);
  72. msg.setData(numberList);
  73. msg.setStatus(true);
  74. msg.setResultCode(ResultInfo.SUCCESSCODE);
  75. return msg;
  76. }
  77. /**
  78. * 关注watero公众号后,进入修改用户机器信息页面
  79. * @param request
  80. * @return
  81. * @throws Exception
  82. */
  83. @ResponseBody
  84. @RequestMapping("/_update_machine")
  85. public ResultMsg updateMachineUI(HttpServletRequest request) throws Exception {
  86. ResultMsg msg = new ResultMsg();
  87. MachineNumber machineNumber = new MachineNumber();
  88. String machineId = request.getParameter("machineId");
  89. Member memberInfo = WechatUtils.getUserBySession(request);
  90. if (machineId == null || "".equals(machineId)) {
  91. msg.setResultCode(ResultInfo.ERRORCODE);
  92. msg.setStatus(false);
  93. msg.setMessage("机器信息不存在,请重新进入!");
  94. return msg;
  95. }
  96. //查询用户信息
  97. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  98. if (memberInfo == null) {
  99. msg.setResultCode(ResultInfo.ERRORCODE);
  100. msg.setStatus(false);
  101. msg.setMessage("该用户不存在,请重新关注!");
  102. return msg;
  103. }
  104. machineNumber.setNumberId(Integer.parseInt(machineId));
  105. //根据条形码查询该机器信息
  106. List<MachineNumber> machineList = machineNumberService.listMachineNumber(machineNumber);
  107. if (machineList == null || machineList.size() == 0) {
  108. msg.setResultCode(ResultInfo.ERRORCODE);
  109. msg.setStatus(false);
  110. msg.setMessage("机器信息不存在,请重新进入!");
  111. return msg;
  112. }
  113. MachineNumber machine = machineList.get(0);
  114. Map map = new HashMap();
  115. map.put("machine",machine);
  116. map.put("memberInfo",memberInfo);
  117. msg.setData(map);
  118. msg.setResultCode(ResultInfo.SUCCESSCODE);
  119. msg.setStatus(true);
  120. return msg;
  121. }
  122. /**
  123. * 关注watero公众号后,完善用户信息
  124. * @param member
  125. * @param request
  126. * @return
  127. * @throws Exception
  128. */
  129. @ResponseBody
  130. @RequestMapping("/update_user_info")
  131. public ResultMsg updateUserInfo(Member member,HttpServletRequest request) throws Exception {
  132. ResultMsg msg = new ResultMsg();
  133. Date date=null;
  134. SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd");
  135. String numberSalesTime = request.getParameter("numberSalesTime");
  136. MachineNumber machineNumber = new MachineNumber();
  137. Member memberInfo = WechatUtils.getUserBySession(request);
  138. //查询用户信息
  139. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  140. if (memberInfo == null) {
  141. msg.setResultCode(ResultInfo.ERRORCODE);
  142. msg.setStatus(false);
  143. msg.setMessage("该用户不存在!");
  144. return msg;
  145. }
  146. //验证手机验证码是否正确
  147. ResponseJson json = codeService.validCode(member.getUserTel(),member.getPhoneCode());
  148. if (json.getReturnCode() != 200) {
  149. msg.setResultCode(ResultInfo.ERRORCODE);
  150. msg.setStatus(false);
  151. msg.setMessage("验证码不正确,请重新输入!");
  152. return msg;
  153. }
  154. member.setUserId(memberInfo.getUserId());
  155. /* machineNumber.setNumberBarcode(member.getNumberBarcode());
  156. //根据条形码查询该机器信息
  157. List<MachineNumber> machineList = machineNumberService.listMachineNumber(machineNumber);
  158. if (machineList == null || machineList.size() == 0) {
  159. msg.setResultCode(ResultInfo.ERRORCODE);
  160. msg.setStatus(false);
  161. msg.setMessage("该机器信息不存在,请重新扫描条形码!");
  162. return msg;
  163. }
  164. MachineNumber machine = machineList.get(0);
  165. if (machine.getNumberOpenId() != null && !"".equals(machine.getNumberOpenId())) {
  166. msg.setResultCode(ResultInfo.ERRORCODE);
  167. msg.setStatus(false);
  168. msg.setMessage("该机器信息已被绑定,不能重复绑定!");
  169. return msg;
  170. }*/
  171. machineNumber.setNumberOpenId(memberInfo.getUserOpenid());
  172. machineNumber.setNumberSalesTime(formatter.parse(numberSalesTime));
  173. machineNumber.setNumberSubTime(new Date());
  174. //修改用户信息
  175. boolean flag = machineNumberService.addUserAndNumber(member,machineNumber);
  176. if (flag) {
  177. msg.setResultCode(ResultInfo.SUCCESSCODE);
  178. msg.setStatus(true);
  179. msg.setMessage("恭喜您,信息已完善!");
  180. } else {
  181. msg.setResultCode(ResultInfo.ERRORCODE);
  182. msg.setStatus(false);
  183. msg.setMessage("机器编码不存在,请重新扫描条形码!");
  184. }
  185. return msg;
  186. }
  187. /**
  188. * 关注watero公众号后,修改用户信息
  189. * @param member
  190. * @param request
  191. * @return
  192. * @throws Exception
  193. */
  194. @ResponseBody
  195. @RequestMapping("/update_user_machine_info")
  196. public ResultMsg updateMachineUserInfo(Member member,HttpServletRequest request) throws Exception {
  197. ResultMsg msg = new ResultMsg();
  198. Date date=null;
  199. SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd");
  200. String numberSalesTime = request.getParameter("numberSalesTime");
  201. MachineNumber machineNumber = new MachineNumber();
  202. Member memberInfo = WechatUtils.getUserBySession(request);
  203. //查询用户信息
  204. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  205. if (memberInfo == null) {
  206. msg.setResultCode(ResultInfo.ERRORCODE);
  207. msg.setStatus(false);
  208. msg.setMessage("该用户不存在!");
  209. return msg;
  210. }
  211. //验证手机验证码是否正确
  212. ResponseJson json = codeService.validCode(member.getUserTel(),member.getPhoneCode());
  213. if (json.getReturnCode() != 200) {
  214. msg.setResultCode(ResultInfo.ERRORCODE);
  215. msg.setStatus(false);
  216. msg.setMessage("验证码不正确,请重新输入!");
  217. return msg;
  218. }
  219. member.setUserId(memberInfo.getUserId());
  220. machineNumber.setNumberBarcode(member.getNumberBarcode());
  221. //根据条形码查询该机器信息
  222. List<MachineNumber> machineList = machineNumberService.listMachineNumber(machineNumber);
  223. if (machineList == null || machineList.size() == 0) {
  224. msg.setResultCode(ResultInfo.ERRORCODE);
  225. msg.setStatus(false);
  226. msg.setMessage("修改失败,请重新进入该页面!");
  227. return msg;
  228. }
  229. /*MachineNumber machine = machineList.get(0);
  230. if (machine.getNumberOpenId() != null) {
  231. msg.setResultCode(ResultInfo.ERRORCODE);
  232. msg.setStatus(false);
  233. msg.setMessage("该机器信息已被绑定,不能重复绑定!");
  234. return msg;
  235. }*/
  236. machineNumber.setNumberOpenId(memberInfo.getUserOpenid());
  237. machineNumber.setNumberSalesTime(formatter.parse(numberSalesTime));
  238. machineNumber.setNumberSubTime(new Date());
  239. //修改用户信息
  240. boolean flag = machineNumberService.updateUserAndNumber(member,machineNumber);
  241. if (flag) {
  242. msg.setResultCode(ResultInfo.SUCCESSCODE);
  243. msg.setStatus(true);
  244. msg.setMessage("恭喜您,信息已修改!");
  245. } else {
  246. msg.setResultCode(ResultInfo.ERRORCODE);
  247. msg.setStatus(false);
  248. msg.setMessage("修改失败,请重新进入该页面!");
  249. }
  250. return msg;
  251. }
  252. @RequestMapping("/_add_warranty")
  253. public void addWarrantyUI(HttpServletRequest request,HttpServletResponse res) throws ServletException, IOException {
  254. Member memberInfo = WechatUtils.getUserBySession(request);
  255. //查询用户信息
  256. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  257. if (memberInfo != null && memberInfo.getUserStatus() == 2) {
  258. request.getRequestDispatcher("/view/add_machine.html").forward(request,res);
  259. } else {
  260. request.getRequestDispatcher("/view/guanzhu.html").forward(request,res);
  261. }
  262. }
  263. /**
  264. * 获取ip地址
  265. * @param request
  266. * @return
  267. */
  268. public static String getIp(HttpServletRequest request) {
  269. String ip = request.getHeader("x-forwarded-for");
  270. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  271. ip = request.getHeader("Proxy-Client-IP");
  272. }
  273. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  274. ip = request.getHeader("WL-Proxy-Client-IP");
  275. }
  276. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  277. ip = request.getRemoteAddr();
  278. }
  279. // 获取ip地址, 若多级代理,第一个IP为客户端真实IP,多个IP按照','分割
  280. if (ip != null && ip.indexOf(",") != -1) {
  281. ip = ip.split(",")[0];
  282. }
  283. return ip;
  284. }
  285. /**
  286. * 获取地址信息
  287. * @param ip
  288. * @return
  289. */
  290. public static Map<String,Object> getLocation(String ip) {
  291. Map<String,Object> map = new HashMap<String,Object>();
  292. try {
  293. JSONObject json = new JSONObject(
  294. HttpUtility.httpsGet(MessageFormat.format(NameUtils.getConfig("SINA_IP_URL"),ip)));
  295. String province = json.getString("province");
  296. String city = json.getString("city");
  297. String district = json.getString("district");
  298. map.put("province",province);
  299. map.put("city",city);
  300. map.put("district",district);
  301. } catch (ParseException | IOException | JSONException e) {
  302. System.out.println("------------获取地址出错------------");
  303. }
  304. return map;
  305. }
  306. /**
  307. * 发送手机验证码
  308. * @param request
  309. * @return
  310. * @throws Exception
  311. */
  312. @ResponseBody
  313. @RequestMapping("/send_phone_code")
  314. public ResultMsg sendPhoneCode(HttpServletRequest request) throws Exception {
  315. ResultMsg msg = new ResultMsg();
  316. String phone = request.getParameter("phone");
  317. if (phone == null || "".equals(phone)) {
  318. msg.setResultCode(ResultInfo.ERRORCODE);
  319. msg.setStatus(false);
  320. msg.setMessage("手机号码不能为空!");
  321. return msg;
  322. }
  323. //发送手机验证码
  324. ResponseJson json = codeService.sms(phone);
  325. if (json.getReturnCode() == 200) {
  326. msg.setStatus(true);
  327. } else {
  328. msg.setStatus(false);
  329. }
  330. msg.setResultCode(json.getReturnCode().toString());
  331. return msg;
  332. }
  333. /**
  334. * 根据经纬度通过腾讯地址位置
  335. * @param request
  336. * @return
  337. * @throws Exception
  338. */
  339. @ResponseBody
  340. @RequestMapping("/get_location_by_qq")
  341. public ResultMsg getLocationByQq(HttpServletRequest request) throws Exception {
  342. ResultMsg msg = new ResultMsg();
  343. Map<String,Object> map = new HashMap<String,Object>();
  344. //纬度
  345. String latitude = request.getParameter("latitude");
  346. //经度
  347. String longitude = request.getParameter("longitude");
  348. if (!StringUtils.isNotEmpty(latitude)) {
  349. msg.setResultCode(ResultInfo.ERRORCODE);
  350. msg.setStatus(false);
  351. msg.setMessage("纬度不能为空!");
  352. return msg;
  353. }
  354. if (!StringUtils.isNotEmpty(longitude)) {
  355. msg.setResultCode(ResultInfo.ERRORCODE);
  356. msg.setStatus(false);
  357. msg.setMessage("经度不能为空!");
  358. return msg;
  359. }
  360. JSONObject json = new JSONObject(
  361. HttpUtility.httpsGet(MessageFormat.format(NameUtils.getConfig("LOCATION_QQ_URL"),latitude,longitude)));
  362. JSONObject resultJson = json.getJSONObject("result");
  363. JSONObject locationJson = resultJson.getJSONObject("ad_info");
  364. String numberProvince = locationJson.getString("province");
  365. String numberCity = locationJson.getString("city");
  366. String numberDistrict = locationJson.getString("district");
  367. System.out.println("locationJson="+locationJson);
  368. map.put("numberProvince",numberProvince);
  369. map.put("numberCity",numberCity);
  370. map.put("numberDistrict",numberDistrict);
  371. msg.setData(map);
  372. msg.setResultCode(ResultInfo.SUCCESSCODE);
  373. msg.setStatus(true);
  374. return msg;
  375. }
  376. /**
  377. * 查询百胜订单信息
  378. * @param request
  379. * @param member
  380. * @return
  381. * @throws Exception
  382. */
  383. @ResponseBody
  384. @RequestMapping("/select_efast_order_num")
  385. public ResultMsg selectEfastOrderNum(HttpServletRequest request, Member member) throws Exception {
  386. ResultMsg msg = new ResultMsg();
  387. Map<String,Object> map = new HashMap<String,Object>();
  388. StringBuilder txtTime = new StringBuilder();
  389. int num = 0;
  390. //获取cookie值
  391. ShopSystemRule rule = systemService.selectOneShopRuleById(244);
  392. String url = NameUtils.getConfig("efast_order_url") + member.getUserTel();
  393. Map<String,String> params = new HashMap<String,String>();
  394. String cookie = rule.getRuleDesc();
  395. //查询百胜订单信息
  396. String str = HttpClient431Util.doGet(params,url,null,null,cookie);
  397. Document html = Jsoup.parse(str);
  398. Elements trs = html.body().getElementsByTag("tr");
  399. for (Element tr : trs) {
  400. Elements tds = tr.getElementsByTag("td");
  401. for (Element td : tds) {
  402. //校验时间格式正则表达式
  403. String timeTag = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-9]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
  404. String tdText = td.html().toString();
  405. if (tdText.length() > 24) {
  406. tdText = tdText.substring(4, 24).trim();
  407. } else {
  408. tdText = tdText.substring(0, tdText.length() - 1).trim();
  409. }
  410. Pattern p = Pattern.compile(timeTag);
  411. Matcher matcher = p.matcher(tdText);
  412. boolean flag = matcher.matches();
  413. if (flag) {
  414. num++;
  415. txtTime.append(tdText);
  416. txtTime.append(",");
  417. }
  418. }
  419. }
  420. map.put("num",num);
  421. map.put("txtTime",txtTime.toString());
  422. msg.setData(map);
  423. msg.setStatus(true);
  424. return msg;
  425. }
  426. /**
  427. * 添加质保卡信息
  428. * @param request
  429. * @return
  430. * @throws Exception
  431. */
  432. @ResponseBody
  433. @RequestMapping("/add_warranty_card")
  434. public ResultMsg addWarrantyCard(HttpServletRequest request, Member member) throws Exception {
  435. ResultMsg msg = new ResultMsg();
  436. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  437. String numberWatero = request.getParameter("numberWatero");
  438. String numberProvince = request.getParameter("numberProvince");
  439. String numberCity = request.getParameter("numberCity");
  440. String numberDistrict = request.getParameter("numberDistrict");
  441. List<MachineNumber> list = new ArrayList<MachineNumber>();
  442. Member memberInfo = WechatUtils.getUserBySession(request);
  443. String txtTime = request.getParameter("txtTime");
  444. //查询用户信息
  445. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  446. if (memberInfo == null) {
  447. msg.setResultCode(ResultInfo.ERRORCODE);
  448. msg.setStatus(false);
  449. msg.setMessage("该用户不存在!");
  450. return msg;
  451. }
  452. member.setUserId(memberInfo.getUserId());
  453. if (!StringUtils.isNotEmpty(numberProvince)) {
  454. String ip = getIp(request);
  455. Map<String,Object> locations = getLocation(ip);
  456. if (StringUtils.isNotEmpty((String)locations.get("province"))) {
  457. numberProvince = (String)locations.get("province");
  458. numberCity = (String)locations.get("city");
  459. numberDistrict = (String)locations.get("district");
  460. }
  461. }
  462. if (!StringUtils.isNotEmpty(numberWatero)) {
  463. msg.setResultCode(ResultInfo.ERRORCODE);
  464. msg.setStatus(false);
  465. msg.setMessage("水质范围为空,请重新填写水质范围!");
  466. return msg;
  467. }
  468. //验证手机验证码是否正确
  469. ResponseJson code = codeService.validCode(member.getUserTel(),member.getPhoneCode());
  470. if (code.getReturnCode() != 200) {
  471. msg.setResultCode(ResultInfo.ERRORCODE);
  472. msg.setStatus(false);
  473. msg.setMessage("验证码不正确,请重新输入!");
  474. return msg;
  475. }
  476. //循环添加机器信息
  477. if (txtTime != null && !"".equals(txtTime)) {
  478. txtTime = txtTime.substring(0,txtTime.lastIndexOf(","));
  479. String[] times = txtTime.split(",");
  480. for (int i = 0;i < times.length;i++) {
  481. MachineNumber machineNumber = new MachineNumber();
  482. machineNumber.setNumberOpenId(memberInfo.getUserOpenid());
  483. machineNumber.setNumberSalesTime(format.parse(times[i]));
  484. machineNumber.setNumberWatero(Integer.parseInt(numberWatero));
  485. machineNumber.setNumberProvince(numberProvince);
  486. machineNumber.setNumberCity(numberCity);
  487. machineNumber.setNumberDistrict(numberDistrict);
  488. list.add(machineNumber);
  489. }
  490. }
  491. //添加机器信息
  492. boolean flag = machineNumberService.addMachineNumberList(list, memberInfo.getUserOpenid(), member);
  493. if (flag) {
  494. msg.setResultCode(ResultInfo.SUCCESSCODE);
  495. msg.setStatus(true);
  496. } else {
  497. msg.setResultCode(ResultInfo.ERRORCODE);
  498. msg.setStatus(false);
  499. }
  500. return msg;
  501. }
  502. /**
  503. * 查询质保卡信息
  504. * @param request
  505. * @return
  506. * @throws Exception
  507. */
  508. @ResponseBody
  509. @RequestMapping("/select_warranty_card_list")
  510. public ResultMsg selectWarrantyCardList(HttpServletRequest request) throws Exception {
  511. ResultMsg msg = new ResultMsg();
  512. Member memberInfo = WechatUtils.getUserBySession(request);
  513. List<WarrantyCard> cardList = new ArrayList<WarrantyCard>();
  514. //查询用户信息
  515. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  516. if (memberInfo == null) {
  517. msg.setResultCode(ResultInfo.ERRORCODE);
  518. msg.setStatus(false);
  519. msg.setMessage("该用户不存在!");
  520. return msg;
  521. }
  522. //获取换新时间期限
  523. ShopSystemRule renewRule = systemService.selectOneShopRuleById(242);
  524. //获取质保时间期限
  525. ShopSystemRule endRule = systemService.selectOneShopRuleById(243);
  526. MachineNumber machineNumber = new MachineNumber();
  527. machineNumber.setPage(null);
  528. machineNumber.setNumberOpenId(memberInfo.getUserOpenid());
  529. machineNumber.setNumberStatus(1);//启用状态
  530. //分页查询机器编号集合
  531. List<MachineNumber> numberList = machineNumberService.listMachineNumber(machineNumber);
  532. if (numberList == null && numberList.size() <= 0) {
  533. msg.setStatus(false);
  534. msg.setResultCode(ResultInfo.ERRORCODE);
  535. msg.setMessage("您没有质保卡信息!");
  536. return msg;
  537. }
  538. //将查出的机器信息存入质保卡信息列表中
  539. for (MachineNumber number : numberList) {
  540. WarrantyCard card = new WarrantyCard();
  541. card.setCardName("美国WaterO净饮水一体机");
  542. card.setCardDes("一年换新,十年质保");
  543. card.setCardBarcode(number.getNumberBarcode());
  544. card.setCardId(number.getNumberId());
  545. card.setCardTel(memberInfo.getUserTel());
  546. card.setCardSaleTime(number.getNumberSalesTime());
  547. card.setCardEndTime(updateDate(number.getNumberSalesTime(),endRule.getRuleNum().intValue()));
  548. card.setCardRenewTime(updateDate(number.getNumberSalesTime(),renewRule.getRuleNum().intValue()));
  549. cardList.add(card);
  550. }
  551. msg.setData(cardList);
  552. msg.setStatus(true);
  553. msg.setResultCode(ResultInfo.SUCCESSCODE);
  554. return msg;
  555. }
  556. /**
  557. * 修改日期 增加月
  558. * @param date
  559. * @param month
  560. * @return
  561. * @throws Exception
  562. */
  563. public Date updateDate(Date date,int month) throws Exception {
  564. Calendar calendar = Calendar.getInstance();
  565. calendar.setTime(date);
  566. calendar.add(Calendar.MONTH, month);
  567. return calendar.getTime();
  568. }
  569. }