2 Commits f69480cc34 ... 7edcae5ba7

Author SHA1 Message Date
  杨兴卓 7edcae5ba7 Merge remote-tracking branch 'origin/yxz' into yxz 4 weeks ago
  杨兴卓 c3abdf63a8 fix 修复扫码登录问题 4 weeks ago

+ 12 - 0
xyzc-start/src/main/java/com/xyzc/start/controller/DiscoverPageController.java

@@ -51,6 +51,8 @@ public class DiscoverPageController {
         return Result.ok(drawModelList);
     }
 
+
+
     /**
      * 查询代理商邮箱
      */
@@ -82,6 +84,16 @@ public class DiscoverPageController {
     }
 
     /**
+     * id查询绘画详细信息
+     */
+    @GetMapping("/drawGraphics/{drawGraphicsId}")
+    public Result<DrawGraphicsSquareVo> drawGraphicsVoDetail(@PathVariable Long drawGraphicsId) {
+        DrawGraphicsSquareVo drawModelDetailVo = discoverService.queryDrawGraphicsVoDetail(drawGraphicsId);
+
+        return Result.ok(drawModelDetailVo);
+    }
+
+    /**
      * 查询所有的绘画助手
      */
     @GetMapping("/drawAssistantList")

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

@@ -49,8 +49,8 @@ public class WeiXinAuthController {
      * 获取微信二维码
      */
     @GetMapping("scan")
-    public Result<TicketVo> scan(@RequestParam("agentId") Long agentId) {
-        TicketVo ticketVo = weiXinAuthService.sacn(agentId);
+    public Result<TicketVo> scan() {
+        TicketVo ticketVo = weiXinAuthService.sacn();
 
         return Result.ok(ticketVo);
     }

+ 37 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/vo/DrawGraphicsSquareVo.java

@@ -1,5 +1,6 @@
 package com.xyzc.start.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 
 /**
@@ -8,9 +9,25 @@ import lombok.Data;
  * @author 杨兴卓
  */
 @Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class DrawGraphicsSquareVo {
 
     /**
+     * ugc用户id
+     */
+    private Long ugcUserId;
+
+    /**
+     * ugc用户头像
+     */
+    private String ugcUserAvatar;
+
+    /**
+     * ugc用户名称
+     */
+    private String ugcUserName;
+
+    /**
      * 图像id
      */
     private Long graphicsId;
@@ -49,4 +66,24 @@ public class DrawGraphicsSquareVo {
      * 绘画模型名称
      */
     private String modelName;
+
+    /**
+     * 正向提示词
+     */
+    private String prompt;
+
+    /**
+     * 反向提示词
+     */
+    private String reversePrompt;
+
+    /**
+     * 随机数种子
+     */
+    private Long randomSeed;
+
+    /**
+     * 作品编号
+     */
+    private String workNo;
 }

+ 7 - 0
xyzc-start/src/main/java/com/xyzc/start/mapper/DrawGraphicsMapper.java

@@ -20,4 +20,11 @@ public interface DrawGraphicsMapper extends BaseMapperPlus<DrawGraphics, DrawGra
     List<DrawGraphicsSquareVo> queryGraphics(Long userId, Long graphicsId, String keyword, Long length);
 
 
+    /**
+     * 根据图像id查询
+     *
+     * @param drawGraphicsId
+     * @return
+     */
+    DrawGraphicsSquareVo queryDrawGraphicsVoDetail(Long drawGraphicsId);
 }

+ 8 - 0
xyzc-start/src/main/java/com/xyzc/start/service/IDiscoverService.java

@@ -69,4 +69,12 @@ public interface IDiscoverService {
      * @param bo
      */
     void drawModelFeedback(DrawModelFeedbackBo bo);
+
+    /**
+     * id查看绘画详情
+     *
+     * @param drawGraphicsId
+     * @return
+     */
+    DrawGraphicsSquareVo queryDrawGraphicsVoDetail(Long drawGraphicsId);
 }

+ 4 - 3
xyzc-start/src/main/java/com/xyzc/start/service/IWeiXinAuthService.java

@@ -9,13 +9,14 @@ import jakarta.servlet.http.HttpServletResponse;
 public interface IWeiXinAuthService {
     /**
      * 微信扫码登录
-     * @param agentId
+     *
      * @return
      */
-    TicketVo sacn(Long agentId);
+    TicketVo sacn();
 
     /**
      * 微信网页授权登录
+     *
      * @param code
      * @param agentId
      * @return
@@ -25,12 +26,12 @@ public interface IWeiXinAuthService {
 
     /**
      * 扫码登录端微信的回调接口
+     *
      * @param req HttpServletRequest
      */
     void postToken(HttpServletRequest req, HttpServletResponse res);
 
     /**
-     *
      * @param ticket
      * @return
      */

+ 6 - 0
xyzc-start/src/main/java/com/xyzc/start/service/impl/DiscoverServiceImpl.java

@@ -121,4 +121,10 @@ public class DiscoverServiceImpl implements IDiscoverService {
 
         baseUserFeedbackMapper.insert(drawModelFeedBack);
     }
+
+    @Override
+    public DrawGraphicsSquareVo queryDrawGraphicsVoDetail(Long drawGraphicsId) {
+
+        return drawGraphicsMapper.queryDrawGraphicsVoDetail(drawGraphicsId);
+    }
 }

+ 39 - 11
xyzc-start/src/main/java/com/xyzc/start/service/impl/WeiXinAuthServiceImpl.java

@@ -1,5 +1,7 @@
 package com.xyzc.start.service.impl;
 
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xyzc.common.core.exception.ErrorCode;
 import com.xyzc.common.core.exception.ServerException;
 import com.xyzc.common.core.utils.AssertUtils;
@@ -9,10 +11,10 @@ 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.domain.AgentConfig;
 import com.xyzc.start.domain.BaseUser;
 import com.xyzc.start.domain.WxConfig;
 import com.xyzc.start.domain.vo.AccessTokenVo;
+import com.xyzc.start.domain.vo.BaseUserVo;
 import com.xyzc.start.domain.vo.TicketVo;
 import com.xyzc.start.mapper.BaseUserMapper;
 import com.xyzc.start.mapper.WxConfigMapper;
@@ -37,7 +39,6 @@ import org.apache.http.util.EntityUtils;
 import org.dom4j.Document;
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
-import org.springframework.boot.configurationprocessor.json.JSONObject;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.core.Authentication;
@@ -82,17 +83,18 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
     /**
      * 微信扫码登录
      *
-     * @param agentId Long
      * @return
      */
     @Override
-    public TicketVo sacn(Long agentId) {
+    public TicketVo sacn() {
         // 获取商户信息,商户没有微信公众号,就返回错误信息
 //        WxConfig agentConfig = (WxConfig) sysParamsCache.getAgentConfig(String.valueOf(agentId));
 //        AssertUtils.notNull(agentConfig, ErrorCode.COMPANY_NO_OPEN_WEIXIN);
         try {
+            // TODO : 后期写活
+            Long agentId = 1810310843224322049L;
             // sceneStr 是扫码后微信返回的参数
-            return generateQRCode("wx:sceneStr");
+            return generateQRCode("" + agentId);
         } catch (Exception e) {
             throw new ServerException(ErrorCode.COMPANY_NO_OPEN_WEIXIN);
         }
@@ -113,9 +115,15 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
                 "&secret=" + APPSECRET;
         HttpGet httpGet = new HttpGet(url);
         HttpResponse httpResponse = httpClient.execute(httpGet);
+        log.info("httpResponse: {}", httpResponse);
         String response = EntityUtils.toString(httpResponse.getEntity());
-        JSONObject jsonObject = new JSONObject(response);
-        return jsonObject.getString("access_token");
+        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");
     }
 
 
@@ -133,11 +141,13 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
         HttpPost httpPost = new HttpPost(url);
         httpPost.setEntity(new StringEntity(postData, "UTF-8"));
         HttpResponse httpResponse = httpClient.execute(httpPost);
+        log.info("httpResponse: {}", httpResponse);
         String response = EntityUtils.toString(httpResponse.getEntity());
+        log.info("response: {}", response);
 
         // 获取ticket
-        org.springframework.boot.configurationprocessor.json.JSONObject jsonObject = new org.springframework.boot.configurationprocessor.json.JSONObject(response);
-        String ticket = jsonObject.getString("ticket");
+        JSONObject jsonObject = new JSONObject(response);
+        String ticket = jsonObject.getStr("ticket");
         TicketVo ticketVo = new TicketVo();
         ticketVo.setTicket(ticket);
         ticketVo.setCodeUrl("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + URLEncoder.encode(ticket, "UTF-8"));
@@ -155,9 +165,9 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
     @Override
     public AccessTokenVo auth(String code, Long agentId) {
         // 帮我生成微信授权携带的code码
-        getBaseUserInfoByOpenid(code, agentId);
+        AccessTokenVo baseUserInfoByOpenid = getBaseUserInfoByOpenid(code, agentId);
 
-        return null;
+        return baseUserInfoByOpenid;
     }
 
     @Override
@@ -195,6 +205,21 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
         if (StringUtils.isNotEmpty(scene_str)) {
             // 将微信公众号用户ID缓存到redis中,标记用户已经扫码完成,执行登录逻辑。
             sysParamsCache.setUserStatus(ticket, fromUserName);
+
+            // 判断用户是否注册过本代理商公众号
+            BaseUser baseUser = baseUserMapper.selectOne(new LambdaQueryWrapper<BaseUser>()
+                    .select(BaseUser::getId)
+                    .eq(BaseUser::getOpenid, fromUserName)
+                    .eq(BaseUser::getAgentMerId, Long.getLong(scene_str)));
+            if (baseUser == null) {
+                // 未注册过,则自动注册
+                baseUser = new BaseUser();
+                baseUser.setOpenid(fromUserName);
+                baseUser.setAgentMerId(Long.getLong(scene_str));
+                baseUser.setSurplusFuel(10L);
+                baseUser.setStatus(1);
+            }
+
         }
         //返回消息
         try {
@@ -206,6 +231,7 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
 
     /**
      * 扫码循环判断是否登录
+     *
      * @param ticket
      * @return
      */
@@ -298,6 +324,8 @@ public class WeiXinAuthServiceImpl implements IWeiXinAuthService {
                 // 未授权登录过,授权,登记用户信息
                 WxMpUser wxMpUser = wxMpService.getUserService().userInfo(accessToken.getOpenId());
                 baseUser.setAgentMerId(agentId);
+                baseUser.setOpenid(wxMpUser.getOpenId());
+                baseUserMapper.insert(baseUser);
                 //新增一个系统用户,不给这个用户账号密码
                 //绑定微信基础用户角色
 //                SysRole sysRole = roleMapper.selectRoleIdByRoleKey(MerTypeConst.BASE_USER);

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

@@ -12,7 +12,9 @@
             dg.title,
             dm.model_name   AS model_name,
             dg.use_count    AS use_count,
-            buc.is_collect  AS is_collect
+            buc.is_collect  AS is_collect,
+            dg.height       AS height,
+            dg.width        AS width
         FROM xy_draw_graphics dg
             LEFT JOIN xy_draw_model dm  ON dg.ai_model_id = dm.id
             LEFT JOIN xy_base_user_collect buc ON buc.collect_id = dg.id AND buc.type = 2
@@ -27,4 +29,30 @@
         LIMIT #{length}
     </select>
 
+
+    <select id="queryDrawGraphicsVoDetail" resultType="com.xyzc.start.domain.vo.DrawGraphicsSquareVo">
+        SELECT
+        xuu.id          AS ugc_user_id,
+        oss.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,
+        dg.use_count    AS use_count,
+        dg.height       AS height,
+        dg.width        AS width,
+        dg.prompt       AS prompt,
+        dg.reverse_prompt AS reverse_prompt,
+        dg.prompt       AS prompt,
+        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_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'
+        AND dg.id = #{graphicsId}
+    </select>
+
 </mapper>