Browse Source

fix 修复扫码登录问题

杨兴卓 4 weeks ago
parent
commit
e84d6cf5dd

+ 31 - 0
xyzc-start/src/main/java/com/xyzc/start/constant/WxScanStatus.java

@@ -0,0 +1,31 @@
+package com.xyzc.start.constant;
+
+public enum WxScanStatus {
+
+    /**
+     * 扫码状态
+     * 0:未扫码
+     * 1:已扫码
+     * 2:已取消
+     */
+    NO_SCAN(0, "未扫码"),
+    HAS_SCAN(1, "已扫码"),
+    HAS_CANCEL(2, "已取消");
+
+    private int code;
+    private String desc;
+
+    WxScanStatus(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+}

+ 6 - 2
xyzc-start/src/main/java/com/xyzc/start/controller/WeiXinAuthController.java

@@ -4,6 +4,7 @@ import com.xyzc.common.core.exception.ErrorCode;
 import com.xyzc.common.core.exception.ServerException;
 import com.xyzc.common.core.utils.Result;
 import com.xyzc.common.core.utils.StringUtils;
+import com.xyzc.start.constant.WxScanStatus;
 import com.xyzc.start.domain.vo.AccessTokenVo;
 import com.xyzc.start.domain.vo.TicketVo;
 import com.xyzc.start.service.IWeiXinAuthService;
@@ -98,10 +99,13 @@ public class WeiXinAuthController {
      */
     @GetMapping("/wxLogin")
     public Result<AccessTokenVo> checkLoginStatus(String ticket) {
+        // 如果未扫码
         if (StringUtils.isEmpty(ticket)) {
-            throw new ServerException(ErrorCode.QR_CODE_TICKET_NULL);
+            AccessTokenVo accessTokenVo = new AccessTokenVo();
+            accessTokenVo.setStatus(WxScanStatus.HAS_CANCEL.getCode());
+            return Result.ok(accessTokenVo);
         }
-        AccessTokenVo userTokenVo =  weiXinAuthService.getStatus(ticket);
+        AccessTokenVo userTokenVo = weiXinAuthService.getStatus(ticket);
         return Result.ok(userTokenVo);
     }
 

+ 2 - 5
xyzc-start/src/main/java/com/xyzc/start/domain/BaseUser.java

@@ -1,9 +1,7 @@
 package com.xyzc.start.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.xyzc.common.mybatis.core.domain.BaseEntity;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
 
@@ -14,9 +12,8 @@ import java.io.Serial;
  * @date 2024-07-02
  */
 @Data
-@EqualsAndHashCode(callSuper = true)
 @TableName("xy_base_user")
-public class BaseUser extends BaseEntity {
+public class BaseUser {
 
     @Serial
     private static final long serialVersionUID = 1L;
@@ -30,7 +27,7 @@ public class BaseUser extends BaseEntity {
     /**
      * 基础用户编号
      */
-    private Long userId;
+    private Long userNo;
 
     /**
      * 用户名

+ 7 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/vo/AccessTokenVo.java

@@ -1,5 +1,6 @@
 package com.xyzc.start.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -14,9 +15,15 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class AccessTokenVo extends BaseUserVo {
 
     /**
+     * 检查状态,0-等待扫码,1-扫码成功,2-已过期
+     */
+    private Integer status;
+
+    /**
      * 返回登录成功的token
      */
     private String access_token;

+ 1 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/vo/BaseUserVo.java

@@ -30,6 +30,7 @@ public class BaseUserVo {
     /**
      * 用户编号
      */
+    @AutoMapping(target = "userNo")
     private Long userId;
 
     /**

+ 17 - 2
xyzc-start/src/main/java/com/xyzc/start/domain/vo/DrawGraphicsSquareVo.java

@@ -63,9 +63,24 @@ public class DrawGraphicsSquareVo {
     private Integer isCollect;
 
     /**
-     * 绘画模型名称
+     * AI模型名称
      */
-    private String modelName;
+    private String aiModelName;
+
+    /**
+     * AI模型logo
+     */
+    private String aiModelLogo;
+
+    /**
+     * AI模型描述
+     */
+    private String aiModelDesc;
+
+    /**
+     * AI模型id
+     */
+    private Long aiModelId;
 
     /**
      * 正向提示词

+ 1 - 1
xyzc-start/src/main/java/com/xyzc/start/service/impl/ComfyUIServiceImpl.java

@@ -104,7 +104,7 @@ public class ComfyUIServiceImpl implements IComfyUIService {
         baseUserPhotoFolder.setWorkflowJson(jsonObject.toJSONString());
         baseUserPhotoFolder.setPromptId(promptId);
         baseUserPhotoFolder.setIsGenerate(0);
-        baseUserPhotoFolder.setCreateTime(new Date());
+        baseUserPhotoFolder.setGenerateTime(new Date());
 //        photoFolderMapper.insertOrUpdate(baseUserPhotoFolder);
         // 图片处理
         if(Arrays.asList(1,2,3,4,5,6,7,8,9).contains(baseUserPhotoFolder.getPicType()))

+ 14 - 9
xyzc-start/src/main/java/com/xyzc/start/service/impl/WeiXinAuthServiceImpl.java

@@ -11,6 +11,7 @@ import com.xyzc.common.web.security.cache.TokenStoreCache;
 import com.xyzc.common.web.security.mobile.WeiXinScanAuthenticationToken;
 import com.xyzc.common.web.security.user.UserDetail;
 import com.xyzc.start.cache.SysParamsCache;
+import com.xyzc.start.constant.WxScanStatus;
 import com.xyzc.start.domain.BaseUser;
 import com.xyzc.start.domain.WxConfig;
 import com.xyzc.start.domain.vo.AccessTokenVo;
@@ -120,10 +121,7 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
         log.info("response: {}", response);
         JSONObject entries = new JSONObject(response);
         return entries.getStr("access_token");
-//
-//        JSONObject jsonObject = new JSONObject(response);
-//        log.info("jsonObject: {}", jsonObject);
-//        return jsonObject.getString("access_token");
+
     }
 
 
@@ -171,6 +169,7 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void postToken(HttpServletRequest req, HttpServletResponse res) {
         final Map<String, String> map = parseXml(req);
 
@@ -210,14 +209,15 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
             BaseUser baseUser = baseUserMapper.selectOne(new LambdaQueryWrapper<BaseUser>()
                     .select(BaseUser::getId)
                     .eq(BaseUser::getOpenid, fromUserName)
-                    .eq(BaseUser::getAgentMerId, Long.getLong(scene_str)));
+                    .eq(BaseUser::getAgentMerId, Long.valueOf(scene_str)));
             if (baseUser == null) {
                 // 未注册过,则自动注册
                 baseUser = new BaseUser();
                 baseUser.setOpenid(fromUserName);
-                baseUser.setAgentMerId(Long.getLong(scene_str));
+                baseUser.setAgentMerId(Long.valueOf(scene_str));
                 baseUser.setSurplusFuel(10L);
                 baseUser.setStatus(1);
+                baseUserMapper.insert(baseUser);
             }
 
         }
@@ -238,9 +238,14 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public AccessTokenVo getStatus(String ticket) {
+
+        AccessTokenVo baseUserTokenVo = new AccessTokenVo();
+
+
         String userOpenid = sysParamsCache.getUserStatus(ticket);
         if (userOpenid == null || userOpenid.isEmpty()) {
-            throw new ServerException(ErrorCode.NOT_SCAN_CODE);
+            baseUserTokenVo.setStatus(WxScanStatus.NO_SCAN.getCode());
+            return baseUserTokenVo;
         }
 
         // 获取用户信息
@@ -254,12 +259,12 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
 
             // 保存用户信息到缓存
             tokenStoreCache.saveUser(accessToken, user);
-
-            AccessTokenVo baseUserTokenVo = new AccessTokenVo();
             baseUserTokenVo.setAccess_token(accessToken);
 
             // 清除ticket
             sysParamsCache.delUserStatus(ticket);
+
+            baseUserTokenVo.setStatus(WxScanStatus.HAS_SCAN.getCode());
             return baseUserTokenVo;
         } catch (BadCredentialsException e) {
             throw new ServerException(ErrorCode.QR_CODE_ERROR);

+ 1 - 1
xyzc-start/src/main/resources/mapper/WebStart/BaseUserMapper.xml

@@ -48,7 +48,7 @@
     <select id="queryBaseUserVoById" resultType="com.xyzc.start.domain.vo.BaseUserVo">
         select bu.id        as id,
                bu.user_name as user_name,
-               bu.user_id,
+               bu.user_no   AS user_no,
                bu.mobile,
                bu.surplus_fuel,
                oss.url      as avatar

+ 6 - 3
xyzc-start/src/main/resources/mapper/WebStart/DrawGraphicsMapper.xml

@@ -33,12 +33,15 @@
     <select id="queryDrawGraphicsVoDetail" resultType="com.xyzc.start.domain.vo.DrawGraphicsSquareVo">
         SELECT
         xuu.id          AS ugc_user_id,
-        oss.avatar      AS ugc_user_avatar,
+        xua.avatar      AS ugc_user_avatar,
         xuu.nick_name   AS ugc_user_name,
         dg.id           AS graphics_id,
         dg.oss_url      AS oss_url,
         dg.title,
-        dm.model_name   AS model_name,
+        am.ai_model_name   AS ai_model_name,
+        am.id           AS ai_model_id,
+        am.ai_model_logo_oss_id AS ai_model_logo,
+        am.description    AS ai_model_desc,
         dg.use_count    AS use_count,
         dg.height       AS height,
         dg.width        AS width,
@@ -48,7 +51,7 @@
         dg.random_seed  AS random_seed,
         dg.work_no      AS work_no
         FROM xy_draw_graphics dg
-        LEFT JOIN xy_draw_model dm  ON dg.ai_model_id = dm.id
+        LEFT JOIN xy_ai_model am  ON dg.ai_model_id = am.id
         LEFT JOIN xy_ugc_user xuu ON xuu.id = dg.ugc_user_id
         LEFT JOIN xy_ugc_avatar xua ON xua.id = xuu.ugc_avatar_id
         WHERE dg.del_flag = '0'