Parcourir la source

fix 根据家庭组 成员名称id 提交账号筛选主账号列表

chenbiao il y a 3 ans
Parent
commit
82e48314c7

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/mapper/HomeGroupMapper.java

@@ -2,10 +2,15 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.HomeGroup;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author chan
  * @date 2022/10/12 10:52 AM
  */
 public interface HomeGroupMapper extends BaseMapper<HomeGroup> {
+
+    List<Long> getAccountIdsByUserIdOrNickNameOrSubmitAccount(@Param("userId") Long userId, @Param("nickName") String nickName, @Param("submitAccount") String submitAccount);
 }

+ 18 - 0
netflix-dao/src/main/resources/mapper/HomeGroupMapper.xml

@@ -0,0 +1,18 @@
+<?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.cyksj.mapper.HomeGroupMapper">
+
+    <select id="getAccountIdsByUserIdOrNickNameOrSubmitAccount" resultType="java.lang.Long">
+            select hp.account_id from home_group hp ,`user` u , groups_relation gr
+            where  hp.relation_id = gr.id and u.id = gr.user_id
+            <if test="nickName != null and nickName != ''">
+                and u.nickname like '%${nickName}%'
+            </if>
+            <if test="userId != null ">
+                and u.id = #{userId,jdbcType=BIGINT}
+            </if>
+            <if test="submitAccount != null and submitAccount != ''">
+                and gr.account =  #{submitAccount,jdbcType=VARCHAR}
+            </if>
+    </select>
+</mapper>

+ 9 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -21,9 +21,11 @@ import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * @author chan
@@ -46,12 +48,18 @@ public class CmsAccountController {
     private final GroupsMapper groupsMapper;
 
     @GetMapping("/get")
-    public Result<SearchResult<AccountView>> get(String account, String expiryStartTime, String expiryEndTime) {
+    public Result<SearchResult<AccountView>> get(Long userId ,String nickName ,String submitAccount ,String expiryStartTime, String expiryEndTime) {
         MapBuilder mapBuilder = MapUtils.flatBuilder(request.getParameterMap());
         if (StrUtil.isNotEmpty(expiryStartTime) || StrUtil.isNotEmpty(expiryEndTime)) {
             mapBuilder.field(AccountView::getExpiryTime, expiryStartTime, expiryEndTime)
                     .op(Operator.Between);
         }
+
+        if(userId != null || StringUtils.isNotBlank(nickName) || StringUtils.isNotBlank(submitAccount)){
+            List<Long> accountIds = homeGroupMapper.getAccountIdsByUserIdOrNickNameOrSubmitAccount(userId, nickName ,submitAccount);
+            mapBuilder.field(AccountView::getId, accountIds).op(Operator.InList);
+        }
+
         SearchResult<AccountView> search = beanSearcher.search(AccountView.class, mapBuilder.build());
         search.getDataList().forEach((accountView)->{
             Integer invited = homeGroupMapper.selectCount(Wrappers.lambdaQuery(HomeGroup.class).eq(HomeGroup::getAccountId, accountView.getId()).eq(HomeGroup::getStatus, "uninvited"));