From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 20 五月 2025 23:48:08 +0800
Subject: [PATCH] 修改文件上传类型限制

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java |  338 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 269 insertions(+), 69 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
index f18b110..085ef2b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
@@ -1,32 +1,49 @@
 package com.panzhihua.applets.api;
 
+import javax.annotation.Resource;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.utlis.RSAUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.config.WxMaConfiguration;
+import com.panzhihua.applets.model.vos.LoginRequest;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.exceptions.UnAuthenticationException;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
+import com.panzhihua.common.model.vos.user.UuLoginVO;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.PutGroup;
+
+import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
-import com.alibaba.fastjson.JSONObject;
-import com.panzhihua.applets.config.WxMaConfiguration;
-import com.panzhihua.applets.model.vos.LoginRequest;
-import com.panzhihua.common.model.vos.LoginReturnVO;
-import com.panzhihua.common.model.vos.community.ComActVO;
-import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
-import com.panzhihua.common.service.auth.TokenService;
-import com.panzhihua.common.service.community.CommunityService;
-import com.panzhihua.common.service.user.UserService;
-import com.panzhihua.common.controller.BaseController;
-import com.panzhihua.common.exceptions.UnAuthenticationException;
-import com.panzhihua.common.exceptions.WeiXinException;
-import com.panzhihua.common.model.vos.LoginUserInfoVO;
-import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.validated.AddGroup;
-import com.panzhihua.common.validated.PutGroup;
-import io.swagger.annotations.*;
+import cn.hutool.core.codec.Base64;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.util.ObjectUtils;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import me.chanjar.weixin.common.error.WxErrorException;
 
-import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -47,97 +64,211 @@
     @Resource
     private CommunityService communityService;
 
-    @ApiOperation(value = "登录" ,response =LoginReturnVO.class )
+    @ApiOperation(value = "登录", response = LoginReturnVO.class)
     @PostMapping("login")
     public R login(@RequestBody LoginRequest loginRequest) {
         String code = loginRequest.getCode();
         if (ObjectUtils.isEmpty(code)) {
             return R.fail("缺少登录参数");
         }
-        WxMaService maService = wxMaConfiguration.getMaService();
-        WxMaJscode2SessionResult sessionInfo=null;
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaService(loginRequest.getAppid());
+        WxMaJscode2SessionResult sessionInfo = null;
         try {
-             sessionInfo = maService.getUserService().getSessionInfo(code);
+            sessionInfo = maService.getUserService().getSessionInfo(code);
         } catch (Exception e) {
             log.error("微信登录失败【{}】", e.getMessage());
-            sessionInfo=new WxMaJscode2SessionResult();
-            sessionInfo.setOpenid("88888888");
-            sessionInfo.setSessionKey("9999999");
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
         }
         log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
         String openid = sessionInfo.getOpenid();
         String sessionKey = sessionInfo.getSessionKey();
         String unionid = sessionInfo.getUnionid();
         if (ObjectUtils.isEmpty(unionid)) {
-            unionid="无";
+            unionid = "无";
         }
-        userService.addOrUpdate(openid,sessionKey,unionid);
-        return tokenService.loginApplets(openid);
+        userService.addOrUpdate(openid, sessionKey, unionid,this.getAppId());
+        return tokenService.loginApplets(openid,this.getAppId());
+    }
+    @PostMapping("/loginTest")
+    public R loginTest(@RequestBody LoginRequest loginRequest){
+        return tokenService.loginApplets(loginRequest.getCode(),this.getAppId());
+    }
+
+    @ApiOperation(value = "H5登录", response = LoginReturnVO.class)
+    @PostMapping("loginH5")
+    public R loginH5(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaH5Service();
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        // 解密用户信息
+//        WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(sessionInfo.getSessionKey(),
+//                loginRequest.getEncryptedData(), loginRequest.getIv());
+//        log.info("wxUserInfo信息【{}】", JSONObject.toJSONString(wxUserInfo));
+//        if (null == wxUserInfo) {
+//            return R.fail("获取用户信息失败");
+//        }
+//        String unionId = wxUserInfo.getUnionId();
+        String unionId = sessionInfo.getUnionid();
+        //通过unionId去匹配user
+        R r1 = userService.getUserInfoByUnionId(unionId);
+        if (R.isOk(r1)) {
+            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), LoginUserInfoVO.class);
+            return tokenService.loginApplets(loginUserInfoVO.getOpenid(),this.getAppId());
+        }
+        return r1;
+    }
+
+    @ApiOperation(value = "仁和区登录", response = LoginReturnVO.class)
+    @PostMapping("/renHe/login")
+    public R renHeLogin(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaRhService();
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        String openid = sessionInfo.getOpenid();
+        String sessionKey = sessionInfo.getSessionKey();
+        String unionid = sessionInfo.getUnionid();
+        if (ObjectUtils.isEmpty(unionid)) {
+            unionid = "无";
+        }
+        userService.addOrUpdate(openid, sessionKey, unionid,this.getAppId());
+        return tokenService.loginApplets(openid,this.getAppId());
     }
 
     @ApiOperation(value = "维护用户基本信息(昵称、性别、头像)")
     @PostMapping("updateUserWeiXinInfo")
-    public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest){
-        String encryptedData = loginRequest.getEncryptedData();
-        String iv = loginRequest.getIv();
-        boolean empty = ObjectUtils.isEmpty(iv);
-        boolean empty1 = ObjectUtils.isEmpty(encryptedData);
-        if (empty||empty1) {
-            return R.fail("微信用户参数不全");
-        }
-        WxMaService maService = wxMaConfiguration.getMaService();
+    public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest) {
         Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail(401, "请先登录");
+        }
         boolean empty2 = ObjectUtils.isEmpty(userId);
         if (empty2) {
             throw new UnAuthenticationException();
         }
-        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
-        LoginUserInfoVO loginUserInfoVO =r.getData();
-        WxMaUserInfo wxUserInfo = null;
-        try {
-            log.info(encryptedData);
-            log.info(iv);
-            wxUserInfo = maService.getUserService().getUserInfo(loginUserInfoVO.getSessionKey(),
-                    encryptedData, iv);
-        } catch (Exception e) {
-            log.error(e.getMessage());
-            return R.fail("微信解析基本信息失败");
-        }
+        WxMaUserInfo wxUserInfo = loginRequest.getUserInfo();
         if (null == wxUserInfo) {
-            return R.fail("微信解析基本信息失败");
+            return R.fail("缺少基本信息参数");
         }
         String avatarUrl = wxUserInfo.getAvatarUrl();
         String gender = wxUserInfo.getGender();
         String nickName = wxUserInfo.getNickName();
-        return userService.updateUserWeiXinInfo(userId,nickName,Integer.parseInt(gender),avatarUrl);
+        return userService.updateUserWeiXinInfo(userId, nickName, Integer.parseInt(gender), avatarUrl);
     }
 
     @ApiOperation(value = "维护微信用户手机号")
     @PostMapping("updateUserWeiXinPhone")
-    public R updateUserWeiXinPhone(@RequestBody LoginRequest loginRequest){
+    public R updateUserWeiXinPhone(@RequestBody LoginRequest loginRequest) {
         String encryptedData = loginRequest.getEncryptedData();
         String iv = loginRequest.getIv();
         boolean empty = ObjectUtils.isEmpty(iv);
         boolean empty1 = ObjectUtils.isEmpty(encryptedData);
-        if (empty||empty1) {
+        if (empty || empty1) {
             return R.fail("微信用户参数不全");
         }
-        WxMaService maService = wxMaConfiguration.getMaService();
+        WxMaService maService = wxMaConfiguration.getMaService(this.getAppId());
         Long userId = this.getUserId();
         R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
         LoginUserInfoVO loginUserInfoVO = r.getData();
-        WxMaPhoneNumberInfo wxMaPhoneNumberInfo = maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(),
-                encryptedData, iv);
+        WxMaPhoneNumberInfo wxMaPhoneNumberInfo =
+            maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(), encryptedData, iv);
         if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) {
             return R.fail("微信解析手机号失败");
         }
         String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
-        return userService.updateUserWeiXinPhone(userId,purePhoneNumber);
+        return userService.updateUserWeiXinPhone(userId, purePhoneNumber);
+    }
+
+    @ApiOperation(value = "维护微信用户手机号")
+    @PostMapping("updateUserWeiXinPhone2")
+    public R updateUserWeiXinPhone2(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaService(this.getAppId());
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+
+        String encryptedData = loginRequest.getEncryptedData();
+        String iv = loginRequest.getIv();
+        boolean empty = ObjectUtils.isEmpty(iv);
+        boolean empty1 = ObjectUtils.isEmpty(encryptedData);
+        if (empty || empty1) {
+            return R.fail("微信用户参数不全");
+        }
+        // WxMaService maService = wxMaConfiguration.getMaService();
+        Long userId = this.getUserId();
+        // R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+        // LoginUserInfoVO loginUserInfoVO = r.getData();
+        WxMaPhoneNumberInfo wxMaPhoneNumberInfo =
+            maService.getUserService().getPhoneNoInfo(sessionInfo.getSessionKey(), encryptedData, iv);
+        if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) {
+            return R.fail("微信解析手机号失败");
+        }
+        String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
+        return userService.updateUserWeiXinPhone(userId, purePhoneNumber);
     }
 
     @ApiOperation(value = "用户登出")
     @PostMapping("logout")
-    public R updateUserWeiXinPhone(){
+    public R updateUserWeiXinPhone() {
         String token = this.getToken();
         boolean empty2 = ObjectUtils.isEmpty(token);
         if (empty2) {
@@ -146,31 +277,100 @@
         return tokenService.logout(token);
     }
 
-    @ApiOperation(value = "刷新token",response = LoginReturnVO.class)
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
     @GetMapping("refreshToken")
-    @ApiImplicitParam(name ="refreshToken",value = "登录返回的刷新token")
-    public R refreshToken(@RequestParam("refreshToken")String refreshToken){
+    @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
         return tokenService.refreshToken(refreshToken);
+    }
+
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @PostMapping("getNewToken")
+    public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO)
+    {
+        return tokenService.getNewToken(loginUserInfoVO);
     }
 
     @ApiOperation(value = "查询社区")
     @PostMapping("listcommunity")
-    public R listCommunity(@RequestBody ComActVO comActVO){
+    public R listCommunity(@RequestBody ComActVO comActVO) {
         return communityService.listCommunity(comActVO);
     }
 
-    @ApiOperation(value = "查询小区",response = ComMngStructAreaVO.class)
+    @ApiOperation(value = "查询小区", response = ComMngStructAreaVO.class)
     @GetMapping("listarea")
-    @ApiImplicitParam(name ="communityId",value = "社区id",required = true)
-    public R listArea(@RequestParam("communityId") Long communityId){
+    @ApiImplicitParam(name = "communityId", value = "社区id", required = true)
+    public R listArea(@RequestParam("communityId") Long communityId) {
         return communityService.listArea(communityId);
     }
 
     @ApiOperation(value = "用户绑定社区、小区")
     @PutMapping("putusercommunityarea")
-    public R putUserCommunityArea(@RequestBody @Validated(PutGroup.class) LoginUserInfoVO loginUserInfoVO){
+    public R putUserCommunityArea(@RequestBody @Validated(PutGroup.class) LoginUserInfoVO loginUserInfoVO) {
         Long userId = this.getUserId();
         loginUserInfoVO.setUserId(userId);
         return userService.putUserCommunityArea(loginUserInfoVO);
     }
+
+    @ApiOperation(value = "用户协议和隐私政策", response = SysUserAgreementVO.class)
+    @GetMapping("useragreement")
+    public R userAgreement() {
+        int type = 1;
+        return userService.userAgreement(type,this.getAppId());
+    }
+    @ApiOperation("uu洗车登录")
+    @PostMapping("uuLogin")
+    public R uuLogin(@RequestBody UuLoginVO uuLoginVO){
+        return userService.uuLogin(uuLoginVO);
+    }
+
+    @ApiOperation("uu洗车获取小程序码")
+    @ApiImplicitParam(name = "couponId", value = "优惠券id", required = true)
+    @GetMapping("uu/getQRCode")
+    public R uuLogin(@RequestParam("couponId") String couponId) {
+        try {
+            //i小懒
+            WxMaQrcodeService wsCodeService = wxMaConfiguration.getMaService("wx98d62711dfbd8425").getQrcodeService();
+            byte[] bytes = wsCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
+                "pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
+            String res = String.format("data:image/png;base64,%s", Base64.encode(bytes));
+
+            //花城
+            WxMaQrcodeService uuCodeService = wxMaConfiguration.getMaService("wx118de8a734d269f0").getQrcodeService();
+            byte[] hcBytes = uuCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
+                    "packageD/pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
+            String hcRes = String.format("data:image/png;base64,%s", Base64.encode(hcBytes));
+
+            Map<String,String> retMap = new HashMap<>();
+            retMap.put("ixiaolan",res);
+            retMap.put("huacheng",hcRes);
+            return R.ok(retMap);
+        } catch (Exception e) {
+            log.error("generate QRCode failed:" + e.getMessage());
+            return R.fail("generate QRCode failed");
+        }
+    }
+
+    @ApiOperation("天府通办登录")
+    @PostMapping("tfLogin")
+    public R tfLogin(@RequestBody UuLoginVO uuLoginVO){
+        try {
+            log.info("天府通办登录【{}】", JSONObject.toJSONString(uuLoginVO.getMobile()));
+            String  str=RSAUtils.decrypt(uuLoginVO.getMobile(), Constants.PRIVATE_KEY);
+            log.info("天府通办登录【{}】", JSONObject.toJSONString(str));
+            uuLoginVO.setMobile(str);
+            //测试是否能正常添加用户
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail();
+        }
+        userService.tfLogin(uuLoginVO);
+        R r=tokenService.tfLogin(uuLoginVO.getMobile(),"Huacheng@123","wx118de8a734d269f0");
+        return r;
+    }
+    @ApiOperation("用户授权")
+    @GetMapping("/accept")
+    public R accept(){
+        return userService.accept(this.getUserId());
+    }
 }

--
Gitblit v1.7.1