瀏覽代碼

后台老师粉丝条件搜索

Eric 2 年之前
父節點
當前提交
bbb3d475e1

+ 2 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.yonge.cooleshow.admin.io.request.TeacherBindingUserVo;
 import com.yonge.cooleshow.admin.io.request.coupon.CouponIssueVo;
 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherBindingUserQueryInfo;
+import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.UserBindingTeacherService;
 import com.yonge.cooleshow.biz.dal.vo.userBindingTeacher.UserBindingCourseWrapper;
 import com.yonge.cooleshow.biz.dal.vo.userBindingTeacher.UserBindingTeacherWrapper;
@@ -324,7 +325,7 @@ public class TeacherController extends BaseController {
             return failed("无效的请求参数");
         }
 
-        IPage<MyFens> pages = teacherService.queryMyFans(PageUtil.getPage(query), query.getTeacherId());
+        IPage<MyFens> pages = teacherService.queryMyFans(PageUtil.getPage(query), TeacherQueryInfo.FansQuery.from(query.jsonString()));
 
         // 数据转换
         List<TeacherVO.TeacherFans> responses = JSON.parseArray(JSON.toJSONString(pages.getRecords()),

+ 40 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/teacher/TeacherVO.java

@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -59,8 +60,47 @@ public class TeacherVO {
     @AllArgsConstructor
     public static class TeacherFansQuery extends QueryInfo {
 
+        @ApiModelProperty("搜索条件:昵称/编号/手机号")
+        private String search;
+
         @ApiModelProperty("老师ID")
         private Long teacherId;
+
+        @ApiModelProperty("开始时间")
+        @JsonFormat(pattern = MK.TIME_PATTERN, timezone = MK.TIME_ZONE)
+        private Date startTime;
+
+        @ApiModelProperty("结束时间")
+        @JsonFormat(pattern = MK.TIME_PATTERN, timezone = MK.TIME_ZONE)
+        private Date endTime;
+
+        private String nickname;
+        private Long userId;
+        private String phone;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public void setSearch(String search) {
+            if (StringUtils.isNotEmpty(search)) {
+
+                if (search.matches(MK.EXP_INT)) {
+
+                    if (search.matches(MK.EXP_MOBILE_NUMBER)) {
+
+                        setPhone(search);
+                    } else {
+                        setUserId(Long.parseLong(search));
+                    }
+
+                } else {
+                    // 昵称
+                    setNickname(search);
+                }
+            }
+            this.search = search;
+        }
     }
 
     /**

+ 5 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherDao.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.HotTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.MyFens;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
@@ -88,11 +89,11 @@ public interface TeacherDao extends BaseMapper<Teacher> {
 
     /**
      * 查询我的粉丝
-     * @param page
-     * @param teacherId
-     * @return
+     * @param page IPage<MyFens>
+     * @param query TeacherQueryInfo.FansQuery
+     * @return List<MyFens>
      */
-    List<MyFens> queryMyFans(@Param("page") IPage<MyFens> page, @Param("teacherId") Long teacherId);
+    List<MyFens> queryMyFans(@Param("page") IPage<MyFens> page, @Param("record") TeacherQueryInfo.FansQuery query);
     
     /**
      * 查询热门老师

+ 40 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/TeacherQueryInfo.java

@@ -0,0 +1,40 @@
+package com.yonge.cooleshow.biz.dal.queryInfo;
+
+import com.alibaba.fastjson.JSON;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Created by Eric.Shang on 2022/10/9.
+ */
+public class TeacherQueryInfo {
+
+    /**
+     * 老师粉丝数查询条件
+     */
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class FansQuery implements Serializable {
+
+        private Long teacherId;
+        private Date startTime;
+        private Date endTime;
+        // 昵称
+        private String nickname;
+        // 编号/手机号
+        private Long userId;
+        private String phone;
+
+        public static FansQuery from(String recv) {
+
+            return JSON.parseObject(recv, FansQuery.class);
+        }
+    }
+}

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
+import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -139,6 +140,14 @@ public interface TeacherService extends IService<Teacher> {
     IPage<MyFens> queryMyFans(IPage<MyFens> page, Long teacherId);
 
     /**
+     * 老师粉丝查询
+     * @param page IPage<MyFens>
+     * @param query TeacherQueryInfo.FansQuery
+     * @return IPage<MyFens>
+     */
+    IPage<MyFens> queryMyFans(IPage<MyFens> page, TeacherQueryInfo.FansQuery query);
+
+    /**
      * 设置老师标签
      *
      * @param userId 老师id

+ 16 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -14,6 +14,7 @@ import java.util.stream.Collectors;
 import javax.annotation.Resource;
 
 import com.google.common.collect.Lists;
+import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
 import org.redisson.api.RMap;
@@ -613,7 +614,21 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
 
     public IPage<MyFens> queryMyFans(IPage<MyFens> page, Long teacherId) {
-        List<MyFens> teacherVos = baseMapper.queryMyFans(page, teacherId);
+        List<MyFens> teacherVos = baseMapper.queryMyFans(page, TeacherQueryInfo.FansQuery.builder().teacherId(teacherId).build());
+        return page.setRecords(teacherVos);
+    }
+
+    /**
+     * 老师粉丝查询
+     *
+     * @param page  IPage<MyFens>
+     * @param query TeacherQueryInfo.FansQuery
+     * @return IPage<MyFens>
+     */
+    @Override
+    public IPage<MyFens> queryMyFans(IPage<MyFens> page, TeacherQueryInfo.FansQuery query) {
+
+        List<MyFens> teacherVos = baseMapper.queryMyFans(page, query);
         return page.setRecords(teacherVos);
     }
 

+ 18 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -262,7 +262,24 @@
         FROM student_star s
         LEFT JOIN sys_user u ON s.student_id_ = u.id_
         LEFT JOIN student sr ON s.student_id_ = sr.user_id_
-        WHERE u.del_flag_ = 0 and s.teacher_id_ =#{teacherId}
+        <where>
+            u.del_flag_ = 0
+            <if test="record.teacherId != null">
+                AND s.teacher_id_ =#{record.teacherId}
+            </if>
+            <if test="record.nickname != null">
+                AND u.username_ = #{record.nickname}
+            </if>
+            <if test="record.userId != null">
+                AND u.id_ = #{record.userId}
+            </if>
+            <if test="record.phone != null">
+                AND u.phone_ = #{record.phone}
+            </if>
+            <if test="record.startTime != null and record.endTime != null">
+                AND ( #{record.startTime} &lt;= s.create_time_ AND s.create_time_ &lt;= #{record.endTime})
+            </if>
+        </where>
     </select>
     
     <select id="queryHotTeacherList" resultMap="HotTeacherVoMap">