SupplierController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. package com.travel.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.aliyuncs.CommonRequest;
  4. import com.aliyuncs.CommonResponse;
  5. import com.aliyuncs.DefaultAcsClient;
  6. import com.aliyuncs.IAcsClient;
  7. import com.aliyuncs.http.MethodType;
  8. import com.aliyuncs.profile.DefaultProfile;
  9. import com.travel.jwt.JWTUtil;
  10. import com.travel.model.ConfirmOrdering;
  11. import com.travel.model.Supplier;
  12. import com.travel.service.SupplierService;
  13. import com.travel.util.DesDecry;
  14. import com.travel.util.DesEncry;
  15. import com.travel.util.ParsingToken;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * 供应商
  26. */
  27. @RestController
  28. @RequestMapping("supplier")
  29. public class SupplierController {
  30. @Autowired
  31. private SupplierService supplierService;
  32. /**
  33. * 校验手机号是否已注册 并发送验证码
  34. * @param supplier 参数
  35. * @return 返回结果
  36. */
  37. @GetMapping("checkTele")
  38. @ResponseBody
  39. public Map<String, Object> checkTele(Supplier supplier, HttpServletResponse response, HttpServletRequest request) {
  40. response.setHeader("Access-Control-Allow-Origin", "*");
  41. Map<String, Object> map = new HashMap<>();
  42. supplier.setPhone(DesEncry.encrypt(supplier.getPhone()));
  43. int type = 0;
  44. try {
  45. int count = supplierService.checkTele(supplier);
  46. if(count == 0) {
  47. type = 1;
  48. } else {
  49. type = 4;
  50. }
  51. try {
  52. switch (type) {
  53. case 1 :
  54. supplier.setCaptcha(PersonalController.getNonce_str());
  55. supplierService.addUser(supplier);
  56. break;
  57. case 4 :
  58. supplier.setCaptcha(PersonalController.getNonce_str());
  59. supplierService.updateCaptcha(supplier);
  60. break;
  61. }
  62. return SendSms(supplier, type);
  63. } catch (Exception e) {
  64. e.printStackTrace();
  65. map.put("msg", "500");
  66. map.put("errMsg", ParsingToken.returnPrompt(request));
  67. }
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. map.put("msg", "500");
  71. map.put("errMsg", ParsingToken.returnPrompt(request));
  72. }
  73. return map;
  74. }
  75. /**
  76. * 修改供应商手机号 发送验证码
  77. * @param supplier 参数
  78. * @param request 参数
  79. * @return 返回结果
  80. */
  81. @PostMapping("updatePhoneSupplier")
  82. public Map<String, Object> updatePhoneSupplier(Supplier supplier, HttpServletRequest request){
  83. Map<String, Object> map = new HashMap<>();
  84. try{
  85. try {
  86. int count = supplierService.checkTele(supplier);
  87. if(count == 0){
  88. //获取token
  89. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  90. supplier.setCode((String) userMap.get("code"));
  91. supplier.setCaptcha(PersonalController.getNonce_str());
  92. supplierService.updateCaptchaCode(supplier);
  93. return SendSms(supplier, 4);
  94. } else {
  95. map.put("errMsg", "手机号已存在");
  96. map.put("msg", "500");
  97. return map;
  98. }
  99. } catch (Exception e) {
  100. e.printStackTrace();
  101. map.put("msg", "500");
  102. map.put("errMsg", "");
  103. }
  104. map.put("msg", "200");
  105. }catch (Exception e){
  106. e.printStackTrace();
  107. map.put("msg", "500");
  108. map.put("errMsg", ParsingToken.returnPrompt(request));
  109. }
  110. return map;
  111. }
  112. /**
  113. * 路线发布时校验
  114. * @param supplier 参数
  115. * @param request 参数
  116. * @return 返回结果
  117. */
  118. @PostMapping("registeredRelease")
  119. @ResponseBody
  120. public Map<String, Object> registeredRelease(Supplier supplier, HttpServletRequest request){
  121. Map<String, Object> map = new HashMap<>();
  122. try{
  123. //获取token
  124. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  125. String code = (String) userMap.get("code");
  126. Supplier supplier1 = supplierService.getSuppierPhone(code);
  127. supplier.setPhone(supplier1.getPhone());
  128. supplier.setIdNumber(DesEncry.encrypt(supplier.getIdNumber()));
  129. supplier.setAccountAssociated("0");//为主账号
  130. supplier.setPermissionsType("0");//超管
  131. int count = supplierService.getIdNumber(DesEncry.encrypt(supplier.getIdNumber()));
  132. if(count > 0) {
  133. map.put("errMsg", "该营业执照已被注册");
  134. map.put("msg", "500");
  135. return map;
  136. }
  137. supplierService.upddateSupplier(supplier);
  138. map.put("msg", "200");
  139. } catch (Exception e) {
  140. e.printStackTrace();
  141. map.put("errMsg", ParsingToken.returnPrompt(request));
  142. map.put("msg", "500");
  143. }
  144. return map;
  145. }
  146. /**
  147. * 注册信息提交
  148. * @param supplier 参数
  149. * @return 返回结果
  150. */
  151. @PostMapping("registered")
  152. @ResponseBody
  153. public Map<String, Object> registered(Supplier supplier, HttpServletRequest request){
  154. Map<String, Object> map = new HashMap<>();
  155. try{
  156. supplier.setPhone(DesEncry.encrypt(supplier.getPhone()))
  157. .setIdNumber(DesEncry.encrypt(supplier.getIdNumber()));
  158. Supplier user1 = supplierService.checkUser(supplier); //验证是否第一次登录
  159. //判断账号是否被锁定
  160. if(user1.getFlag().equals("1")){
  161. map.put("msg", "500");
  162. map.put("errMsg", "此账号发生异常 请联系网站管理员");
  163. return map;
  164. }
  165. supplier.setName("TUYAGYS_" + user1.getId())
  166. .setCode(PersonalController.SerialNumber("SUP", user1.getId() + ""))
  167. .setHeadpir("https://lidaotech.oss-cn-beijing.aliyuncs.com/test/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20220622112747.png")
  168. .setCaptcha("null");
  169. supplierService.upddateSupplier(supplier);
  170. //生成token传参
  171. Map<String, String> payload = new HashMap<>();
  172. payload.put("phone", supplier.getPhone());
  173. payload.put("code", supplier.getCode());
  174. // 生成jwt的令牌
  175. String token = JWTUtil.getToken(payload);
  176. supplier.setToken(token);
  177. map.put("data", supplier);
  178. map.put("msg", "200");
  179. } catch (Exception e){
  180. e.printStackTrace();
  181. map.put("errMsg", ParsingToken.returnPrompt(request));
  182. map.put("msg", "500");
  183. }
  184. return map;
  185. }
  186. /**
  187. * 手机号登录
  188. * @param supplier 参数
  189. * @return 返回结果
  190. */
  191. @GetMapping("updateUser")
  192. @ResponseBody
  193. public Map<String, Object> updateUser(Supplier supplier, HttpServletResponse response, HttpServletRequest request){
  194. response.setHeader("Access-Control-Allow-Origin", "*");
  195. Map<String, Object> map = new HashMap<>();
  196. supplier.setPhone(DesEncry.encrypt(supplier.getPhone()));
  197. try {
  198. int count = supplierService.checkCaptcha(supplier);//校验验证码是否正确
  199. if(count > 0){
  200. Supplier user1 = supplierService.checkUser(supplier); //验证是否第一次登录
  201. if(user1.getCode() == null){ //如果为空的话增加
  202. // map.put("msg", "100");
  203. // map.put("errMsg", "该账号无注册,请先注册");
  204. user1.setName("TUYAGYS_" + user1.getId())
  205. .setCode(PersonalController.SerialNumber("SUP", user1.getId() + ""))
  206. .setHeadpir("https://lidaotech.oss-cn-beijing.aliyuncs.com/test/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20220622112747.png")
  207. .setCaptcha("null")
  208. .setAccountAssociated("0")//为主账号
  209. .setPermissionsType("0");//超管;
  210. supplierService.upddateSupplier(user1);
  211. // return map;
  212. } else {
  213. //登录清空验证码
  214. user1.setCaptcha("null");
  215. supplierService.upddateSupplier(user1);
  216. }
  217. //判断账号是否被锁定
  218. if(user1.getFlag().equals("1")){
  219. map.put("msg", "500");
  220. map.put("errMsg", "此账号发生异常 请联系网站管理员");
  221. return map;
  222. }
  223. //验证是否完成注册
  224. if(user1.getNatureSupplier() == null){
  225. user1.setFirstType("0");//未登录 未注册
  226. } else {
  227. user1.setFirstType("1");//已登录
  228. }
  229. //生成token传参
  230. Map<String, String> payload = new HashMap<>();
  231. payload.put("phone", DesDecry.decrypt(supplier.getPhone()));
  232. payload.put("code", user1.getCode());
  233. // 生成jwt的令牌
  234. String token = JWTUtil.getToken(payload);
  235. user1.setToken(token);
  236. user1.setPhone(DesDecry.decrypt(user1.getPhone()));
  237. map.put("data", user1);
  238. map.put("msg", "200");
  239. } else {
  240. map.put("errMsg", "手机号或验证码不正确");
  241. map.put("msg", "500");
  242. }
  243. } catch (Exception e) {
  244. e.printStackTrace();
  245. map.put("errMsg", ParsingToken.returnPrompt(request));
  246. map.put("msg", "500");
  247. }
  248. return map;
  249. }
  250. @CrossOrigin
  251. public Map<String, Object> SendSms(Supplier supplier, int type) {
  252. Map<String, Object> map = new HashMap<>();
  253. String phone = DesDecry.decrypt(supplier.getPhone());
  254. try {
  255. DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI5tBqqAPaSEWZ3JK1qC6m", "6IAqbAUf47CWUIGOTThpKYO2vMXuX4");
  256. IAcsClient client = new DefaultAcsClient(profile);
  257. CommonRequest request = new CommonRequest();
  258. request.setSysMethod(MethodType.POST);
  259. request.setSysDomain("dysmsapi.aliyuncs.com");
  260. request.setSysVersion("2017-05-25");
  261. request.setSysAction("SendSms");
  262. request.putQueryParameter("RegionId", "cn-hangzhou");
  263. request.putQueryParameter("PhoneNumbers", phone);//手机号
  264. request.putQueryParameter("SignName", "途丫");
  265. switch (type) {
  266. case 1 :
  267. request.putQueryParameter("TemplateCode", "SMS_247410045");
  268. request.putQueryParameter("TemplateParam", "{\"code\":\"" + supplier.getCaptcha() + "\"}");//验证码
  269. break;
  270. case 4 :
  271. request.putQueryParameter("TemplateCode", "SMS_247410045");
  272. request.putQueryParameter("TemplateParam", "{\"code\":\"" + supplier.getCaptcha() + "\"}");//验证码
  273. break;
  274. }
  275. CommonResponse response = client.getCommonResponse(request);
  276. if(response.getData().indexOf("\"Message\":\"OK\"") > -1 && response.getData().indexOf("\"Code\":\"OK\"") > -1) {
  277. map.put("msg", "200");
  278. }else {
  279. map.put("msg", "500");
  280. map.put("errMsg", JSONObject.parseObject(response.getData(),Map.class).get("Message"));
  281. }
  282. } catch (Exception e) {
  283. e.printStackTrace();
  284. map.put("code", "500");
  285. map.put("errMsg", "");
  286. }
  287. return map;
  288. }
  289. /**
  290. * 查询该用户跟指定供应商的目的地
  291. * @param confirmOrdering 参数
  292. * @return 返回结果
  293. */
  294. @GetMapping("getSupplierDestination")
  295. @ResponseBody
  296. public Map<String, Object> getSupplierDestination(ConfirmOrdering confirmOrdering, HttpServletRequest request){
  297. Map<String, Object> map = new HashMap<>();
  298. try{
  299. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  300. confirmOrdering.setCode((String) userMap.get("code"));
  301. List<ConfirmOrdering> list = new ArrayList<>();
  302. String[] codeArray = confirmOrdering.getSupplierCode().split(",");
  303. for(int i = 0; i < codeArray.length; i++){
  304. confirmOrdering.setSupplierCode(codeArray[i]);
  305. ConfirmOrdering confirmOrdering1 = supplierService.getSupplierDestination(confirmOrdering);
  306. if(null != confirmOrdering1){
  307. confirmOrdering1.setSupplierCode(codeArray[i]);
  308. list.add(confirmOrdering1);
  309. }
  310. }
  311. map.put("data", list);
  312. map.put("msg", "200");
  313. }catch (Exception e){
  314. e.printStackTrace();
  315. map.put("msg", "500");
  316. map.put("errMsg", ParsingToken.returnPrompt(request));
  317. }
  318. return map;
  319. }
  320. }