Explorar el Código

琴房入账修改

liweifan hace 3 años
padre
commit
24c0939623

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/CacheNameEnum.java

@@ -23,9 +23,9 @@ public enum CacheNameEnum implements BaseEnum<String, CacheNameEnum> {
     LOCK_EXECUTE_ORDER("用户下单/付款/取消订单锁"),
     LOCK_RECORD_ACCOUNT("账户记录锁"),
     LOCK_CHANGE_ACCOUNT("账户变更锁"),
+    LOCK_CHANGE_PIANO_ROOM_ACCOUNT("琴房账户变更锁"),
     LOCK_WITHDRAWAL("锁用户结算"),
 
-
     ;
     /***
      * 缓存描述

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentDao.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
@@ -58,9 +59,9 @@ public interface StudentDao extends BaseMapper<Student> {
      * 我的关注
      *
      * @param page
-     * @param studentId
+     * @param query
      * @return
      */
-    List<MyFollow> queryMyFollow(@Param("page") IPage<MyFollow> page, @Param("studentId") Long studentId);
+    List<MyFollow> queryMyFollow(@Param("page") IPage<MyFollow> page, @Param("param") QueryMyFollowSearch query);
 
 }

+ 29 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/QueryMyFollowSearch.java

@@ -0,0 +1,29 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value = "QueryMyFollowSearch")
+public class QueryMyFollowSearch extends QueryInfo {
+    @ApiModelProperty(value = "查询用户id",hidden = true)
+    private Long userId;
+    @ApiModelProperty(value = "老师名称")
+    private String username;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+}

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/PianoRoomTime.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -14,6 +15,7 @@ import java.util.Date;
  * @Date: 2022/5/26
  */
 @ApiModel
+@TableName("piano_room_time")
 public class PianoRoomTime implements Serializable {
     @TableId(value = "id_", type = IdType.AUTO)
     @ApiModelProperty(value = "主键")

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
@@ -75,10 +76,10 @@ public interface StudentService extends IService<Student> {
      * 我的关注
      *
      * @param page
-     * @param studentId
+     * @param query
      * @return
      */
-    IPage<MyFollow> queryMyFollow(IPage<MyFollow> page, Long studentId);
+    IPage<MyFollow> queryMyFollow(IPage<MyFollow> page, QueryMyFollowSearch query);
 
     /**
      * 学院绑定老师

+ 83 - 45
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1123,7 +1123,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             teacherId = payment.getTeacherId();
             studentId = payment.getUserId();
         }
-        if(CollectionUtils.isNotEmpty(teacherSalaryList)){
+        if (CollectionUtils.isNotEmpty(teacherSalaryList)) {
             courseScheduleTeacherSalaryService.getDao().insertBatch(teacherSalaryList);
             log.info("buyPracticeCourseSuccess ok");
             //写老师账户
@@ -1730,18 +1730,21 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 recordDao.insertBatch(records);
 
                 //释放冻结课时
-                List<PianoRoomTime> roomTimeList = new ArrayList<>();
                 Map<Long, List<CourseScheduleRecord>> collect = records.stream().collect(Collectors.groupingBy(CourseScheduleRecord::getTeacherId, Collectors.toList()));
                 collect.forEach((key, list) -> {
-                    PianoRoomTime pianoRoomTime = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, key));
-                    Integer frozenTime = pianoRoomTime.getFrozenTime();
-
-                    PianoRoomTime roomTime = new PianoRoomTime();
-                    roomTime.setTeacherId(key);
-                    roomTime.setFrozenTime(frozenTime - list.stream().mapToInt(CourseScheduleRecord::getConsumTime).sum());
-                    roomTimeList.add(roomTime);
+                    //入琴房账户
+                    DistributedLock.of(redissonClient)
+                            .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(key)
+                                    , (o) -> {
+                                        PianoRoomTime pianoRoomTime = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, key));
+                                        Integer frozenTime = pianoRoomTime.getFrozenTime();
+
+                                        PianoRoomTime roomTime = new PianoRoomTime();
+                                        roomTime.setFrozenTime(frozenTime - list.stream().mapToInt(CourseScheduleRecord::getConsumTime).sum());
+                                        pianoRoomTimeDao.update(roomTime, Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, key));
+                                        return null;
+                                    }, null, 10l);
                 });
-                pianoRoomTimeDao.updateBatch(roomTimeList);
             }
 
             List<CourseScheduleStudentVo> courseList = userList.stream()
@@ -1979,10 +1982,26 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         }
 
         //扣减piano_room_time
-        PianoRoomTime roomTime = new PianoRoomTime();
-        roomTime.setRemainTime(remainTime - consumTime);
-        roomTime.setFrozenTime(frozenTime + consumTime);
-        pianoRoomTimeDao.update(roomTime, Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, teacherId));
+        DistributedLock.of(redissonClient)
+                .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(teacherId)
+                        , (o) -> {
+                            //校验时长
+                            PianoRoomTime pianoRoomTimeLock = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, teacherId));
+                            if (pianoRoomTimeLock == null) {
+                                throw new BizException("未查询到老师剩余时长");
+                            }
+                            Integer remainTimeLock = pianoRoomTimeLock.getRemainTime();
+                            Integer frozenTimeLock = pianoRoomTimeLock.getFrozenTime();
+                            if (consumTime > remainTimeLock) {
+                                throw new BizException("剩余时长不足");
+                            }
+
+                            PianoRoomTime roomTimeLock = new PianoRoomTime();
+                            roomTimeLock.setRemainTime(remainTimeLock - consumTime);
+                            roomTimeLock.setFrozenTime(frozenTimeLock + consumTime);
+                            pianoRoomTimeDao.update(roomTimeLock, Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, teacherId));
+                            return null;
+                        }, null, 10l);
 
         //创建群聊
         try {
@@ -2092,18 +2111,31 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         }
         Integer time = schedule.getSingleCourseTime() * n;//消耗时长 课程数*单课时长*人数
 
-        PianoRoomTime pianoRoomTime = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, teacherId));
-        if (pianoRoomTime == null) {
-            throw new BizException("未查到剩余时长");
-        }
-        if (pianoRoomTime.getFrozenTime() - time < 0) {
-            throw new BizException("冻结时长计算错误");
-        }
-        pianoRoomTimeDao.update(null, Wrappers.<PianoRoomTime>lambdaUpdate()
-                .eq(PianoRoomTime::getTeacherId, teacherId)
-                .set(PianoRoomTime::getRemainTime, pianoRoomTime.getRemainTime() + time)
-                .set(PianoRoomTime::getFrozenTime, pianoRoomTime.getFrozenTime() - time));
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("teacherId", teacherId);
+        paramMap.put("time", time);
 
+        //更新老师琴房时长账户
+        DistributedLock.of(redissonClient)
+                .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(teacherId)
+                        , (objectMap) -> {
+                            Long objectId = Long.parseLong(objectMap.get("teacherId").toString());
+                            Integer objectTime = Integer.parseInt(objectMap.get("time").toString());
+
+                            PianoRoomTime pianoRoomTime = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery()
+                                    .eq(PianoRoomTime::getTeacherId, objectId));
+                            if (pianoRoomTime == null) {
+                                throw new BizException("未查到剩余时长");
+                            }
+                            if (pianoRoomTime.getFrozenTime() - objectTime < 0) {
+                                throw new BizException("冻结时长计算错误");
+                            }
+                            pianoRoomTimeDao.update(null, Wrappers.<PianoRoomTime>lambdaUpdate()
+                                    .eq(PianoRoomTime::getTeacherId, objectId)
+                                    .set(PianoRoomTime::getRemainTime, pianoRoomTime.getRemainTime() + objectTime)
+                                    .set(PianoRoomTime::getFrozenTime, pianoRoomTime.getFrozenTime() - objectTime));
+                            return null;
+                        }, paramMap, 10l);
         //删除课程
         baseMapper.deleteById(courseId);
         //删除payment
@@ -2244,27 +2276,33 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             throw new BizException("未查到排课学员");
         }
 
-        PianoRoomTime pianoRoomTime = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, teacherId));
-        if (pianoRoomTime == null) {
-            throw new BizException("未查到剩余时长");
-        }
-        Integer frozenTime = pianoRoomTime.getFrozenTime();//冻结时长
-        Integer remainTime = pianoRoomTime.getRemainTime();//剩余时长
+        //更新老师琴房时长账户
+        DistributedLock.of(redissonClient)
+                .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(teacherId)
+                        , (o) -> {
+                            PianoRoomTime pianoRoomTime = pianoRoomTimeDao.selectOne(Wrappers.<PianoRoomTime>lambdaQuery().eq(PianoRoomTime::getTeacherId, teacherId));
+                            if (pianoRoomTime == null) {
+                                throw new BizException("未查到剩余时长");
+                            }
+                            Integer frozenTime = pianoRoomTime.getFrozenTime();//冻结时长
+                            Integer remainTime = pianoRoomTime.getRemainTime();//剩余时长
 
-        String formula = sysConfigService.findConfigValue(SysConfigConstant.PIANO_ROOM_TIME_FORMULA);
-        Integer after = (Integer) WrapperUtil.strToFormula(formula, "n", String.valueOf(studentIds.size() + 1));//变更后
-        Integer before = (Integer) WrapperUtil.strToFormula(formula, "n", String.valueOf(paymentList.size() + 1));//变更前
-        if (after == null || before == null) {
-            throw new BizException("公式转换失败");
-        }
-        int diffTime = singleCourseTime * (after - before);//人数变更后单课耗时
-        if (remainTime - diffTime < 0) {
-            throw new BizException("剩余时长不足");
-        }
-        pianoRoomTimeDao.update(null, Wrappers.<PianoRoomTime>lambdaUpdate()
-                .eq(PianoRoomTime::getTeacherId, teacherId)
-                .set(PianoRoomTime::getRemainTime, remainTime - diffTime)
-                .set(PianoRoomTime::getFrozenTime, frozenTime + diffTime));
+                            String formula = sysConfigService.findConfigValue(SysConfigConstant.PIANO_ROOM_TIME_FORMULA);
+                            Integer after = (Integer) WrapperUtil.strToFormula(formula, "n", String.valueOf(studentIds.size() + 1));//变更后
+                            Integer before = (Integer) WrapperUtil.strToFormula(formula, "n", String.valueOf(paymentList.size() + 1));//变更前
+                            if (after == null || before == null) {
+                                throw new BizException("公式转换失败");
+                            }
+                            int diffTime = singleCourseTime * (after - before);//人数变更后单课耗时
+                            if (remainTime - diffTime < 0) {
+                                throw new BizException("剩余时长不足");
+                            }
+                            pianoRoomTimeDao.update(null, Wrappers.<PianoRoomTime>lambdaUpdate()
+                                    .eq(PianoRoomTime::getTeacherId, teacherId)
+                                    .set(PianoRoomTime::getRemainTime, remainTime - diffTime)
+                                    .set(PianoRoomTime::getFrozenTime, frozenTime + diffTime));
+                            return null;
+                        }, null, 10l);
 
         //删除原学员
         paymentDao.delete(Wrappers.<CourseScheduleStudentPayment>lambdaQuery().eq(CourseScheduleStudentPayment::getCourseId, courseId));

+ 24 - 12
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PianoRoomBuyRecordServiceImpl.java

@@ -6,13 +6,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.entity.PianoRoomTime;
 import com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord;
+import com.yonge.cooleshow.biz.dal.entity.UserOrder;
 import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
+import com.yonge.toolset.payment.util.DistributedLock;
+import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
@@ -37,6 +41,8 @@ public class PianoRoomBuyRecordServiceImpl extends ServiceImpl<PianoRoomBuyRecor
     private TeacherService teacherService;
     @Autowired
     private PlatformCashAccountRecordService platformCashAccountRecordService;
+    @Autowired
+    private RedissonClient redissonClient;
 
     @Override
     public PianoRoomBuyRecordVo detail(Long id) {
@@ -83,18 +89,24 @@ public class PianoRoomBuyRecordServiceImpl extends ServiceImpl<PianoRoomBuyRecor
         record.setTimes(detail.getTimes());
         save(record);
 
-        PianoRoomTime pianoRoomTime = pianoRoomTimeService.getOne(Wrappers.<PianoRoomTime>lambdaQuery()
-                .eq(PianoRoomTime::getTeacherId, orderDetailVo.getUserId()));
-        if (null == pianoRoomTime) {
-            pianoRoomTime = new PianoRoomTime();
-            pianoRoomTime.setTeacherId(orderDetailVo.getUserId());
-            pianoRoomTime.setRemainTime(detail.getTimes());
-            pianoRoomTimeService.save(pianoRoomTime);
-        } else {
-            pianoRoomTime.setRemainTime(pianoRoomTime.getRemainTime() + detail.getTimes());
-            pianoRoomTime.setUpdateTime(new Date());
-            pianoRoomTimeService.updateById(pianoRoomTime);
-        }
+        //入琴房账户
+        DistributedLock.of(redissonClient)
+                .runIfLockToFunction(CacheNameEnum.LOCK_CHANGE_PIANO_ROOM_ACCOUNT.getRedisKey(orderDetailVo.getUserId())
+                        , (o) -> {
+                            PianoRoomTime pianoRoomTime = pianoRoomTimeService.getOne(Wrappers.<PianoRoomTime>lambdaQuery()
+                                    .eq(PianoRoomTime::getTeacherId, orderDetailVo.getUserId()));
+                            if (null == pianoRoomTime) {
+                                pianoRoomTime = new PianoRoomTime();
+                                pianoRoomTime.setTeacherId(orderDetailVo.getUserId());
+                                pianoRoomTime.setRemainTime(detail.getTimes());
+                                pianoRoomTimeService.save(pianoRoomTime);
+                            } else {
+                                pianoRoomTime.setRemainTime(pianoRoomTime.getRemainTime() + detail.getTimes());
+                                pianoRoomTime.setUpdateTime(new Date());
+                                pianoRoomTimeService.updateById(pianoRoomTime);
+                            }
+                            return null;
+                        }, null, 10l);
     }
 
 }

+ 10 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -6,11 +6,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.dao.UserBindingTeacherDao;
+import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.UserBindingTeacher;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.service.StudentTotalService;
 import com.yonge.cooleshow.biz.dal.vo.*;
@@ -44,6 +46,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     private StudentService studentService;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private TeacherService teacherService;
 
     @Override
     public StudentVo detail(Long userId) {
@@ -107,8 +111,12 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         return subjectList;
     }
 
-    public IPage<MyFollow> queryMyFollow(IPage<MyFollow> page, Long studentId) {
-        List<MyFollow> teacherVos = baseMapper.queryMyFollow(page, studentId);
+    public IPage<MyFollow> queryMyFollow(IPage<MyFollow> page,  QueryMyFollowSearch query) {
+        List<MyFollow> teacherVos = baseMapper.queryMyFollow(page, query);
+        for(MyFollow myFollow : teacherVos){
+            TeacherHomeVo data = teacherService.queryTeacherHome(query.getUserId(), Long.parseLong(myFollow.getUserId())).getData();
+            myFollow.setTeacher(data);
+        }
         return page.setRecords(teacherVos);
     }
 

+ 11 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MyFollow.java

@@ -9,7 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @Date: 2022/5/12
  */
 public class MyFollow extends BaseEntity {
-    @ApiModelProperty("昵称")
+    @ApiModelProperty("用户id")
     private String userId;
     @ApiModelProperty("昵称")
     private String userName;
@@ -37,6 +37,8 @@ public class MyFollow extends BaseEntity {
     private Integer entryFlag;
     @ApiModelProperty("专业技能")
     private String subjectName;
+    @ApiModelProperty("老师对象")
+    private TeacherHomeVo teacher;
 
     public String getRoomUid() {
         return roomUid;
@@ -147,4 +149,12 @@ public class MyFollow extends BaseEntity {
     public void setSubjectName(String subjectName) {
         this.subjectName = subjectName;
     }
+
+    public TeacherHomeVo getTeacher() {
+        return teacher;
+    }
+
+    public void setTeacher(TeacherHomeVo teacher) {
+        this.teacher = teacher;
+    }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PianoRoomSettingsVo.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 
 import com.yonge.cooleshow.biz.dal.entity.PianoRoomSettings;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * @Author: liweifan
@@ -10,5 +11,4 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "PianoRoomSettingsVo对象", description = "查询视图对象")
 public class PianoRoomSettingsVo extends PianoRoomSettings{
 	private static final long serialVersionUID = 1L;
-
 }

+ 4 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -159,6 +159,9 @@
         LEFT JOIN teacher_total t ON s.teacher_id_ = t.user_id_
         LEFT JOIN teacher tr ON s.teacher_id_ = tr.user_id_
         LEFT JOIN (SELECT room_uid_,speaker_id_ FROM live_room WHERE live_state_=1) r ON t.user_id_= r.speaker_id_
-        WHERE s.student_id_ = #{studentId}
+        WHERE s.student_id_ = #{param.userId}
+        <if test="param.username != null and param.username != ''">
+            and u.username_ LIKE CONCAT('%', #{param.username}, '%')
+        </if>
     </select>
 </mapper>

+ 4 - 3
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.student.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.MyFollow;
@@ -77,13 +78,13 @@ public class StudentController extends BaseController {
 
     @ApiOperation(value = "我的关注")
     @PostMapping(value = "/queryMyFollow")
-    public HttpResponseResult<PageInfo<MyFollow>> queryMyFollow(@RequestBody QueryInfo query) {
+    public HttpResponseResult<PageInfo<MyFollow>> queryMyFollow(@RequestBody QueryMyFollowSearch query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null || sysUser.getId() == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-
-        IPage<MyFollow> pages = studentService.queryMyFollow(PageUtil.getPage(query), sysUser.getId());
+        query.setUserId(sysUser.getId());
+        IPage<MyFollow> pages = studentService.queryMyFollow(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
 

+ 4 - 3
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/StudentController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.website.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
@@ -82,13 +83,13 @@ public class StudentController extends BaseController {
 
     @ApiOperation(value = "我的关注")
     @PostMapping(value = "/queryMyFollow")
-    public HttpResponseResult<PageInfo<MyFollow>> queryMyFollow(@RequestBody QueryInfo query) {
+    public HttpResponseResult<PageInfo<MyFollow>> queryMyFollow(@RequestBody QueryMyFollowSearch query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null || sysUser.getId() == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-
-        IPage<MyFollow> pages = studentService.queryMyFollow(PageUtil.getPage(query), sysUser.getId());
+        query.setUserId(sysUser.getId());
+        IPage<MyFollow> pages = studentService.queryMyFollow(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }