MachineQrCodeHandler.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  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. res.sendRedirect("/wateroPF/view/warranty_card.html?num=1");
  259. } else {
  260. request.getRequestDispatcher("/view/guanzhu.html").forward(request,res);
  261. }
  262. }
  263. /**
  264. * 检查是否关注微信公众号
  265. * @param request
  266. * @return
  267. * @throws Exception
  268. */
  269. @ResponseBody
  270. @RequestMapping("/check_warranty")
  271. public ResultMsg checkWarranty(HttpServletRequest request) throws Exception {
  272. ResultMsg msg = new ResultMsg();
  273. Member memberInfo = WechatUtils.getUserBySession(request);
  274. //查询用户信息
  275. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  276. if (memberInfo != null && memberInfo.getUserStatus() == 2) {
  277. msg.setData(true);
  278. } else {
  279. msg.setData(false);
  280. }
  281. msg.setStatus(true);
  282. msg.setResultCode(ResultInfo.SUCCESSCODE);
  283. return msg;
  284. }
  285. /**
  286. * 获取ip地址
  287. * @param request
  288. * @return
  289. */
  290. public static String getIp(HttpServletRequest request) {
  291. String ip = request.getHeader("x-forwarded-for");
  292. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  293. ip = request.getHeader("Proxy-Client-IP");
  294. }
  295. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  296. ip = request.getHeader("WL-Proxy-Client-IP");
  297. }
  298. if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  299. ip = request.getRemoteAddr();
  300. }
  301. // 获取ip地址, 若多级代理,第一个IP为客户端真实IP,多个IP按照','分割
  302. if (ip != null && ip.indexOf(",") != -1) {
  303. ip = ip.split(",")[0];
  304. }
  305. return ip;
  306. }
  307. /**
  308. * 获取地址信息
  309. * @param ip
  310. * @return
  311. */
  312. public static Map<String,Object> getLocation(String ip) {
  313. Map<String,Object> map = new HashMap<String,Object>();
  314. try {
  315. JSONObject json = new JSONObject(
  316. HttpUtility.httpsGet(MessageFormat.format(NameUtils.getConfig("SINA_IP_URL"),ip)));
  317. String province = json.getString("province");
  318. String city = json.getString("city");
  319. String district = json.getString("district");
  320. map.put("province",province);
  321. map.put("city",city);
  322. map.put("district",district);
  323. } catch (ParseException | IOException | JSONException e) {
  324. System.out.println("------------获取地址出错------------");
  325. }
  326. return map;
  327. }
  328. /**
  329. * 发送手机验证码
  330. * @param request
  331. * @return
  332. * @throws Exception
  333. */
  334. @ResponseBody
  335. @RequestMapping("/send_phone_code")
  336. public ResultMsg sendPhoneCode(HttpServletRequest request) throws Exception {
  337. ResultMsg msg = new ResultMsg();
  338. String phone = request.getParameter("phone");
  339. if (phone == null || "".equals(phone)) {
  340. msg.setResultCode(ResultInfo.ERRORCODE);
  341. msg.setStatus(false);
  342. msg.setMessage("手机号码不能为空!");
  343. return msg;
  344. }
  345. //发送手机验证码
  346. ResponseJson json = codeService.sms(phone);
  347. if (json.getReturnCode() == 200) {
  348. msg.setStatus(true);
  349. } else {
  350. msg.setStatus(false);
  351. }
  352. msg.setResultCode(json.getReturnCode().toString());
  353. return msg;
  354. }
  355. /**
  356. * 根据经纬度通过腾讯地址位置
  357. * @param request
  358. * @return
  359. * @throws Exception
  360. */
  361. @ResponseBody
  362. @RequestMapping("/get_location_by_qq")
  363. public ResultMsg getLocationByQq(HttpServletRequest request) throws Exception {
  364. ResultMsg msg = new ResultMsg();
  365. Map<String,Object> map = new HashMap<String,Object>();
  366. //纬度
  367. String latitude = request.getParameter("latitude");
  368. //经度
  369. String longitude = request.getParameter("longitude");
  370. if (!StringUtils.isNotEmpty(latitude)) {
  371. msg.setResultCode(ResultInfo.ERRORCODE);
  372. msg.setStatus(false);
  373. msg.setMessage("纬度不能为空!");
  374. return msg;
  375. }
  376. if (!StringUtils.isNotEmpty(longitude)) {
  377. msg.setResultCode(ResultInfo.ERRORCODE);
  378. msg.setStatus(false);
  379. msg.setMessage("经度不能为空!");
  380. return msg;
  381. }
  382. JSONObject json = new JSONObject(
  383. HttpUtility.httpsGet(MessageFormat.format(NameUtils.getConfig("LOCATION_QQ_URL"),latitude,longitude)));
  384. JSONObject resultJson = json.getJSONObject("result");
  385. JSONObject locationJson = resultJson.getJSONObject("ad_info");
  386. String numberProvince = locationJson.getString("province");
  387. String numberCity = locationJson.getString("city");
  388. String numberDistrict = locationJson.getString("district");
  389. System.out.println("locationJson="+locationJson);
  390. map.put("numberProvince",numberProvince);
  391. map.put("numberCity",numberCity);
  392. map.put("numberDistrict",numberDistrict);
  393. msg.setData(map);
  394. msg.setResultCode(ResultInfo.SUCCESSCODE);
  395. msg.setStatus(true);
  396. return msg;
  397. }
  398. /**
  399. * 查询百胜订单信息
  400. * @param request
  401. * @param member
  402. * @return
  403. * @throws Exception
  404. */
  405. @ResponseBody
  406. @RequestMapping("/select_efast_order_num")
  407. public ResultMsg selectEfastOrderNum(HttpServletRequest request, Member member) throws Exception {
  408. ResultMsg msg = new ResultMsg();
  409. Map<String,Object> map = new HashMap<String,Object>();
  410. StringBuilder txtTime = new StringBuilder();
  411. int num = 0;
  412. //获取cookie值
  413. ShopSystemRule rule = systemService.selectOneShopRuleById(244);
  414. String url = NameUtils.getConfig("efast_order_url") + member.getUserTel();
  415. Map<String,String> params = new HashMap<String,String>();
  416. String cookie = rule.getRuleDesc();
  417. //查询百胜订单信息
  418. String str = HttpClient431Util.doGet(params,url,null,null,cookie);
  419. Document html = Jsoup.parse(str);
  420. Elements trs = html.body().getElementsByTag("tr");
  421. for (Element tr : trs) {
  422. Elements tds = tr.getElementsByTag("td");
  423. for (Element td : tds) {
  424. //校验时间格式正则表达式
  425. 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])))))?$";
  426. String tdText = td.html().toString();
  427. if (tdText.length() > 24) {
  428. tdText = tdText.substring(4, 24).trim();
  429. } else {
  430. tdText = tdText.substring(0, tdText.length() - 1).trim();
  431. }
  432. Pattern p = Pattern.compile(timeTag);
  433. Matcher matcher = p.matcher(tdText);
  434. boolean flag = matcher.matches();
  435. if (flag) {
  436. num++;
  437. txtTime.append(tdText);
  438. txtTime.append(",");
  439. }
  440. }
  441. }
  442. map.put("num",num);
  443. map.put("txtTime",txtTime.toString());
  444. msg.setData(map);
  445. msg.setStatus(true);
  446. return msg;
  447. }
  448. /**
  449. * 添加质保卡信息
  450. * @param request
  451. * @return
  452. * @throws Exception
  453. */
  454. @ResponseBody
  455. @RequestMapping("/add_warranty_card")
  456. public ResultMsg addWarrantyCard(HttpServletRequest request, Member member) throws Exception {
  457. ResultMsg msg = new ResultMsg();
  458. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  459. String numberWatero = request.getParameter("numberWatero");
  460. String numberProvince = request.getParameter("numberProvince");
  461. String numberCity = request.getParameter("numberCity");
  462. String numberDistrict = request.getParameter("numberDistrict");
  463. List<MachineNumber> list = new ArrayList<MachineNumber>();
  464. Member memberInfo = WechatUtils.getUserBySession(request);
  465. String txtTime = request.getParameter("txtTime");
  466. //查询用户信息
  467. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  468. if (memberInfo == null) {
  469. msg.setResultCode(ResultInfo.ERRORCODE);
  470. msg.setStatus(false);
  471. msg.setMessage("该用户不存在!");
  472. return msg;
  473. }
  474. member.setUserId(memberInfo.getUserId());
  475. if (!StringUtils.isNotEmpty(numberProvince)) {
  476. String ip = getIp(request);
  477. Map<String,Object> locations = getLocation(ip);
  478. if (StringUtils.isNotEmpty((String)locations.get("province"))) {
  479. numberProvince = (String)locations.get("province");
  480. numberCity = (String)locations.get("city");
  481. numberDistrict = (String)locations.get("district");
  482. }
  483. }
  484. if (!StringUtils.isNotEmpty(numberWatero)) {
  485. msg.setResultCode(ResultInfo.ERRORCODE);
  486. msg.setStatus(false);
  487. msg.setMessage("水质范围为空,请重新填写水质范围!");
  488. return msg;
  489. }
  490. //验证手机验证码是否正确
  491. ResponseJson code = codeService.validCode(member.getUserTel(),member.getPhoneCode());
  492. if (code.getReturnCode() != 200) {
  493. msg.setResultCode(ResultInfo.ERRORCODE);
  494. msg.setStatus(false);
  495. msg.setMessage("验证码不正确,请重新输入!");
  496. return msg;
  497. }
  498. //循环添加机器信息
  499. if (txtTime != null && !"".equals(txtTime)) {
  500. txtTime = txtTime.substring(0,txtTime.lastIndexOf(","));
  501. String[] times = txtTime.split(",");
  502. for (int i = 0;i < times.length;i++) {
  503. MachineNumber machineNumber = new MachineNumber();
  504. machineNumber.setNumberOpenId(memberInfo.getUserOpenid());
  505. machineNumber.setNumberSalesTime(format.parse(times[i]));
  506. machineNumber.setNumberWatero(Integer.parseInt(numberWatero));
  507. machineNumber.setNumberProvince(numberProvince);
  508. machineNumber.setNumberCity(numberCity);
  509. machineNumber.setNumberDistrict(numberDistrict);
  510. list.add(machineNumber);
  511. }
  512. }
  513. //添加机器信息
  514. boolean flag = machineNumberService.addMachineNumberList(list, memberInfo.getUserOpenid(), member);
  515. if (flag) {
  516. msg.setResultCode(ResultInfo.SUCCESSCODE);
  517. msg.setStatus(true);
  518. } else {
  519. msg.setResultCode(ResultInfo.ERRORCODE);
  520. msg.setStatus(false);
  521. }
  522. return msg;
  523. }
  524. /**
  525. * 查询质保卡信息
  526. * @param request
  527. * @return
  528. * @throws Exception
  529. */
  530. @ResponseBody
  531. @RequestMapping("/select_warranty_card_list")
  532. public ResultMsg selectWarrantyCardList(HttpServletRequest request) throws Exception {
  533. ResultMsg msg = new ResultMsg();
  534. Member memberInfo = WechatUtils.getUserBySession(request);
  535. List<WarrantyCard> cardList = new ArrayList<WarrantyCard>();
  536. //查询用户信息
  537. memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
  538. if (memberInfo == null) {
  539. msg.setResultCode(ResultInfo.ERRORCODE);
  540. msg.setStatus(false);
  541. msg.setMessage("该用户不存在!");
  542. return msg;
  543. }
  544. //获取换新时间期限
  545. ShopSystemRule renewRule = systemService.selectOneShopRuleById(242);
  546. //获取质保时间期限
  547. ShopSystemRule endRule = systemService.selectOneShopRuleById(243);
  548. MachineNumber machineNumber = new MachineNumber();
  549. machineNumber.setPage(null);
  550. machineNumber.setNumberOpenId(memberInfo.getUserOpenid());
  551. machineNumber.setNumberStatus(1);//启用状态
  552. //分页查询机器编号集合
  553. List<MachineNumber> numberList = machineNumberService.listMachineNumber(machineNumber);
  554. if (numberList == null && numberList.size() <= 0) {
  555. msg.setStatus(false);
  556. msg.setResultCode(ResultInfo.ERRORCODE);
  557. msg.setMessage("您没有质保卡信息!");
  558. return msg;
  559. }
  560. //将查出的机器信息存入质保卡信息列表中
  561. for (MachineNumber number : numberList) {
  562. WarrantyCard card = new WarrantyCard();
  563. card.setCardName("美国WaterO净饮水一体机");
  564. card.setCardDes("一年换新,十年质保");
  565. card.setCardBarcode(number.getNumberBarcode());
  566. card.setCardId(number.getNumberId());
  567. card.setCardTel(memberInfo.getUserTel());
  568. card.setCardSaleTime(number.getNumberSalesTime());
  569. card.setCardEndTime(updateDate(number.getNumberSalesTime(),endRule.getRuleNum().intValue()));
  570. card.setCardRenewTime(updateDate(number.getNumberSalesTime(),renewRule.getRuleNum().intValue()));
  571. cardList.add(card);
  572. }
  573. msg.setData(cardList);
  574. msg.setStatus(true);
  575. msg.setResultCode(ResultInfo.SUCCESSCODE);
  576. return msg;
  577. }
  578. /**
  579. * 修改日期 增加月
  580. * @param date
  581. * @param month
  582. * @return
  583. * @throws Exception
  584. */
  585. public Date updateDate(Date date,int month) throws Exception {
  586. Calendar calendar = Calendar.getInstance();
  587. calendar.setTime(date);
  588. calendar.add(Calendar.MONTH, month);
  589. return calendar.getTime();
  590. }
  591. }