AppUserInfoController.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.platform.yijia.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.google.gson.Gson;
  4. import com.platform.yijia.param.request.AppUserInfoRequest;
  5. import com.platform.yijia.pojo.AppUserInfo;
  6. import com.platform.yijia.pojo.CustomerManage;
  7. import com.platform.yijia.service.AppUserInfoService;
  8. import com.platform.yijia.service.PayOrderService;
  9. import com.platform.yijia.utils.CodeMsg;
  10. import com.platform.yijia.utils.ResultData;
  11. import com.platform.yijia.utils.weixinapp.AesDecryptUtil;
  12. import com.platform.yijia.utils.weixinapp.WeiXinUserUtil;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.annotation.Resource;
  20. import java.math.BigDecimal;
  21. import java.util.Date;
  22. import java.util.HashMap;
  23. import java.util.Map;
  24. @Controller
  25. @RequestMapping("/api")
  26. public class AppUserInfoController {
  27. private static Logger logger =(Logger) LoggerFactory.getLogger(AppUserInfoController.class);
  28. @Autowired
  29. private PayOrderService payOrderService;
  30. @Autowired
  31. private AppUserInfoService appUserInfoService;
  32. String appId = "wxe1135cd390b38a54"; //微信小程序appID
  33. String appSecret = "0532c7d9ae876c4ad636df0b1e3b9ddb"; //微信小程序密钥
  34. /*
  35. * 微信小程序根据code获取用户openId和sessionKey
  36. * @param code
  37. * @return
  38. */
  39. @ResponseBody
  40. @RequestMapping(value = "/getSessionKeyAndOpenID")
  41. public Map<String, Object> getSessionKeyAndOpenID(@RequestParam("code") String code){
  42. //获取session_key 和 openid
  43. return WeiXinUserUtil.getUserSessionKeyAndOpenID(appId, appSecret, code);
  44. }
  45. /*
  46. * 解密 encryptedData
  47. * @param sessionKey
  48. * @param encryptedData
  49. * @param iv
  50. * @return
  51. */
  52. @ResponseBody
  53. @RequestMapping(value = "/decryptEncryptedData", method = RequestMethod.POST, consumes = "application/json")
  54. public String decryptEncryptedData(@RequestBody JSONObject jsonObject){
  55. logger.info("解密获取手机号前台传入参数:" +jsonObject.toString());
  56. return AesDecryptUtil.decryptEncryptedData(jsonObject.get("encryptedData").toString(), jsonObject.get("sessionKey").toString(), jsonObject.get("iv").toString(), "UTF-8").toString();
  57. }
  58. /*
  59. * 添加用户信息
  60. * @param request
  61. * @return
  62. */
  63. @RequestMapping(value = "/addAppUserInfo", method = RequestMethod.POST)
  64. @ResponseBody
  65. public String addAppUserInfo(@RequestBody AppUserInfoRequest request){
  66. Gson gson =new Gson();
  67. ResultData resultData=null;
  68. try{
  69. AppUserInfo appUserInfo =new AppUserInfo();
  70. //CustomerManage customerManage = new CustomerManage();
  71. String openId = ""; //此参数用于查询该用户是否已注册过
  72. //String token =""; //用户token
  73. if(request.getUserType()!=null){
  74. //1-微信公众号
  75. if(request.getUserType().equals("1") &&StringUtils.isNotBlank(request.getBlogOpenid())){
  76. appUserInfo.setUserType(request.getUserType());
  77. //token = request.getBlogToken();
  78. appUserInfo.setBlogToken(request.getBlogToken());
  79. openId = request.getBlogOpenid();
  80. appUserInfo.setBlogOpenid(openId);
  81. //customerManage.setBlogOpenid(openId);
  82. //2-微信小程序
  83. }else if(request.getUserType().equals("2") &&StringUtils.isNotBlank(request.getMinaOpenid())){
  84. appUserInfo.setUserType(request.getUserType());
  85. //token = request.getMinaToken();
  86. appUserInfo.setMinaToken(request.getMinaToken());
  87. openId = request.getMinaOpenid();
  88. appUserInfo.setMinaOpenid(openId);
  89. //customerManage.setMinaOpenid(openId);
  90. }
  91. }
  92. if(StringUtils.isNotBlank(request.getBlogNickName())){
  93. appUserInfo.setBlogNickName(request.getBlogNickName());
  94. //customerManage.setCustomerName(request.getBlogNickName());
  95. }
  96. if(StringUtils.isNotBlank(request.getMobilePhone())){
  97. appUserInfo.setMobilePhone(request.getMobilePhone());
  98. //customerManage.setPhoneNumber(request.getMobilePhone());
  99. }
  100. if(StringUtils.isNotBlank(request.getBlogProfilePhoto())){
  101. appUserInfo.setBlogProfilePhoto(request.getBlogProfilePhoto());
  102. }
  103. appUserInfo.setRegisteDate(new Date());
  104. appUserInfo.setUpdateDate(new Date());
  105. //customerManage.setRegtime(appUserInfo.getRegisteDate());
  106. if(StringUtils.isNotBlank(request.getSexFlag())){
  107. appUserInfo.setSexFlag(request.getSexFlag());
  108. }
  109. // customerManage.setLiters(new BigDecimal(0));
  110. // customerManage.setAmt(new BigDecimal(0));
  111. Map<String, Object> params = new HashMap<>();
  112. params.put("openId", openId); //注册用户openId
  113. //params.put("token", token); //用户登录凭证
  114. params.put("userType", request.getUserType()); //用户类型
  115. //判断该用户是否已存在
  116. int count = appUserInfoService.isExistAppUser(params);
  117. if(count > 0){
  118. resultData = ResultData.error(CodeMsg.USER_EXSIST);
  119. }else {
  120. appUserInfoService.AddAppUserInfo(appUserInfo);
  121. //向客户表中插入数据 判断该客户是否存在
  122. // CustomerManage existCustomer = payOrderService.isExistCustomer(customerManage);
  123. // if(existCustomer ==null){
  124. // payOrderService.insertCustomer(customerManage);
  125. // }
  126. resultData = ResultData.success(CodeMsg.SUCCESS);
  127. }
  128. }catch (Exception e){
  129. resultData = ResultData.error(CodeMsg.INSERT_FAIL);
  130. e.printStackTrace();
  131. }
  132. return gson.toJson(resultData);
  133. }
  134. }