Browse Source

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

liujunchi 2 years ago
parent
commit
8bfcfe1295
23 changed files with 730 additions and 40 deletions
  1. 11 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/LoginEntity.java
  2. 3 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/filter/PhoneLoginAuthenticationFilter.java
  3. 4 2
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/PhoneAuthenticationProvider.java
  4. 4 2
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java
  5. 42 31
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
  6. 5 2
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/AppConstant.java
  7. 2 1
      cooleshow-user/pom.xml
  8. 49 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SysImComplaintController.java
  9. 15 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysImComplaintDao.java
  10. 153 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/SysImComplaint.java
  11. 14 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysImComplaintService.java
  12. 26 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysImComplaintServiceImpl.java
  13. 19 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/SysImComplaintDao.xml
  14. 47 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/SysImComplaintController.java
  15. 0 1
      cooleshow-user/user-teacher/pom.xml
  16. 47 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SysImComplaintController.java
  17. 78 0
      cooleshow-user/user-website/pom.xml
  18. 29 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/WebsiteApplication.java
  19. 44 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/config/ResourceServerConfig.java
  20. 54 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/config/WebMvcConfig.java
  21. 41 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/interceptor/MDCInterceptor.java
  22. 31 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/interceptor/OperationLogInterceptor.java
  23. 12 0
      cooleshow-user/user-website/src/main/resources/bootstrap-prod.yml

+ 11 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/LoginEntity.java

@@ -8,8 +8,10 @@ public class LoginEntity {
     private String clientId;
 
     private String clientSecret;
-
+    //未注册是否立即注册
     private Boolean isSurportRegister;
+    //注册的用户类型,没有则按照clientId自动分配:STUDENT,TEACHER
+    private String registerUserType;
 
     private String phone;
     
@@ -47,6 +49,14 @@ public class LoginEntity {
         this.clientSecret = clientSecret;
     }
 
+    public String getRegisterUserType() {
+        return registerUserType;
+    }
+
+    public void setRegisterUserType(String registerUserType) {
+        this.registerUserType = registerUserType;
+    }
+
     public String getPhone() {
         return phone;
     }

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/filter/PhoneLoginAuthenticationFilter.java

@@ -25,6 +25,7 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 	private static final String SPRING_SECURITY_RESTFUL_VERIFY_CODE_KEY = "smsCode";
 	private static final String clientIdParameter = "clientId";
 	private static final String IS_SURPORT_REGISTER = "isSurportRegister";
+	private static final String REGISTER_USER_TYPE = "registerUserType";
 
 	private static final String DEVICE_NUM = "deviceNum";
 
@@ -47,6 +48,7 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 		String credentials = obtainParameter(request, SPRING_SECURITY_RESTFUL_VERIFY_CODE_KEY);
 		
 		boolean isRegister = StringUtils.equals("true", request.getParameter(IS_SURPORT_REGISTER));
+		String registerUserType = obtainParameter(request, REGISTER_USER_TYPE);
 
 		String clientId = request.getParameter(clientIdParameter).toUpperCase();
 
@@ -63,6 +65,7 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 		loginEntity.setPhone(principal);
 		loginEntity.setSmsCode(credentials);
 		loginEntity.setIsSurportRegister(isRegister);
+		loginEntity.setRegisterUserType(registerUserType);
 		loginEntity.setDeviceNum(deviceNum);
 
 		authRequest = new PhoneAuthenticationToken(SecurityConstants.PHONE_PRINCIPAL_PREFIX + principal, loginEntity);

+ 4 - 2
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/PhoneAuthenticationProvider.java

@@ -60,7 +60,9 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 		String clientId = loginEntity.getClientId();
 
 		Boolean isRegister = loginEntity.getIsSurportRegister();
-		
+
+		String registerUserType = loginEntity.getRegisterUserType();
+
 		String deviceNum = loginEntity.getDeviceNum();
 
 		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(phone);
@@ -70,7 +72,7 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 				throw new LockedException("用户不存在");
 			}
 			
-			userInfo = sysUserService.registerUser(loginEntity.getPhone(), clientId);
+			userInfo = sysUserService.registerUser(loginEntity.getPhone(), clientId,registerUserType);
 			
 			if (StringUtils.isNotBlank(deviceNum)) {
 				sysUserDeviceService.bindDevice(clientId, userInfo.getSysUser().getId(), deviceNum);

+ 4 - 2
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java

@@ -121,9 +121,10 @@ public interface SysUserService extends BaseService<Long, SysUser> {
      *
      * @param phone
      * @param clientId
+     * @param registerUserType
      * @return
      */
-    SysUserInfo registerUser(String phone, String clientId);
+    SysUserInfo registerUser(String phone, String clientId, String registerUserType);
 
     /**
      * 刷新token
@@ -164,6 +165,7 @@ public interface SysUserService extends BaseService<Long, SysUser> {
      * @return: com.yonge.cooleshow.biz.dal.vo.TeacherVo
      */
     UserSetVo getSetDetail(Long id);
+
     /***
      * 用户设置
      * @author liweifan
@@ -177,7 +179,7 @@ public interface SysUserService extends BaseService<Long, SysUser> {
     void updateRongCloudUserInfo(Long userId);
 
     /**
-     *  商城同步管理用户
+     * 商城同步管理用户
      *
      * @param queryInfo
      * @return

+ 42 - 31
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -142,40 +142,51 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public SysUserInfo registerUser(String phone, String clientId) {
+    public SysUserInfo registerUser(String phone, String clientId, String registerUserType) {
+        if (StringUtils.equalsIgnoreCase(registerUserType, "TEACHER")) {
+            return registerTeacher(phone);
+        } else if (StringUtils.equalsIgnoreCase(registerUserType, "STUDENT")) {
+            return registerStudent(phone);
+        } else if (StringUtils.equalsIgnoreCase(clientId, "TEACHER")) {
+            return registerTeacher(phone);
+        } else if (StringUtils.equalsIgnoreCase(clientId, "STUDENT")) {
+            return registerStudent(phone);
+        }
+        return null;
+    }
+
+    private SysUserInfo registerTeacher(String phone) {
         SysUser sysUser = new SysUser();
         sysUser.setPhone(phone);
-        //String password = sysUser.getPhone().substring(sysUser.getPhone().length() - 6);
-        //sysUser.setPassword(new BCryptPasswordEncoder().encode(password));
         String defaultHeard = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
         sysUser.setAvatar(defaultHeard);
-        if (StringUtils.equalsIgnoreCase(clientId, "TEACHER")) {
-            sysUser.setUserType("TEACHER");
-            sysUserDao.insert(sysUser);
-            //添加用户现金账户
-            //imFeignService.register(new ImUserModel(sysUser.getId().toString(),phone,null));
-            //userFeignService.createCashAccount(sysUser.getId());
-            //sysTenantAccount
-            //创建teacher表
-            sysUserDao.saveTeacher(sysUser.getId());
-            //创建老师账户
-            sysUserDao.createUserAccount(sysUser.getId());
 
-            //用户默认昵称
-            sysUser.setUsername("游客"+sysUser.getId());
-            sysUserDao.update(sysUser);
-            return queryUserInfoByPhone(phone);
-        } else if (StringUtils.equalsIgnoreCase(clientId, "STUDENT")) {
-            sysUser.setUserType("STUDENT");
-            sysUserDao.insert(sysUser);
-            saveStudent(sysUser);
-
-            //用户默认昵称
-            sysUser.setUsername("游客"+sysUser.getId());
-            sysUserDao.update(sysUser);
-            return queryUserInfoByPhone(phone);
-        }
-        return null;
+        sysUser.setUserType("TEACHER");
+        sysUserDao.insert(sysUser);
+        //创建teacher表
+        sysUserDao.saveTeacher(sysUser.getId());
+        //创建老师账户
+        sysUserDao.createUserAccount(sysUser.getId());
+        //用户默认昵称
+        sysUser.setUsername("游客" + sysUser.getId());
+        sysUserDao.update(sysUser);
+        return queryUserInfoByPhone(phone);
+    }
+
+    private SysUserInfo registerStudent(String phone) {
+        SysUser sysUser = new SysUser();
+        sysUser.setPhone(phone);
+        String defaultHeard = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
+        sysUser.setAvatar(defaultHeard);
+
+        sysUser.setUserType("STUDENT");
+        sysUserDao.insert(sysUser);
+        saveStudent(sysUser);
+
+        //用户默认昵称
+        sysUser.setUsername("游客" + sysUser.getId());
+        sysUserDao.update(sysUser);
+        return queryUserInfoByPhone(phone);
     }
 
     @Override
@@ -188,7 +199,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     @Transactional(rollbackFor = Exception.class)
     public void saveStudent(SysUser sysUser) {
         sysUserDao.saveStudent(sysUser.getId());
-        if(!sysUser.getUserType().contains("TEACHER")){
+        if (!sysUser.getUserType().contains("TEACHER")) {
             sysUserDao.createUserAccount(sysUser.getId());
         }
     }
@@ -198,7 +209,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     public void saveTeacher(SysUser sysUser) {
 
         sysUserDao.saveTeacher(sysUser.getId());
-        if(!sysUser.getUserType().contains("STUDENT")){
+        if (!sysUser.getUserType().contains("STUDENT")) {
             sysUserDao.createUserAccount(sysUser.getId());
         }
     }

+ 5 - 2
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/AppConstant.java

@@ -5,6 +5,7 @@ package com.yonge.cooleshow.common.constant;
  * @Data: 2022/5/5 10:02
  */
 public interface AppConstant {
+    String SERVER = "-server";
     /**
      * 网关
      */
@@ -49,6 +50,8 @@ public interface AppConstant {
      * 音频分析
      */
     String APPLICATION_AUDIO_ANALYSIS = "audio-analysis";
-
-    String SERVER = "-server";
+    /**
+     * 官网
+     */
+    String APPLICATION_WEBSITE = "website";
 }

+ 2 - 1
cooleshow-user/pom.xml

@@ -40,5 +40,6 @@
 		<module>user-classroom</module>
 		<module>user-admin</module>
 		<module>user-biz</module>
-	</modules>
+        <module>user-website</module>
+    </modules>
 </project>

+ 49 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SysImComplaintController.java

@@ -0,0 +1,49 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.biz.dal.entity.SysImComplaint;
+import com.yonge.cooleshow.biz.dal.service.SysImComplaintService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+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.security.access.prepost.PreAuthorize;
+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 java.util.Date;
+
+/**
+ * (SysImComplaint)表控制层
+ *
+ * @author zx
+ * @since 2022-06-13 16:37:00
+ */
+@RestController
+@Api(tags = "消息(群组)投诉")
+@RequestMapping("sysImComplaint")
+public class SysImComplaintController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private SysImComplaintService sysImComplaintService;
+    @Resource
+    private SysUserService sysUserService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('sysImComplaint/add')")
+    public HttpResponseResult<Boolean> add(@RequestBody SysImComplaint sysImComplaint) {
+        sysImComplaint.setUserId(sysUserService.getUserId());
+        Date now = new Date();
+        sysImComplaint.setUpdateTime(now);
+        sysImComplaint.setCreateTime(now);
+        return succeed(sysImComplaintService.save(sysImComplaint));
+    }
+
+}
+

+ 15 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysImComplaintDao.java

@@ -0,0 +1,15 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yonge.cooleshow.biz.dal.entity.SysImComplaint;
+
+/**
+ * (SysImComplaint)表数据库访问层
+ *
+ * @author zx
+ * @since 2022-06-13 16:37:05
+ */
+public interface SysImComplaintDao extends BaseMapper<SysImComplaint> {
+
+}
+

+ 153 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/SysImComplaint.java

@@ -0,0 +1,153 @@
+package com.yonge.cooleshow.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * (SysImComplaint)实体类
+ *
+ * @author zx
+ * @since 2022-06-13 16:41:47
+ */
+public class SysImComplaint implements Serializable {
+    private static final long serialVersionUID = -24930864920892601L;
+
+    @TableId("id_")
+    private Long id;
+
+    @TableField("type_")
+    @ApiModelProperty("投诉对象类型GROUP,PERSON")
+    @NotBlank(message = "投诉对象类型不能为空")
+    private String type;
+
+    @TableField("url_")
+    @ApiModelProperty("图片凭证")
+    @NotBlank(message = "图片凭证不能为空")
+    private String url;
+
+    @TableField("memo_")
+    @NotBlank(message = "描述不能为空")
+    @ApiModelProperty("描述")
+    private String memo;
+
+    @TableField("user_id_")
+    @ApiModelProperty("投诉人")
+    private Long userId;
+
+    @TableField("target_id_")
+    @NotBlank(message = "目标id不能为空")
+    @ApiModelProperty("目标id")
+    private String targetId;
+
+    @TableField("operator_")
+    @ApiModelProperty("处理人")
+    private Long operator;
+
+    @TableField("operator_time_")
+    @ApiModelProperty("处理时间")
+    private Date operatorTime;
+
+    @TableField("status_")
+    @ApiModelProperty("处理状态0待处理,1已处理,默认0")
+    private Integer status = 0;
+
+    @TableField("create_time_")
+    private Date createTime;
+
+    @TableField("update_time_")
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getTargetId() {
+        return targetId;
+    }
+
+    public void setTargetId(String targetId) {
+        this.targetId = targetId;
+    }
+
+    public Long getOperator() {
+        return operator;
+    }
+
+    public void setOperator(Long operator) {
+        this.operator = operator;
+    }
+
+    public Date getOperatorTime() {
+        return operatorTime;
+    }
+
+    public void setOperatorTime(Date operatorTime) {
+        this.operatorTime = operatorTime;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    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;
+    }
+}
+

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysImComplaintService.java

@@ -0,0 +1,14 @@
+package com.yonge.cooleshow.biz.dal.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.entity.SysImComplaint;
+
+/**
+ * (SysImComplaint)表服务接口
+ *
+ * @author makejava
+ * @since 2022-06-13 16:37:13
+ */
+public interface SysImComplaintService extends IService<SysImComplaint> {
+
+}

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

@@ -0,0 +1,26 @@
+package com.yonge.cooleshow.biz.dal.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.dao.SysImComplaintDao;
+import com.yonge.cooleshow.biz.dal.entity.SysImComplaint;
+import com.yonge.cooleshow.biz.dal.service.SysImComplaintService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * (SysImComplaint)表服务实现类
+ *
+ * @author zx
+ * @since 2022-06-13 16:37:15
+ */
+@Service("sysImComplaintService")
+public class SysImComplaintServiceImpl extends ServiceImpl<SysImComplaintDao, SysImComplaint> implements SysImComplaintService {
+
+    @Resource
+    private SysImComplaintDao sysImComplaintDao;
+
+    public SysImComplaintDao getDao() {
+        return sysImComplaintDao;
+    }
+}

+ 19 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysImComplaintDao.xml

@@ -0,0 +1,19 @@
+<?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.SysImComplaintDao">
+
+    <resultMap type="com.yonge.cooleshow.biz.dal.entity.SysImComplaint" id="SysImComplaintMap">
+        <result property="id" column="id_" jdbcType="INTEGER"/>
+        <result property="type" column="type_" jdbcType="VARCHAR"/>
+        <result property="url" column="url_" jdbcType="VARCHAR"/>
+        <result property="memo" column="memo_" jdbcType="VARCHAR"/>
+        <result property="userId" column="user_id_" jdbcType="INTEGER"/>
+        <result property="targetId" column="target_id_" jdbcType="VARCHAR"/>
+        <result property="operator" column="operator_" jdbcType="INTEGER"/>
+        <result property="operatorTime" column="operator_time_" jdbcType="TIMESTAMP"/>
+        <result property="status" column="status_" jdbcType="INTEGER"/>
+        <result property="createTime" column="create_time_" jdbcType="TIMESTAMP"/>
+        <result property="updateTime" column="update_time_" jdbcType="TIMESTAMP"/>
+    </resultMap>
+</mapper>
+

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

@@ -0,0 +1,47 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.yonge.cooleshow.biz.dal.entity.SysImComplaint;
+import com.yonge.cooleshow.biz.dal.service.SysImComplaintService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+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 java.util.Date;
+
+/**
+ * (SysImComplaint)表控制层
+ *
+ * @author zx
+ * @since 2022-06-13 16:37:00
+ */
+@RestController
+@Api(tags = "消息(群组)投诉")
+@RequestMapping("sysImComplaint")
+public class SysImComplaintController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private SysImComplaintService sysImComplaintService;
+    @Resource
+    private SysUserService sysUserService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    public HttpResponseResult<Boolean> add(@RequestBody SysImComplaint sysImComplaint) {
+        sysImComplaint.setUserId(sysUserService.getUserId());
+        Date now = new Date();
+        sysImComplaint.setUpdateTime(now);
+        sysImComplaint.setCreateTime(now);
+        return succeed(sysImComplaintService.save(sysImComplaint));
+    }
+
+}
+

+ 0 - 1
cooleshow-user/user-teacher/pom.xml

@@ -17,7 +17,6 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
     <dependencies>
-
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

+ 47 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SysImComplaintController.java

@@ -0,0 +1,47 @@
+package com.yonge.cooleshow.teacher.controller;
+
+import com.yonge.cooleshow.biz.dal.entity.SysImComplaint;
+import com.yonge.cooleshow.biz.dal.service.SysImComplaintService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+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 java.util.Date;
+
+/**
+ * (SysImComplaint)表控制层
+ *
+ * @author zx
+ * @since 2022-06-13 16:37:00
+ */
+@RestController
+@Api(tags = "消息(群组)投诉")
+@RequestMapping("sysImComplaint")
+public class SysImComplaintController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private SysImComplaintService sysImComplaintService;
+    @Resource
+    private SysUserService sysUserService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    public HttpResponseResult<Boolean> add(@RequestBody SysImComplaint sysImComplaint) {
+        sysImComplaint.setUserId(sysUserService.getUserId());
+        Date now = new Date();
+        sysImComplaint.setUpdateTime(now);
+        sysImComplaint.setCreateTime(now);
+        return succeed(sysImComplaintService.save(sysImComplaint));
+    }
+
+}
+

+ 78 - 0
cooleshow-user/user-website/pom.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>com.yonge.cooleshow</groupId>
+        <artifactId>cooleshow-user</artifactId>
+        <version>1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.yonge.cooleshow</groupId>
+    <artifactId>user-website</artifactId>
+    <version>1.0</version>
+    <name>user-website</name>
+    <url>http://maven.apache.org</url>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-security</artifactId>
+        </dependency>
+
+        <!-- swagger-spring-boot -->
+        <dependency>
+            <groupId>com.spring4all</groupId>
+            <artifactId>swagger-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>audit-log</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>thirdparty-component</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.cooleshow</groupId>
+            <artifactId>user-biz</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.whvcse</groupId>
+            <artifactId>easy-captcha</artifactId>
+            <version>1.6.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 29 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/WebsiteApplication.java

@@ -0,0 +1,29 @@
+package com.yonge.cooleshow.website;
+
+import com.spring4all.swagger.EnableSwagger2Doc;
+import com.yonge.cooleshow.common.constant.AppConstant;
+import com.yonge.toolset.base.BaseApplication;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022/3/15 15:19
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+@EnableFeignClients("com.yonge.cooleshow")
+@MapperScan(basePackages = {"com.yonge.cooleshow.biz.dal.dao", "com.yonge.toolset.payment.core.dao"})
+@ComponentScan(basePackages = {"com.yonge.cooleshow","com.yonge.toolset"})
+@Configuration
+@EnableSwagger2Doc
+public class WebsiteApplication {
+    public static void main(String[] args) {
+        BaseApplication.run(AppConstant.APPLICATION_WEBSITE, WebsiteApplication.class, args);
+    }
+
+}

+ 44 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/config/ResourceServerConfig.java

@@ -0,0 +1,44 @@
+package com.yonge.cooleshow.website.config;
+
+import com.yonge.cooleshow.common.security.BaseAccessDeniedHandler;
+import com.yonge.cooleshow.common.security.BaseAuthenticationEntryPoint;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
+import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
+
+@Configuration
+@EnableResourceServer
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
+
+    @Autowired
+    private BaseAccessDeniedHandler baseAccessDeniedHandler;
+
+    @Autowired
+    private BaseAuthenticationEntryPoint baseAuthenticationEntryPoint;
+
+    @Override
+    public void configure(HttpSecurity http) throws Exception {
+        http.csrf()
+                .disable()
+                .exceptionHandling()
+                .accessDeniedHandler(baseAccessDeniedHandler)
+                .authenticationEntryPoint(baseAuthenticationEntryPoint)
+                .and()
+                .authorizeRequests()
+                .antMatchers("/task/*").hasIpAddress("0.0.0.0/0")
+                .antMatchers("/v2/api-docs", "/code/*",
+                        "/liveRoom/test", "/liveRoom/syncUserStatus", "/courseGroup/getLockCache", "/open/**")
+                .permitAll().anyRequest().authenticated().and().httpBasic();
+    }
+
+    @Override
+    public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
+        resources.authenticationEntryPoint(baseAuthenticationEntryPoint).accessDeniedHandler(baseAccessDeniedHandler);
+    }
+
+}

+ 54 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/config/WebMvcConfig.java

@@ -0,0 +1,54 @@
+package com.yonge.cooleshow.website.config;
+
+import com.yonge.cooleshow.biz.dal.config.LocalFastJsonHttpMessageConverter;
+import com.yonge.cooleshow.common.config.EnumConverterFactory;
+import com.yonge.cooleshow.website.interceptor.MDCInterceptor;
+import com.yonge.cooleshow.website.interceptor.OperationLogInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.format.FormatterRegistry;
+import org.springframework.http.MediaType;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+	@Autowired
+	private MDCInterceptor mdcInterceptor;
+
+	@Autowired
+	private OperationLogInterceptor operationLogInterceptor;
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		List<String> includePathPatterns = new ArrayList<String>();
+		includePathPatterns.add("/**");
+		List<String> excludePathPatterns = new ArrayList<String>();
+		excludePathPatterns.add("/login");
+		registry.addInterceptor(mdcInterceptor).addPathPatterns(includePathPatterns).excludePathPatterns(excludePathPatterns);
+	}
+
+	/**
+	 * 枚举类的转换器 addConverterFactory
+	 */
+	@Override
+	public void addFormatters(FormatterRegistry registry) {
+		registry.addConverterFactory(new EnumConverterFactory());
+	}
+	
+	@Bean
+    public HttpMessageConverters fastJsonHttpMessageConverters(){
+		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
+        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
+        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+        converter.setSupportedMediaTypes(fastMediaTypes);
+        return new HttpMessageConverters(converter);
+    }
+
+}

+ 41 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/interceptor/MDCInterceptor.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.website.interceptor;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.toolset.utils.web.WebUtil;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Component
+public class MDCInterceptor extends HandlerInterceptorAdapter {
+
+	private static final String IP = "ip";
+
+	private static final String USERNAME = "username";
+	
+	@Autowired
+	@Lazy
+	private SysUserFeignService sysUserFeignService;
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser != null && sysUser.getId() != null) {
+			// 存储userId以及IP
+			MDC.put(USERNAME, sysUser.getUsername() + "@" + sysUser.getId());
+		}
+		MDC.put(IP, WebUtil.getRemoteIp(request));
+
+		return true;
+	}
+
+	@Override
+	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+	}
+}

+ 31 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/interceptor/OperationLogInterceptor.java

@@ -0,0 +1,31 @@
+package com.yonge.cooleshow.website.interceptor;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.toolset.log.interceptor.AuditLogInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class OperationLogInterceptor extends AuditLogInterceptor {
+
+	@Autowired
+	@Lazy
+	private SysUserFeignService sysUserFeignService;
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser != null && sysUser.getId() != null) {
+			setUsername(sysUser.getRealName(),sysUser.getId());
+		}
+		return true;
+	}
+
+}

+ 12 - 0
cooleshow-user/user-website/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,12 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 47.114.1.200:8848
+        namespace: 6f8374a9-598f-4889-bb17-476070ffb8de
+        group: DEFAULT_GROUP
+        prefix: website
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true