Parcourir la source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi il y a 3 ans
Parent
commit
aa1eb756c4

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

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

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

@@ -157,7 +157,7 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
      * 用户注销
      * @param userId
      */
-    void logoffById(@Param("userId")Long userId);
+    void logoffById(@Param("userId") Long userId, @Param("num") Integer num);
 
     void updateImGroupMember(@Param("userId") Long userId,
                              @Param("username") String username,
@@ -166,4 +166,6 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
     void updateImUserFriend(@Param("userId") Long userId,
                             @Param("username") String username,
                             @Param("avatar") String avatar);
+
+    Integer queryMaxVersionById(@Param("id")Long id);
 }

+ 0 - 8
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java

@@ -70,14 +70,6 @@ public interface SysUserService extends BaseService<Long, SysUser> {
     SysUserInfo queryUserInfoByPhoneAndClient(String phone, String client);
 
     /**
-     * 删除指定用户
-     *
-     * @param id
-     * @return
-     */
-    boolean deleteById(Long id);
-
-    /**
      * 根据用户手机号修改密码
      *
      * @param mobile

+ 9 - 21
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -103,22 +103,6 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     }
 
     @Override
-    public boolean deleteById(Long id) {
-        SysUser user = get(id);
-
-        if (user == null) {
-            throw new BizException("用户不存在");
-        }
-
-        user.setUpdateTime(new Date());
-        user.setDelFlag(true);
-
-        update(user);
-
-        return true;
-    }
-
-    @Override
     public void updatePassword(String mobile, String password) {
         sysUserDao.updatePassword(mobile, password);
     }
@@ -234,9 +218,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     public void updateRongCloudUserInfo(Long userId) {
         UserSetVo setDetail = this.getSetDetail(userId);
         //更新imGroupMember表用户头像
-        sysUserDao.updateImGroupMember(userId,setDetail.getUsername(), setDetail.getAvatar());
+        sysUserDao.updateImGroupMember(userId, setDetail.getUsername(), setDetail.getAvatar());
         //更新imUserFriend表用户头像
-        sysUserDao.updateImUserFriend(userId,setDetail.getUsername(), setDetail.getAvatar());
+        sysUserDao.updateImUserFriend(userId, setDetail.getUsername(), setDetail.getAvatar());
         try {
             RongCloudConfig.rongCloud.user.update(new UserModel(userId.toString(), setDetail.getUsername(), setDetail.getAvatar()));
         } catch (Exception e) {
@@ -268,9 +252,13 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
 
     @Override
     public void logoffById(Long id) {
-        //移动用户到注销表
-        sysUserDao.logoffById(id);
-        sysUserDao.delete(id);
+        Integer version = sysUserDao.queryMaxVersionById(id);
+        if(null == version){
+            version = 0;
+        }else{
+            version += 1;
+        }
+        sysUserDao.logoffById(id, version);
     }
 
 }

+ 1 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -394,7 +394,7 @@ public class UserController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "smsCode", value = "短信验证码", paramType = "path", dataType = "long", required = true),
     })
-    @PostMapping(value = "/logoff/{smsCode}")
+    @GetMapping(value = "/logoff/{smsCode}")
     public HttpResponseResult<Boolean> logoff(@PathVariable("smsCode") String smsCode) {
         AuthUser authUser = SecurityUtils.getUser();
         SysUser sysUser = sysUserService.get(authUser.getUserId());

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

@@ -34,26 +34,29 @@
 
     <!-- 查询条件 -->
     <sql id="queryCondition">
-        <if test="userStartDate != null">
-            and create_time_ &gt;= #{createStartDate}
-        </if>
-        <if test="userEndDate != null">
-            and create_time_ &lt;= #{createEndDate}
-        </if>
-        <if test="userType != null">
-            and user_type_ = #{userType}
-        </if>
+        <where>
+            and del_flag_ = 0
+            <if test="userStartDate != null">
+                and create_time_ &gt;= #{createStartDate}
+            </if>
+            <if test="userEndDate != null">
+                and create_time_ &lt;= #{createEndDate}
+            </if>
+            <if test="userType != null">
+                and user_type_ = #{userType}
+            </if>
+        </where>
     </sql>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="SysUser">
 		SELECT su.* FROM sys_user su
-        WHERE su.id_ = #{id}
+        WHERE su.del_flag_ = 0 and su.id_ = #{id}
 	</select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="SysUser">
-		SELECT * FROM sys_user ORDER BY id_
+		SELECT * FROM sys_user where del_flag_ = 0 ORDER BY id_
 	</select>
 
     <!-- 向数据库增加一条记录 -->
@@ -151,13 +154,13 @@
                 certificate_type_ = #{certificateType},
             </if>
         </set>
-        WHERE id_ = #{id}
+        WHERE del_flag_ = 0 and id_ = #{id}
     </update>
     <update id="updatePasswordReq">
-        UPDATE sys_user SET password_ = #{password} WHERE phone_ = #{mobile}
+        UPDATE sys_user SET password_ = #{password} WHERE del_flag_ = 0 and phone_ = #{mobile}
     </update>
     <update id="refreshImToken">
-        UPDATE sys_user SET im_token_ = #{imToken},update_time_ = NOW() WHERE id_ = #{userId}
+        UPDATE sys_user SET im_token_ = #{imToken},update_time_ = NOW() WHERE del_flag_ = 0 and id_ = #{userId}
     </update>
 
     <!-- 根据主键删除一条记录 -->
@@ -167,7 +170,7 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysUser" parameterType="map">
-        SELECT * FROM sys_user ORDER BY id_
+        SELECT * FROM sys_user
         <include refid="queryCondition"/>
         <include refid="global.orderby"/>
         <include refid="global.limit"/>
@@ -180,15 +183,15 @@
     </select>
 
     <select id="queryByUsername" resultMap="SysUser">
-		select * from sys_user where username_ = #{username} OR phone_ = #{username} LIMIT 1 FOR UPDATE
+		select * from sys_user where del_flag_ = 0 and username_ = #{username} OR phone_ = #{username} LIMIT 1 FOR UPDATE
 	</select>
 
     <select id="queryByPhone" resultMap="SysUser">
-		select * from sys_user where phone_ = #{phone} OR username_ = #{phone} LIMIT 1
+		select * from sys_user where del_flag_ = 0 and phone_ = #{phone} OR username_ = #{phone} LIMIT 1
 	</select>
 
     <select id="queryLockByPhone" 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>
     <resultMap id="ImUserModel" type="com.yonge.cooleshow.common.entity.ImUserModel">
         <result column="id_" property="id"/>
@@ -197,20 +200,20 @@
     </resultMap>
     <select id="getBasic" resultMap="ImUserModel">
         select CASE WHEN user_type_ LIKE '%TEACHER%' OR user_type_ LIKE '%SYSTEM%' THEN real_name_ ELSE username_ END username_,id_,avatar_
-        from sys_user where id_ = #{userId} LIMIT 1
+        from sys_user where del_flag_ = 0 and id_ = #{userId} LIMIT 1
     </select>
     
     <select id="queryByStatus" resultMap="SysUser">
-        select * from sys_user where lock_flag_ = #{status}
+        select * from sys_user where del_flag_ = 0 and lock_flag_ = #{status}
     </select>
     <select id="findUserBySalt" resultMap="SysUser">
-        SELECT * FROM sys_user WHERE salt_ IS NOT NULL AND salt_ = 'replace' AND user_type_ LIKE CONCAT('%',#{userType},'%') LIMIT 1
+        SELECT * FROM sys_user WHERE del_flag_ = 0 and salt_ IS NOT NULL AND salt_ = 'replace' AND user_type_ LIKE CONCAT('%',#{userType},'%') LIMIT 1
     </select>
     <select id="getTeacherOrganId" resultType="java.lang.Integer">
         SELECT organ_id_ FROM teacher WHERE id_ = #{userId}
     </select>
     <select id="queryByPhoneAndClient" resultMap="SysUser">
-        select * from sys_user where (phone_ = #{phone} OR username_ = #{phone}) AND user_type_ LIKE CONCAT('%',#{client},'%') LIMIT 1 FOR UPDATE
+        select * from sys_user where del_flag_ = 0 and (phone_ = #{phone} OR username_ = #{phone}) AND user_type_ LIKE CONCAT('%',#{client},'%') LIMIT 1 FOR UPDATE
     </select>
 
     <update id="updateUserCard">
@@ -229,7 +232,7 @@
                 birthdate_ = #{param.birthday},
             </if>
         update_time_ = now()
-        WHERE id_ = #{param.userId}
+        WHERE del_flag_ = 0 and id_ = #{param.userId}
     </update>
 
     <select id="getSetDetail" resultType="com.yonge.cooleshow.auth.api.vo.UserSetVo">
@@ -241,7 +244,7 @@
             u.birthdate_ as birthdate,
             (case when isnull(u.id_card_no_) then 0 else 1 end) as isReal
         FROM sys_user u
-        where u.id_ = #{id}
+        where u.del_flag_ = 0 and u.id_ = #{id}
     </select>
 
     <update id="updatetSetDetail">
@@ -260,7 +263,7 @@
             birthdate_ = #{param.birthdate},
         </if>
         update_time_ = now()
-        WHERE id_ = #{id}
+        WHERE del_flag_ = 0 and id_ = #{id}
     </update>
     <update id="updateImGroupMember">
         UPDATE im_group_member SET avatar_ = #{avatar},nickname_ = #{username} WHERE user_id_ = #{userId}
@@ -268,16 +271,15 @@
     <update id="updateImUserFriend">
         UPDATE im_user_friend SET friend_avatar_ = #{avatar},friend_nickname_ = #{username} WHERE friend_id_ = #{userId}
     </update>
-
     <update id="logoffById">
-        insert into sys_user_off select * from sys_user where id_ = ${userId}
+        update sys_user set del_flag_ = ${num}, phone_ = concat('D', ${num}, '+', phone_) where id_ = ${userId}
     </update>
-
     <select id="queryEmployeeList" resultMap="SysUser">
         select  su.*
         from employee e
         left join sys_user su on su.id_ = e.user_id_
         <where>
+            su.del_flag_ = 0
             <if test="createStartDate != null and createStartDate != ''">
                 and #{createStartDate} &lt;= e.create_time_
             </if>
@@ -287,4 +289,9 @@
         </where>
     </select>
 
+    <select id="queryMaxVersionById" resultType="java.lang.Integer">
+        select max(del_flag_) from sys_user
+        where phone_ like CONCAT('%',(select phone_ from sys_user where id_ = #{id} and del_flag_ = 0),'%')
+    </select>
+
 </mapper>

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

@@ -156,11 +156,13 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         }
         Date now = new Date();
         //获取房间信息
-        this.initRoom(roomId, Long.parseLong(roomId), userRole, userId, now);
+        ImNetworkRoom room = this.initRoom(roomId, Long.parseLong(roomId), userRole, userId, now);
         //获取房间用户信息
         ImNetworkRoomMember roomMember = imNetworkRoomMemberService.initRoomMember(roomId,sysUser,userRole);
         //发送人员变动消息
         publishMemberChangedMessage(roomMember);
+        //sendDisplay
+        this.sendDisplay(userId,room);
     }
 
     //发送人员变动消息
@@ -607,7 +609,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         }else {
             if(userRole == UserRoleEnum.TEACHER){
                 room.setDisplay(display);
-                this.updateDisplay(userId,room);
+                baseMapper.updateById(room);
             }
         }
         return room;

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

@@ -234,6 +234,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
      * 开课提醒
      */
     private void pushLiveCreateRoom(LiveRoom room) {
+        log.info("pushLiveCreateRoom JIGUANG start param : {}", JSONObject.toJSONString(room));
         try {
             //查询老师信息
             SysUser teacherInfo = this.getSysUser(room.getSpeakerId());
@@ -247,7 +248,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
             log.error("pushLiveCreateRoom JIGUANG error param : {}", JSONObject.toJSONString(room));
             log.error("pushLiveCreateRoom JIGUANG error", e.getCause());
         }
-        log.info("pushLiveCreateRoom JIGUANG ok param : {}", JSONObject.toJSONString(room));
+        log.info("pushLiveCreateRoom JIGUANG ok ");
     }
 
     /**
@@ -299,6 +300,8 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         log.info("createTempLiveRoom>>>>>>room:{}", room.getRoomUid());
         //去融云创建房间及创建房间缓存信息
         this.createLiveRoomInfo(room, sysUser);
+        //临时
+        this.pushLiveCreateRoom(room);
         return roomUid;
     }
 

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

@@ -196,10 +196,11 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
     public HttpResponseResult<Boolean> batchAuth(AuthOperaReq authOperaReq, SysUser sysUser) {
         List<Long> ids = Arrays.asList(StringUtil.toLongArray(StringPool.COMMA, authOperaReq.getId()));
 
-        //先判断三方余额是否充足
         List<UserWithdrawal> userWithdrawals = baseMapper.selectList(Wrappers.<UserWithdrawal>lambdaQuery()
                 .in(UserWithdrawal::getId, ids)
                 .ne(UserWithdrawal::getAuthStatus, AuthStatusEnum.DOING));
+
+        //先判断三方余额是否充足
         //总提现金额
         BigDecimal totalAmount = BigDecimal.ZERO;
         for (UserWithdrawal withdrawal : userWithdrawals) {
@@ -268,8 +269,8 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
                 build.setTradeStatus(TradeStatusEnum.pending);
                 build.setTransNo(transNo.toString());
             } else {
-                build.setAuthStatus(AuthStatusEnum.DOING);
                 build.setTradeStatus(TradeStatusEnum.failed);
+                build.setTransNo(transNo.toString());
                 build.setErrorMsg(withdraw.getMsg());
                 res = HttpResponseResult.failed("结算" + authOperaReq.getId() + "失败,失败原因:" + withdraw.getMsg());
             }

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

@@ -509,7 +509,7 @@
         LEFT JOIN (SELECT course_id_,COUNT(1) AS payCount FROM course_schedule_student_payment GROUP BY course_id_) a ON s.id_=a.course_id_
         WHERE s.lock_=0
         AND s.status_ IN ('ING','NOT_START','COMPLETE')
-        AND g.status_ IN ('ING', 'COMPLETE')
+        AND g.status_ IN ('ING', 'COMPLETE','APPLY')
         AND s.id_ IN
         (SELECT course_id_ FROM course_schedule_student_payment WHERE user_id_ = #{param.studentId} AND course_type_ IN ('LIVE','PIANO_ROOM_CLASS'))
         AND s.class_date_ = #{param.classDate}

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

@@ -72,9 +72,9 @@
           and o.status_ = 'PAID'
           and not exists (
                 select 1 from user_order_refund r
-                where r.order_no_ = o.order_no_
-                  and r.status_ in ('DOING','PASS')
+                left join user_order_refund_bill bi on r.id_ = bi.refund_id_
+                where r.order_no_ = o.order_no_ and (bi.status_ in ('pending','succeeded') or r.status_ in ('DOING','PASS'))
                   and FIND_IN_SET(d.id_,r.oredr_detil_ids_)
-            )
+          )
     </select>
 </mapper>

+ 1 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SmsCodeController.java

@@ -36,7 +36,7 @@ public class SmsCodeController extends BaseController {
     @Autowired
     private RedisTemplate<String,String> redisTemplate;
 
-    @ApiOperation(value = "发送登录短信验证码")
+    @ApiOperation(value = "发送短信验证码")
     @ApiImplicitParams({  @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"),
                           @ApiImplicitParam(name = "type", value = "类型(PASSWD:修改密码,LOGIN:登录或注册,BANK:绑定银行卡,PHONE:修改手机号,LOGOFF:用户注销)", required = true, dataType = "String") })
     @PostMapping(value = "/sendSmsCode")