From 5405154d6979f1b50ce2d881bb164b1acca80b6d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 15 一月 2021 18:58:18 +0800
Subject: [PATCH] 修改相关bug

---
 service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/UserController.java |   94 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 91 insertions(+), 3 deletions(-)

diff --git a/service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/UserController.java b/service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/UserController.java
index 8c679a4..50a590d 100644
--- a/service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/UserController.java
+++ b/service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/UserController.java
@@ -7,16 +7,26 @@
 import com.ks.app.entity.AppInfo;
 import com.ks.daylucky.exception.UserInfoException;
 import com.ks.daylucky.exception.UserInfoExtraException;
+import com.ks.daylucky.pojo.DO.AppConfig;
 import com.ks.daylucky.pojo.DO.UserInfo;
+import com.ks.daylucky.pojo.DO.UserInfoExtra;
 import com.ks.daylucky.pojo.DO.UserMsg;
+import com.ks.daylucky.pojo.DTO.AlipayUserInfo;
+import com.ks.daylucky.pojo.DTO.ConfigKeyEnum;
 import com.ks.daylucky.pojo.DTO.TokenDTO;
 import com.ks.daylucky.pojo.DTO.UserMsgSettings;
 import com.ks.daylucky.pojo.VO.AcceptData;
+import com.ks.daylucky.pojo.VO.UserConfigVO;
+import com.ks.daylucky.pojo.VO.UserMsgVO;
+import com.ks.daylucky.service.AppConfigService;
 import com.ks.daylucky.service.UserInfoExtraService;
 import com.ks.daylucky.service.UserInfoService;
 import com.ks.daylucky.service.UserMsgService;
 import com.ks.daylucky.util.Constant;
+import com.ks.daylucky.util.RSAUtil;
 import com.ks.daylucky.util.UserInfoUtil;
+import com.ks.daylucky.util.annotation.RequestSerializable;
+import com.ks.daylucky.util.factory.vo.UserMsgVOFactory;
 import net.sf.json.JSONObject;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -30,10 +40,11 @@
 
 import javax.annotation.Resource;
 import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
 import java.util.List;
 
 @Controller
-@RequestMapping("api/client/user")
+@RequestMapping(value = "api/client/user", produces = "application/json;charset=utf-8")
 public class UserController {
     @Resource
     private UserInfoService userInfoService;
@@ -44,12 +55,16 @@
     @Resource
     private UserMsgService userMsgService;
 
+    @Resource
+    private AppConfigService appConfigService;
+
     private AlipayAppInfo getAlipayAppInfo(AppInfo app) {
         AppAlipayInfoWithBLOBs alipay = app.getAlipayInfo();
         AlipayAppInfo info = new AlipayAppInfo(alipay.getAlipayAppId(), alipay.getAlipayPrivateKey(), new AlipayCertInfo(new ByteArrayInputStream(alipay.getAlipayAppCertPublicKey()), new ByteArrayInputStream(alipay.getAlipayPublicCert()), new ByteArrayInputStream(alipay.getAlipayRootCert())));
         return info;
     }
 
+    @RequestSerializable(key = "'getToken-'+#alipayCode")
     @ResponseBody
     @RequestMapping("getToken")
     public String getToken(AcceptData acceptData, String alipayCode, String wxCode) {
@@ -75,6 +90,7 @@
                 user = new UserInfo();
                 user.setAppId(acceptData.getApp().getId());
                 user.setIdentifyCode(identifyCode);
+                user.setAlipayUid(identifyCode);
                 try {
                     Long uid = userInfoService.addUserInfo(user);
                     user.setId(uid);
@@ -98,6 +114,50 @@
         if (user == null) {
             return JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�");
         }
+        return JsonUtil.loadTrueResult(JsonUtil.getApiCommonGson().toJson(user));
+    }
+
+    /**
+     * 鏀粯瀹濈敤鎴蜂俊鎭笂浼�
+     *
+     * @param acceptData
+     * @param userInfo
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("uploadAlipayUserInfo")
+    public String uploadAlipayUserInfo(AcceptData acceptData, String userInfo) {
+        String decryptStr = RSAUtil.decrypt(userInfo);
+        if (StringUtil.isNullOrEmpty(decryptStr)) {
+            return JsonUtil.loadFalseResult("鐢ㄦ埛淇℃伅鑾峰彇澶辫触");
+        }
+        AlipayUserInfo alipayUserInfo = JsonUtil.getSimpleGson().fromJson(decryptStr, AlipayUserInfo.class);
+
+        UserInfo user = new UserInfo();
+        user.setId(acceptData.getUid());
+        user.setPortrait(alipayUserInfo.getAvatar());
+        user.setNickName(alipayUserInfo.getNickName());
+        user.setAlipayNickName(alipayUserInfo.getNickName());
+        user.setAlipayPortrait(alipayUserInfo.getAvatar());
+        if (user.getPortrait() != null && user.getPortrait().endsWith("undefined")) {
+            user.setPortrait(null);
+        }
+
+        if (StringUtil.isNullOrEmpty(user.getNickName())) {
+            AppConfig config = appConfigService.getConfigCache(acceptData.getApp().getId(), ConfigKeyEnum.defaultNickNamePrefix, acceptData.getVersion());
+            user.setNickName(config.getValue() + acceptData.getUid());
+        }
+
+        if (StringUtil.isNullOrEmpty(user.getPortrait())) {
+            AppConfig config = appConfigService.getConfigCache(acceptData.getApp().getId(), ConfigKeyEnum.defaultPortrait, acceptData.getVersion());
+            user.setPortrait(config.getValue());
+        }
+
+
+        userInfoService.updateUserInfo(user);
+
+        user = userInfoService.getUserDetail(user.getId());
+
         return JsonUtil.loadTrueResult(JsonUtil.getApiCommonGson().toJson(user));
     }
 
@@ -155,14 +215,42 @@
     @RequestMapping("getUserMsgList")
     public String getUserMsgList(AcceptData acceptData, int page) {
         List<UserMsg> msgList = userMsgService.getUserMsgList(acceptData.getUid(), page, Constant.PAGE_SIZE);
+        List<UserMsgVO> voList = new ArrayList<>();
+        if (msgList != null) {
+            for (UserMsg userMsg : msgList) {
+                voList.add(UserMsgVOFactory.create(userMsg));
+            }
+        }
+
+
         long count = userMsgService.countUserMsg(acceptData.getUid());
-        Gson gson = JsonUtil.getConvertDateToShortNameBuilder(new GsonBuilder().excludeFieldsWithoutExposeAnnotation()).create();
+        Gson gson = JsonUtil.getConvertDateToShortNameBuilder(new GsonBuilder()).create();
 
         JSONObject data = new JSONObject();
-        data.put("data", gson.toJson(msgList));
+        data.put("data", gson.toJson(voList));
         data.put("count", count);
+
+        //璁剧疆娑堟伅宸茶
+        try {
+            userInfoExtraService.setMsgRead(acceptData.getUid());
+        } catch (UserInfoExtraException e) {
+            e.printStackTrace();
+        }
         return JsonUtil.loadTrueResult(data);
     }
 
+    @ResponseBody
+    @RequestMapping("getUserConfig")
+    public String getUserConfig(AcceptData acceptData) {
+        //娑堟伅鏈鏁�
+        UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(acceptData.getUid());
+        if (extra == null) {
+            return JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�");
+        }
+        UserConfigVO vo = new UserConfigVO();
+        vo.setMsgCount(extra.getMsgUnreadCount());
+        return JsonUtil.loadTrueResult(vo);
+    }
+
 
 }

--
Gitblit v1.8.0