Просмотр исходного кода

优化打卡文章红包领取接口

cgp 1 неделя назад
Родитель
Сommit
a5e850cc09

+ 19 - 8
fs-service/src/main/java/com/fs/his/service/impl/FsSignArticleReadDetailServiceImpl.java

@@ -259,12 +259,18 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
     private R handleExistingRecord(SignRedPacketRecord record) {
         if (record.getCollectType() == 1) {
             return R.error("您已领取过该文章红包");
-        } else if (record.getCollectType()==0||record.getCollectTag() == 1) {
-                if (StringUtils.isNotEmpty(record.getResult())) {
-                    return R.ok(record.getResult());
-                } else {
-                    return R.error("操作频繁,请稍后再试!");
-                }
+        } else if (record.getCollectType() == 0 || record.getCollectTag() == 1) {
+            if (StringUtils.isNotEmpty(record.getResult())) {
+                // 从数据库存的 JSON 字符串中解析出需要的字段
+                JSONObject storedJson = JSON.parseObject(record.getResult());
+                R result = R.ok();
+                result.put("data", storedJson.get("data"));
+                result.put("isNew", storedJson.get("isNew"));
+                result.put("mchId", storedJson.get("mchId"));
+                return result;
+            } else {
+                return R.error("操作频繁,请稍后再试!");
+            }
         }
         return R.error("红包状态异常");
     }
@@ -283,7 +289,7 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
 
         if (!sendResult.get("code").equals(200)) {
             log.error("打卡文章红包-领取失败: {}", sendResult);
-            throw new CustomException("领取失败");
+            throw new CustomException("系统繁忙 请稍后再试");
         }
 
         SignRedPacketRecord record = new SignRedPacketRecord();
@@ -318,7 +324,12 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
         record.setQwUserName(qwUser.getQwUserName());
 
         signRedPacketRecordMapper.insertSignRedPacketRecord(record);
-        return R.ok(record.getResult());
+        // ========== 构造前端需要的返回结构 ==========
+        R result = R.ok();                           // 自带 code=200, msg="success"
+        result.put("data", sendResult.get("data"));  // 把微信的 data 对象直接放进去
+        result.put("isNew", sendResult.get("isNew"));
+        result.put("mchId", sendResult.get("mchId"));
+        return result;
     }
 
     /**

+ 1 - 1
fs-service/src/main/resources/mapper/qw/SignRedPacketRecordMapper.xml

@@ -151,7 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="qwUserId != null">qw_user_id = #{qwUserId},</if>
             <if test="qwUserName != null">qw_user_name = #{qwUserName},</if>
             <if test="articleId != null">article_id = #{articleId},</if>
-            <if test="signtype != null">sign_type = #{signtype},</if>
+            <if test="signType != null">sign_type = #{signtype},</if>
         </trim>
         where id = #{id}
     </update>