Bladeren bron

feat:企微会员相关接口优化调整

caoliqin 2 maanden geleden
bovenliggende
commit
a6a0222304

+ 16 - 2
fs-company-app/src/main/java/com/fs/app/controller/QwCompanyUserController.java

@@ -1,6 +1,7 @@
 package com.fs.app.controller;
 
 
+import com.fs.app.annotation.Login;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.qw.param.newparam.ContactTagListParam;
 import com.fs.qw.param.newparam.ExternalContactPageListParam;
@@ -32,6 +33,7 @@ public class QwCompanyUserController extends AppBaseController {
     @Autowired
     private IQwTagService tagService;
 
+    @Login
     @GetMapping("/pageList")
     @ApiOperation("会员分页列表")
     public ResponseResult<PageInfo<ExternalContactListVO>> pageList(ExternalContactPageListParam param) {
@@ -42,6 +44,7 @@ public class QwCompanyUserController extends AppBaseController {
         return ResponseResult.ok(pageInfo);
     }
 
+    @Login
     @GetMapping("/totalNumber")
     @ApiOperation("会员数量统计")
     public ResponseResult<ExternalContactPageVO> getTotalNumber() {
@@ -49,6 +52,7 @@ public class QwCompanyUserController extends AppBaseController {
         return ResponseResult.ok(contactNumber);
     }
 
+    @Login
     @GetMapping("/details")
     @ApiOperation("会员详情")
     public ResponseResult<ExternalContactDetailsVO> getUserDetails(@ApiParam(value = "外部联系人id", required = true) @RequestParam Long contactId,
@@ -56,6 +60,7 @@ public class QwCompanyUserController extends AppBaseController {
         return ResponseResult.ok(qwExternalContactService.getUserDetails(Long.parseLong(getUserId()), contactId, dateTag));
     }
 
+    @Login
     @GetMapping("/tagList")
     @ApiOperation("会员标签列表")
     public ResponseResult<PageInfo<QwTagVO>> getTagList(ContactTagListParam param) {
@@ -66,10 +71,19 @@ public class QwCompanyUserController extends AppBaseController {
         return ResponseResult.ok(pageInfo);
     }
 
-    @PutMapping("/disabled")
+    @Login
+    @PostMapping("/disabled")
     @ApiOperation("批量禁用会员")
     public ResponseResult<Boolean> disabledUser(@ApiParam(value = "联系人id集合", required = true) @RequestBody String[] ids) {
-        Boolean r = qwExternalContactService.disabledUser(ids);
+        Boolean r = qwExternalContactService.disabledUser(ids, false);
+        return ResponseResult.ok(r);
+    }
+
+    @Login
+    @PostMapping("/enabled")
+    @ApiOperation("批量启用会员")
+    public ResponseResult<Boolean> enabledUser(@ApiParam(value = "联系人id集合", required = true) @RequestBody String[] ids) {
+        Boolean r = qwExternalContactService.disabledUser(ids, true);
         return ResponseResult.ok(r);
     }
 

+ 95 - 0
fs-service-system/src/main/java/com/fs/qw/domain/QwExternalContactBlackLog.java

@@ -0,0 +1,95 @@
+package com.fs.qw.domain;
+
+import com.fs.common.annotation.Excel;
+import com.fs.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 企业微信客户拉黑操作记录对象 qw_external_contact_black_log
+ *
+ * @author fs.qw
+ * @date 2025-03-31
+ */
+public class QwExternalContactBlackLog extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    @Excel(name = "id")
+    private Long id;
+
+    /** 外部联系人id */
+    @Excel(name = "外部联系人id")
+    private String externalUserId;
+
+    /** 员工id */
+    @Excel(name = "员工id")
+    private Long companyUserId;
+
+    /** 拉黑时的状态 */
+    @Excel(name = "拉黑时的状态")
+    private Integer status;
+
+    /** 拉黑后的状态 */
+    @Excel(name = "拉黑后的状态")
+    private Integer blackStatus;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setExternalUserId(String externalUserId)
+    {
+        this.externalUserId = externalUserId;
+    }
+
+    public String getExternalUserId()
+    {
+        return externalUserId;
+    }
+    public void setCompanyUserId(Long companyUserId)
+    {
+        this.companyUserId = companyUserId;
+    }
+
+    public Long getCompanyUserId()
+    {
+        return companyUserId;
+    }
+    public void setStatus(Integer status)
+    {
+        this.status = status;
+    }
+
+    public Integer getStatus()
+    {
+        return status;
+    }
+    public void setBlackStatus(Integer blackStatus)
+    {
+        this.blackStatus = blackStatus;
+    }
+
+    public Integer getBlackStatus()
+    {
+        return blackStatus;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("externalUserId", getExternalUserId())
+            .append("companyUserId", getCompanyUserId())
+            .append("createTime", getCreateTime())
+            .append("status", getStatus())
+            .append("blackStatus", getBlackStatus())
+            .toString();
+    }
+}

+ 76 - 0
fs-service-system/src/main/java/com/fs/qw/mapper/QwExternalContactBlackLogMapper.java

@@ -0,0 +1,76 @@
+package com.fs.qw.mapper;
+
+import java.util.List;
+import com.fs.qw.domain.QwExternalContactBlackLog;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 企业微信客户拉黑操作记录Mapper接口
+ *
+ * @author fs.qw
+ * @date 2025-03-31
+ */
+public interface QwExternalContactBlackLogMapper
+{
+    /**
+     * 查询企业微信客户拉黑操作记录
+     *
+     * @param id 企业微信客户拉黑操作记录ID
+     * @return 企业微信客户拉黑操作记录
+     */
+    public QwExternalContactBlackLog selectQwExternalContactBlackLogById(Long id);
+
+    /**
+     * 查询企业微信客户拉黑操作记录列表
+     *
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 企业微信客户拉黑操作记录集合
+     */
+    public List<QwExternalContactBlackLog> selectQwExternalContactBlackLogList(QwExternalContactBlackLog qwExternalContactBlackLog);
+
+    /**
+     * 新增企业微信客户拉黑操作记录
+     *
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 结果
+     */
+    public int insertQwExternalContactBlackLog(QwExternalContactBlackLog qwExternalContactBlackLog);
+
+    /**
+     * 修改企业微信客户拉黑操作记录
+     *
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 结果
+     */
+    public int updateQwExternalContactBlackLog(QwExternalContactBlackLog qwExternalContactBlackLog);
+
+    /**
+     * 删除企业微信客户拉黑操作记录
+     *
+     * @param id 企业微信客户拉黑操作记录ID
+     * @return 结果
+     */
+    public int deleteQwExternalContactBlackLogById(Long id);
+
+    /**
+     * 批量删除企业微信客户拉黑操作记录
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteQwExternalContactBlackLogByIds(Long[] ids);
+
+    /**
+     * 新增拉黑操作通过查询到的外部联系人信息
+     * @param ids 外部联系人ids
+     * @return
+     */
+    int insertLogBySelectExternalContact(@Param("ids") List<String> ids);
+
+    /**
+     * 批量查询拉黑操作
+     * @param ids
+     * @return
+     */
+    List<QwExternalContactBlackLog> selectContactLogByIds(@Param("ids") List<String> ids);
+}

+ 2 - 0
fs-service-system/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -370,4 +370,6 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
     List<QwExternalContact> selectContactByIds(@Param("ids") List<String> ids);
 
     int updateContactByIds(@Param("ids") List<String> ids,@Param("status") Integer status);
+
+    int batchUpdateContactByIds(@Param("list") List<Map<Long, Integer>> list);
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/qw/mapper/QwTagMapper.java

@@ -82,5 +82,5 @@ public interface QwTagMapper
     @Select("select * from qw_tag where name=#{trimTag} and corp_id=#{corpId} limit 1" )
     QwTagVO selectQwTagByName(@Param("trimTag") String trimTag, @Param("corpId")String corpId );
 
-    List<QwTagVO> selectTagListByUserId(ContactTagListParam param);
+    List<QwTagVO> selectTagListByUserId(@Param("param") ContactTagListParam param,  @Param("keywords") String[] keywords);
 }

+ 3 - 0
fs-service-system/src/main/java/com/fs/qw/param/newparam/ContactTagListParam.java

@@ -19,5 +19,8 @@ public class ContactTagListParam implements Serializable {
     @ApiModelProperty(value = "用户id,不用传")
     private Long userId;
 
+    @ApiModelProperty(value = "模糊搜索名称,多个用逗号隔开")
+    private String keyword;
+
 }
 

+ 61 - 0
fs-service-system/src/main/java/com/fs/qw/service/IQwExternalContactBlackLogService.java

@@ -0,0 +1,61 @@
+package com.fs.qw.service;
+
+import java.util.List;
+import com.fs.qw.domain.QwExternalContactBlackLog;
+
+/**
+ * 企业微信客户拉黑操作记录Service接口
+ * 
+ * @author fs.qw
+ * @date 2025-03-31
+ */
+public interface IQwExternalContactBlackLogService 
+{
+    /**
+     * 查询企业微信客户拉黑操作记录
+     * 
+     * @param id 企业微信客户拉黑操作记录ID
+     * @return 企业微信客户拉黑操作记录
+     */
+    public QwExternalContactBlackLog selectQwExternalContactBlackLogById(Long id);
+
+    /**
+     * 查询企业微信客户拉黑操作记录列表
+     * 
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 企业微信客户拉黑操作记录集合
+     */
+    public List<QwExternalContactBlackLog> selectQwExternalContactBlackLogList(QwExternalContactBlackLog qwExternalContactBlackLog);
+
+    /**
+     * 新增企业微信客户拉黑操作记录
+     * 
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 结果
+     */
+    public int insertQwExternalContactBlackLog(QwExternalContactBlackLog qwExternalContactBlackLog);
+
+    /**
+     * 修改企业微信客户拉黑操作记录
+     * 
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 结果
+     */
+    public int updateQwExternalContactBlackLog(QwExternalContactBlackLog qwExternalContactBlackLog);
+
+    /**
+     * 批量删除企业微信客户拉黑操作记录
+     * 
+     * @param ids 需要删除的企业微信客户拉黑操作记录ID
+     * @return 结果
+     */
+    public int deleteQwExternalContactBlackLogByIds(Long[] ids);
+
+    /**
+     * 删除企业微信客户拉黑操作记录信息
+     * 
+     * @param id 企业微信客户拉黑操作记录ID
+     * @return 结果
+     */
+    public int deleteQwExternalContactBlackLogById(Long id);
+}

+ 1 - 1
fs-service-system/src/main/java/com/fs/qw/service/IQwExternalContactService.java

@@ -195,6 +195,6 @@ public interface IQwExternalContactService extends IService<QwExternalContact> {
      * @param ids id数组
      * @return 是否成功
      */
-    Boolean disabledUser(String[] ids);
+    Boolean disabledUser(String[] ids, boolean status);
 
 }

+ 95 - 0
fs-service-system/src/main/java/com/fs/qw/service/impl/QwExternalContactBlackLogServiceImpl.java

@@ -0,0 +1,95 @@
+package com.fs.qw.service.impl;
+
+import java.util.List;
+import com.fs.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.fs.qw.mapper.QwExternalContactBlackLogMapper;
+import com.fs.qw.domain.QwExternalContactBlackLog;
+import com.fs.qw.service.IQwExternalContactBlackLogService;
+
+/**
+ * 企业微信客户拉黑操作记录Service业务层处理
+ * 
+ * @author fs.qw
+ * @date 2025-03-31
+ */
+@Service
+public class QwExternalContactBlackLogServiceImpl implements IQwExternalContactBlackLogService 
+{
+    @Autowired
+    private QwExternalContactBlackLogMapper qwExternalContactBlackLogMapper;
+
+    /**
+     * 查询企业微信客户拉黑操作记录
+     * 
+     * @param id 企业微信客户拉黑操作记录ID
+     * @return 企业微信客户拉黑操作记录
+     */
+    @Override
+    public QwExternalContactBlackLog selectQwExternalContactBlackLogById(Long id)
+    {
+        return qwExternalContactBlackLogMapper.selectQwExternalContactBlackLogById(id);
+    }
+
+    /**
+     * 查询企业微信客户拉黑操作记录列表
+     * 
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 企业微信客户拉黑操作记录
+     */
+    @Override
+    public List<QwExternalContactBlackLog> selectQwExternalContactBlackLogList(QwExternalContactBlackLog qwExternalContactBlackLog)
+    {
+        return qwExternalContactBlackLogMapper.selectQwExternalContactBlackLogList(qwExternalContactBlackLog);
+    }
+
+    /**
+     * 新增企业微信客户拉黑操作记录
+     * 
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 结果
+     */
+    @Override
+    public int insertQwExternalContactBlackLog(QwExternalContactBlackLog qwExternalContactBlackLog)
+    {
+        qwExternalContactBlackLog.setCreateTime(DateUtils.getNowDate());
+        return qwExternalContactBlackLogMapper.insertQwExternalContactBlackLog(qwExternalContactBlackLog);
+    }
+
+    /**
+     * 修改企业微信客户拉黑操作记录
+     * 
+     * @param qwExternalContactBlackLog 企业微信客户拉黑操作记录
+     * @return 结果
+     */
+    @Override
+    public int updateQwExternalContactBlackLog(QwExternalContactBlackLog qwExternalContactBlackLog)
+    {
+        return qwExternalContactBlackLogMapper.updateQwExternalContactBlackLog(qwExternalContactBlackLog);
+    }
+
+    /**
+     * 批量删除企业微信客户拉黑操作记录
+     * 
+     * @param ids 需要删除的企业微信客户拉黑操作记录ID
+     * @return 结果
+     */
+    @Override
+    public int deleteQwExternalContactBlackLogByIds(Long[] ids)
+    {
+        return qwExternalContactBlackLogMapper.deleteQwExternalContactBlackLogByIds(ids);
+    }
+
+    /**
+     * 删除企业微信客户拉黑操作记录信息
+     * 
+     * @param id 企业微信客户拉黑操作记录ID
+     * @return 结果
+     */
+    @Override
+    public int deleteQwExternalContactBlackLogById(Long id)
+    {
+        return qwExternalContactBlackLogMapper.deleteQwExternalContactBlackLogById(id);
+    }
+}

+ 25 - 2
fs-service-system/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -92,6 +92,10 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
     @Autowired
     private QwExternalContactMapper qwExternalContactMapper;
     @Autowired
+    private QwExternalContactBlackLogMapper qwExternalContactBlackLogMapper;
+    @Autowired
+    private IQwExternalContactBlackLogService qwExternalContactBlackLogService;
+    @Autowired
     private IQwTagService iQwTagService;
     @Autowired
     ICompanyConfigService companyConfigService;
@@ -4397,9 +4401,28 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
 
     @Override
     @Transactional(rollbackFor = {Exception.class})
-    public Boolean disabledUser(String[] ids) {
+    public Boolean disabledUser(String[] ids, boolean status) {
         // 不能使用自带的方法,只能写sql,额。。。。
-        int result = qwExternalContactMapper.updateContactByIds(Arrays.asList(ids), 7);
+        int result = 0;
+        if(status){
+            //取消禁用操作
+            //查询禁用前的状态
+            List<QwExternalContactBlackLog> qwExternalContactBlackLogs = qwExternalContactBlackLogMapper.selectContactLogByIds(Arrays.asList(ids));
+            if(qwExternalContactBlackLogs != null && !qwExternalContactBlackLogs.isEmpty()){
+                List<Map<Long,Integer>> list = new ArrayList<>();
+                qwExternalContactBlackLogs.forEach(i -> {
+                    Map<Long,Integer> map = new HashMap<>();
+                    map.put( i.getId(), i.getStatus());
+                    list.add(map);
+                });
+                result = qwExternalContactMapper.batchUpdateContactByIds(list);
+            }
+        }else {
+            //禁用
+            //将禁用时的状态写入到记录表中
+            qwExternalContactBlackLogMapper.insertLogBySelectExternalContact(Arrays.asList(ids));
+            result = qwExternalContactMapper.updateContactByIds(Arrays.asList(ids), 7);
+        }
         return result > 0;
     }
 

+ 8 - 1
fs-service-system/src/main/java/com/fs/qw/service/impl/QwTagServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fs.qw.service.impl;
 
 import com.fs.common.utils.DateUtils;
+import com.fs.common.utils.StringUtils;
 import com.fs.qw.domain.QwExternalContact;
 import com.fs.qw.domain.QwTag;
 import com.fs.qw.domain.QwUser;
@@ -195,6 +196,12 @@ public class QwTagServiceImpl implements IQwTagService
 
     @Override
     public List<QwTagVO> getTagListByUserId(ContactTagListParam param) {
-        return qwTagMapper.selectTagListByUserId(param);
+        String[] keywords = new String[0];
+        if(param != null){
+            if(StringUtils.isNotEmpty(param.getKeyword())){
+               keywords = param.getKeyword().split(",");
+            }
+        }
+        return qwTagMapper.selectTagListByUserId(param, keywords);
     }
 }

+ 105 - 0
fs-service-system/src/main/resources/mapper/qw/QwExternalContactBlackLogMapper.xml

@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.qw.mapper.QwExternalContactBlackLogMapper">
+
+    <resultMap type="QwExternalContactBlackLog" id="QwExternalContactBlackLogResult">
+        <result property="id"    column="id"    />
+        <result property="externalUserId"    column="external_user_id"    />
+        <result property="companyUserId"    column="company_user_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="status"    column="status"    />
+        <result property="blackStatus"    column="black_status"    />
+    </resultMap>
+
+    <sql id="selectQwExternalContactBlackLogVo">
+        select id, external_user_id, company_user_id, create_time, status, black_status from qw_external_contact_black_log
+    </sql>
+
+    <select id="selectQwExternalContactBlackLogList" parameterType="QwExternalContactBlackLog" resultMap="QwExternalContactBlackLogResult">
+        <include refid="selectQwExternalContactBlackLogVo"/>
+        <where>
+            <if test="id != null "> and id = #{id}</if>
+            <if test="externalUserId != null  and externalUserId != ''"> and external_user_id = #{externalUserId}</if>
+            <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="blackStatus != null "> and black_status = #{blackStatus}</if>
+        </where>
+    </select>
+
+    <select id="selectQwExternalContactBlackLogById" parameterType="Long" resultMap="QwExternalContactBlackLogResult">
+        <include refid="selectQwExternalContactBlackLogVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertQwExternalContactBlackLog" parameterType="QwExternalContactBlackLog" useGeneratedKeys="true" keyProperty="id">
+        insert into qw_external_contact_black_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="externalUserId != null">external_user_id,</if>
+            <if test="companyUserId != null">company_user_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="status != null">status,</if>
+            <if test="blackStatus != null">black_status,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="externalUserId != null">#{externalUserId},</if>
+            <if test="companyUserId != null">#{companyUserId},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="blackStatus != null">#{blackStatus},</if>
+         </trim>
+    </insert>
+
+    <update id="updateQwExternalContactBlackLog" parameterType="QwExternalContactBlackLog">
+        update qw_external_contact_black_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="externalUserId != null">external_user_id = #{externalUserId},</if>
+            <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="blackStatus != null">black_status = #{blackStatus},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQwExternalContactBlackLogById" parameterType="Long">
+        delete from qw_external_contact_black_log where id = #{id}
+    </delete>
+
+    <delete id="deleteQwExternalContactBlackLogByIds" parameterType="String">
+        delete from qw_external_contact_black_log where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+
+    <insert id="insertLogBySelectExternalContact" parameterType="QwExternalContactBlackLog" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO qw_external_contact_black_log ( external_user_id, company_user_id, create_time, STATUS, black_status )
+        SELECT
+            id,company_user_id,
+            NOW(),
+            STATUS,
+            7
+        FROM
+            qw_external_contact
+        WHERE qw_external_contact.id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+             #{id}
+        </foreach>
+    </insert>
+
+    <select id="selectContactLogByIds" resultType="QwExternalContact">
+        SELECT
+        qw_external_contact.id,
+        qw_external_contact.STATUS
+        from qw_external_contact_black_log
+        where external_user_id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            (#{id})
+        </foreach>
+    </select>
+
+</mapper>

+ 25 - 3
fs-service-system/src/main/resources/mapper/qw/QwExternalContactMapper.xml

@@ -276,7 +276,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectExternalContactPageList" resultType="ExternalContactListVO">
         SELECT
-        qw_external_contact.id,
+        DISTINCT qw_external_contact.id,
         qw_external_contact.qw_user_id,
         qw_external_contact.user_id,
         qw_external_contact.external_user_id,
@@ -295,6 +295,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         qw_external_contact
         LEFT JOIN qw_user ON qw_external_contact.user_id = qw_user.qw_user_id
         LEFT JOIN company_user ON qw_user.company_user_id = company_user.user_id
+        LEFT JOIN qw_tag on qw_tag.corp_id = qw_external_contact.corp_id
         WHERE  company_user.user_id = #{userId}
         <choose>
             <when test = "isBlack">
@@ -305,8 +306,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </otherwise>
         </choose>
         <if test="keyword != null and keyword !='' ">
-            AND (qw_external_contact.NAME LIKE concat('%',#{keyword},'%') or  qw_external_contact.remark_mobiles LIKE concat('%',#{keyword},'%'))
---             AND concat(qw_external_contact.NAME, qw_external_contact.remark_mobiles) LIKE concat('%',#{keyword},'%')
+            AND (qw_external_contact.NAME LIKE concat('%',#{keyword},'%')
+                or  qw_external_contact.remark_mobiles LIKE concat('%',#{keyword},'%')
+                or  qw_tag.`name` LIKE concat('%',#{keyword},'%')
+                )
         </if>
         <if test="registerStartTime != null and registerStartTime !='' ">
         AND qw_external_contact.create_time &gt;= #{registerStartTime}
@@ -490,4 +493,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </update>
+
+    <update id="batchUpdateContactByIds" parameterType="map">
+        update qw_external_contact
+        <trim prefix="set" suffixOverrides=",">
+                     <trim prefix="status = case" suffix="end">
+                         <foreach collection="list" item="item" index="index">
+                             <if test="item.status != null">
+                                 when id= #{item.id}
+                                  then #{item.status}
+                             </if>
+                         </foreach>
+                     </trim>
+        </trim>
+        where contact_id in
+        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+            #{item.id}
+        </foreach>
+    </update>
+
 </mapper>

+ 7 - 1
fs-service-system/src/main/resources/mapper/qw/QwTagMapper.xml

@@ -110,6 +110,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 LEFT JOIN qw_user ON qw_user.qw_user_id = qec.user_id
                 LEFT JOIN company_user cu ON qw_user.company_user_id = cu.user_id
         WHERE
-            cu.user_id = #{userId}
+            cu.user_id = #{param.userId}
+        <if test="keywords != null and keywords.length > 0 ">
+            and
+            <foreach item="item" collection="keywords" open="(" separator="or" close=")">
+                qw_tag.`name` like concat('%',#{item},'%')
+            </foreach>
+        </if>
     </select>
 </mapper>