Переглянути джерело

Merge remote-tracking branch 'origin/master'

zouxuan 2 роки тому
батько
коміт
58d27078d3
29 змінених файлів з 314 додано та 145 видалено
  1. 3 3
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java
  2. 1 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java
  3. 15 6
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
  4. 3 3
      cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  5. 1 4
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendSubjectController.java
  6. 4 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java
  7. 13 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java
  8. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/constant/LiveRoomConstant.java
  9. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherWithdrawalSearch.java
  10. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/LiveRoom.java
  11. 63 37
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java
  12. 71 40
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  13. 4 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ContractTemplateMapper.xml
  14. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  15. 8 10
      cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  16. 3 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml
  17. 11 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentStarMapper.xml
  18. 4 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/SysSuggestionMapper.xml
  19. 3 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml
  20. 2 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthMusicianRecordMapper.xml
  21. 6 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  22. 4 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherStyleVideoMapper.xml
  23. 17 15
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserBindingTeacherMapper.xml
  24. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderDetailMapper.xml
  25. 3 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml
  26. 11 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserWithdrawalMapper.xml
  27. 0 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VipCardRecordMapper.xml
  28. 45 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentLiveRoomVideoController.java
  29. 3 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/config/ResourceServerConfig.java

+ 3 - 3
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java

@@ -53,7 +53,7 @@ public class SysUser implements Serializable{
 
 	/** 0-正常,1-删除 */
 	@ApiModelProperty(value = "0-正常,1+ -删除")
-	private Integer delFlag;
+	private Boolean delFlag;
 
 	/** 微信openid */
 	@ApiModelProperty(value = "微信openid")
@@ -204,11 +204,11 @@ public class SysUser implements Serializable{
 		isSuperAdmin = superAdmin;
 	}
 
-	public Integer getDelFlag() {
+	public Boolean getDelFlag() {
 		return delFlag;
 	}
 
-	public void setDelFlag(Integer delFlag) {
+	public void setDelFlag(Boolean delFlag) {
 		this.delFlag = delFlag;
 	}
 

+ 1 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java

@@ -167,5 +167,5 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
                             @Param("username") String username,
                             @Param("avatar") String avatar);
 
-    Integer queryMaxVersionById(@Param("id")Long id);
+    List<SysUser> queryHistoryUserById(@Param("id")Long id);
 }

+ 15 - 6
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -29,6 +29,7 @@ import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.toolset.mybatis.dal.BaseDAO;
 import com.yonge.cooleshow.common.entity.ImUserModel;
 import com.yonge.toolset.base.exception.BizException;
+import org.springframework.util.CollectionUtils;
 
 @Service
 public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implements SysUserService {
@@ -252,13 +253,21 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
 
     @Override
     public void logoffById(Long id) {
-        Integer version = sysUserDao.queryMaxVersionById(id);
-        if(null == version){
-            version = 0;
-        }else{
-            version += 1;
+        List<SysUser> sysUsers = sysUserDao.queryHistoryUserById(id);
+        Integer maxVersion = 0;
+        if (!CollectionUtils.isEmpty(sysUsers)) {
+            for (SysUser sysUser : sysUsers) {
+                String[] split = sysUser.getPhone().split("\\+");
+                if (split.length == 2) {
+                    String version = split[0].substring(1);
+                    if (maxVersion < Integer.parseInt(version)) {
+                        maxVersion = Integer.parseInt(version);
+                    }
+                }
+            }
         }
-        sysUserDao.logoffById(id, version);
+        maxVersion += 1;
+        sysUserDao.logoffById(id, maxVersion);
     }
 
 }

+ 3 - 3
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -269,7 +269,7 @@
         UPDATE im_user_friend SET friend_avatar_ = #{avatar},friend_nickname_ = #{username} WHERE friend_id_ = #{userId}
     </update>
     <update id="logoffById">
-        update sys_user set del_flag_ = ${num}, phone_ = concat('D', ${num}, '+', phone_) where id_ = ${userId}
+        update sys_user set del_flag_ = 1, phone_ = concat('D', ${num}, '+', phone_) where id_ = ${userId}
     </update>
     <select id="queryEmployeeList" resultMap="SysUser">
         select  su.*
@@ -286,8 +286,8 @@
         </where>
     </select>
 
-    <select id="queryMaxVersionById" resultType="java.lang.Integer">
-        select max(del_flag_) from sys_user
+    <select id="queryHistoryUserById" resultMap="SysUser">
+        select * from sys_user
         where phone_ like CONCAT('%',(select phone_ from sys_user where id_ = #{id} and del_flag_ = 0),'%')
     </select>
 

+ 1 - 4
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendSubjectController.java

@@ -61,10 +61,7 @@ public class SmsHomeRecommendSubjectController {
     @ResponseBody
     public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
         int count = recommendSubjectService.updateRecommendStatus(ids, recommendStatus);
-        if (count > 0) {
-            return CommonResult.success(count);
-        }
-        return CommonResult.failed();
+        return CommonResult.success(count);
     }
 
     @ApiOperation("分页查询推荐")

+ 4 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -73,6 +73,10 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
     public int delete(List<Long> ids) {
         OmsOrderReturnApplyExample example = new OmsOrderReturnApplyExample();
         example.createCriteria().andIdIn(ids).andStatusEqualTo(3);
+        List<OmsOrderReturnApply> omsOrderReturnApplies = returnApplyMapper.selectByExample(example);
+        if (omsOrderReturnApplies.size() != ids.size()) {
+            throw new BizException("只能删除已拒绝的退货订单");
+        }
         return returnApplyMapper.deleteByExample(example);
     }
 

+ 13 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java

@@ -186,15 +186,24 @@ public class OmsOrderServiceImpl implements OmsOrderService {
     public HomeStatistical countStatistical() {
         // 订单状态
         HomeStatistical homeStatistical = orderDao.selectOrderStatusNum();
+        if (homeStatistical == null) {
+            homeStatistical = new HomeStatistical();
+        }
 
         // 缺货登记   库存紧张
         HomeStatistical stock = productService.countLowStockCount();
+        if (stock == null) {
+            stock = new HomeStatistical();
+        }
 
         homeStatistical.setOutStock(stock.getOutStock());
         homeStatistical.setOutStockProduct(stock.getOutStockProduct());
 
         // 待处理退款申请  待处理退货订单
         HomeStatistical returnInfo = orderReturnApplyService.countReturnStatus();
+        if (returnInfo == null) {
+            returnInfo = new HomeStatistical();
+        }
 
         homeStatistical.setWaitDisposeRefund(returnInfo.getWaitDisposeRefund());
         homeStatistical.setWaitDisposeRefundOrder(returnInfo.getWaitDisposeRefundOrder());
@@ -202,6 +211,10 @@ public class OmsOrderServiceImpl implements OmsOrderService {
         // 已下架 已上架 全部商品
         HomeStatistical product = productService.countProductShowStatus();
 
+        if (product == null) {
+            product = new HomeStatistical();
+        }
+
         homeStatistical.setShelves(product.getShelves());
         homeStatistical.setDelisted(product.getDelisted());
         homeStatistical.setProductNum(product.getProductNum());

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/constant/LiveRoomConstant.java

@@ -35,4 +35,7 @@ public interface LiveRoomConstant {
     //当前房间心跳
     String LIVE_ROOM_HEART_BEAT = String.join(":", COOLESHOW, "LIVE_ROOM_HEART_BEAT", ROOM_UID);
 
+    //正在临时直播间的房间列表
+    String TEACHER_TEMP_LIVE_ROOM = String.join(":", COOLESHOW, "TEACHER_TEMP_LIVE_ROOM");
+
 }

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

@@ -37,6 +37,8 @@ public class TeacherWithdrawalSearch extends QueryInfo{
 
 	@ApiModelProperty("查询时间(yyyy-MM) ")
 	private String searchDate;
+	@ApiModelProperty("APP提现状态 DOING、审核中 PASS、结算成功 UNPASS、结算失败 ")
+	private String status;
 
 	private Long userId;
 
@@ -111,4 +113,12 @@ public class TeacherWithdrawalSearch extends QueryInfo{
 	public void setVerifyUser(String verifyUser) {
 		this.verifyUser = verifyUser;
 	}
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/LiveRoom.java

@@ -63,7 +63,7 @@ public class LiveRoom implements Serializable {
     private Integer roomState;
 
     @TableField("type_")
-    @ApiModelProperty(value = "房间类型 live直播课  temp临时直播间 practice陪练课")
+    @ApiModelProperty(value = "房间类型 live直播课  temp临时直播间")
     private String type;
 
     @TableField("cover_pic_")

+ 63 - 37
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -35,6 +35,7 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.function.BiFunction;
 import java.util.function.BiPredicate;
+import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -302,6 +303,9 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         this.createLiveRoomInfo(room, sysUser);
         //临时
         this.pushLiveCreateRoom(room);
+        //写入临时直播间列表
+        RMap<Long, String> map = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
+        map.put(teacherId, roomUid);
         return roomUid;
     }
 
@@ -447,23 +451,6 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         String speakerIdStr = room.getSpeakerId().toString();
         String roomUid = room.getRoomUid();
 
-        //删除房间全部人员缓存
-        this.getTotalUserCache(roomUid).deleteAsync();
-        //获取在线人员信息
-        RMap<Long, String> onlineUserCache = this.getOnlineUserCache(roomUid);
-        //删除人员对应直播间编号信息
-        onlineUserCache.forEach((id, s) -> redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, id.toString())).deleteAsync());
-        //删除房间在线人员缓存
-        onlineUserCache.deleteAsync();
-        //删除房间信息
-        this.getLiveRoomInfo(room.getRoomUid()).deleteAsync();
-        //删除点赞数
-        redissonClient.getBucket(LIVE_ROOM_LIKE.replace(ROOM_UID, room.getRoomUid())).deleteAsync();
-        //删除当前主讲人最后一次进入房间的ip
-        redissonClient.getBucket(LIVE_USER_LAST_CLIENT_IP.replace(ROOM_UID, roomUid).replace(USER_ID, speakerIdStr)).deleteAsync();
-        //删除当前主讲人最后一次心跳
-        redissonClient.getBucket(LIVE_ROOM_HEART_BEAT.replace(ROOM_UID, roomUid)).deleteAsync();
-
         //关闭直播间发送消息
         ImRoomMessage message = new ImRoomMessage();
         message.setFromUserId(speakerIdStr);
@@ -476,8 +463,43 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         } catch (Exception e) {
             log.error("destroyLiveRoom>>>>  FORCED_OFFLINE {}", e.getMessage());
         }
-        //删除房间
-//        this.ImDestroyLiveRoom(room.getRoomUid());
+
+        Date now = new Date();
+        //删除人员与房间关联关系缓存的方法
+        Consumer<String> deleteUserRoomCache = (id) -> redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, id)).deleteAsync();
+        //给老师签退
+        teacherAttendanceService.update(Wrappers.<TeacherAttendance>lambdaUpdate()
+                .eq(TeacherAttendance::getTeacherId, room.getSpeakerId())
+                .eq(TeacherAttendance::getCourseScheduleId, room.getCourseId())
+                .set(TeacherAttendance::getSignOutTime, now));
+        //删除老师与房间关联关系
+        deleteUserRoomCache.accept(speakerIdStr);
+        //获取在线人员信息
+        RMap<Long, String> onlineUserCache = this.getOnlineUserCache(roomUid);
+        onlineUserCache.forEach((id, s) -> {
+            //删除观看者对应直播间编号的缓存
+            deleteUserRoomCache.accept(id.toString());
+            //观看者签退
+            studentAttendanceService.update(Wrappers.<StudentAttendance>lambdaUpdate()
+                    .eq(StudentAttendance::getStudentId, id)
+                    .eq(StudentAttendance::getCourseScheduleId, room.getCourseId())
+                    .set(StudentAttendance::getSignOutTime, now));
+        });
+        //删除房间在线人员缓存
+        onlineUserCache.deleteAsync();
+        //删除房间信息
+        this.getLiveRoomInfo(roomUid).deleteAsync();
+        //删除点赞数
+        redissonClient.getBucket(LIVE_ROOM_LIKE.replace(ROOM_UID, roomUid)).deleteAsync();
+        //删除当前主讲人最后一次进入房间的ip
+        redissonClient.getBucket(LIVE_USER_LAST_CLIENT_IP.replace(ROOM_UID, roomUid).replace(USER_ID, speakerIdStr)).deleteAsync();
+        //删除当前主讲人最后一次心跳
+        redissonClient.getBucket(LIVE_ROOM_HEART_BEAT.replace(ROOM_UID, roomUid)).deleteAsync();
+        //删除房间全部人员缓存
+        this.getTotalUserCache(roomUid).deleteAsync();
+        //删除该临时直播间列表
+        RMap<Long, String> map = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
+        map.remove(room.getSpeakerId());
     }
 
     /**
@@ -513,10 +535,17 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             if (StringUtils.isBlank(user.getStatus())) {
                 return;
             }
+            String userIdStr = user.getUserid();
+            //获取当前用户所在房间的uid
+            RBucket<String> userRoom = redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userIdStr));
+            if (!userRoom.isExists()) {
+                return;
+            }
+            String roomUid = userRoom.get();
+
             Date now = new Date();
             //获取当前用户状态变更的时间
             long userStateTime = Optional.ofNullable(user.getTime()).orElse(now.getTime());
-            String userIdStr = user.getUserid();
             RBucket<Long> userStateTimeCache = redissonClient.getBucket(LIVE_USER_LAST_TIME.replace(USER_ID, userIdStr));
             if (userStateTimeCache.isExists()) {
                 //缓存的时间比当前传入时间大则放弃这条数据
@@ -526,13 +555,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                 }
             }
             //将最新的时间写入缓存
-            userStateTimeCache.set(userStateTime, 5L, TimeUnit.MINUTES);
-            //获取当前用户所在房间的uid
-            RBucket<String> userRoom = redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userIdStr));
-            if (!userRoom.isExists()) {
-                return;
-            }
-            String roomUid = userRoom.get();
+            userStateTimeCache.set(userStateTime, 60L, TimeUnit.MINUTES);
             //根据房间号获取房间信息
             RBucket<RoomInfoCache> roomInfoCache = this.getLiveRoomInfo(roomUid);
             if (!roomInfoCache.isExists()) {
@@ -541,7 +564,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             RoomInfoCache roomInfo = roomInfoCache.get();
             // 查询userId是不是主讲人 ,如果是主讲人则返回
             if (roomInfo.getSpeakerId().toString().equals(userIdStr)) {
-                opsSpeaker(roomInfoCache, user, now, userIdStr);
+                this.opsSpeaker(roomInfoCache, user, now, userIdStr);
                 return;
             }
             //这里开始只处理观看者的数据,观看者只接受退出消息 status=0 是进入房间
@@ -553,7 +576,10 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             //从房间累计用户信息中查询该用户的信息
             RMap<Long, String> roomTotalUser = this.getTotalUserCache(roomUid);
             //该房间未查询到用户数据则不处理
-            if (!roomTotalUser.isExists() && !roomTotalUser.containsKey(userId)) {
+            if (!roomTotalUser.isExists()) {
+                return;
+            }
+            if (!roomTotalUser.containsKey(userId)) {
                 return;
             }
             //查询用户数据
@@ -569,13 +595,10 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             //从在线人员列表删除该人员
             onlineUserInfo.fastRemove(userId);
             //学员退出 写学生考勤表
-            StudentAttendance studentAttendance = studentAttendanceService.getOne(Wrappers.<StudentAttendance>lambdaQuery()
+            studentAttendanceService.update(Wrappers.<StudentAttendance>lambdaUpdate()
                     .eq(StudentAttendance::getStudentId, userId)
-                    .eq(StudentAttendance::getCourseScheduleId, roomInfo.getCourseId()));
-            if (Objects.nonNull(studentAttendance)) {
-                studentAttendance.setSignOutTime(now);
-                studentAttendanceService.updateById(studentAttendance);
-            }
+                    .eq(StudentAttendance::getCourseScheduleId, roomInfo.getCourseId())
+                    .set(StudentAttendance::getSignOutTime, now));
             //向直播间发送当前在线人数消息
             this.sendOnlineUserCount(roomUid, userId, onlineUserInfo.size());
             log.info("opsRoom>>>> looker userInfo: {}", userJsonStr);
@@ -713,6 +736,8 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
      * @param userId  用户id 观看者id
      */
     public RoomInfoCache joinRoom(String roomUid, Long userId) {
+        Optional.ofNullable(roomUid).orElseThrow(() -> new BizException("房间编号不能为空!"));
+        Optional.ofNullable(userId).orElseThrow(() -> new BizException("人员编号不能为空!"));
         //获取进入房间人员信息
         SysUser sysUser = this.getSysUser(userId);
         //校验信息
@@ -731,9 +756,9 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             userInfo.setUserId(sysUser.getId());
             userInfo.setUserName(sysUser.getRealName());
             userInfo.setFirstJoinTime(now);
-            //查询学生是否有进入过,没有则写学生考勤表的进入时间
-            this.setStudentAttendance(userId, roomInfo.getCourseGroupId(), roomInfo.getCourseId());
         }
+        //查询学生是否有进入过,没有则写学生考勤表的进入时间
+        this.setStudentAttendance(userId, roomInfo.getCourseGroupId(), roomInfo.getCourseId());
         userInfo.setDynamicJoinTime(now);
         //用户json信息
         String userJsonStr = JSONObject.toJSONString(userInfo);
@@ -812,6 +837,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             studentAttendance.setSignInTime(now);
             studentAttendance.setCreateTime(now);
             studentAttendanceService.save(studentAttendance);
+            log.info("SignInTime >>>  user {} courseId {}", studentId, courseId);
         }
     }
 

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

@@ -26,6 +26,7 @@ import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 import com.yonge.toolset.utils.string.ValueUtil;
 import org.apache.commons.beanutils.BeanUtils;
+import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -37,6 +38,8 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
+import static com.yonge.cooleshow.biz.dal.constant.LiveRoomConstant.TEACHER_TEMP_LIVE_ROOM;
+
 @Service
 public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> implements TeacherService {
     @Autowired
@@ -147,6 +150,16 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         teacherHomeVo.setUnExpTime(null == total.getUnExpTime() ? 0 : total.getUnExpTime());
         teacherHomeVo.setMusicAlbumNum(null == total.getMusicAlbumNum() ? 0 : total.getMusicAlbumNum());
         teacherHomeVo.setMusicSheetNum(null == total.getMusicSheetNum() ? 0 : total.getMusicSheetNum());
+
+        //取直播缓存
+        RMap<Long, String> liveMap = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
+        String roomUid = liveMap.get(userId);
+        if (!StringUtil.isEmpty(roomUid)) {
+            teacherHomeVo.setLiveing(YesOrNoEnum.YES);
+            teacherHomeVo.setRoomUid(roomUid);
+        } else {
+            teacherHomeVo.setLiveing(YesOrNoEnum.NO);
+        }
         return HttpResponseResult.succeed(teacherHomeVo);
     }
 
@@ -181,13 +194,32 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         return subjects;
     }
 
+
     private HttpResponseResult<Boolean> doCreate(TeacherSubmitReq teacherSubmitReq) throws BizException {
-        //判断手机号
+        //更新sys_user
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
-        if (null != sysUser) {
-            return HttpResponseResult.failed("该手机号已经被注册");
+        if (null == sysUser) {
+            sysUser = insertSysUser(teacherSubmitReq);
+            teacherSubmitReq.setUserId(sysUser.getId());
+        } else {
+            teacherSubmitReq.setUserId(sysUser.getId());
+            updateSysUser(teacherSubmitReq);
         }
-        sysUser = new SysUser();
+        //新增修改老师表
+        insertOrUpdateTeacher(teacherSubmitReq);
+        return HttpResponseResult.succeed(true);
+    }
+
+    private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
+        //更新sys_user
+        updateSysUser(teacherSubmitReq);
+        //新增修改老师表
+        insertOrUpdateTeacher(teacherSubmitReq);
+        return HttpResponseResult.succeed(true);
+    }
+
+    private SysUser insertSysUser(TeacherSubmitReq teacherSubmitReq) {
+        SysUser sysUser = new SysUser();
         sysUser = getUserDetil(sysUser, teacherSubmitReq);
         sysUser.setUserType(SysUserType.TEACHER.getCode());
         //初始密码,手机号后6位
@@ -201,49 +233,54 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         //设置昵称
         sysUser.setUsername("游客" + sysUser.getId());
         employeeDao.updateSysUser(sysUser);
-        //插入老师表
-
-        Teacher teacher = new Teacher();
-        teacher.setUserId(sysUser.getId());
-        teacher = getTeacherDetil(teacher, teacherSubmitReq);
-        baseMapper.insert(teacher);
-        //插入老师账户表
-        UserAccount oldAcc = userAccountService.getById(sysUser.getId());
-        if (null == oldAcc) {
-            UserAccount userAccount = new UserAccount();
-            userAccount.setUserId(sysUser.getId());
-            userAccountService.save(userAccount);
-        }
-        return HttpResponseResult.succeed(true);
+        return sysUser;
     }
 
-    private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
+    private SysUser updateSysUser(TeacherSubmitReq teacherSubmitReq) {
         //判断手机号
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
         if (null != sysUser && !teacherSubmitReq.getUserId().equals(sysUser.getId())) {
-            return HttpResponseResult.failed("该手机号已经被注册");
+            throw new BizException("该手机号已经被注册");
         }
         sysUser = employeeDao.querySysUserById(teacherSubmitReq.getUserId());
         if (null == sysUser) {
-            return HttpResponseResult.failed("未找到用户");
+            throw new BizException("未找到用户");
         }
         sysUser = getUserDetil(sysUser, teacherSubmitReq);
+        sysUser.setUpdateTime(new Date());
+        employeeDao.updateSysUser(sysUser);
+        return sysUser;
+    }
 
+    private Teacher insertOrUpdateTeacher(TeacherSubmitReq teacherSubmitReq) {
         Teacher teacher = baseMapper.selectById(teacherSubmitReq.getUserId());
-        teacher = getTeacherDetil(teacher, teacherSubmitReq);
-        teacher.setUpdateTime(new Date());
-        baseMapper.updateById(teacher);
-        if (null == teacher.getEntryAuthDate() || null == teacher.getMusicianDate()) {
-            baseMapper.update(teacher, Wrappers.<Teacher>lambdaUpdate()
-                    .set(Teacher::getEntryAuthDate, teacher.getEntryAuthDate())
-                    .set(Teacher::getMusicianDate, teacher.getMusicianDate())
-                    .eq(Teacher::getUserId, teacher.getUserId())
-            );
+        if (null == teacher) {
+            teacher = new Teacher();
+            teacher.setUserId(teacherSubmitReq.getUserId());
+            teacher = getTeacherDetil(teacher, teacherSubmitReq);
+            baseMapper.insert(teacher);
+
+            //插入老师账户表
+            UserAccount oldAcc = userAccountService.getById(teacherSubmitReq.getUserId());
+            if (null == oldAcc) {
+                UserAccount userAccount = new UserAccount();
+                userAccount.setUserId(teacherSubmitReq.getUserId());
+                userAccountService.save(userAccount);
+            }
+        } else {
+            teacher.setUpdateTime(new Date());
+            baseMapper.updateById(teacher);
+
+            if (null == teacher.getEntryAuthDate() || null == teacher.getMusicianDate()) {
+                baseMapper.update(teacher, Wrappers.<Teacher>lambdaUpdate()
+                        .set(Teacher::getEntryAuthDate, teacher.getEntryAuthDate())
+                        .set(Teacher::getMusicianDate, teacher.getMusicianDate())
+                        .eq(Teacher::getUserId, teacher.getUserId())
+                );
+            }
         }
 
-        sysUser.setUpdateTime(new Date());
-        employeeDao.updateSysUser(sysUser);
-        return HttpResponseResult.succeed(true);
+        return teacher;
     }
 
     /***
@@ -322,13 +359,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         if (null == data) {
             return HttpResponseResult.failed("未查询到用户信息");
         }
-        LiveRoom liveRoom = liveRoomService.getLiveInRoomBySpeakerId(teacherId);
-        if (null != liveRoom) {
-            data.setRoomUid(liveRoom.getRoomUid());
-            data.setLiveing(YesOrNoEnum.YES);
-        } else {
-            data.setLiveing(YesOrNoEnum.NO);
-        }
+
         if (null != studentId) {
             StudentStar studentStar = studentStarService.getByStudentIdAndTeacherId(studentId, teacherId);
             if (null == studentStar) {

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

@@ -119,7 +119,10 @@
 
 	<!-- 分页查询 -->
 	<select id="queryPageList" resultMap="ContractTemplateDto" parameterType="map">
-		SELECT tct.*,ifnull(u.real_name_,u.username_) latest_operator_ FROM contract_template tct left join sys_user u on tct.modify_by_ = u.id_
+		SELECT
+		       tct.*,ifnull(u.real_name_,u.username_) latest_operator_
+		FROM contract_template tct
+		left join sys_user u on tct.modify_by_ = u.id_
 		<where>
 			<if test="status != null">
 				and tct.status_ = #{status}

+ 1 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -70,6 +70,7 @@
         left join subject as s on b.subject_id_ = s.id_
         left join sys_user as u on b.teacher_id_ = u.id_
         <where>
+            u.del_flag_ = 0
             <if test="param.teacherId != null">
                 and b.teacher_id_ = #{param.teacherId}
             </if>

+ 8 - 10
cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -68,7 +68,7 @@
             gender_ as gender
         FROM employee t
         left join sys_user u on t.user_id_ = u.id_
-        where t.user_id_ = #{id}
+        where u.del_flag_ = 0 and t.user_id_ = #{id}
     </select>
 
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.EmployeeVo">
@@ -81,6 +81,7 @@
         FROM employee t
         left join sys_user u on t.user_id_ = u.id_
         <where>
+            u.del_flag_ = 0
             <if test="null != param.search and '' != param.search">
                 AND (
                 t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
@@ -115,9 +116,6 @@
     <update id="updateSysUser" parameterType="com.yonge.cooleshow.auth.api.entity.SysUser">
         UPDATE sys_user
         <set>
-            <if test="delFlag != null">
-                del_flag_ = #{delFlag},
-            </if>
             <if test="wxOpenid != null and wxOpenid != ''">
                 wx_openid_ = #{wxOpenid},
             </if>
@@ -179,7 +177,7 @@
                 certificate_type_ = #{certificateType},
             </if>
         </set>
-        WHERE id_ = #{id}
+        WHERE del_flag_ = 0 and id_ = #{id}
     </update>
 
     <insert id="insert" parameterType="com.yonge.cooleshow.biz.dal.entity.Employee" useGeneratedKeys="true" keyColumn="id"
@@ -251,15 +249,15 @@
     </insert>
 
     <select id="querySysUserByPhoneAndLock" resultMap="SysUser">
-		select * from sys_user where phone_ = #{phone} OR username_ = #{phone} LIMIT 1 FOR UPDATE
+		select * from sys_user where del_flag_ = 0 and (phone_ = #{phone} OR username_ = #{phone}) LIMIT 1 FOR UPDATE
 	</select>
 
     <select id="querySysUserByPhone" resultMap="SysUser">
-		select * from sys_user where phone_ = #{phone} OR username_ = #{phone}
+		select * from sys_user where del_flag_ = 0 and (phone_ = #{phone} OR username_ = #{phone})
 	</select>
 
     <select id="querySysUserById" resultMap="SysUser">
-		select * from sys_user where id_ = #{id}
+		select * from sys_user where del_flag_ = 0 and id_ = #{id}
 	</select>
 
     <update id="updateUserDemissionDate">
@@ -294,7 +292,7 @@
     </insert>
 
     <update id="updatePasswordReq">
-        UPDATE sys_user SET password_ = #{password} WHERE id_ = #{userID}
+        UPDATE sys_user SET password_ = #{password} WHERE del_flag_ = 0 and id_ = #{userID}
     </update>
 
     <!-- 根据主键删除一条记录 -->
@@ -311,7 +309,7 @@
 
 
     <select id="getUsers" resultMap="SysUser">
-        select * from sys_user where id_ IN
+        select * from sys_user where del_flag_ = 0 and id_ IN
         <foreach collection="userIds" open="(" close=")" separator="," item="userId">
             #{userId}
         </foreach>

+ 3 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -49,7 +49,7 @@
             u.user_type_ as userType
         FROM student t
         left join sys_user u on t.user_id_ = u.id_
-        where t.user_id_ = #{userId}
+        where u.del_flag_ = 0 and t.user_id_ = #{userId}
     </select>
     <select id="detailByPhone" resultType="com.yonge.cooleshow.biz.dal.vo.StudentVo">
         SELECT
@@ -70,7 +70,7 @@
             u.user_type_ as userType
         FROM student t
         left join sys_user u on t.user_id_ = u.id_
-        where u.phone_ = #{phone}
+        where u.del_flag_ = 0 and u.phone_ = #{phone}
     </select>
     <!-- 分页查询 -->
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.StudentVo">
@@ -89,6 +89,7 @@
         FROM student t
         left join sys_user u on t.user_id_ = u.id_
         <where>
+            u.del_flag_ = 0
             <if test="null != param.search and '' != param.search">
                 AND (
                     t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or

+ 11 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentStarMapper.xml

@@ -19,13 +19,20 @@
 			t.teacher_id_ as userId,
 			count(1) as fansNum
 		from student_star t
+		left join sys_user us on t.teacher_id_ = us.id_
+		left join sys_user ut on t.student_id_ = ut.id_
+		where us.del_flag_ = 0 and ut.del_flag_ = 0
 		group by t.teacher_id_
 	</select>
+
     <select id="queryStudentTotal" resultType="com.yonge.cooleshow.biz.dal.vo.StudentTotalVo">
 		select
 			t.student_id_ as userId,
 			count(1) as starTeacherNum
 		from student_star t
+		left join sys_user us on t.teacher_id_ = us.id_
+		left join sys_user ut on t.student_id_ = ut.id_
+		where us.del_flag_ = 0 and ut.del_flag_ = 0
 		group by t.student_id_
 	</select>
 
@@ -33,6 +40,9 @@
 		select
 			<include refid="baseColumns"/>
 		from student_star t
-		where t.student_id_ = #{studentId} and t.teacher_id_ = #{teacherId}
+		left join sys_user us on t.teacher_id_ = us.id_
+		left join sys_user ut on t.student_id_ = ut.id_
+		where us.del_flag_ = 0 and ut.del_flag_ = 0
+		and t.student_id_ = #{studentId} and t.teacher_id_ = #{teacherId}
 	</select>
 </mapper>

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

@@ -72,6 +72,7 @@
 
     <sql id="queryCondition">
         <where>
+            su.del_flag_ = 0
             <if test="type!=null">
                 AND ss.type_ = #{type, typeHandler=com.yonge.toolset.mybatis.dal.CustomEnumTypeHandler}
             </if>
@@ -92,7 +93,9 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysSuggestion" parameterType="map">
-        SELECT ss.*,CASE WHEN ss.client_type_='STUDENT' THEN su.username_ ELSE su.real_name_ END username_ FROM sys_suggestion ss
+        SELECT ss.*,
+               CASE WHEN ss.client_type_='STUDENT' THEN su.username_ ELSE su.real_name_ END username_
+        FROM sys_suggestion ss
         LEFT JOIN sys_user su ON su.id_ = ss.user_id_
         <include refid="queryCondition" />
         ORDER BY ss.id_ DESC

+ 3 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthEntryRecordMapper.xml

@@ -52,6 +52,7 @@
         left join sys_user u on t.user_id_ = u.id_
         left join sys_user v on t.verify_user_id_ = v.id_
         <where>
+            u.del_flag_ = 0
             <if test="null != param.search and '' != param.search">
                 AND (
                     t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
@@ -90,7 +91,7 @@
             ) as verifyUser
         from teacher_auth_entry_record t
         left join sys_user u on t.user_id_ = u.id_
-        where t.id_ = #{id}
+        where u.del_flag_ = 0 and t.id_ = #{id}
     </select>
     <select id="getLastRecordByUserId" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo">
         select
@@ -106,7 +107,7 @@
             ) as verifyUser
         from teacher_auth_entry_record t
         left join sys_user u on t.user_id_ = u.id_
-        where t.user_id_ = #{userId}
+        where u.del_flag_ = 0 and t.user_id_ = #{userId}
 		order by t.create_time_ desc limit 1
     </select>
 </mapper>

+ 2 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherAuthMusicianRecordMapper.xml

@@ -44,7 +44,7 @@
         from teacher_auth_musician_record t
         left join teacher_auth_entry_record te on t.user_id_ = te.user_id_ and te.teacher_auth_status_ in ('DOING','PASS')
         left join sys_user u on t.user_id_ = u.id_
-        where t.id_ = #{id}
+        where u.del_flag_ = 0 and t.id_ = #{id}
     </select>
 
     <!-- 分页查询 -->
@@ -59,6 +59,7 @@
         left join sys_user u on t.user_id_ = u.id_
         left join sys_user v on t.verify_user_id_ = v.id_
         <where>
+            u.del_flag_ = 0
             <if test="null != param.search and '' != param.search">
                 AND (
                 t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or

+ 6 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -65,6 +65,7 @@
             select distinct user_id_ from user_bank_card where del_flag_ = 0
         ) b on t.user_id_ = b.user_id_
         <where>
+            u.del_flag_ = 0
             <if test="null != param.search and '' != param.search">
                 AND (
                 t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
@@ -96,12 +97,13 @@
 		<result property="avatar" column="avatar_"/>
 	</resultMap>
 	<select id="getBasicUserInfo" resultMap="BasicUserInfo">
-		SELECT id_ user_id_,username_,real_name_,avatar_ FROM sys_user WHERE id_ = #{userId} LIMIT 1
+		SELECT id_ user_id_,username_,real_name_,avatar_ FROM sys_user
+		WHERE del_flag_ = 0 and id_ = #{userId} LIMIT 1
 	</select>
 
 	<select id="findBasicUserInfo" resultMap="BasicUserInfo">
 		SELECT id_ user_id_,username_,real_name_,avatar_ FROM sys_user
-		WHERE id_ IN
+		WHERE del_flag_ = 0 and id_ IN
 		<foreach collection="studentIds" open="(" close=")" separator="," item="userId">
 			#{userId}
 		</foreach>
@@ -129,7 +131,7 @@
         left join (
             select distinct user_id_ from user_bank_card where del_flag_ = 0 and user_id_ = #{userId}
         ) b on t.user_id_ = b.user_id_
-        where t.user_id_ = #{userId}
+        where u.del_flag_ = 0 and t.user_id_ = #{userId}
     </select>
 
     <select id="querySubject" resultMap="com.yonge.cooleshow.biz.dal.dao.SubjectDao.Subject">
@@ -171,6 +173,6 @@
         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 s.teacher_id_ =#{teacherId}
+        WHERE u.del_flag_ = 0 and s.teacher_id_ =#{teacherId}
     </select>
 </mapper>

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

@@ -41,7 +41,7 @@
 		FROM teacher_style_video t
 		left join sys_user u on t.user_id_ = u.id_
 		left join sys_user v on t.verify_user_id_ = v.id_
-		where t.id_ = #{id}
+		where u.del_flag_ = 0 and t.id_ = #{id}
 	</select>
 
 	<select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo">
@@ -53,7 +53,7 @@
 		FROM teacher_style_video t
 		left join sys_user u on t.user_id_ = u.id_
 		left join sys_user v on t.verify_user_id_ = v.id_
-		where t.del_flag_ = 0
+		where t.del_flag_ = 0 and u.del_flag_ = 0
 		<if test="null != param.search and '' != param.search">
 			AND (
 			t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
@@ -81,7 +81,7 @@
 		SELECT
 			<include refid="baseColumns"/>
 		FROM teacher_style_video t
-		WHERE t.del_flag_ = '0' and t.user_id_ = #{userId}
+		WHERE t.del_flag_ = 0 and t.user_id_ = #{userId}
 	</select>
 
 	<update id="removeByUserIdAndOldIds">
@@ -105,7 +105,7 @@
 		LEFT JOIN teacher a on t.user_id_ = a.user_id_
 		LEFT JOIN sys_user u on t.user_id_ = u.id_
 		LEFT JOIN teacher_total ta on t.user_id_ = ta.user_id_
-		where t.del_flag_ = 0 and t.auth_status_ = 'PASS'
+		where t.del_flag_ = 0 and u.del_flag_ = 0 and t.auth_status_ = 'PASS'
 		<if test="param.username != null and param.username != ''">
 			AND u.username_ LIKE CONCAT('%', #{param.username}, '%')
 		</if>

+ 17 - 15
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserBindingTeacherMapper.xml

@@ -14,21 +14,22 @@
         LEFT JOIN sys_user su ON b.student_id_=su.id_
         LEFT JOIN student s ON b.student_id_=s.user_id_
         <where>
-        <if test="param.subjectId != null">
-           AND find_in_set(#{param.subjectId},s.subject_id_)
-        </if>
-        <if test="param.teacherId !=null">
-            AND b.teacher_id_ = #{param.teacherId}
-        </if>
-        <if test="param.userName !=null and param.userName !=''">
-            AND su.username_ LIKE CONCAT('%', #{param.userName}, '%')
-        </if>
-        <if test="param.studentList !=null and param.studentList.size>0">
-            AND su.id_ IN
-            <foreach collection="param.studentList" item="item" open="(" separator="," close=")">
-                #{item.userId}
-            </foreach>
-        </if>
+            su.del_flag_ = 0
+            <if test="param.subjectId != null">
+               AND find_in_set(#{param.subjectId},s.subject_id_)
+            </if>
+            <if test="param.teacherId !=null">
+                AND b.teacher_id_ = #{param.teacherId}
+            </if>
+            <if test="param.userName !=null and param.userName !=''">
+                AND su.username_ LIKE CONCAT('%', #{param.userName}, '%')
+            </if>
+            <if test="param.studentList !=null and param.studentList.size>0">
+                AND su.id_ IN
+                <foreach collection="param.studentList" item="item" open="(" separator="," close=")">
+                    #{item.userId}
+                </foreach>
+            </if>
         </where>
     </select>
 
@@ -78,6 +79,7 @@
         ) a
         left join teacher t on a.teacher_id_ = t.user_id_
         left join sys_user u on t.user_id_ = u.id_
+        where u.del_flag_ = 0
     </select>
 
 

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

@@ -97,7 +97,7 @@
         FROM user_order_detail t
         left join sys_user u on t.merch_id_ = u.id_
         left join teacher_total a on t.merch_id_ = a.user_id_
-        where t.order_no_ = #{orderNo}
+        where u.del_flag_ = 0 and t.order_no_ = #{orderNo}
     </select>
 
 </mapper>

+ 3 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml

@@ -56,7 +56,7 @@
         FROM user_order t
         left join user_order_payment p on t.order_no_ = p.order_no_ and (p.status_ = 'pending' or p.status_ = 'succeeded')
         left join sys_user u on t.user_id_ = u.id_
-        where t.id_ = #{id}
+        where u.del_flag_ = 0 and t.id_ = #{id}
     </select>
     <select id="detailByOrderNo" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderVo">
         SELECT
@@ -72,7 +72,7 @@
         FROM user_order t
         left join user_order_payment p on t.order_no_ = p.order_no_ and (p.status_ = 'pending' or p.status_ = 'succeeded')
         left join sys_user u on t.user_id_ = u.id_
-        where t.order_no_ = #{param.orderNo}
+        where u.del_flag_ = 0 and t.order_no_ = #{param.orderNo}
         <if test="param.userId != null">
             and t.user_id_ = #{param.userId}
         </if>
@@ -112,6 +112,7 @@
         left join user_order_payment p on t.order_no_ = p.order_no_ and (p.status_ = 'pending' or p.status_ = 'succeeded')
         left join sys_user u on t.user_id_ = u.id_
         <where>
+            u.del_flag_ = 0
             <if test="null != param.search and '' != param.search">
                 AND (
                 t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or

+ 11 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserWithdrawalMapper.xml

@@ -91,6 +91,7 @@
         left join sys_user u on t.user_id_ = u.id_
             left join sys_user au on t.auth_user_id_ = au.id_
         <where>
+            u.del_flag_ = 0
             <if test="param.userId !=null">
                 AND t.user_id_ = #{param.userId}
             </if>
@@ -128,6 +129,16 @@
             <if test="param.endTime !=null">
                 <![CDATA[AND t.create_time_ < #{param.endTime} ]]>
             </if>
+            <if test="param.status != null and param.status == 'DOING'">
+                AND (t.auth_status_ = 'DOING' OR t.trade_status_ = 'pending')
+            </if>
+            <if test="param.status != null and param.status == 'PASS'">
+                AND t.trade_status_ = 'succeeded'
+            </if>
+            <if test="param.status != null and param.status == 'UNPASS'">
+                AND !(t.auth_status_ = 'DOING' OR t.trade_status_ = 'pending')
+                AND t.trade_status_ != 'succeeded'
+            </if>
         </where>
         order by t.create_time_ desc
     </sql>

+ 0 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/VipCardRecordMapper.xml

@@ -80,8 +80,4 @@
         and msg_status_ in (0,1)
         order by end_time_ desc
     </select>
-    <select id="getMemberPriceByOrderDetilId"
-            resultType="com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings">
-
-    </select>
 </mapper>

+ 45 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentLiveRoomVideoController.java

@@ -0,0 +1,45 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.yonge.cooleshow.biz.dal.entity.LiveRoomVideo;
+import com.yonge.cooleshow.biz.dal.service.LiveRoomVideoService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 直播视频记录(LiveRoomVideo)表控制层
+ *
+ * @author hgw
+ * @since 2022-03-18 15:41:17
+ */
+@Api(tags = "直播视频记录")
+@RestController
+@RequestMapping("/liveRoomVideo")
+public class StudentLiveRoomVideoController extends BaseController {
+
+    private final static Logger log = LoggerFactory.getLogger(StudentLiveRoomVideoController.class);
+
+    /**
+     * 服务对象
+     */
+    @Resource
+    private LiveRoomVideoService liveRoomVideoService;
+
+    @ApiOperation("查询直播回放")
+    @GetMapping("/queryVideo")
+    public HttpResponseResult<List<LiveRoomVideo>> queryVideo(@ApiParam(value = "房间uid", required = true) String roomUid) {
+        return succeed(liveRoomVideoService.queryVideo(roomUid));
+    }
+
+}
+

+ 3 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/config/ResourceServerConfig.java

@@ -33,8 +33,9 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .authorizeRequests()
                 .antMatchers("/task/*").hasIpAddress("0.0.0.0/0")
                 .antMatchers("/v2/api-docs", "/code/*",
-                        "/liveRoom/test", "/liveRoom/syncUserStatus", "/courseGroup/getLockCache", "/open/**")
-                .permitAll().anyRequest().authenticated().and().httpBasic();
+                        "/liveRoom/test", "/liveRoom/syncUserStatus", "/courseGroup/getLockCache", "/open/**",
+                        "/liveRoomVideo/recordSync"
+                ).permitAll().anyRequest().authenticated().and().httpBasic();
     }
 
     @Override