浏览代码

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

jelly 3 年之前
父节点
当前提交
80bc21984d
共有 40 个文件被更改,包括 869 次插入409 次删除
  1. 10 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/ResourceServerConfig.java
  2. 100 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SysConfigController.java
  3. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java
  4. 20 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupMemberAuditDao.java
  5. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImUserFriendDao.java
  6. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherApplyDetailReq.java
  7. 13 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java
  8. 123 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMemberAudit.java
  9. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Order.java
  10. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/OrderDetail.java
  11. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/OrderRefunds.java
  12. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java
  13. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherAuthMusicianRecord.java
  14. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherWithdrawal.java
  15. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserAccount.java
  16. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserAccountRecord.java
  17. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserBankCard.java
  18. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VipCard.java
  19. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuditStatusEnum.java
  20. 20 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/ImGroupMemberAuditQueryInfo.java
  21. 37 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberAuditService.java
  22. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupMemberService.java
  23. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  24. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java
  25. 1 383
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysConfigService.java
  26. 104 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberAuditServiceImpl.java
  27. 19 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupMemberServiceImpl.java
  28. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  29. 15 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java
  30. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthMusicianRecordServiceImpl.java
  31. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherApplyDetail.java
  32. 10 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml
  33. 31 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMemberAuditMapper.xml
  34. 5 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml
  35. 47 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberAuditController.java
  36. 56 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/SysConfigController.java
  37. 17 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  38. 76 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java
  39. 41 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java
  40. 56 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SysConfigController.java

+ 10 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/ResourceServerConfig.java

@@ -26,7 +26,16 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/task/**", "/user/updatePassword", "/user/noAuth/queryUserByPhone", "/user/queryUserByPhone", "/user/add", "/user/queryUserById/*").hasIpAddress("0.0.0.0/0")
+				.authorizeRequests().antMatchers(
+						"/task/**",
+				"/user/updatePassword",
+				"/user/noAuth/queryUserByPhone",
+				"/user/queryUserByPhone",
+				"/user/add",
+				"/user/updatePasswordByOldPassword",
+				"/user/updatePhone",
+				"/user/realNameAuth",
+				"/user/queryUserById/*").hasIpAddress("0.0.0.0/0")
 				.anyRequest().authenticated().and().httpBasic();
 	}
 

+ 100 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SysConfigController.java

@@ -0,0 +1,100 @@
+package com.yonge.cooleshow.admin.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.yonge.cooleshow.biz.dal.entity.SysConfig;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.toolset.log.model.AuditLogAnnotation;
+
+/** 
+ * 系统配置控制层
+ */
+@RestController
+@Api(tags = "系统参数设置")
+@RequestMapping(value = "sysConfig")
+public class SysConfigController extends BaseController {
+
+	@Autowired
+	private SysConfigService sysConfigService;
+
+	@ApiOperation(value = "参数列表")
+	@GetMapping(value = "list")
+    @PreAuthorize("@pcs.hasPermissions('sysConfig/list')")
+	public Object configList(String group) {
+		Map<String,Object> params = new HashMap<String, Object>();
+		params.put("group", group);
+		List<SysConfig> configs = sysConfigService.findAll(params);
+		return succeed(configs);
+	}
+
+	@ApiOperation(value = "修改参数")
+	@PostMapping(value = "update")
+    @PreAuthorize("@pcs.hasPermissions('sysConfig/update')")
+	@AuditLogAnnotation(operateName = "修改参数")
+	public Object update(SysConfig config) {
+		config.setModifyOn(new Date());
+		sysConfigService.updateConfig(config);
+		return succeed();
+	}
+
+	@ApiOperation(value = "修改参数")
+	@PostMapping(value = "batchUpdate")
+    @PreAuthorize("@pcs.hasPermissions('sysConfig/batchUpdate')")
+	@AuditLogAnnotation(operateName = "修改参数")
+	public Object batchUpdate(@RequestBody List<SysConfig> configList) {
+		sysConfigService.batchUpdate(configList);
+		return succeed();
+	}
+
+	@ApiOperation(value = "新增参数")
+	@PostMapping(value = "add")
+    @PreAuthorize("@pcs.hasPermissions('sysConfig/add')")
+	public Object addConfig(SysConfig config) {
+		if (config == null)
+			return failed("参数无效");
+		if (StringUtils.isBlank(config.getParamName())) {
+			return failed("参数名称不能为空");
+		}
+		if (StringUtils.isBlank(config.getParanValue())) {
+			return failed("参数值不能为空");
+		}
+		config.setCreateOn(new Date());
+		config.setModifyOn(new Date());
+		return sysConfigService.insert(config) > 0 ? succeed() : failed("添加失败");
+	}
+
+	@ApiOperation(value = "查询参数")
+	@GetMapping(value = "get")
+    @PreAuthorize("@pcs.hasPermissions('sysConfig/get')")
+	public Object getConfig(Long id) {
+		if (id == null || id <= 0)
+			return failed("请检查输入的ID");
+		return succeed(sysConfigService.get(id));
+	}
+
+	@ApiOperation(value = "查询参数")
+	@GetMapping(value = "queryByParamName")
+    @PreAuthorize("@pcs.hasPermissions('sysConfig/queryByParamName')")
+	public Object queryByParamName(String paramName) {
+		if(StringUtils.isBlank(paramName)){
+			return failed("参数不能为空");
+		}
+		return succeed(sysConfigService.findByParamName(paramName));
+	}
+}

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java

@@ -16,5 +16,7 @@ public interface ImGroupDao extends BaseMapper<ImGroup> {
 
     int insertBatch(@Param("entities") List<ImGroup> entities);
 
+    ImGroup getLock(@Param("groupId") Long groupId);
+
 }
 

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

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (ImGroupMemberAudit)表数据库访问层
+ *
+ * @author zx
+ * @since 2022-03-22 17:18:51
+ */
+public interface ImGroupMemberAuditDao extends BaseMapper<ImGroupMemberAudit> {
+
+    int insertBatch(@Param("entities") List<ImGroupMemberAudit> entities);
+
+}
+

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImUserFriendDao.java

@@ -1,10 +1,14 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
+import com.yonge.cooleshow.common.page.QueryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户通讯录表(ImUserFriend)表数据库访问层
@@ -16,5 +20,6 @@ public interface ImUserFriendDao extends BaseMapper<ImUserFriend> {
 
     int insertBatch(@Param("entities") List<ImUserFriend> entities);
 
+    <T> IPage<T> queryPage(Page<T> page, @Param("param") QueryInfo queryInfo);
 }
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherApplyDetailReq.java

@@ -33,8 +33,8 @@ public class TeacherApplyDetailReq implements Serializable {
     private Integer gender;
 
     @ApiModelProperty(value = "出生日期 ", required = true)
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date birthdate;
 
     @NotBlank(message = "专业技能不能为空")

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

@@ -49,12 +49,16 @@ public class ImGroup implements Serializable {
 
     @TableField("type_")
     @ApiModelProperty(value = "群类型:FAN粉丝群、COURSE课程群;")
-    private ImGroupType type;
+    private ImGroupType type = ImGroupType.FAN;
 
     @TableField("create_by_")
     @ApiModelProperty(value = "创建人")
     private Long createBy;
 
+    @TableField("auto_pass_flag_")
+    @ApiModelProperty(value = "是否自动通过审核")
+    private Boolean autoPassFlag = false;
+
     @TableField("create_time_")
     @ApiModelProperty(value = "创建时间;")
     private Date createTime;
@@ -83,6 +87,14 @@ public class ImGroup implements Serializable {
         }
     }
 
+    public Boolean getAutoPassFlag() {
+        return autoPassFlag;
+    }
+
+    public void setAutoPassFlag(Boolean autoPassFlag) {
+        this.autoPassFlag = autoPassFlag;
+    }
+
     public Long getCreateBy() {
         return createBy;
     }

+ 123 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMemberAudit.java

@@ -0,0 +1,123 @@
+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.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (ImGroupMemberAudit)表实体类
+ *
+ * @author zx
+ * @since 2022-03-22 17:18:51
+ */
+@ApiModel(value = "im_group_member_audit-申请入群")
+public class ImGroupMemberAudit implements Serializable {
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @TableField("user_id_")
+    @ApiModelProperty(value = "用户编号")
+    private Long userId;
+
+    @TableField("role_type_")
+    @ApiModelProperty(value = "群角色TEACHER老师、STUDENT学生")
+    private ImGroupMember.ImGroupMemberRoleType roleType;
+
+    @TableField("group_id_")
+    @NotNull(message = "群编号不可为空")
+    @ApiModelProperty(value = "群组编号")
+    private Long groupId;
+
+    @TableField("desc_")
+    @NotNull(message = "申请原因不可为空")
+    @ApiModelProperty(value = "申请原因")
+    private String desc;
+
+    @TableField("audit_status_")
+    @ApiModelProperty(value = "审核状态")
+    private AuditStatusEnum auditStatus = AuditStatusEnum.AUDITING;
+
+    @TableField("create_time_")
+    @ApiModelProperty(value = "新增时间")
+    private Date createTime;
+
+    @TableField("update_time_")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public ImGroupMember.ImGroupMemberRoleType getRoleType() {
+        return roleType;
+    }
+
+    public void setRoleType(ImGroupMember.ImGroupMemberRoleType roleType) {
+        this.roleType = roleType;
+    }
+
+    public Long getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public AuditStatusEnum getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(AuditStatusEnum auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+}
+

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

@@ -20,7 +20,7 @@ import java.math.BigDecimal;
 @ApiModel(value = "Order对象", description = "平台订单表")
 public class Order implements Serializable {
 	private static final long serialVersionUID = 1L;
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 订单号 

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

@@ -19,7 +19,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 @ApiModel(value = "OrderDetail对象", description = "平台订单表")
 public class OrderDetail implements Serializable {
 	private static final long serialVersionUID = 1L;
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 订单号 

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

@@ -20,7 +20,7 @@ import java.math.BigDecimal;
 @ApiModel(value = "OrderRefunds对象", description = "用户退款表")
 public class OrderRefunds implements Serializable {
 	private static final long serialVersionUID = 1L;
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
 	@TableField(value = "user_id_")
     private Long userId;

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

@@ -26,7 +26,7 @@ public class Teacher implements Serializable {
     * 对应user表用户编号 
     */
     @ApiModelProperty("对应user表用户编号 ")
-    @TableId(value = "user_id_", type = IdType.UUID)
+    @TableId(value = "user_id_", type = IdType.AUTO)
     private Long userId;
     /** 
     * 学历 

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

@@ -23,7 +23,7 @@ public class TeacherAuthMusicianRecord implements Serializable {
     * 审核单id 
     */
     @ApiModelProperty("审核单id ")
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 对应user表用户编号 

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

@@ -24,7 +24,7 @@ public class TeacherWithdrawal implements Serializable {
     * 提现id 
     */
     @ApiModelProperty("提现id ")
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 用户表id 

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

@@ -24,7 +24,7 @@ public class UserAccount implements Serializable {
     * 用户表id 
     */
     @ApiModelProperty("用户表id ")
-    @TableId(value = "user_id_", type = IdType.UUID)
+    @TableId(value = "user_id_", type = IdType.AUTO)
     private Long userId;
     /** 
     * 总金额 

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

@@ -24,7 +24,7 @@ public class UserAccountRecord implements Serializable {
     * 用户表id 
     */
     @ApiModelProperty("用户表id ")
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 交易金额 

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

@@ -20,7 +20,7 @@ public class UserBankCard implements Serializable {
     * id 
     */
     @ApiModelProperty("id ")
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 用户表id 

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

@@ -23,7 +23,7 @@ public class VipCard implements Serializable {
     * 会员卡id 
     */
     @ApiModelProperty("会员卡id ")
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /** 
     * 用户id 

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuditStatusEnum.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.biz.dal.enums;
+
+import com.yonge.cooleshow.common.enums.BaseEnum;
+
+public enum AuditStatusEnum implements BaseEnum<String,AuditStatusEnum> {
+    AUDITING("审核中"), REJECT("审核拒绝"), OPEN("审核通过");
+
+    private String msg;
+
+    AuditStatusEnum(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.name();
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 20 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/ImGroupMemberAuditQueryInfo.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.biz.dal.queryInfo;
+
+import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ImGroupMemberAuditQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "审核状态")
+    private AuditStatusEnum auditStatus = AuditStatusEnum.AUDITING;
+
+    public AuditStatusEnum getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(AuditStatusEnum auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+}

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

@@ -0,0 +1,37 @@
+package com.yonge.cooleshow.biz.dal.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
+import com.yonge.cooleshow.biz.dal.enums.AuditStatusEnum;
+
+/**
+ * (ImGroupMemberAudit)表服务接口
+ *
+ * @author zx
+ * @since 2022-03-22 17:18:51
+ */
+public interface ImGroupMemberAuditService extends IService<ImGroupMemberAudit> {
+
+    ImGroupMemberAuditDao getDao();
+
+    /**
+    * @description: 申请入群
+     * @param imGroupMemberAudit
+    * @return void
+    * @author zx
+    * @date 2022/3/22 17:34
+    */
+    void apply(ImGroupMemberAudit imGroupMemberAudit);
+
+    /**
+    * @description: 入群审核
+     * @param auditId
+     * @param auditStatus
+    * @return void
+    * @author zx
+    * @date 2022/3/22 19:58
+    */
+    void applyAudit(Long auditId, AuditStatusEnum auditStatus) throws Exception;
+}
+

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

@@ -36,7 +36,7 @@ public interface ImGroupMemberService extends IService<ImGroupMember> {
     * @author zx
     * @date 2022/3/22 15:59
     */
-    void addGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType);
+    void addGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception;
 
     /**
     * @description: 删除群成员

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -30,5 +30,13 @@ public interface ImGroupService extends IService<ImGroup> {
     * @date 2022/3/22 11:17
     */
     void dismiss(Long groupId) throws Exception;
+
+    /**
+    * @description: 同步群成员数量
+     * @param groupId
+    * @author zx
+    * @date 2022/3/22 11:17
+    */
+    void syncGroupMemberNum(Long groupId) throws Exception;
 }
 

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java

@@ -3,6 +3,8 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.ImUserFriendDao;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
+import com.yonge.cooleshow.common.page.PageInfo;
+import com.yonge.cooleshow.common.page.QueryInfo;
 
 /**
  * 用户通讯录表(ImUserFriend)表服务接口
@@ -13,5 +15,7 @@ import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 public interface ImUserFriendService extends IService<ImUserFriend> {
 
     ImUserFriendDao getDao();
+
+    PageInfo<ImUserFriend> queryPage(QueryInfo queryInfo);
 }
 

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

@@ -6,390 +6,8 @@ import com.yonge.cooleshow.biz.dal.entity.SysConfig;
 import com.yonge.cooleshow.common.service.BaseService;
 
 public interface SysConfigService extends BaseService<Long, SysConfig> {
-    //乐团基础规则
 
-    //乐团预报名人数达到指定数量,可将乐团状态变更为创建缴费中
-    String MUSIC_MIN_STUDENT_NUM = "music_min_student_num";
-    //报名缴费阶段乐团若未合并学员,缴费人数达到指定人数时可确认开团(用于校验是否回访)
-    String NEW_MUSIC_PAYMENT_STUDENT_NUM = "new_music_payment_student_num";
-    //报名缴费阶段乐团若合并学员,缴费人数达到指定人数时可确认开团(用于校验是否回访)
-    String OLD_MUSIC_PAYMENT_STUDENT_NUM = "old_music_payment_student_num";
-    //乐团问卷调查编号
-    String MUSIC_GROUP_TOPIC_ID = "music_group_topic_id";
-
-    //考勤和课酬规则
-
-    //线下课课程开始前指定时间打卡为正常签到
-    String OFFLINE_ADVANCE_SIGN_IN_MINUTES = "offline_advance_sign_in_minutes";
-    //线下课课程开始后指定时间内签到为迟到
-    String OFFLINE_ADVANCE_SIGN_IN_LATE_MINUTES = "offline_advance_sign_in_late_minutes";
-    //线下课课程结束前指定时间签退为异常
-    String OFFLINE_ADVANCE_SIGN_OUT_MINUTES = "offline_advance_sign_out_minutes";
-    //线下课老师异常签到扣减课酬金额
-    String OFFLINE_ERROR_SIGN_IN_CUT_SALARY = "offline_error_sign_in_cut_salary";
-    //线下课老师异常签到扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_ERROR_SIGN_IN_CUT_SALARY_UNIT = "offline_error_sign_in_cut_salary_unit";
-    //线下课老师迟到扣减课酬金额
-    String OFFLINE_LATE_CUT_SALARY = "offline_late_cut_salary";
-    //线下课老师迟到扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_LATE_CUT_SALARY_UNIT = "offline_late_cut_salary_unit";
-    //线下课老师旷课扣减课酬金额
-    String OFFLINE_LEVEL_SIGN_IN_CUT_SALARY = "offline_level_sign_in_cut_salary";
-    //线下课老师旷课扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_LEVEL_SIGN_IN_CUT_SALARY_UNIT = "offline_level_sign_in_cut_salary_unit";
-    //线下课老师旷课扣减课酬金额
-    String OFFLINE_NO_SIGN_IN_CUT_SALARY = "offline_no_sign_in_cut_salary";
-    //线下课老师旷课扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_NO_SIGN_IN_CUT_SALARY_UNIT = "offline_no_sign_in_cut_salary_unit";
-    //线下课老师异常签退扣减课酬金额
-    String OFFLINE_ERROR_SIGN_OUT_CUT_SALARY = "offline_error_sign_out_cut_salary";
-    //线下课老师异常签退扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_ERROR_SIGN_OUT_CUT_SALARY_UNIT = "offline_error_sign_out_cut_salary_unit";
-    //线下课老师异常签退扣减课酬金额
-    String OFFLINE_EARLY_SIGN_OUT_CUT_SALARY = "offline_early_sign_out_cut_salary";
-    //线下课老师异常签退扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_EARLY_SIGN_OUT_CUT_SALARY_UNIT = "offline_early_sign_out_cut_salary_unit";
-    //线下课老师异常签退扣减课酬金额
-    String OFFLINE_NO_SIGN_OUT_CUT_SALARY = "offline_no_sign_out_cut_salary";
-    //线下课老师异常签退扣减课酬单位(1、元,2、百分比)
-    String OFFLINE_NO_SIGN_OUT_CUT_SALARY_UNIT = "offline_no_sign_out_cut_salary_unit";
-    //vip课开课前可点名时间段,开课前{}分钟
-    String ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP = "enable_student_attendance_befor_course_start_time_range_vip";
-    //vip课程可更新学生签到状态时间限制,课程结束后{}分钟
-    String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP = "enable_student_attendance_time_range_vip";
-    //如果没有签退,{}分钟后自动发送推送信息
-    String SIGN_OUT_MESSAGE_PUSH_MINUTE = "sign_out_message_push_minute";
-    //乐团课老师课程结束后可正常签退时间范围为课程结束后{}分钟内
-    String ADVANCE_SIGN_OUT_MINUTES = "advance_sign_out_minutes";
-
-    //线上连堂课间隔时间
-    String ONLINE_CONTINUE_COURSE_TIME = "online_continue_course_time";
-    //线上课课程开始前指定时间打卡为正常签到
-    String ONLINE_ADVANCE_SIGN_IN_MINUTES = "online_advance_sign_in_minutes";
-    //线上课课程开始后指定时间内签到为迟到
-    String ONLINE_ADVANCE_SIGN_IN_LATE_MINUTES = "online_advance_sign_in_late_minutes";
-    //线上课课程结束前指定时间内签退为早退
-    String ONLINE_EARLY_SIGN_OUT_MINUTES = "online_early_sign_out_minutes";
-    //线上课老师迟到扣减课酬金额
-    String ONLINE_LATE_CUT_SALARY = "online_late_cut_salary";
-    //线上课老师迟到扣减课酬单位(1、元,2、百分比)
-    String ONLINE_LATE_CUT_SALARY_UNIT = "online_late_cut_salary_unit";
-    //线上课老师旷课扣减课酬金额
-    String ONLINE_LEVEL_SIGN_IN_CUT_SALARY = "online_level_sign_in_cut_salary";
-    //线上课老师旷课扣减课酬单位(1、元,2、百分比)
-    String ONLINE_LEVEL_SIGN_IN_CUT_SALARY_UNIT = "online_level_sign_in_cut_salary_unit";
-    //线上课老师旷课扣减课酬金额
-    String ONLINE_NO_SIGN_IN_CUT_SALARY = "online_no_sign_in_cut_salary";
-    //线上课老师旷课扣减课酬单位(1、元,2、百分比)
-    String ONLINE_NO_SIGN_IN_CUT_SALARY_UNIT = "online_no_sign_in_cut_salary_unit";
-    //线上课老师异常签退扣减课酬金额
-    String ONLINE_ERROR_SIGN_OUT_CUT_SALARY = "online_error_sign_out_cut_salary";
-    //线上课老师异常签退扣减课酬单位(1、元,2、百分比)
-    String ONLINE_ERROR_SIGN_OUT_CUT_SALARY_UNIT = "online_error_sign_out_cut_salary_unit";
-    //线上课老师早退扣减课酬金额
-    String ONLINE_EARLY_SIGN_OUT_CUT_SALARY = "online_early_sign_out_cut_salary";
-    //线上课老师早退扣减课酬单位(1、元,2、百分比)
-    String ONLINE_EARLY_SIGN_OUT_CUT_SALARY_UNIT = "online_early_sign_out_cut_salary_unit";
-    //线上课老师未签退扣减课酬金额
-    String ONLINE_NO_SIGN_OUT_CUT_SALARY = "online_no_sign_out_cut_salary";
-    //线上课老师未签退扣减课酬单位(1、元,2、百分比)
-    String ONLINE_NO_SIGN_OUT_CUT_SALARY_UNIT = "online_no_sign_out_cut_salary_unit";
-
-    //线下课老师可以打卡范围,GPS定位距离教学点距离
-    String ATTENDANCE_RANGE = "attendance_range";
-    //线下课签到定位异常扣除金额
-    String OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY = "offline_sign_in_gps_error_cut_salary";
-    //线下课签到定位异常扣除金额
-    String OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY_UNIT = "offline_sign_in_gps_error_cut_salary_unit";
-    //线下课签退定位异常扣除金额
-    String OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY = "offline_sign_out_gps_error_cut_salary";
-    //线下课签退定位异常扣除金额
-    String OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY_UNIT = "offline_sign_out_gps_error_cut_salary_unit";
-    //vip线下课点名定位异常扣除金额
-    String VIP_OFFLINE_GPS_ERROR_CUT_SALARY = "vip_offline_gps_error_cut_salary";
-    //vip线下课点名定位异常扣除金额单位
-    String VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT = "vip_offline_gps_error_cut_salary_unit";
-    //vip线下课未点名扣除金额
-    String VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY = "vip_offline_no_gps_error_cut_salary";
-    //vip线下课未点名扣除金额单位
-    String VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT = "vip_offline_no_gps_error_cut_salary_unit";
-
-    //试用期老师课酬发放百分比
-    String PROBATION_TEACHER_SALARY = "probation_teacher_salary";
-
-    //老师端可申诉考勤时间限制(天)
-    String TEACHER_APP_SALARY_COMPLAINTS_TIME = "teacher_app_salary_complaints_time";
-    //后台老师考勤申诉时间限制
-    String WEB_TEACHER_COMPLAINTS_SALARY = "web_teacher_complaints_salary";
-
-    //线下连堂课间隔时间
-    String OFFLINE_CONTINUE_COURSE_MINUTES = "offline_continue_course_minutes";
-    //学生允许请假的时间,为开课前{}小时
-    String ADVANCE_LEAVE_HOURS = "advance_leave_hours";
-    //教师可调整课程默认时间,开课前{}小时
-    String ENABLE_TEACHER_COURSE_ADJUST_DEFAULT_HOURS = "enable_teacher_course_adjust_default_hours";
-    //退款周期
-    String REFUND_PERIOD = "refund_period";
-
-    //服务异常提醒
-    //学员当月请假指定次数及以上提醒异常请假
-    String STUDENT_ERROR_LEAVE_NUM = "student_error_leave_num";
-    //上课时间在指定时间段内提醒时间安排异常
-    String COURSE_START_TIME_ERROR = "course_start_time_error";
-    //上课时间在指定时间段内提醒时间安排异常
-    String COURSE_END_TIME_ERROR = "course_end_time_error";
-
-    //乐保
-    //是否开启乐保
-    String MUSICAL_REPAIR_OPEN_FLAG = "musical_repair_open_flag";
-    //一年期乐保零售价
-    String ONE_YEAR_MUSICAL_REPAIR_AMOUNT = "one_year_musical_repair_amount";
-    //一年期乐保原价
-    String ONE_YEAR_MUSICAL_REPAIR_ORIGINAL_AMOUNT = "one_year_musical_repair_original_amount";
-
-
-    //特殊规则默认值--》网管&试听课规则
-    //试听课默认单节课时长
-    String DEMO_GROUP_SINGLE_CLASS_MINUTES_ = "demo_group_single_class_minutes_";
-    //陪练课可选老师的分部
-    String PRACTICE_TEACHER_ORGAN_RANGE = "practice_teacher_organ_range";
-    //陪练课可预约声部列表
-    String PRACTICE_SUBJECT_ID_LIST = "practice_subject_id_list";
-    //陪练课预约开始时间
-//    String PRACTICE_APPLY_START_TIME = "practice_apply_start_time";
-    //陪练课预约结束时间
-//    String PRACTICE_APPLY_END_TIME = "practice_apply_end_time";
-
-    //特殊规则默认值--》商品规则设置
-    //内部库存预警值
-    String INNER_REPERTORY_WARN_NUM = "inner_repertory_warn_num";
-    //外部库存预警值
-    String OUTER_REPERTORY_WARN_NUM = "outer_repertory_warn_num";
-    //库存预警手机号
-    String REPERTORY_WARN_PHONE = "repertory_warn_phone";
-
-    //课程默认值规则---》乐团规则设置
-    //自动确认收货时间
-    String AUTO_AFFIRM_RECEIVE_TIME = "auto_affirm_receive_time";
-    //提醒老师创建新的缴费项目,距离缴费项有效期前{}天
-    String PUSH_CREATE_PAYMENT_CALENDER = "push_create_payment_calender";
-    //提醒乐团主管排下学期的课程的时间节点(默认提前14天)
-    String REMIND_COURSE_TIME = "remind_course_time";
-    //会员结束前15天自动创建乐团续费(默认提前15天)
-    String AUTO_CREATE_MEMBER_RENEW = "auto_create_member_renew";
-    //会员团每学期赠送课程分钟数
-    String MEMBER_GROUP_TERM_GIVE_COURSE_TIME = "member_group_term_give_course_time";
-    //各声部不购买会员入团资格限制学员数
-    String MEMBER_GROUP_FEE_STUDENT_NUM = "member_group_fee_student_num";
-
-
-    //乐团所有未开始课程组、商品等服务及产品退费时,退费金额扣减百分比(默认0.005)
-    String MUSIC_RETURN_FEE_CHARGES = "music_return_fee_charges";
-    //乐团课退费时若课程组已开始,退费金额扣减百分比(默认0.8)
-    String MUSIC_COURSE_START_RETURN_FEE_CHARGES = "music_course_start_return_fee_charges";
-    //1v1小班课退费时若课程组已开始,退费金额扣减百分比(默认0.8)
-    String VIP_1V1_COURSE_NOT_START_RETURN_FEE_CHARGES = "VIP_1V1_COURSE_NOT_START_RETURN_FEE_CHARGES";
-    //1vn小班课退费时若课程组已开始,退费金额扣减百分比(默认0.7)
-    String VIP_1VN_COURSE_NOT_START_RETURN_FEE_CHARGES = "VIP_1VN_COURSE_NOT_START_RETURN_FEE_CHARGES";
-
-
-    public static final String BASE_API_URL = "base_api_url";
-
-    /**
-     * 缴费状态提前{}天刷新
-     */
-    public static final String REFRESH_PAYMENT_STATUS_EARLY_DAYS = "refresh_payment_status_early_days";
-
-    /**
-     * VIP课结束后,用户可申诉时间,为课程结束后的{}天
-     */
-    public static final String VIP_APPEAL_DAYS_RANGE = "vip_appeal_days_range";
-
-    /**
-     * 线下课最早打卡时间可提前分钟数
-     */
-    String OFFLINE_SIGN_IN_EARLY_FORWARD_TIME = "offline_sign_in_early_forward_time";
-
-    /**
-     * 最早请假提前时间
-     */
-    String EARLIEST_TIME_FOR_LEAVE="earliest_time_for_leave";
-
-
-    /**
-     * 单技课梯度结算规则设置
-     */
-    public static final String SIGLE_GRADIENT_SETTLEMENT_RULE = "sigle_gradient_settlement_rule";
-
-    /**
-     * 合奏课梯度结算规则设置
-     */
-    public static final String MAX_GRADIENT_SETTLEMENT_RULE = "max_gradient_settlement_rule";
-
-    /**
-     * 小班课梯度结算规则设置
-     */
-    public static final String HIGH_GRADIENT_SETTLEMENT_RULE = "high_gradient_settlement_rule";
-
-    String STUDENT_APPLY_URL = "student_apply_url";
-    String SERVER_PHONE = "server_phone";
-
-    String MUSIC_GROUP_SETTLEMENT_CLASS_MINUTES = "music_group_settlement_class_minutes";
-
-    String MUSIC_GROUP_SETTLEMENT_DAY = "music_group_settlement_day";
-
-    String MUSIC_GROUP_SETTLEMENT_SINGLE_CLASS_MINUTES = "music_group_settlement_single_class_minutes";
-
-    /**
-     * 可签退时间限制(自然天)
-     */
-    String ENABLE_SIGN_OUT_TIME_RANGE = "enable_sign_out_time_range";
-
-    /**
-     * 可更新学生签到状态时间限制,课程结束后{}分钟(和前端核实过,乐团的已弃用)
-     */
-    String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE = "enable_student_attendance_time_range";
-
-    /**
-     * @describe 陪练课课酬
-     */
-    String PRACTICE_COURSE_SALARY = "practice_course_salary";
-
-    /**
-     * @describe 陪练课时长
-     */
-    String PRACTICE_COURSE_MINUTES = "practice_course_minutes";
-
-    /**
-     * @describe 陪练课预约时间间隔
-     */
-    String PRACTICE_APPLY_INTERVAL_TIME = "practice_apply_interval_time";
-
-    /**
-     * @describe 教师请假数据
-     */
-    String TEACHER_LEAVE_DATA = "teacher_leave_data";
-
-    /**
-     * 十分钟内最大可发送的短信次数
-     */
-    String SMS_MAX_TIMES = "sms_max_times";
-
-
-    /**
-     * 连堂课间隔时间
-     */
-    String AUTO_CLOSE_NETWORK_ROOM = "auto_close_network_room";
-
-    /**
-     * @describe 付费陪练课可购买最大月数
-     */
-    String PRACTICE_PAY_MAX_MONTH = "practice_pay_max_month";
-
-    /**
-     * @describe 付费陪练课单月上课数量
-     */
-    String PRACTICE_PAY_DRILL_TIMES_ON_ONE_WEEK = "practice_pay_drill_times_on_one_week";
-
-    /**
-     * @describe 付费陪练课活动截至日期
-     */
-    String PRACTICE_BUY_ACTIVITY_EXPIRE_DATE = "practice_buy_activity_expire_date";
-
-    /**
-     * 陪练老师端入口地址
-     */
-    String TEACHER_STUDY_REPORT_URL = "teacher_study_report_url";
-
-    /**
-     * 陪练课报告地址
-     */
-    String STUDENT_STUDY_REPORT_URL = "student_study_report_url";
-
-    /**
-     * @describe 陪练课续费地址
-     */
-    String PRACTICE_RENEW_URL = "practice_renew_url";
-
-    /**
-     * @describe 老师端baseUrl
-     */
-    String TEACHER_BASE_URL = "teacher_base_url";
-
-    String PRACTICE_PROMOTION_ACTIVITY_START_DATE = "practice_promotion_activity_start_date";
-
-    String NEW_MSG_PUSH = "您收到一条训练回复,请点击查看";
-
-    /**
-     * @describe 教务端baseUrl
-     */
-    String EDU_TEACHER_BASE_URL = "edu_teacher_base_url";
-
-    String HOLIDAY_SETTING = "holiday_setting";
-
-    String PRACTICE_FREE_APPLY_EXPIRE_DATE = "practice_free_apply_expire_date";
-    
-    String START_TIME_OF_1111 = "start_time_of_1111";
-    
-    String END_TIME_OF_1111 = "end_time_of_1111";
-
-    String VIP_SPECIAL_ACTIVITY_IDS = "vip_special_activity_ids";
-
-    //特殊规则默认值--》其他参数设置
-    //基本课酬{}元
-    String DAYA_BASE_SALARY_AMOUNT = "daya_base_salary_amount";
-    //对外课程课后缓冲时间{}分钟
-    String COURSE_BEFORE_BUFFER_TIME = "course_before_buffer_time";
-    //对外课程课后缓冲时间{}分钟
-    String COURSE_AFTER_BUFFER_TIME = "course_after_buffer_time";
-    //全职资源公摊金额
-    String FULL_JOB_FEE = "full_job_fee";
-    //云教练训练时长小于80分钟需要回访
-    String STUDENT_CLOUD_TEACHER_TOTAL_PLAY_TIME = "student_cloud_teacher_total_play_time";
-    //云教练训练次数小于4次需要回访
-    String STUDENT_CLOUD_TEACHER_TRAIN_NUM = "student_cloud_teacher_train_num";
-    //考级活动开始时间
-    String DEGREE_ACTIVITY_START_TIME = "degree_activity_start_time";
-    //考级活动开始时间
-    String DEGREE_ACTIVITY_END_TIME = "degree_activity_end_time";
-    //支持考级活动报名的分部列表
-    String DEGREE_SUPPORT_ORGAN_LIST = "degree_support_organ_list";
-
-
-
-    String WARNING_MIN_COURSE_SALARY = "warning_min_course_salary";
-
-    //会员结束前15天提醒学员续费(默认提前15天)
-    String PUSH_MEMBER_RENEW = "push_member_renew";
-
-    //试用会员结束前3天提醒学员续费(默认提前3天)
-    String EXPERIENCE_PUSH_MEMBER_RENEW = "experience_push_member_renew";
-
-    //云教练活动分部目标JSON
-    String CLOUD_TEACHER_ACTIVE_TARGET = "cloud_teacher_active_target";
-
-    //会员结束前15天提醒学员续费(默认提前5天)
-    String PUSH_MEMBER_RENEW_AGAIN = "push_member_renew_again";
-
-    //会员结束前5天提醒学员续费(退团提醒)(默认提前5天)
-    String PUSH_MEMBER_RENEW_QUIT = "push_member_renew_quit";
-
-    String CHILDREN_DAY_VIP_ACTIVITY_IDS = "children_day_vip_activity_ids";
-
-    //云教练作业开关0关1开
-    String HOMEWORK_OPEN_FLAG = "homework_open_flag";
-
-    //云教练免费体验开关0关1开
-    String FREE_CLOUD_OPEN_FLAG = "free_cloud_open_flag";
-
-    //云教练试用时间最晚截止时间
-    String EXPERIENCE_MEMBERSHIP_END_TIME = "experience_membership_end_time";
-
-    //小课收入是否由平台收款
-    String IS_OPEN_SMALL_CLASS_INCOME_TO_PLATFORM = "is_open_small_class_income_to_platform";
-
-    //平台收款账户
-    String PLATFORM_PAYEE_ACCOUNT = "platform_payee_account";
+	public static final String SMS_MAX_TIMES = "sms_max_times";
 
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig

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

@@ -0,0 +1,104 @@
+package com.yonge.cooleshow.biz.dal.service.impl;
+
+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.ImGroupDao;
+import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
+import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
+import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
+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.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.common.exception.BizException;
+import org.springframework.stereotype.Service;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * (ImGroupMemberAudit)表服务实现类
+ *
+ * @author zx
+ * @since 2022-03-22 17:18:51
+ */
+@Service("imGroupMemberAuditService")
+public class ImGroupMemberAuditServiceImpl extends ServiceImpl<ImGroupMemberAuditDao, ImGroupMemberAudit> implements ImGroupMemberAuditService {
+
+    private final static Logger log = LoggerFactory.getLogger(ImGroupMemberAuditServiceImpl.class);
+
+    @Resource
+    private ImGroupService imGroupService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private ImGroupMemberService imGroupMemberService;
+
+    @Override
+    public ImGroupMemberAuditDao getDao() {
+        return this.baseMapper;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void apply(ImGroupMemberAudit imGroupMemberAudit) {
+        Long groupId = imGroupMemberAudit.getGroupId();
+        ImGroup imGroup = imGroupService.getById(groupId);
+        if(Objects.isNull(imGroup)){
+            throw new BizException("群组信息不存在");
+        }
+        if(imGroup.getAutoPassFlag()){
+            imGroupMemberAudit.setAuditStatus(AuditStatusEnum.OPEN);
+        }else {
+            imGroupMemberAudit.setAuditStatus(AuditStatusEnum.AUDITING);
+        }
+        baseMapper.insert(imGroupMemberAudit);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void applyAudit(Long auditId, AuditStatusEnum auditStatus) throws Exception {
+        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());
+        if(Objects.isNull(imGroup)){
+            throw new BizException("群组信息不存在");
+        }
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(!sysUser.getId().equals(imGroup.getCreateBy())){
+            throw new BizException("操作失败:您没有审核权限");
+        }
+        if(auditStatus == AuditStatusEnum.REJECT){
+
+        }else if(auditStatus == AuditStatusEnum.OPEN){
+            //加群
+            imGroupMemberService.addGroupMember(imGroup.getId(),
+                    imGroupMemberAudit.getUserId(),false,
+                    imGroupMemberAudit.getRoleType());
+            //同步群成员数量
+            imGroupService.syncGroupMemberNum(imGroup.getId());
+        }else {
+            throw new BizException("操作失败:审核状态异常");
+        }
+        imGroupMemberAudit.setAuditStatus(auditStatus);
+        imGroupMemberAudit.setUpdateTime(new Date());
+        baseMapper.updateById(imGroupMemberAudit);
+    }
+}
+

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

@@ -1,23 +1,25 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
 import com.yonge.cooleshow.common.exception.BizException;
+import io.rong.models.Result;
+import io.rong.models.group.GroupMember;
+import io.rong.models.group.GroupModel;
 import org.apache.commons.collections.CollectionUtils;
-import org.springframework.stereotype.Service;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 /**
  * 群成员表(ImGroupMember)表服务实现类
@@ -49,10 +51,22 @@ public class ImGroupMemberServiceImpl extends ServiceImpl<ImGroupMemberDao, ImGr
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void addGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType){
+    public void addGroupMember(Long imGroupId, Long userId, Boolean isAdmin, ImGroupMember.ImGroupMemberRoleType roleType) throws Exception {
+        //加入融云群
+        GroupMember groupMember = new GroupMember(userId.toString(),imGroupId.toString(),null);
+        GroupMember[] groupMembers = new GroupMember[]{groupMember};
+        GroupModel groupModel = new GroupModel(imGroupId.toString(), 0);
+        groupModel.setMembers(groupMembers);
+        Result result = RongCloudConfig.rongCloud.group.join(groupModel);
+        if(!result.code.equals(200)){
+            log.error("加入群组失败:{}",result.errorMessage);
+            throw new BizException("加入群组失败:请联系管理员");
+        }
+        //记录群成员
         List<ImGroupMember> imGroupMembers = new ArrayList<>();
         BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
-        imGroupMembers.add(new ImGroupMember(imGroupId,userId,basicUserInfo.getRealName(),isAdmin,roleType));
+        String username = roleType== ImGroupMember.ImGroupMemberRoleType.TEACHER?basicUserInfo.getRealName():basicUserInfo.getUsername();
+        imGroupMembers.add(new ImGroupMember(imGroupId,userId,username,isAdmin,roleType));
         this.baseMapper.insertBatch(imGroupMembers);
     }
 

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

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
@@ -101,5 +103,15 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         //删除群成员
         imGroupMemberService.delByGroupId(groupId);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void syncGroupMemberNum(Long groupId) throws Exception {
+        ImGroup imGroup = baseMapper.selectById(groupId);
+        Integer memberNum = imGroupMemberService.getBaseMapper().
+                selectCount(new QueryWrapper<ImGroupMember>().eq("im_group_id_",groupId));
+        imGroup.setMemberNum(memberNum);
+        baseMapper.updateById(imGroup);
+    }
 }
 

+ 15 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java

@@ -1,14 +1,23 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.ImUserFriendDao;
 import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
 import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
+import com.yonge.cooleshow.common.page.PageInfo;
+import com.yonge.cooleshow.common.page.QueryInfo;
+import com.yonge.toolset.utils.collection.MapUtil;
+import org.apache.commons.collections.MapUtils;
 import org.springframework.stereotype.Service;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * 用户通讯录表(ImUserFriend)表服务实现类
  *
@@ -25,5 +34,11 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
         return this.baseMapper;
     }
 
+    @Override
+    public PageInfo<ImUserFriend> queryPage(QueryInfo queryInfo) {
+        Page<ImUserFriend> pageInfo = PageUtil.getPage(queryInfo.getPage(),queryInfo.getRows());
+        return PageUtil.pageInfo(baseMapper.queryPage(pageInfo,queryInfo));
+    }
+
 }
 

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

@@ -44,7 +44,7 @@ public class TeacherAuthMusicianRecordServiceImpl extends ServiceImpl<TeacherAut
     @Override
     public Integer getMusicianAuthStatus(Long id) {
         Teacher teacher = teacherService.getById(id);
-        return teacher.getMusicianAuthStatus();
+        return null == teacher ? 0 : teacher.getMusicianAuthStatus();
     }
 
     @Override

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

@@ -18,7 +18,7 @@ public class TeacherApplyDetail implements Serializable {
      * 审核单id
      */
     @ApiModelProperty("审核单id ")
-    @TableId(value = "id_", type = IdType.UUID)
+    @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
     /**
      * 对应user表用户编号

+ 10 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -10,6 +10,7 @@
         <result column="img_" jdbcType="VARCHAR" property="img"/>
         <result column="type_" jdbcType="VARCHAR" property="type" typeHandler="com.yonge.cooleshow.common.dal.CustomEnumTypeHandler"/>
         <result column="create_by_" property="createBy"/>
+        <result column="auto_pass_flag_" property="autoPassFlag"/>
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
     </resultMap>
@@ -24,20 +25,27 @@
             <if test="et.name != null">
                 name_ = #{et.name},
             </if>
+            <if test="et.autoPassFlag != null">
+                auto_pass_flag_ = #{et.autoPassFlag},
+            </if>
             introduce_ = #{et.introduce},
             memo_ = #{et.memo},
             update_time_ = NOW()
         </set>
         where id_ = #{et.id}
     </update>
+    <select id="getLock" resultMap="BaseResultMap">
+        SELECT * FROM im_group WHERE id_ = #{groupId} LIMIT 1 FOR UPDATE
+    </select>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroup">
-        INSERT INTO im_group(name_, introduce_, member_num_, memo_, img_, type_,create_by_, create_time_, update_time_)
+        INSERT INTO im_group(name_, introduce_, member_num_, memo_, img_, type_,create_by_,auto_pass_flag_, create_time_, update_time_)
         VALUES
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.name}, #{entity.introduce}, #{entity.memberNum}, #{entity.memo}, #{entity.img},
-             #{entity.type,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler},#{createBy}, NOW(), NOW())
+             #{entity.type,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler},
+             #{entity.createBy},#{entity.autoPassFlag}, NOW(), NOW())
         </foreach>
     </insert>
 

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

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao">
+    <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit">
+        <id column="id_" jdbcType="INTEGER" property="id"/>
+        <result column="user_id_" jdbcType="INTEGER" property="userId"/>
+        <result column="role_type_" jdbcType="VARCHAR" property="roleType" typeHandler="com.yonge.cooleshow.common.dal.CustomEnumTypeHandler"/>
+        <result column="group_id_" jdbcType="INTEGER" property="groupId"/>
+        <result column="desc_" jdbcType="VARCHAR" property="desc"/>
+        <result column="audit_status_" jdbcType="VARCHAR" property="auditStatus" typeHandler="com.yonge.cooleshow.common.dal.CustomEnumTypeHandler"/>
+        <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id_
+        , user_id_, role_type_, group_id_, desc_, audit_status_, create_time_, update_time_
+    </sql>
+
+    <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
+            parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit">
+        insert into im_group_member_audit(user_id_, role_type_, group_id_, desc_, audit_status_,
+        create_time_, update_time_)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.userId}, #{entity.roleType,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler}, #{entity.groupId}, #{entity.desc},
+            #{entity.auditStatus,typeHandler=com.yonge.cooleshow.common.dal.CustomEnumTypeHandler}, NOW(), NOW())
+        </foreach>
+    </insert>
+
+</mapper>

+ 5 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -18,12 +18,15 @@
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImUserFriend">
-        insert into im_user_friend(user_id_, friend_id_, friend_nickname_, memo_, create_time_, update_time_)
-        values
+        INSERT INTO im_user_friend(user_id_, friend_id_, friend_nickname_, memo_, create_time_, update_time_)
+        VALUES
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.userId}, #{entity.friendId}, #{entity.friendNickname}, #{entity.memo}, #{entity.createTime},
             #{entity.updateTime})
         </foreach>
     </insert>
+    <select id="queryPage">
+
+    </select>
 
 </mapper>

+ 47 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupMemberAuditController.java

@@ -0,0 +1,47 @@
+package com.yonge.cooleshow.student.controller;
+
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMemberAudit;
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
+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 org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+/**
+ * (ImGroupMemberAudit)表控制层
+ *
+ * @author zx
+ * @since 2022-03-22 17:18:51
+ */
+@Api(tags = "入群申请")
+@RestController
+@RequestMapping("/imGroupMemberAudit")
+public class ImGroupMemberAuditController extends BaseController {
+
+    @Resource
+    private ImGroupMemberAuditService imGroupMemberAuditService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation("申请入群")
+    @PostMapping(value = "/apply")
+    public HttpResponseResult apply(@Valid @RequestBody ImGroupMemberAudit imGroupMemberAudit){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        imGroupMemberAudit.setRoleType(ImGroupMember.ImGroupMemberRoleType.STUDENT);
+        imGroupMemberAudit.setUserId(sysUser.getId());
+        imGroupMemberAuditService.apply(imGroupMemberAudit);
+        return succeed();
+    }
+}
+

+ 56 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/SysConfigController.java

@@ -0,0 +1,56 @@
+package com.yonge.cooleshow.student.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.yonge.cooleshow.biz.dal.entity.SysConfig;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.common.controller.BaseController;
+
+/** 
+ * 系统配置控制层
+ */
+@RestController
+@Api(tags = "系统参数设置")
+@RequestMapping(value = "sysConfig")
+public class SysConfigController extends BaseController {
+
+	@Autowired
+	private SysConfigService sysConfigService;
+
+	@ApiOperation(value = "参数列表")
+	@GetMapping(value = "list")
+	public Object configList(String group) {
+		Map<String,Object> params = new HashMap<String, Object>();
+		params.put("group", group);
+		List<SysConfig> configs = sysConfigService.findAll(params);
+		return succeed(configs);
+	}
+
+	@ApiOperation(value = "查询参数")
+	@GetMapping(value = "get")
+	public Object getConfig(Long id) {
+		if (id == null || id <= 0)
+			return failed("请检查输入的ID");
+		return succeed(sysConfigService.get(id));
+	}
+
+	@ApiOperation(value = "查询参数")
+	@GetMapping(value = "queryByParamName")
+	public Object queryByParamName(String paramName) {
+		if(StringUtils.isBlank(paramName)){
+			return failed("参数不能为空");
+		}
+		return succeed(sysConfigService.findByParamName(paramName));
+	}
+}

+ 17 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.toolset.utils.validator.ValidationKit;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -60,6 +62,21 @@ public class ImGroupController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation("获取群详情")
+    @PostMapping(value = "/getDetail")
+    public HttpResponseResult<ImGroup> getDetail(@RequestBody Long groupId) throws Exception {
+        if(Objects.isNull(groupId)){
+            throw new BizException("参数校验失败");
+        }
+        return succeed(imGroupService.getById(groupId));
+    }
+
+    @ApiOperation("分页查询")
+    @PostMapping(value = "/queryPage")
+    public HttpResponseResult<Boolean> queryPage(@Valid @RequestBody ImGroup imGroup) throws Exception {
+        return succeed(imGroupService.updateById(imGroup));
+    }
+
     @ApiOperation("修改群信息")
     @PostMapping(value = "/update")
     public HttpResponseResult<Boolean> update(@Valid @RequestBody ImGroup imGroup) throws Exception {

+ 76 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupMemberAuditController.java

@@ -0,0 +1,76 @@
+package com.yonge.cooleshow.teacher.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+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;
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberAuditService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * (ImGroupMemberAudit)表控制层
+ *
+ * @author zx
+ * @since 2022-03-22 17:18:51
+ */
+@Api(tags = "入群申请")
+@RestController
+@RequestMapping("/imGroupMemberAudit")
+public class ImGroupMemberAuditController extends BaseController {
+
+    @Resource
+    private ImGroupMemberAuditService imGroupMemberAuditService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation("申请入群")
+    @PostMapping(value = "/apply")
+    public HttpResponseResult apply(@Valid @RequestBody ImGroupMemberAudit imGroupMemberAudit) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        imGroupMemberAudit.setRoleType(ImGroupMember.ImGroupMemberRoleType.TEACHER);
+        imGroupMemberAudit.setUserId(sysUser.getId());
+        imGroupMemberAuditService.apply(imGroupMemberAudit);
+        return succeed();
+    }
+
+    @ApiOperation("申请入群审核")
+    @PostMapping(value = "/applyAudit")
+    public HttpResponseResult applyAudit(@RequestBody Long auditId, AuditStatusEnum auditStatus) throws Exception {
+        if(Objects.isNull(auditId) || Objects.isNull(auditStatus)){
+            throw new BizException("参数校验失败");
+        }
+        imGroupMemberAuditService.applyAudit(auditId,auditStatus);
+        return succeed();
+    }
+
+    @ApiOperation("申请入群列表")
+    @PostMapping(value = "/queryPage")
+    public HttpResponseResult<IPage<ImGroupMemberAudit>> queryPage(@Valid @RequestBody ImGroupMemberAuditQueryInfo queryInfo) throws Exception {
+        Page<ImGroupMemberAudit> pageInfo = PageUtil.getPage(queryInfo.getPage(),queryInfo.getRows());
+        IPage<ImGroupMemberAudit> page = imGroupMemberAuditService.page(pageInfo,
+                Wrappers.<ImGroupMemberAudit>query().lambda()
+                        .eq(ImGroupMemberAudit::getGroupId, queryInfo.getAuditStatus()));
+        return succeed(page);
+    }
+
+}
+

+ 41 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImUserFriendController.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.teacher.controller;
+
+
+import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
+import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.page.PageInfo;
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * 用户通讯录表(ImUserFriend)表控制层
+ *
+ * @author zx
+ * @since 2022-03-22 10:45:59
+ */
+@Api(tags = "用户通讯录表")
+@RestController
+@RequestMapping("/imUserFriend")
+public class ImUserFriendController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ImUserFriendService imUserFriendService;
+
+    @ApiOperation("分页查询")
+    @PostMapping(value = "/queryPage")
+    public HttpResponseResult<PageInfo<ImUserFriend>> queryPage(@RequestBody QueryInfo queryInfo) throws Exception {
+        return succeed(imUserFriendService.queryPage(queryInfo));
+    }
+}
+

+ 56 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SysConfigController.java

@@ -0,0 +1,56 @@
+package com.yonge.cooleshow.teacher.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.yonge.cooleshow.biz.dal.entity.SysConfig;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.common.controller.BaseController;
+
+/** 
+ * 系统配置控制层
+ */
+@RestController
+@Api(tags = "系统参数设置")
+@RequestMapping(value = "sysConfig")
+public class SysConfigController extends BaseController {
+
+	@Autowired
+	private SysConfigService sysConfigService;
+
+	@ApiOperation(value = "参数列表")
+	@GetMapping(value = "list")
+	public Object configList(String group) {
+		Map<String,Object> params = new HashMap<String, Object>();
+		params.put("group", group);
+		List<SysConfig> configs = sysConfigService.findAll(params);
+		return succeed(configs);
+	}
+
+	@ApiOperation(value = "查询参数")
+	@GetMapping(value = "get")
+	public Object getConfig(Long id) {
+		if (id == null || id <= 0)
+			return failed("请检查输入的ID");
+		return succeed(sysConfigService.get(id));
+	}
+
+	@ApiOperation(value = "查询参数")
+	@GetMapping(value = "queryByParamName")
+	public Object queryByParamName(String paramName) {
+		if(StringUtils.isBlank(paramName)){
+			return failed("参数不能为空");
+		}
+		return succeed(sysConfigService.findByParamName(paramName));
+	}
+}