zouxuan 3 سال پیش
والد
کامیت
94eb29db6e

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberAuditDao.java

@@ -23,5 +23,11 @@ public interface ImGroupMemberAuditDao extends BaseMapper<ImGroupMemberAudit> {
     ImGroupMemberAudit findOne(Map<String, Object> params);
 
     <T> IPage<T> queryPage(Page<T> pageInfo, @Param("params") ImGroupMemberAuditQueryInfo queryInfo);
+
+    void batchUpdateAuditStatus(@Param("auditIds") String auditIds, @Param("auditStatus") String auditStatus);
+
+    List<ImGroupMemberAudit> findByIds(@Param("auditIds") String auditIds);
+
+    void delByGroupId(@Param("groupId") Long groupId);
 }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberAuditService.java

@@ -35,7 +35,7 @@ public interface ImGroupMemberAuditService extends IService<ImGroupMemberAudit>
     * @author zx
     * @date 2022/3/22 19:58
     */
-    void applyAudit(Long auditId, AuditStatusEnum auditStatus) throws Exception;
+    void applyAudit(String auditId, AuditStatusEnum auditStatus,Long groupId) throws Exception;
 
     PageInfo<ImGroupMemberAudit> queryPage(ImGroupMemberAuditQueryInfo queryInfo);
 }

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

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
 import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.ImGroupMemberAuditQueryInfo;
@@ -23,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * (ImGroupMemberAudit)表服务实现类
@@ -90,18 +92,11 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void applyAudit(Long auditId, AuditStatusEnum auditStatus) throws Exception {
+    public void applyAudit(String auditIds, AuditStatusEnum auditStatus,Long groupId) throws Exception {
         if(auditStatus == AuditStatusEnum.AUDITING ){
             throw new BizException("操作失败:审核状态异常");
         }
-        ImGroupMemberAudit imGroupMemberAudit = baseMapper.selectById(auditId);
-        if(Objects.isNull(imGroupMemberAudit)){
-            throw new BizException("审核信息不存在");
-        }
-        if(imGroupMemberAudit.getAuditStatus() != AuditStatusEnum.AUDITING){
-            throw new BizException("该入群申请已审核,请勿重复提交");
-        }
-        ImGroup imGroup = imGroupService.getById(imGroupMemberAudit.getGroupId());
+        ImGroup imGroup = imGroupService.getById(groupId);
         if(Objects.isNull(imGroup)){
             throw new BizException("群组信息不存在");
         }
@@ -109,14 +104,12 @@ public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAudi
         if(!sysUser.getId().equals(imGroup.getCreateBy())){
             throw new BizException("操作失败:您没有审核权限");
         }
-        imGroupMemberAudit.setAuditStatus(auditStatus);
-        imGroupMemberAudit.setUpdateTime(new Date());
-        baseMapper.updateById(imGroupMemberAudit);
+        //修改审核状态
+        baseMapper.batchUpdateAuditStatus(auditIds,auditStatus.getCode());
         if(auditStatus == AuditStatusEnum.OPEN){
-            //处理本地群成员
-            List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroup.getId(),
-                    imGroupMemberAudit.getUserId(), false,
-                    imGroupMemberAudit.getRoleType());
+            List<ImGroupMemberAudit> imGroupMemberAudit = baseMapper.findByIds(auditIds);
+            Set<Long> userIds = imGroupMemberAudit.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+            List<GroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId,userIds, ImGroupMember.ImGroupMemberRoleType.STUDENT);
             //同步群成员数量
             imGroupService.syncGroupMemberNum(imGroup.getId());
             //加入融云群

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

@@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
-import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.yonge.cooleshow.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
-import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
+import com.yonge.cooleshow.biz.dal.dao.*;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
@@ -53,6 +50,8 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     @Resource
     private ImGroupMemberService imGroupMemberService;
     @Resource
+    private ImGroupMemberAuditDao imGroupMemberAuditDao;
+    @Resource
     private SysUserFeignService sysUserFeignService;
     @Resource
     private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
@@ -144,6 +143,8 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         if(!sysUser.getId().equals(imGroup.getCreateBy())){
             throw new BizException("操作失败:您没有操作权限");
         }
+        //删除入群申请
+        imGroupMemberAuditDao.delByGroupId(groupId);
         //获取所有群成员
         List<GroupMember> groupMembers = imGroupMemberService.getDao().queryGroupMember(groupId);
         //销毁成功,删除群

+ 10 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml

@@ -31,6 +31,13 @@
             #{entity.auditStatus,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler}, NOW(), NOW())
         </foreach>
     </insert>
+    <update id="batchUpdateAuditStatus">
+        UPDATE im_group_member_audit SET audit_status_ = #{auditStatus},update_time_ = NOW()
+        WHERE FIND_IN_SET(id_,#{auditIds})
+    </update>
+    <delete id="delByGroupId">
+        DELETE FROM im_group_member_audit WHERE group_id_ = #{groupId}
+    </delete>
     <select id="findOne" resultMap="BaseResultMap">
         SELECT <include refid="Base_Column_List"/> FROM im_group_member_audit
         <where>
@@ -62,5 +69,8 @@
             </if>
         </where>
     </select>
+    <select id="findByIds" resultMap="BaseResultMap">
+        SELECT <include refid="Base_Column_List"/> FROM im_group_member_audit WHERE FIND_IN_SET(id_,#{auditIds})
+    </select>
 
 </mapper>

+ 16 - 4
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java

@@ -13,6 +13,8 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.cooleshow.common.page.PageInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -21,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -49,13 +52,22 @@ public class ImGroupMemberAuditController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation("申请入群审核")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "auditIds", dataType = "String", value = "审核编号列表",required = true),
+            @ApiImplicitParam(name = "auditStatus", dataType = "String", value = "审核状态",required = true),
+            @ApiImplicitParam(name = "groupId", dataType = "Long", value = "审核状态",required = true)
+    })
+    @ApiOperation("申请入群批量审核")
     @PostMapping(value = "/applyAudit")
-    public HttpResponseResult applyAudit(@RequestBody ImGroupMemberAudit audit) throws Exception {
-        if(Objects.isNull(audit.getId()) || Objects.isNull(audit.getAuditStatus())){
+    public HttpResponseResult applyAudit(@RequestBody Map<String,Object> params) throws Exception {
+        if(Objects.isNull(params.get("auditIds"))
+                || Objects.isNull(params.get("auditStatus"))
+                || Objects.isNull(params.get("groupId"))){
             throw new BizException("参数校验失败");
         }
-        imGroupMemberAuditService.applyAudit(audit.getId(),audit.getAuditStatus());
+        imGroupMemberAuditService.applyAudit(params.get("auditIds").toString(),
+                AuditStatusEnum.valueOf(params.get("auditStatus").toString()),
+                Long.parseLong(params.get("groupId").toString()));
         return succeed();
     }