| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- package com.travel.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.aliyuncs.CommonRequest;
- import com.aliyuncs.CommonResponse;
- import com.aliyuncs.DefaultAcsClient;
- import com.aliyuncs.IAcsClient;
- import com.aliyuncs.http.MethodType;
- import com.aliyuncs.profile.DefaultProfile;
- import com.travel.jwt.JWTUtil;
- import com.travel.model.ConfirmOrdering;
- import com.travel.model.Supplier;
- import com.travel.service.SupplierService;
- import com.travel.util.DesDecry;
- import com.travel.util.DesEncry;
- import com.travel.util.ParsingToken;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * 供应商
- */
- @RestController
- @RequestMapping("supplier")
- public class SupplierController {
- @Autowired
- private SupplierService supplierService;
- /**
- * 校验手机号是否已注册 并发送验证码
- * @param supplier 参数
- * @return 返回结果
- */
- @GetMapping("checkTele")
- @ResponseBody
- public Map<String, Object> checkTele(Supplier supplier, HttpServletResponse response, HttpServletRequest request) {
- response.setHeader("Access-Control-Allow-Origin", "*");
- Map<String, Object> map = new HashMap<>();
- supplier.setPhone(DesEncry.encrypt(supplier.getPhone()));
- int type = 0;
- try {
- int count = supplierService.checkTele(supplier);
- if(count == 0) {
- type = 1;
- } else {
- type = 4;
- }
- try {
- switch (type) {
- case 1 :
- supplier.setCaptcha(PersonalController.getNonce_str());
- supplierService.addUser(supplier);
- break;
- case 4 :
- supplier.setCaptcha(PersonalController.getNonce_str());
- supplierService.updateCaptcha(supplier);
- break;
- }
- return SendSms(supplier, type);
- } catch (Exception e) {
- e.printStackTrace();
- map.put("msg", "500");
- map.put("errMsg", ParsingToken.returnPrompt(request));
- }
- } catch (Exception e) {
- e.printStackTrace();
- map.put("msg", "500");
- map.put("errMsg", ParsingToken.returnPrompt(request));
- }
- return map;
- }
- /**
- * 修改供应商手机号 发送验证码
- * @param supplier 参数
- * @param request 参数
- * @return 返回结果
- */
- @PostMapping("updatePhoneSupplier")
- public Map<String, Object> updatePhoneSupplier(Supplier supplier, HttpServletRequest request){
- Map<String, Object> map = new HashMap<>();
- try{
- try {
- int count = supplierService.checkTele(supplier);
- if(count == 0){
- //获取token
- Map<String, Object> userMap = ParsingToken.tokenParsing(request);
- supplier.setCode((String) userMap.get("code"));
- supplier.setCaptcha(PersonalController.getNonce_str());
- supplierService.updateCaptchaCode(supplier);
- return SendSms(supplier, 4);
- } else {
- map.put("errMsg", "手机号已存在");
- map.put("msg", "500");
- return map;
- }
- } catch (Exception e) {
- e.printStackTrace();
- map.put("msg", "500");
- map.put("errMsg", "");
- }
- map.put("msg", "200");
- }catch (Exception e){
- e.printStackTrace();
- map.put("msg", "500");
- map.put("errMsg", ParsingToken.returnPrompt(request));
- }
- return map;
- }
- /**
- * 路线发布时校验
- * @param supplier 参数
- * @param request 参数
- * @return 返回结果
- */
- @PostMapping("registeredRelease")
- @ResponseBody
- public Map<String, Object> registeredRelease(Supplier supplier, HttpServletRequest request){
- Map<String, Object> map = new HashMap<>();
- try{
- //获取token
- Map<String, Object> userMap = ParsingToken.tokenParsing(request);
- String code = (String) userMap.get("code");
- Supplier supplier1 = supplierService.getSuppierPhone(code);
- supplier.setPhone(supplier1.getPhone());
- supplier.setIdNumber(DesEncry.encrypt(supplier.getIdNumber()));
- supplier.setAccountAssociated("0");//为主账号
- supplier.setPermissionsType("0");//超管
- int count = supplierService.getIdNumber(DesEncry.encrypt(supplier.getIdNumber()));
- if(count > 0) {
- map.put("errMsg", "该营业执照已被注册");
- map.put("msg", "500");
- return map;
- }
- supplierService.upddateSupplier(supplier);
- map.put("msg", "200");
- } catch (Exception e) {
- e.printStackTrace();
- map.put("errMsg", ParsingToken.returnPrompt(request));
- map.put("msg", "500");
- }
- return map;
- }
- /**
- * 注册信息提交
- * @param supplier 参数
- * @return 返回结果
- */
- @PostMapping("registered")
- @ResponseBody
- public Map<String, Object> registered(Supplier supplier, HttpServletRequest request){
- Map<String, Object> map = new HashMap<>();
- try{
- supplier.setPhone(DesEncry.encrypt(supplier.getPhone()))
- .setIdNumber(DesEncry.encrypt(supplier.getIdNumber()));
- Supplier user1 = supplierService.checkUser(supplier); //验证是否第一次登录
- //判断账号是否被锁定
- if(user1.getFlag().equals("1")){
- map.put("msg", "500");
- map.put("errMsg", "此账号发生异常 请联系网站管理员");
- return map;
- }
- supplier.setName("TUYAGYS_" + user1.getId())
- .setCode(PersonalController.SerialNumber("SUP", user1.getId() + ""))
- .setHeadpir("https://lidaotech.oss-cn-beijing.aliyuncs.com/test/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20220622112747.png")
- .setCaptcha("null");
- supplierService.upddateSupplier(supplier);
- //生成token传参
- Map<String, String> payload = new HashMap<>();
- payload.put("phone", supplier.getPhone());
- payload.put("code", supplier.getCode());
- // 生成jwt的令牌
- String token = JWTUtil.getToken(payload);
- supplier.setToken(token);
- map.put("data", supplier);
- map.put("msg", "200");
- } catch (Exception e){
- e.printStackTrace();
- map.put("errMsg", ParsingToken.returnPrompt(request));
- map.put("msg", "500");
- }
- return map;
- }
- /**
- * 手机号登录
- * @param supplier 参数
- * @return 返回结果
- */
- @GetMapping("updateUser")
- @ResponseBody
- public Map<String, Object> updateUser(Supplier supplier, HttpServletResponse response, HttpServletRequest request){
- response.setHeader("Access-Control-Allow-Origin", "*");
- Map<String, Object> map = new HashMap<>();
- supplier.setPhone(DesEncry.encrypt(supplier.getPhone()));
- try {
- int count = supplierService.checkCaptcha(supplier);//校验验证码是否正确
- if(count > 0){
- Supplier user1 = supplierService.checkUser(supplier); //验证是否第一次登录
- if(user1.getCode() == null){ //如果为空的话增加
- // map.put("msg", "100");
- // map.put("errMsg", "该账号无注册,请先注册");
- user1.setName("TUYAGYS_" + user1.getId())
- .setCode(PersonalController.SerialNumber("SUP", user1.getId() + ""))
- .setHeadpir("https://lidaotech.oss-cn-beijing.aliyuncs.com/test/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20220622112747.png")
- .setCaptcha("null")
- .setAccountAssociated("0")//为主账号
- .setPermissionsType("0");//超管;
- supplierService.upddateSupplier(user1);
- // return map;
- } else {
- //登录清空验证码
- user1.setCaptcha("null");
- supplierService.upddateSupplier(user1);
- }
- //判断账号是否被锁定
- if(user1.getFlag().equals("1")){
- map.put("msg", "500");
- map.put("errMsg", "此账号发生异常 请联系网站管理员");
- return map;
- }
- //验证是否完成注册
- if(user1.getNatureSupplier() == null){
- user1.setFirstType("0");//未登录 未注册
- } else {
- user1.setFirstType("1");//已登录
- }
- //生成token传参
- Map<String, String> payload = new HashMap<>();
- payload.put("phone", DesDecry.decrypt(supplier.getPhone()));
- payload.put("code", user1.getCode());
- // 生成jwt的令牌
- String token = JWTUtil.getToken(payload);
- user1.setToken(token);
- user1.setPhone(DesDecry.decrypt(user1.getPhone()));
- map.put("data", user1);
- map.put("msg", "200");
- } else {
- map.put("errMsg", "手机号或验证码不正确");
- map.put("msg", "500");
- }
- } catch (Exception e) {
- e.printStackTrace();
- map.put("errMsg", ParsingToken.returnPrompt(request));
- map.put("msg", "500");
- }
- return map;
- }
- @CrossOrigin
- public Map<String, Object> SendSms(Supplier supplier, int type) {
- Map<String, Object> map = new HashMap<>();
- String phone = DesDecry.decrypt(supplier.getPhone());
- try {
- DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI5tBqqAPaSEWZ3JK1qC6m", "6IAqbAUf47CWUIGOTThpKYO2vMXuX4");
- IAcsClient client = new DefaultAcsClient(profile);
- CommonRequest request = new CommonRequest();
- request.setSysMethod(MethodType.POST);
- request.setSysDomain("dysmsapi.aliyuncs.com");
- request.setSysVersion("2017-05-25");
- request.setSysAction("SendSms");
- request.putQueryParameter("RegionId", "cn-hangzhou");
- request.putQueryParameter("PhoneNumbers", phone);//手机号
- request.putQueryParameter("SignName", "途丫");
- switch (type) {
- case 1 :
- request.putQueryParameter("TemplateCode", "SMS_247410045");
- request.putQueryParameter("TemplateParam", "{\"code\":\"" + supplier.getCaptcha() + "\"}");//验证码
- break;
- case 4 :
- request.putQueryParameter("TemplateCode", "SMS_247410045");
- request.putQueryParameter("TemplateParam", "{\"code\":\"" + supplier.getCaptcha() + "\"}");//验证码
- break;
- }
- CommonResponse response = client.getCommonResponse(request);
- if(response.getData().indexOf("\"Message\":\"OK\"") > -1 && response.getData().indexOf("\"Code\":\"OK\"") > -1) {
- map.put("msg", "200");
- }else {
- map.put("msg", "500");
- map.put("errMsg", JSONObject.parseObject(response.getData(),Map.class).get("Message"));
- }
- } catch (Exception e) {
- e.printStackTrace();
- map.put("code", "500");
- map.put("errMsg", "");
- }
- return map;
- }
- /**
- * 查询该用户跟指定供应商的目的地
- * @param confirmOrdering 参数
- * @return 返回结果
- */
- @GetMapping("getSupplierDestination")
- @ResponseBody
- public Map<String, Object> getSupplierDestination(ConfirmOrdering confirmOrdering, HttpServletRequest request){
- Map<String, Object> map = new HashMap<>();
- try{
- Map<String, Object> userMap = ParsingToken.tokenParsing(request);
- confirmOrdering.setCode((String) userMap.get("code"));
- List<ConfirmOrdering> list = new ArrayList<>();
- String[] codeArray = confirmOrdering.getSupplierCode().split(",");
- for(int i = 0; i < codeArray.length; i++){
- confirmOrdering.setSupplierCode(codeArray[i]);
- ConfirmOrdering confirmOrdering1 = supplierService.getSupplierDestination(confirmOrdering);
- if(null != confirmOrdering1){
- confirmOrdering1.setSupplierCode(codeArray[i]);
- list.add(confirmOrdering1);
- }
- }
- map.put("data", list);
- map.put("msg", "200");
- }catch (Exception e){
- e.printStackTrace();
- map.put("msg", "500");
- map.put("errMsg", ParsingToken.returnPrompt(request));
- }
- return map;
- }
- }
|