From 87b2bd73e7052838dd1dbe70688f94afc4b885e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A2=A8=E5=A4=A7=E5=8F=94?= <494979559@qq.com>
Date: Thu, 19 Sep 2024 18:10:13 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=98=AF=E5=90=A6=E5=B7=B2?=
 =?UTF-8?q?=E8=AF=BB=E6=96=87=E7=AB=A0=E3=80=81=E7=B3=BB=E7=BB=9F=E9=85=8D?=
 =?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/ruoyi/common/core/domain/entity/SmUser.java |  6 ++++++
 .../com/ruoyi/ss/article/domain/SmArticleQuery.java |  7 +++++++
 .../ruoyi/ss/article/domain/enums/LicenceType.java  |  3 ++-
 .../com/ruoyi/ss/article/mapper/SmArticleMapper.xml |  8 +++++++-
 .../java/com/ruoyi/ss/user/mapper/SmUserMapper.xml  |  5 +++++
 .../com/ruoyi/ss/user/service/ISmUserService.java   |  5 +++++
 .../ss/user/service/impl/SmUserServiceImpl.java     |  8 ++++++++
 .../ruoyi/web/controller/app/AppUserController.java |  6 ++++++
 .../web/controller/ss/SmArticleController.java      | 13 +++++++++++++
 .../web/controller/system/SysConfigController.java  |  4 ++--
 10 files changed, 61 insertions(+), 4 deletions(-)

diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/core/domain/entity/SmUser.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/core/domain/entity/SmUser.java
index 08726f16..88928bec 100644
--- a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/core/domain/entity/SmUser.java
+++ b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/core/domain/entity/SmUser.java
@@ -186,4 +186,10 @@ public class SmUser extends BaseEntity
     @Excel(name = "限制退款原因")
     @ApiModelProperty("限制退款原因")
     private String limitRefundReason;
+
+    @Excel(name = "是否已阅读过商户协议")
+    @ApiModelProperty("是否已阅读过商户协议")
+    @JsonView(JsonViewProfile.App.class)
+    private Boolean readMchLicence;
+
 }
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/SmArticleQuery.java b/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/SmArticleQuery.java
index 9a5ec671..30c6ba35 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/SmArticleQuery.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/SmArticleQuery.java
@@ -1,11 +1,18 @@
 package com.ruoyi.ss.article.domain;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author wjh
  * 2024/4/3
  */
 @Data
 public class SmArticleQuery extends SmArticle {
+
+    @ApiModelProperty("文章ID列表")
+    private List<Long> articleIds;
+
 }
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/enums/LicenceType.java b/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/enums/LicenceType.java
index dcae1e5b..9d3dd2c5 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/enums/LicenceType.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/article/domain/enums/LicenceType.java
@@ -17,7 +17,8 @@ public enum LicenceType {
     USER("user", "ss.licence.user.id"),     // 用户协议
     PRIVACY("privacy", "ss.licence.privacy.id"),    // 隐私协议
     COLLECT("collection", "ss.licence.collection.id"),  // 个人信息收集清单
-    ABOUT("about", "ss.licence.about.id");  // 关于我们
+    ABOUT("about", "ss.licence.about.id"),  // 关于我们
+    MCH("mch", "ss.licence.mch.id");    // 商户协议
 
     private final String type;    // 类型
     private final String key;     // 配置键值
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/article/mapper/SmArticleMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/article/mapper/SmArticleMapper.xml
index c2cc907e..f48e9dd6 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/article/mapper/SmArticleMapper.xml
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/article/mapper/SmArticleMapper.xml
@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.ss.article.mapper.SmArticleMapper">
 
-    <resultMap type="SmArticle" id="SmArticleResult">
+    <resultMap type="SmArticle" id="SmArticleResult" autoMapping="true">
         <result property="articleId"    column="article_id"    />
         <result property="classifyId"    column="classify_id"    />
         <result property="title"    column="title"    />
@@ -74,6 +74,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="classifyId != null  and classifyId != ''"> and a.classify_id = #{classifyId}</if>
             <if test="title != null  and title != ''"> and a.title like concat('%', #{title}, '%')</if>
             <if test="isHot != null  and isHot != ''"> and a.is_hot = #{isHot}</if>
+            <if test="articleIds != null and articleIds.size() > 0">
+                and a.article_id in
+                <foreach collection="articleIds" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         order by a.create_time desc
     </select>
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml
index 7475b58d..7d1f7aa7 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/mapper/SmUserMapper.xml
@@ -49,6 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             su.limit_withdraw_reason,
             su.limit_refund,
             su.limit_refund_reason,
+            su.read_mch_licence,
             (select sum(stb.money) from sm_transaction_bill stb where stb.user_id = su.user_id and stb.type = '1' and stb.status = '2') as recharge_amount,
             (select sum(stb.arrival_amount) from sm_transaction_bill stb where stb.user_id = su.user_id and stb.type = '2' and stb.status = '14') as with_drawl_amount,
             (select sum(stb.arrival_amount) from sm_transaction_bill stb where stb.mch_id = su.user_id and stb.type = '1' and stb.status = '2') as total_income
@@ -72,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="serviceType != null  and serviceType != ''"> and service_type = #{serviceType}</if>
         <if test="limitWithdraw != null "> and limit_withdraw = #{limitWithdraw}</if>
         <if test="limitRefund != null "> and limit_refund = #{limitRefund}</if>
+        <if test="readMchLicence != null "> and read_mch_licence = #{readMchLicence}</if>
         <if test="tenantDeviceId != null">
             and su.user_id in (
                select sdt.tenant_id
@@ -169,6 +171,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="limitWithdrawReason != null">limit_withdraw_reason,</if>
             <if test="limitRefund != null">limit_refund,</if>
             <if test="limitRefundReason != null">limit_refund_reason,</if>
+            <if test="readMchLicence != null">read_mch_licence,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="userName != null and userName != ''">#{userName},</if>
@@ -206,6 +209,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="limitWithdrawReason != null">#{limitWithdrawReason},</if>
             <if test="limitRefund != null">#{limitRefund},</if>
             <if test="limitRefundReason != null">#{limitRefundReason},</if>
+            <if test="readMchLicence != null">#{readMchLicence},</if>
          </trim>
     </insert>
 
@@ -253,6 +257,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="limitWithdrawReason != null">limit_withdraw_reason = #{limitWithdrawReason},</if>
             <if test="limitRefund != null">limit_refund = #{limitRefund},</if>
             <if test="limitRefundReason != null">limit_refund_reason = #{limitRefundReason},</if>
+            <if test="readMchLicence != null">read_mch_licence = #{readMchLicence},</if>
         </trim>
         where user_id = #{userId}
     </update>
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java
index 1169ee92..b5dfd0cd 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/ISmUserService.java
@@ -209,4 +209,9 @@ public interface ISmUserService
      * 实名认证
      */
     int realName(UserRealNameDTO dto);
+
+    /**
+     * 标记已读商户协议
+     */
+    int readMchLicence(Long userId);
 }
diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java
index 0df818ec..662d0792 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/ss/user/service/impl/SmUserServiceImpl.java
@@ -297,6 +297,14 @@ public class SmUserServiceImpl implements ISmUserService
         return smUserMapper.updateSmUser(data);
     }
 
+    @Override
+    public int readMchLicence(Long userId) {
+        SmUser data = new SmUser();
+        data.setUserId(userId);
+        data.setReadMchLicence(true);
+        return smUserMapper.updateSmUser(data);
+    }
+
     /**
      * 逻辑删除前校验
      * @param userIds
diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java
index fa973e35..e988d191 100644
--- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java
+++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppUserController.java
@@ -75,4 +75,10 @@ public class AppUserController extends BaseController {
         return toAjax(userService.realName(dto));
     }
 
+    @ApiOperation("标记用户已读商户协议")
+    @PutMapping("/readMchLicence")
+    public AjaxResult readMchLicence() {
+        return toAjax(userService.readMchLicence(getUserId()));
+    }
+
 }
diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmArticleController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmArticleController.java
index 5e7a4198..4745ac16 100644
--- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmArticleController.java
+++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmArticleController.java
@@ -48,6 +48,19 @@ public class SmArticleController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询文章列表ByIds
+     */
+    @PreAuthorize("@ss.hasPermi('system:article:list')")
+    @GetMapping("/listByIds/{ids}")
+    public AjaxResult listByIds(@PathVariable List<Long> ids)
+    {
+        SmArticleQuery query = new SmArticleQuery();
+        query.setArticleIds(ids);
+        List<SmArticle> list = asArticleService.selectSmArticleList(query);
+        return success(list);
+    }
+
     /**
      * 导出文章列表
      */
diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
index 3b4725be..c825dfb0 100644
--- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
+++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
@@ -145,8 +145,8 @@ public class SysConfigController extends BaseController
     /**
      * 根据参数键名列表查询参数值
      */
-    @GetMapping(value = "/configKeys/{configKeys}")
-    public AjaxResult getConfigKeys(@PathVariable List<String> configKeys)
+    @PostMapping(value = "/configKeys")
+    public AjaxResult getConfigKeys(@RequestBody List<String> configKeys)
     {
         SysConfigQuery query = new SysConfigQuery();
         query.setConfigKeys(configKeys);