liujunchi 3 rokov pred
rodič
commit
5919a5a17c
100 zmenil súbory, kde vykonal 1331 pridanie a 430 odobranie
  1. 5 3
      cooleshow-auth/auth-api/pom.xml
  2. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/AuthTaskFeignService.java
  3. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java
  4. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/CertificateTypeEnum.java
  5. 1 2
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/SysUserType.java
  6. 2 2
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/UserLockFlag.java
  7. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/YesOrNoEnum.java
  8. 8 2
      cooleshow-auth/auth-server/pom.xml
  9. 13 14
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/LocalFastJsonHttpMessageConverter.java
  10. 9 11
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/ParameterCheckServletRequestWrapper.java
  11. 0 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/WebMvcConfig.java
  12. 51 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/filters/EmojiEncodingFilter.java
  13. 2 2
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/enums/UserGenderEnum.java
  14. 2 2
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/enums/UserStatus.java
  15. 80 70
      cooleshow-cms/pom.xml
  16. 73 0
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/LocalFastJsonHttpMessageConverter.java
  17. 86 0
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/ParameterCheckServletRequestWrapper.java
  18. 0 1
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/WebMvcConfig.java
  19. 51 0
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/filters/EmojiEncodingFilter.java
  20. 1 1
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/NewsStatusEnum.java
  21. 6 15
      cooleshow-common/pom.xml
  22. 1 2
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/EnumConverter.java
  23. 1 2
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/EnumConverterFactory.java
  24. 0 128
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/RequestAttributeHystrixConcurrencyStrategy.java
  25. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/controller/BaseController.java
  26. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/HttpResponseResult.java
  27. 3 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/AccessSource.java
  28. 0 14
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/BaseEnum.java
  29. 3 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/PlatformEnum.java
  30. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserGenderEnum.java
  31. 1 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/exception/BizException.java
  32. 6 2
      cooleshow-mall/mall-admin/pom.xml
  33. 73 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/LocalFastJsonHttpMessageConverter.java
  34. 86 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/ParameterCheckServletRequestWrapper.java
  35. 0 3
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java
  36. 51 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/filters/EmojiEncodingFilter.java
  37. 1 1
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/OrderStatusEnum.java
  38. 1 1
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/PaymentSdk.java
  39. 10 1
      cooleshow-mall/mall-portal/pom.xml
  40. 73 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/LocalFastJsonHttpMessageConverter.java
  41. 86 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/ParameterCheckServletRequestWrapper.java
  42. 0 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/WebMvcConfig.java
  43. 6 13
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/filters/EmojiEncodingFilter.java
  44. 6 0
      cooleshow-task/pom.xml
  45. 60 0
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/LocalFastJsonHttpMessageConverter.java
  46. 84 0
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/ParameterCheckServletRequestWrapper.java
  47. 0 1
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/WebMvcConfig.java
  48. 1 2
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/MallPortalFeignService.java
  49. 1 1
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/StudentFeignService.java
  50. 1 1
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/TeacherFeignService.java
  51. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java
  52. 12 0
      cooleshow-user/user-biz/pom.xml
  53. 73 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/LocalFastJsonHttpMessageConverter.java
  54. 86 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/ParameterCheckServletRequestWrapper.java
  55. 51 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/filters/EmojiEncodingFilter.java
  56. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonPurchaseRecordDao.java
  57. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java
  58. 1 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java
  59. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java
  60. 1 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/SysUserContracts.java
  61. 39 51
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java
  62. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AccountBizTypeEnum.java
  63. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AudioTypeEnum.java
  64. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuditEnum.java
  65. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuditStatusEnum.java
  66. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuthStatusEnum.java
  67. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CacheNameEnum.java
  68. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/ChargeTypeEnum.java
  69. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/ClientEnum.java
  70. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CourseGroupEnum.java
  71. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CourseScheduleEnum.java
  72. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/FrozenTypeEnum.java
  73. 1 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/GenderEnum.java
  74. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/GoodTypeEnum.java
  75. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/InOrOutEnum.java
  76. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/JobNatureEnum.java
  77. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageSendMode.java
  78. 4 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java
  79. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/OrderStatusEnum.java
  80. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/OrderTypeEnum.java
  81. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/PayChannelEnum.java
  82. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/PeriodEnum.java
  83. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SendStatusEnum.java
  84. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SourceTypeEnum.java
  85. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/StudentCourseEnum.java
  86. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SuggestionType.java
  87. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TeacherSalaryEnum.java
  88. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TeacherTypeEnum.java
  89. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TimeTypeEnum.java
  90. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TradeStatusEnum.java
  91. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/UserLockFlag.java
  92. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/YesOrNoEnum.java
  93. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/sdk/PaymentSdk.java
  94. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  95. 13 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  96. 11 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  97. 3 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMessageServiceImpl.java
  98. 14 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java
  99. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java
  100. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseStudent.java

+ 5 - 3
cooleshow-auth/auth-api/pom.xml

@@ -12,10 +12,11 @@
 	<artifactId>auth-api</artifactId>
 	<version>1.0</version>
 	<name>auth-api</name>
-	<url>http://maven.apache.org</url>
+
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
+
 	<dependencies>
 		<dependency>
 			<groupId>com.spring4all</groupId>
@@ -23,8 +24,9 @@
 		</dependency>
 
 		<dependency>
-			<groupId>org.springframework.cloud</groupId>
-			<artifactId>spring-cloud-starter-openfeign</artifactId>
+			<groupId>com.yonge.toolset</groupId>
+			<artifactId>toolset-feign</artifactId>
+			<version>1.0</version>
 		</dependency>
 
 		<dependency>

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/AuthTaskFeignService.java

@@ -1,10 +1,10 @@
 package com.yonge.cooleshow.auth.api.client;
 
+import com.yonge.toolset.feign.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 
 import com.yonge.cooleshow.auth.api.client.fallback.AuthTaskFeignServiceFallback;
-import com.yonge.cooleshow.common.config.FeignConfiguration;
 
 @FeignClient(contextId = "authTaskFeignService", name = "auth-server", configuration = { FeignConfiguration.class }, fallback = AuthTaskFeignServiceFallback.class)
 public interface AuthTaskFeignService {

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java

@@ -4,8 +4,8 @@ import com.yonge.cooleshow.auth.api.client.fallback.SysUserFeignServiceFallback;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.dto.SysUserQueryInfo;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.common.config.FeignConfiguration;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.feign.config.FeignConfiguration;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/CertificateTypeEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.auth.api.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * @Author Joburgess

+ 1 - 2
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/SysUserType.java

@@ -1,9 +1,8 @@
 package com.yonge.cooleshow.auth.api.enums;
 
+import com.yonge.toolset.base.enums.BaseEnum;
 import org.apache.commons.lang3.StringUtils;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
-
 public enum SysUserType implements BaseEnum<String, SysUserType> {
 
 	STUDENT("学生"), TEACHER("指导老师"), SYSTEM("系统內置");

+ 2 - 2
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/UserLockFlag.java

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.auth.api.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
-/** 
+/**
  * 会员状态枚举类
  */
 public enum UserLockFlag implements BaseEnum<Integer, UserLockFlag> {

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/YesOrNoEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.auth.api.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
     NO(0,"否"),

+ 8 - 2
cooleshow-auth/auth-server/pom.xml

@@ -80,8 +80,8 @@
         </dependency>
 
         <dependency>
-			<groupId>com.yonge.toolset</groupId>
-			<artifactId>thirdparty-component</artifactId>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>thirdparty-component</artifactId>
         </dependency>
 
         <dependency>
@@ -90,6 +90,12 @@
             <version>3.2.17</version>
             <scope>compile</scope>
         </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-emoji</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 13 - 14
cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/LocalFastJsonHttpMessageConverter.java → cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/LocalFastJsonHttpMessageConverter.java

@@ -1,16 +1,4 @@
-package com.yonge.cooleshow.common.config;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.util.Date;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.http.HttpInputMessage;
-import org.springframework.http.HttpOutputMessage;
-import org.springframework.http.converter.HttpMessageNotReadableException;
-import org.springframework.http.converter.HttpMessageNotWritableException;
+package com.yonge.cooleshow.auth.config;
 
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
@@ -18,8 +6,19 @@ import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.vdurmont.emoji.EmojiParser;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 import com.yonge.toolset.utils.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 

+ 9 - 11
cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/ParameterCheckServletRequestWrapper.java → cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/ParameterCheckServletRequestWrapper.java

@@ -1,20 +1,18 @@
-package com.yonge.cooleshow.common.config;
+package com.yonge.cooleshow.auth.config;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.nio.charset.Charset;
+import com.vdurmont.emoji.EmojiParser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
 
 import javax.servlet.ReadListener;
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.util.StreamUtils;
-
-import com.vdurmont.emoji.EmojiParser;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
 
 public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
 

+ 0 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/WebMvcConfig.java

@@ -14,7 +14,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import com.yonge.cooleshow.auth.interceptor.OperationLogInterceptor;
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {

+ 51 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/config/filters/EmojiEncodingFilter.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.auth.config.filters;
+
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.cooleshow.auth.config.ParameterCheckServletRequestWrapper;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+public class EmojiEncodingFilter implements Filter {
+
+	@Override
+	public void init(FilterConfig filterConfig) throws ServletException {
+		Filter.super.init(filterConfig);
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+		request = new ParameterCheckServletRequestWrapper((HttpServletRequest) request) {
+
+			@Override
+			public String getParameter(String name) {
+				// 参数名
+				String value = super.getParameter(name);
+				if (StringUtils.isNotBlank(value)) {
+					// 返回值之前 先进行 Emoji 转化
+					return EmojiParser.removeAllEmojis(value);
+				}
+				return value;
+			}
+
+			@Override
+			public String[] getParameterValues(String name) {
+				// 参数值
+				// 返回值之前 先进行 Emoji 转化
+				String[] values = super.getParameterValues(name);
+				if (values != null) {
+					for (int i = 0; i < values.length; i++) {
+						values[i] = EmojiParser.removeAllEmojis(values[i]);
+					}
+				}
+				return values;
+			}
+
+		};
+		
+		chain.doFilter(request, response);
+	}
+
+}

+ 2 - 2
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/enums/UserGenderEnum.java

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.auth.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
-/** 
+/**
  * 会员性别枚举
  */
 public enum UserGenderEnum implements BaseEnum<Integer, UserGenderEnum> {

+ 2 - 2
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/enums/UserStatus.java

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.auth.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
-/** 
+/**
  * 会员状态枚举类
  */
 public enum UserStatus implements BaseEnum<Integer, UserStatus> {

+ 80 - 70
cooleshow-cms/pom.xml

@@ -1,85 +1,95 @@
 <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">
-	<modelVersion>4.0.0</modelVersion>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
-	<parent>
-		<groupId>com.yonge.cooleshow</groupId>
-		<artifactId>cooleshow</artifactId>
-		<version>1.0</version>
-	</parent>
+    <parent>
+        <groupId>com.yonge.cooleshow</groupId>
+        <artifactId>cooleshow</artifactId>
+        <version>1.0</version>
+    </parent>
 
-	<groupId>com.yonge.cooleshow</groupId>
-	<artifactId>cooleshow-cms</artifactId>
-	<version>1.0</version>
-	<packaging>jar</packaging>
+    <groupId>com.yonge.cooleshow</groupId>
+    <artifactId>cooleshow-cms</artifactId>
+    <version>1.0</version>
+    <packaging>jar</packaging>
 
-	<name>cooleshow-cms</name>
-	<url>http://maven.apache.org</url>
+    <name>cooleshow-cms</name>
+    <url>http://maven.apache.org</url>
 
-	<properties>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-	</properties>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
 
-	<dependencies>
+    <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-config</artifactId>
+        </dependency>
 
-		<dependency>
-			<groupId>com.alibaba.cloud</groupId>
-			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
 
-		<!-- swagger-spring-boot -->
-		<dependency>
-			<groupId>com.spring4all</groupId>
-			<artifactId>swagger-spring-boot-starter</artifactId>
-		</dependency>
+        <!-- swagger-spring-boot -->
+        <dependency>
+            <groupId>com.spring4all</groupId>
+            <artifactId>swagger-spring-boot-starter</artifactId>
+        </dependency>
 
-		<dependency>
-			<groupId>com.github.xiaoymin</groupId>
-			<artifactId>swagger-bootstrap-ui</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
 
-		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>druid-spring-boot-starter</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
 
-		<dependency>
-			<groupId>mysql</groupId>
-			<artifactId>mysql-connector-java</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
 
-		<dependency>
-			<groupId>com.yonge.cooleshow</groupId>
-			<artifactId>auth-api</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>com.yonge.cooleshow</groupId>
+            <artifactId>auth-api</artifactId>
+        </dependency>
 
-		<dependency>
-			<groupId>com.yonge.toolset</groupId>
-			<artifactId>audit-log</artifactId>
-			<exclusions>
-				<exclusion>
-					<artifactId>freemarker</artifactId>
-					<groupId>org.freemarker</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>com.yonge.toolset</groupId>
-			<artifactId>utils</artifactId>
-		</dependency>
-	</dependencies>
-	
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.springframework.boot</groupId>
-				<artifactId>spring-boot-maven-plugin</artifactId>
-			</plugin>
-		</plugins>
-	</build>
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>audit-log</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>freemarker</artifactId>
+                    <groupId>org.freemarker</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>utils</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-emoji</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-feign</artifactId>
+            <version>1.0</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 73 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/LocalFastJsonHttpMessageConverter.java

@@ -0,0 +1,73 @@
+package com.yonge.cooleshow.cms.config;
+
+import com.alibaba.fastjson.serializer.JSONSerializer;
+import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
+import com.alibaba.fastjson.serializer.ValueFilter;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
+
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
+	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
+
+		OutputStream out = outputMessage.getBody();
+		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
+		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
+		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
+		byte[] bytes = text.getBytes(getCharset());
+		out.write(bytes);
+	}
+}
+
+class EmojiSerializer implements ObjectSerializer{
+
+	@Override
+	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
+		serializer.write(EmojiParser.parseToUnicode(object.toString()));
+	}
+	
+}
+
+class EnumFilter implements ValueFilter {
+
+	public static EnumFilter instance = new EnumFilter();
+
+	public EnumFilter() {
+	}
+
+	@Override
+	public Object process(Object object, String name, Object value) {
+		if (value == null || StringUtils.isBlank(value.toString())) {
+			return value;
+		}
+		if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
+			return new BigDecimal(value.toString());
+		}
+		if (BaseEnum.class.isAssignableFrom(value.getClass())) {
+			return ((BaseEnum<?, ?>) value).getCode();
+		}
+		return value;
+	}
+}

+ 86 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/ParameterCheckServletRequestWrapper.java

@@ -0,0 +1,86 @@
+package com.yonge.cooleshow.cms.config;
+
+import com.vdurmont.emoji.EmojiParser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
+
+	private byte[] requestBody;
+	private Charset charSet;
+
+	public ParameterCheckServletRequestWrapper(HttpServletRequest request) throws IOException {
+		super(request);
+
+		String requestBodyStr = getRequestPostStr(request);
+		if (StringUtils.isNotBlank(requestBodyStr)) {
+			requestBodyStr = EmojiParser.removeAllEmojis(requestBodyStr);
+			requestBody = requestBodyStr.getBytes(charSet);
+		} else {
+			requestBody = new byte[0];
+		}
+	}
+
+	public String getRequestPostStr(HttpServletRequest request) throws IOException {
+		String charSetStr = request.getCharacterEncoding();
+		if (charSetStr == null) {
+			charSetStr = "UTF-8";
+		}
+		charSet = Charset.forName(charSetStr);
+
+		return StreamUtils.copyToString(request.getInputStream(), charSet);
+	}
+
+	/**
+	 * 重写 getInputStream()
+	 */
+	@Override
+	public ServletInputStream getInputStream() {
+		if (requestBody == null) {
+			requestBody = new byte[0];
+		}
+
+		final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
+
+		return new ServletInputStream() {
+			@Override
+			public boolean isFinished() {
+				return false;
+			}
+
+			@Override
+			public boolean isReady() {
+				return false;
+			}
+
+			@Override
+			public void setReadListener(ReadListener readListener) {
+
+			}
+
+			@Override
+			public int read() {
+				return byteArrayInputStream.read();
+			}
+		};
+	}
+
+	/**
+	 * 重写 getReader()
+	 */
+	@Override
+	public BufferedReader getReader() {
+		return new BufferedReader(new InputStreamReader(getInputStream()));
+	}
+
+}

+ 0 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/WebMvcConfig.java

@@ -14,7 +14,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import com.yonge.cooleshow.cms.interceptor.OperationLogInterceptor;
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {

+ 51 - 0
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/filters/EmojiEncodingFilter.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.cms.config.filters;
+
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.cooleshow.cms.config.ParameterCheckServletRequestWrapper;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+public class EmojiEncodingFilter implements Filter {
+
+	@Override
+	public void init(FilterConfig filterConfig) throws ServletException {
+		Filter.super.init(filterConfig);
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+		request = new ParameterCheckServletRequestWrapper((HttpServletRequest) request) {
+
+			@Override
+			public String getParameter(String name) {
+				// 参数名
+				String value = super.getParameter(name);
+				if (StringUtils.isNotBlank(value)) {
+					// 返回值之前 先进行 Emoji 转化
+					return EmojiParser.removeAllEmojis(value);
+				}
+				return value;
+			}
+
+			@Override
+			public String[] getParameterValues(String name) {
+				// 参数值
+				// 返回值之前 先进行 Emoji 转化
+				String[] values = super.getParameterValues(name);
+				if (values != null) {
+					for (int i = 0; i < values.length; i++) {
+						values[i] = EmojiParser.removeAllEmojis(values[i]);
+					}
+				}
+				return values;
+			}
+
+		};
+		
+		chain.doFilter(request, response);
+	}
+
+}

+ 1 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/NewsStatusEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.cms.dal.entity;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum NewsStatusEnum implements BaseEnum<Integer, NewsStatusEnum> {
 

+ 6 - 15
cooleshow-common/pom.xml

@@ -14,19 +14,21 @@
 	<packaging>jar</packaging>
 
 	<name>cooleshow-common</name>
-	<url>http://maven.apache.org</url>
 
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 
 	<dependencies>
-
 		<dependency>
 			<groupId>com.yonge.toolset</groupId>
-			<artifactId>thirdparty-component</artifactId>
+			<artifactId>toolset-base</artifactId>
+			<version>1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.yonge.toolset</groupId>
+			<artifactId>utils</artifactId>
 		</dependency>
-
 		<!-- Redis缓存整合开始 -->
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
@@ -43,20 +45,9 @@
 			<artifactId>jedis</artifactId>
 		</dependency>
 		<!-- Redis缓存整合结束 -->
-
 		<dependency>
 			<groupId>org.springframework.cloud</groupId>
 			<artifactId>spring-cloud-starter-oauth2</artifactId>
 		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.cloud</groupId>
-			<artifactId>spring-cloud-starter-openfeign</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>com.vdurmont</groupId>
-			<artifactId>emoji-java</artifactId>
-		</dependency>
 	</dependencies>
 </project>

+ 1 - 2
cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/EnumConverter.java

@@ -1,9 +1,8 @@
 package com.yonge.cooleshow.common.config;
 
+import com.yonge.toolset.base.enums.BaseEnum;
 import org.springframework.core.convert.converter.Converter;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
-
 public class EnumConverter<T extends BaseEnum<?, ?>> implements Converter<String, T> {
 
 	private Class<T> enumType;

+ 1 - 2
cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/EnumConverterFactory.java

@@ -1,7 +1,6 @@
 package com.yonge.cooleshow.common.config;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
-
+import com.yonge.toolset.base.enums.BaseEnum;
 import org.springframework.core.convert.converter.Converter;
 import org.springframework.core.convert.converter.ConverterFactory;
 import org.springframework.stereotype.Component;

+ 0 - 128
cooleshow-common/src/main/java/com/yonge/cooleshow/common/config/RequestAttributeHystrixConcurrencyStrategy.java

@@ -1,128 +0,0 @@
-package com.yonge.cooleshow.common.config;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestAttributes;
-import org.springframework.web.context.request.RequestContextHolder;
-
-import com.netflix.hystrix.HystrixThreadPoolKey;
-import com.netflix.hystrix.HystrixThreadPoolProperties;
-import com.netflix.hystrix.strategy.HystrixPlugins;
-import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy;
-import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable;
-import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle;
-import com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier;
-import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook;
-import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher;
-import com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy;
-import com.netflix.hystrix.strategy.properties.HystrixProperty;
-
-//@Component
-public class RequestAttributeHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy {
-	private static final Logger log = LoggerFactory.getLogger(RequestAttributeHystrixConcurrencyStrategy.class);
-
-	private HystrixConcurrencyStrategy delegate;
-
-	public RequestAttributeHystrixConcurrencyStrategy() {
-		try {
-			this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy();
-			if (this.delegate instanceof RequestAttributeHystrixConcurrencyStrategy) {
-				// Welcome to singleton hell...
-				return;
-			}
-			HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins
-					.getInstance().getCommandExecutionHook();
-			HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance()
-					.getEventNotifier();
-			HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance()
-					.getMetricsPublisher();
-			HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance()
-					.getPropertiesStrategy();
-			this.logCurrentStateOfHystrixPlugins(eventNotifier, metricsPublisher,
-					propertiesStrategy);
-			HystrixPlugins.reset();
-			HystrixPlugins.getInstance().registerConcurrencyStrategy(this);
-			HystrixPlugins.getInstance()
-					.registerCommandExecutionHook(commandExecutionHook);
-			HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
-			HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
-			HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
-		}
-		catch (Exception e) {
-			log.error("Failed to register Sleuth Hystrix Concurrency Strategy", e);
-		}
-	}
-
-	private void logCurrentStateOfHystrixPlugins(HystrixEventNotifier eventNotifier,
-			HystrixMetricsPublisher metricsPublisher,
-			HystrixPropertiesStrategy propertiesStrategy) {
-		if (log.isDebugEnabled()) {
-			log.debug("Current Hystrix plugins configuration is ["
-					+ "concurrencyStrategy [" + this.delegate + "]," + "eventNotifier ["
-					+ eventNotifier + "]," + "metricPublisher [" + metricsPublisher + "],"
-					+ "propertiesStrategy [" + propertiesStrategy + "]," + "]");
-			log.debug("Registering Sleuth Hystrix Concurrency Strategy.");
-		}
-	}
-
-	@Override
-	public <T> Callable<T> wrapCallable(Callable<T> callable) {
-		RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
-		return new WrappedCallable<>(callable, requestAttributes);
-	}
-
-	@Override
-	public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
-			HystrixProperty<Integer> corePoolSize,
-			HystrixProperty<Integer> maximumPoolSize,
-			HystrixProperty<Integer> keepAliveTime, TimeUnit unit,
-			BlockingQueue<Runnable> workQueue) {
-		return this.delegate.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize,
-				keepAliveTime, unit, workQueue);
-	}
-
-	@Override
-	public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
-			HystrixThreadPoolProperties threadPoolProperties) {
-		return this.delegate.getThreadPool(threadPoolKey, threadPoolProperties);
-	}
-
-	@Override
-	public BlockingQueue<Runnable> getBlockingQueue(int maxQueueSize) {
-		return this.delegate.getBlockingQueue(maxQueueSize);
-	}
-
-	@Override
-	public <T> HystrixRequestVariable<T> getRequestVariable(
-			HystrixRequestVariableLifecycle<T> rv) {
-		return this.delegate.getRequestVariable(rv);
-	}
-
-	static class WrappedCallable<T> implements Callable<T> {
-
-		private final Callable<T> target;
-		private final RequestAttributes requestAttributes;
-
-		public WrappedCallable(Callable<T> target, RequestAttributes requestAttributes) {
-			this.target = target;
-			this.requestAttributes = requestAttributes;
-		}
-
-		@Override
-		public T call() throws Exception {
-			try {
-				RequestContextHolder.setRequestAttributes(requestAttributes);
-				return target.call();
-			}
-			finally {
-				RequestContextHolder.resetRequestAttributes();
-			}
-		}
-	}
-}

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/controller/BaseController.java

@@ -27,7 +27,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.toolset.thirdparty.exception.ThirdpartyException;
+import com.yonge.toolset.base.exception.ThirdpartyException;
 import com.yonge.toolset.utils.http.HttpUtil;
 
 @ControllerAdvice

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/HttpResponseResult.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.toolset.thirdparty.exception.ThirdpartyException;
+import com.yonge.toolset.base.exception.ThirdpartyException;
 import com.yonge.toolset.utils.http.HttpUtil;
 import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.codec.binary.Base64;

+ 3 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/AccessSource.java

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.common.enums;
 
-/** 
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
  * @author sunzl 
  * 2015年8月25日 下午4:19:00 
  * 会员状态枚举类

+ 0 - 14
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/BaseEnum.java

@@ -1,14 +0,0 @@
-package com.yonge.cooleshow.common.enums;
-
-/**
- * 枚举类基础类
- */
-public interface BaseEnum<T, E extends Enum<E>> {
-
-	/**
-	 * 获取枚举类的code值
-	 * @return
-	 */
-	public T getCode();
-
-}

+ 3 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/PlatformEnum.java

@@ -1,12 +1,14 @@
 package com.yonge.cooleshow.common.enums;
 
+import com.yonge.toolset.base.enums.BaseEnum;
+
 /**
  * Description
  *
  * @author liujunchi
  * @date 2022-04-24
  */
-public enum PlatformEnum implements BaseEnum<String,PlatformEnum>{
+public enum PlatformEnum implements BaseEnum<String,PlatformEnum> {
 
     STUDENT("STUDENT","STUDENT"),
     TEACHER("TEACHER","TEACHER");

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserGenderEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.common.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * @author sunzl 

+ 1 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/exception/BizException.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.common.exception;
 
-import com.yonge.toolset.utils.string.MessageFormatter;
+import com.yonge.toolset.base.string.MessageFormatter;
 
 public class BizException extends RuntimeException {
 

+ 6 - 2
cooleshow-mall/mall-admin/pom.xml

@@ -60,12 +60,16 @@
             <scope>compile</scope>
         </dependency>
 
-
-
         <dependency>
             <groupId>com.yonge.cooleshow</groupId>
             <artifactId>mall-pay</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-emoji</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 73 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/LocalFastJsonHttpMessageConverter.java

@@ -0,0 +1,73 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.alibaba.fastjson.serializer.JSONSerializer;
+import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
+import com.alibaba.fastjson.serializer.ValueFilter;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
+
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
+	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
+
+		OutputStream out = outputMessage.getBody();
+		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
+		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
+		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
+		byte[] bytes = text.getBytes(getCharset());
+		out.write(bytes);
+	}
+}
+
+class EmojiSerializer implements ObjectSerializer{
+
+	@Override
+	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
+		serializer.write(EmojiParser.parseToUnicode(object.toString()));
+	}
+	
+}
+
+class EnumFilter implements ValueFilter {
+
+	public static EnumFilter instance = new EnumFilter();
+
+	public EnumFilter() {
+	}
+
+	@Override
+	public Object process(Object object, String name, Object value) {
+		if (value == null || StringUtils.isBlank(value.toString())) {
+			return value;
+		}
+		if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
+			return new BigDecimal(value.toString());
+		}
+		if (BaseEnum.class.isAssignableFrom(value.getClass())) {
+			return ((BaseEnum<?, ?>) value).getCode();
+		}
+		return value;
+	}
+}

+ 86 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/ParameterCheckServletRequestWrapper.java

@@ -0,0 +1,86 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.vdurmont.emoji.EmojiParser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
+
+	private byte[] requestBody;
+	private Charset charSet;
+
+	public ParameterCheckServletRequestWrapper(HttpServletRequest request) throws IOException {
+		super(request);
+
+		String requestBodyStr = getRequestPostStr(request);
+		if (StringUtils.isNotBlank(requestBodyStr)) {
+			requestBodyStr = EmojiParser.removeAllEmojis(requestBodyStr);
+			requestBody = requestBodyStr.getBytes(charSet);
+		} else {
+			requestBody = new byte[0];
+		}
+	}
+
+	public String getRequestPostStr(HttpServletRequest request) throws IOException {
+		String charSetStr = request.getCharacterEncoding();
+		if (charSetStr == null) {
+			charSetStr = "UTF-8";
+		}
+		charSet = Charset.forName(charSetStr);
+
+		return StreamUtils.copyToString(request.getInputStream(), charSet);
+	}
+
+	/**
+	 * 重写 getInputStream()
+	 */
+	@Override
+	public ServletInputStream getInputStream() {
+		if (requestBody == null) {
+			requestBody = new byte[0];
+		}
+
+		final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
+
+		return new ServletInputStream() {
+			@Override
+			public boolean isFinished() {
+				return false;
+			}
+
+			@Override
+			public boolean isReady() {
+				return false;
+			}
+
+			@Override
+			public void setReadListener(ReadListener readListener) {
+
+			}
+
+			@Override
+			public int read() {
+				return byteArrayInputStream.read();
+			}
+		};
+	}
+
+	/**
+	 * 重写 getReader()
+	 */
+	@Override
+	public BufferedReader getReader() {
+		return new BufferedReader(new InputStreamReader(getInputStream()));
+	}
+
+}

+ 0 - 3
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java

@@ -1,14 +1,11 @@
 package com.yonge.cooleshow.admin.config;
 
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
-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.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 

+ 51 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/filters/EmojiEncodingFilter.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.admin.config.filters;
+
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.cooleshow.admin.config.ParameterCheckServletRequestWrapper;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+public class EmojiEncodingFilter implements Filter {
+
+	@Override
+	public void init(FilterConfig filterConfig) throws ServletException {
+		Filter.super.init(filterConfig);
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+		request = new ParameterCheckServletRequestWrapper((HttpServletRequest) request) {
+
+			@Override
+			public String getParameter(String name) {
+				// 参数名
+				String value = super.getParameter(name);
+				if (StringUtils.isNotBlank(value)) {
+					// 返回值之前 先进行 Emoji 转化
+					return EmojiParser.removeAllEmojis(value);
+				}
+				return value;
+			}
+
+			@Override
+			public String[] getParameterValues(String name) {
+				// 参数值
+				// 返回值之前 先进行 Emoji 转化
+				String[] values = super.getParameterValues(name);
+				if (values != null) {
+					for (int i = 0; i < values.length; i++) {
+						values[i] = EmojiParser.removeAllEmojis(values[i]);
+					}
+				}
+				return values;
+			}
+
+		};
+		
+		chain.doFilter(request, response);
+	}
+
+}

+ 1 - 1
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/OrderStatusEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 订单状态 WAIT_PAY 待支付 PAYING 支付中  PAID 已付款 CLOSE 已关闭

+ 1 - 1
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/PaymentSdk.java

@@ -11,7 +11,7 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.config.HuifuConfiguration;
 import com.yonge.cooleshow.sdk.adapay.dto.PaymentReq;
 import com.yonge.cooleshow.sdk.adapay.dto.RefundReq;
-import com.yonge.toolset.thirdparty.exception.ThirdpartyException;
+import com.yonge.toolset.base.exception.ThirdpartyException;
 import com.yonge.toolset.utils.collection.MapUtil;
 import com.yonge.toolset.utils.http.HttpUtil;
 import com.yonge.toolset.utils.string.StringUtil;

+ 10 - 1
cooleshow-mall/mall-portal/pom.xml

@@ -69,7 +69,16 @@
             <version>20.0</version>
             <scope>compile</scope>
         </dependency>
-
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-emoji</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-feign</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 73 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/LocalFastJsonHttpMessageConverter.java

@@ -0,0 +1,73 @@
+package com.yonge.cooleshow.portal.config;
+
+import com.alibaba.fastjson.serializer.JSONSerializer;
+import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
+import com.alibaba.fastjson.serializer.ValueFilter;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
+
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
+	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
+
+		OutputStream out = outputMessage.getBody();
+		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
+		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
+		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
+		byte[] bytes = text.getBytes(getCharset());
+		out.write(bytes);
+	}
+}
+
+class EmojiSerializer implements ObjectSerializer{
+
+	@Override
+	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
+		serializer.write(EmojiParser.parseToUnicode(object.toString()));
+	}
+	
+}
+
+class EnumFilter implements ValueFilter {
+
+	public static EnumFilter instance = new EnumFilter();
+
+	public EnumFilter() {
+	}
+
+	@Override
+	public Object process(Object object, String name, Object value) {
+		if (value == null || StringUtils.isBlank(value.toString())) {
+			return value;
+		}
+		if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
+			return new BigDecimal(value.toString());
+		}
+		if (BaseEnum.class.isAssignableFrom(value.getClass())) {
+			return ((BaseEnum<?, ?>) value).getCode();
+		}
+		return value;
+	}
+}

+ 86 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/ParameterCheckServletRequestWrapper.java

@@ -0,0 +1,86 @@
+package com.yonge.cooleshow.portal.config;
+
+import com.vdurmont.emoji.EmojiParser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
+
+	private byte[] requestBody;
+	private Charset charSet;
+
+	public ParameterCheckServletRequestWrapper(HttpServletRequest request) throws IOException {
+		super(request);
+
+		String requestBodyStr = getRequestPostStr(request);
+		if (StringUtils.isNotBlank(requestBodyStr)) {
+			requestBodyStr = EmojiParser.removeAllEmojis(requestBodyStr);
+			requestBody = requestBodyStr.getBytes(charSet);
+		} else {
+			requestBody = new byte[0];
+		}
+	}
+
+	public String getRequestPostStr(HttpServletRequest request) throws IOException {
+		String charSetStr = request.getCharacterEncoding();
+		if (charSetStr == null) {
+			charSetStr = "UTF-8";
+		}
+		charSet = Charset.forName(charSetStr);
+
+		return StreamUtils.copyToString(request.getInputStream(), charSet);
+	}
+
+	/**
+	 * 重写 getInputStream()
+	 */
+	@Override
+	public ServletInputStream getInputStream() {
+		if (requestBody == null) {
+			requestBody = new byte[0];
+		}
+
+		final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
+
+		return new ServletInputStream() {
+			@Override
+			public boolean isFinished() {
+				return false;
+			}
+
+			@Override
+			public boolean isReady() {
+				return false;
+			}
+
+			@Override
+			public void setReadListener(ReadListener readListener) {
+
+			}
+
+			@Override
+			public int read() {
+				return byteArrayInputStream.read();
+			}
+		};
+	}
+
+	/**
+	 * 重写 getReader()
+	 */
+	@Override
+	public BufferedReader getReader() {
+		return new BufferedReader(new InputStreamReader(getInputStream()));
+	}
+
+}

+ 0 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/WebMvcConfig.java

@@ -1,7 +1,6 @@
 package com.yonge.cooleshow.portal.config;
 
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
 import com.yonge.cooleshow.portal.interceptor.MDCInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;

+ 6 - 13
cooleshow-common/src/main/java/com/yonge/cooleshow/common/filters/EmojiEncodingFilter.java → cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/filters/EmojiEncodingFilter.java

@@ -1,19 +1,12 @@
-package com.yonge.cooleshow.common.filters;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
+package com.yonge.cooleshow.portal.config.filters;
 
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.cooleshow.portal.config.ParameterCheckServletRequestWrapper;
 import org.apache.commons.lang3.StringUtils;
 
-import com.vdurmont.emoji.EmojiParser;
-import com.yonge.cooleshow.common.config.ParameterCheckServletRequestWrapper;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 
 public class EmojiEncodingFilter implements Filter {
 

+ 6 - 0
cooleshow-task/pom.xml

@@ -57,6 +57,12 @@
 			<groupId>com.yonge.cooleshow</groupId>
 			<artifactId>auth-api</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>com.yonge.toolset</groupId>
+			<artifactId>toolset-feign</artifactId>
+			<version>1.0</version>
+		</dependency>
 	</dependencies>
 
 	<build>

+ 60 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/LocalFastJsonHttpMessageConverter.java

@@ -0,0 +1,60 @@
+package com.yonge.cooleshow.task.config;
+
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
+import com.alibaba.fastjson.serializer.ValueFilter;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
+
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
+	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
+
+		OutputStream out = outputMessage.getBody();
+		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
+		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
+		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
+		byte[] bytes = text.getBytes(getCharset());
+		out.write(bytes);
+	}
+}
+
+class EnumFilter implements ValueFilter {
+
+	public static EnumFilter instance = new EnumFilter();
+
+	public EnumFilter() {
+	}
+
+	@Override
+	public Object process(Object object, String name, Object value) {
+		if (value == null || StringUtils.isBlank(value.toString())) {
+			return value;
+		}
+		if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
+			return new BigDecimal(value.toString());
+		}
+		if (BaseEnum.class.isAssignableFrom(value.getClass())) {
+			return ((BaseEnum<?, ?>) value).getCode();
+		}
+		return value;
+	}
+}

+ 84 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/ParameterCheckServletRequestWrapper.java

@@ -0,0 +1,84 @@
+package com.yonge.cooleshow.task.config;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
+
+	private byte[] requestBody;
+	private Charset charSet;
+
+	public ParameterCheckServletRequestWrapper(HttpServletRequest request) throws IOException {
+		super(request);
+
+		String requestBodyStr = getRequestPostStr(request);
+		if (StringUtils.isNotBlank(requestBodyStr)) {
+			requestBody = requestBodyStr.getBytes(charSet);
+		} else {
+			requestBody = new byte[0];
+		}
+	}
+
+	public String getRequestPostStr(HttpServletRequest request) throws IOException {
+		String charSetStr = request.getCharacterEncoding();
+		if (charSetStr == null) {
+			charSetStr = "UTF-8";
+		}
+		charSet = Charset.forName(charSetStr);
+
+		return StreamUtils.copyToString(request.getInputStream(), charSet);
+	}
+
+	/**
+	 * 重写 getInputStream()
+	 */
+	@Override
+	public ServletInputStream getInputStream() {
+		if (requestBody == null) {
+			requestBody = new byte[0];
+		}
+
+		final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
+
+		return new ServletInputStream() {
+			@Override
+			public boolean isFinished() {
+				return false;
+			}
+
+			@Override
+			public boolean isReady() {
+				return false;
+			}
+
+			@Override
+			public void setReadListener(ReadListener readListener) {
+
+			}
+
+			@Override
+			public int read() {
+				return byteArrayInputStream.read();
+			}
+		};
+	}
+
+	/**
+	 * 重写 getReader()
+	 */
+	@Override
+	public BufferedReader getReader() {
+		return new BufferedReader(new InputStreamReader(getInputStream()));
+	}
+
+}

+ 0 - 1
cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/WebMvcConfig.java

@@ -11,7 +11,6 @@ import org.springframework.http.MediaType;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {

+ 1 - 2
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/MallPortalFeignService.java

@@ -1,8 +1,7 @@
 package com.yonge.cooleshow.task.feign;
 
-import com.yonge.cooleshow.common.config.FeignConfiguration;
 import com.yonge.cooleshow.task.feign.fallback.MallPortalFeignServiceFallback;
-import com.yonge.cooleshow.task.feign.fallback.StudentFeignServiceFallback;
+import com.yonge.toolset.feign.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 

+ 1 - 1
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/StudentFeignService.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.task.feign;
 
-import com.yonge.cooleshow.common.config.FeignConfiguration;
 import com.yonge.cooleshow.task.feign.fallback.StudentFeignServiceFallback;
+import com.yonge.toolset.feign.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 

+ 1 - 1
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/TeacherFeignService.java

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.task.feign;
 
-import com.yonge.cooleshow.common.config.FeignConfiguration;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.task.feign.fallback.TeacherFeignServiceFallback;
+import com.yonge.toolset.feign.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.config;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.yonge.cooleshow.biz.dal.config.LocalFastJsonHttpMessageConverter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.context.annotation.Bean;
@@ -14,7 +15,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import com.yonge.cooleshow.admin.interceptor.OperationLogInterceptor;
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {

+ 12 - 0
cooleshow-user/user-biz/pom.xml

@@ -26,11 +26,22 @@
 
         <dependency>
             <groupId>com.yonge.toolset</groupId>
+            <artifactId>thirdparty-component</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yonge.toolset</groupId>
             <artifactId>toolset-mybatis</artifactId>
             <version>${project.version}</version>
         </dependency>
 
         <dependency>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-emoji</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+        <dependency>
             <groupId>com.spring4all</groupId>
             <artifactId>swagger-spring-boot-starter</artifactId>
         </dependency>
@@ -67,6 +78,7 @@
             <artifactId>auth-api</artifactId>
             <version>${project.version}</version>
         </dependency>
+
         <dependency>
             <groupId>com.huifu.adapay</groupId>
             <artifactId>adapay-java-sdk</artifactId>

+ 73 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/LocalFastJsonHttpMessageConverter.java

@@ -0,0 +1,73 @@
+package com.yonge.cooleshow.biz.dal.config;
+
+import com.alibaba.fastjson.serializer.JSONSerializer;
+import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
+import com.alibaba.fastjson.serializer.ValueFilter;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
+
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
+	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
+
+		OutputStream out = outputMessage.getBody();
+		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
+		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
+		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
+		byte[] bytes = text.getBytes(getCharset());
+		out.write(bytes);
+	}
+}
+
+class EmojiSerializer implements ObjectSerializer{
+
+	@Override
+	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
+		serializer.write(EmojiParser.parseToUnicode(object.toString()));
+	}
+	
+}
+
+class EnumFilter implements ValueFilter {
+
+	public static EnumFilter instance = new EnumFilter();
+
+	public EnumFilter() {
+	}
+
+	@Override
+	public Object process(Object object, String name, Object value) {
+		if (value == null || StringUtils.isBlank(value.toString())) {
+			return value;
+		}
+		if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
+			return new BigDecimal(value.toString());
+		}
+		if (BaseEnum.class.isAssignableFrom(value.getClass())) {
+			return ((BaseEnum<?, ?>) value).getCode();
+		}
+		return value;
+	}
+}

+ 86 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/ParameterCheckServletRequestWrapper.java

@@ -0,0 +1,86 @@
+package com.yonge.cooleshow.biz.dal.config;
+
+import com.vdurmont.emoji.EmojiParser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
+
+	private byte[] requestBody;
+	private Charset charSet;
+
+	public ParameterCheckServletRequestWrapper(HttpServletRequest request) throws IOException {
+		super(request);
+
+		String requestBodyStr = getRequestPostStr(request);
+		if (StringUtils.isNotBlank(requestBodyStr)) {
+			requestBodyStr = EmojiParser.removeAllEmojis(requestBodyStr);
+			requestBody = requestBodyStr.getBytes(charSet);
+		} else {
+			requestBody = new byte[0];
+		}
+	}
+
+	public String getRequestPostStr(HttpServletRequest request) throws IOException {
+		String charSetStr = request.getCharacterEncoding();
+		if (charSetStr == null) {
+			charSetStr = "UTF-8";
+		}
+		charSet = Charset.forName(charSetStr);
+
+		return StreamUtils.copyToString(request.getInputStream(), charSet);
+	}
+
+	/**
+	 * 重写 getInputStream()
+	 */
+	@Override
+	public ServletInputStream getInputStream() {
+		if (requestBody == null) {
+			requestBody = new byte[0];
+		}
+
+		final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
+
+		return new ServletInputStream() {
+			@Override
+			public boolean isFinished() {
+				return false;
+			}
+
+			@Override
+			public boolean isReady() {
+				return false;
+			}
+
+			@Override
+			public void setReadListener(ReadListener readListener) {
+
+			}
+
+			@Override
+			public int read() {
+				return byteArrayInputStream.read();
+			}
+		};
+	}
+
+	/**
+	 * 重写 getReader()
+	 */
+	@Override
+	public BufferedReader getReader() {
+		return new BufferedReader(new InputStreamReader(getInputStream()));
+	}
+
+}

+ 51 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/filters/EmojiEncodingFilter.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.biz.dal.config.filters;
+
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.cooleshow.biz.dal.config.ParameterCheckServletRequestWrapper;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+public class EmojiEncodingFilter implements Filter {
+
+	@Override
+	public void init(FilterConfig filterConfig) throws ServletException {
+		Filter.super.init(filterConfig);
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+		request = new ParameterCheckServletRequestWrapper((HttpServletRequest) request) {
+
+			@Override
+			public String getParameter(String name) {
+				// 参数名
+				String value = super.getParameter(name);
+				if (StringUtils.isNotBlank(value)) {
+					// 返回值之前 先进行 Emoji 转化
+					return EmojiParser.removeAllEmojis(value);
+				}
+				return value;
+			}
+
+			@Override
+			public String[] getParameterValues(String name) {
+				// 参数值
+				// 返回值之前 先进行 Emoji 转化
+				String[] values = super.getParameterValues(name);
+				if (values != null) {
+					for (int i = 0; i < values.length; i++) {
+						values[i] = EmojiParser.removeAllEmojis(values[i]);
+					}
+				}
+				return values;
+			}
+
+		};
+		
+		chain.doFilter(request, response);
+	}
+
+}

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonPurchaseRecordDao.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonPurchaseRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -19,5 +20,5 @@ public interface VideoLessonPurchaseRecordDao extends BaseMapper<VideoLessonPurc
     Long selectTeacherByDetail(Long videoId);
 
     //修改订单状态
-    void updateStatus(String orderNo);
+    void updateStatus(@Param("orderNo") String orderNo,@Param("status") String status);
 }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java

@@ -83,6 +83,10 @@ public class CourseGroup implements Serializable {
     @ApiModelProperty(value = "预计上课人数")
     private Integer preStudentNum;
 
+    @TableField("im_group_id_")
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     @TableField("course_start_time_")
     @ApiModelProperty(value = "课程开始时间")
     private Date courseStartTime;
@@ -224,6 +228,14 @@ public class CourseGroup implements Serializable {
         this.preStudentNum = preStudentNum;
     }
 
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
+
     public Date getCourseStartTime() {
         return courseStartTime;
     }

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

@@ -1,15 +1,13 @@
 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.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupMember.java

@@ -4,7 +4,7 @@ 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.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -67,7 +67,7 @@ public class ImGroupMember implements Serializable {
         this.roleType = roleType;
     }
 
-    public enum ImGroupMemberRoleType implements BaseEnum<String, ImGroupMember.ImGroupMemberRoleType> {
+    public enum ImGroupMemberRoleType implements BaseEnum<String, ImGroupMemberRoleType> {
         TEACHER("老师"),
         STUDENT("学生");
 

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

@@ -1,9 +1,8 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
+import com.yonge.toolset.base.enums.BaseEnum;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
-
 /**
  * 对应数据库表(sys_user_contracts):
  */

+ 39 - 51
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonPurchaseRecord.java

@@ -6,9 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 视频课购买记录表
@@ -52,90 +52,78 @@ public class VideoLessonPurchaseRecord extends BaseEntity {
     private String orderNo;
 
     @TableField("order_status_")
-    @ApiModelProperty(value = "订单状态(1:已完成;0:取消/支付中)")
-    private Integer orderStatus;
+    @ApiModelProperty(value = "订单状态(WAIT_PAY待支付,PAYING支付中,PAID已付款,CLOSE已关闭,FAIL支付失败)")
+    private String orderStatus;
 
-	public BigDecimal getOriginalPrice() {
-		return originalPrice;
+	public Long getId() {
+		return id;
 	}
 
-	public void setOriginalPrice(BigDecimal originalPrice) {
-		this.originalPrice = originalPrice;
+	public void setId(Long id) {
+		this.id = id;
 	}
 
-	public BigDecimal getExpectPrice() {
-		return expectPrice;
-	}
-
-	public void setExpectPrice(BigDecimal expectPrice) {
-		this.expectPrice = expectPrice;
+	public Long getVideoLessonGroupId() {
+		return videoLessonGroupId;
 	}
 
-	public VideoLessonPurchaseRecord setId(Long id) {
-	    this.id = id;
-	    return this;
+	public void setVideoLessonGroupId(Long videoLessonGroupId) {
+		this.videoLessonGroupId = videoLessonGroupId;
 	}
 
-	public Long getId() {
-	    return this.id;
+	public Long getStudentId() {
+		return studentId;
 	}
 
-	public VideoLessonPurchaseRecord setVideoLessonGroupId(Long videoLessonGroupId) {
-	    this.videoLessonGroupId = videoLessonGroupId;
-	    return this;
+	public void setStudentId(Long studentId) {
+		this.studentId = studentId;
 	}
 
-	public Long getVideoLessonGroupId() {
-	    return this.videoLessonGroupId;
+	public Date getPurchaseTime() {
+		return purchaseTime;
 	}
 
-	public VideoLessonPurchaseRecord setStudentId(Long studentId) {
-	    this.studentId = studentId;
-	    return this;
+	public void setPurchaseTime(Date purchaseTime) {
+		this.purchaseTime = purchaseTime;
 	}
 
-	public Long getStudentId() {
-	    return this.studentId;
+	public BigDecimal getOriginalPrice() {
+		return originalPrice;
 	}
 
-	public VideoLessonPurchaseRecord setPurchaseTime(java.util.Date purchaseTime) {
-	    this.purchaseTime = purchaseTime;
-	    return this;
+	public void setOriginalPrice(BigDecimal originalPrice) {
+		this.originalPrice = originalPrice;
 	}
 
-	public java.util.Date getPurchaseTime() {
-	    return this.purchaseTime;
+	public BigDecimal getExpectPrice() {
+		return expectPrice;
 	}
 
-	public VideoLessonPurchaseRecord setPayMoney(java.math.BigDecimal payMoney) {
-	    this.payMoney = payMoney;
-	    return this;
+	public void setExpectPrice(BigDecimal expectPrice) {
+		this.expectPrice = expectPrice;
 	}
 
-	public java.math.BigDecimal getPayMoney() {
-	    return this.payMoney;
+	public BigDecimal getPayMoney() {
+		return payMoney;
 	}
 
-	public VideoLessonPurchaseRecord setOrderNo(String orderNo) {
-	    this.orderNo = orderNo;
-	    return this;
+	public void setPayMoney(BigDecimal payMoney) {
+		this.payMoney = payMoney;
 	}
 
 	public String getOrderNo() {
-	    return this.orderNo;
+		return orderNo;
 	}
 
-	public VideoLessonPurchaseRecord setOrderStatus(Integer orderStatus) {
-	    this.orderStatus = orderStatus;
-	    return this;
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
 	}
 
-	public Integer getOrderStatus() {
-	    return this.orderStatus;
+	public String getOrderStatus() {
+		return orderStatus;
 	}
 
-    @Override
-    public String toString() {
-        return ToStringBuilder.reflectionToString(this);
-    }
+	public void setOrderStatus(String orderStatus) {
+		this.orderStatus = orderStatus;
+	}
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AccountBizTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 账户流水枚举

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AudioTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * Description 曲目音频类型 1:mp3,2:midi,3:mp3_metronome

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuditEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * Description 审核状态(0:待审核;1:通过;2:未通过)

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

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum AuditStatusEnum implements BaseEnum<String,AuditStatusEnum> {
     AUDITING("审核中"), REJECT("审核拒绝"), OPEN("审核通过");

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuthStatusEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 认证审核状态

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CacheNameEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.yonge.cooleshow.common.constant.CommonConstants;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 import org.apache.commons.lang3.StringUtils;
 
 import java.time.Duration;

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/ChargeTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * Description 收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/ClientEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * Description

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CourseGroupEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum CourseGroupEnum implements BaseEnum<String,CourseGroupEnum> {
     ING("ING", "进行中"),//课程已开始进行中

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CourseScheduleEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 import java.util.Arrays;
 import java.util.List;

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/FrozenTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 账户变更冻结类型

+ 1 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/GenderEnum.java

@@ -1,11 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /***
  * 性别

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/GoodTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 商品类型

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/InOrOutEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 收入支出枚举

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/JobNatureEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 //工作性质(兼职、全职)
 public enum JobNatureEnum implements BaseEnum<String,JobNatureEnum> {

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageSendMode.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  状态,1,表示短信;2,表示邮件; 3,app推送消息

+ 4 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -1,7 +1,9 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
+
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
+
 
 public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_VERIFY_CODE_LOGIN("SMS_VERIFY_CODE_LOGIN", "验证码登录"),
@@ -37,7 +39,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
         this.msg = msg;
     }
 
-    @Override
+
     public String getCode() {
         return code;
     }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/OrderStatusEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 订单状态 WAIT_PAY 待支付 PAYING 支付中  PAID 已付款 CLOSE 已关闭

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/OrderTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 订单类型

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/PayChannelEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 支付渠道

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/PeriodEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 周期

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SendStatusEnum.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  状态,-1,发送失败;0,待发送;1,发送中;2,发送完成

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SourceTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * Description 数据类型  TEACHER 老师 PLATFORM 平台

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/StudentCourseEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * Description 学生上课状态

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SuggestionType.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum SuggestionType implements BaseEnum<String, SuggestionType> {
 	APP("APP", "软件反馈"),

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TeacherSalaryEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 课酬结算状态枚举

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TeacherTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 import com.yonge.toolset.utils.string.StringUtil;
 
 /***

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TimeTypeEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 时间枚举

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/TradeStatusEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
  * 交易状态 pending 交易处理中 succeeded 交易成功 failed 交易失败

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/UserLockFlag.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 /** 
  * 会员状态枚举类

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/YesOrNoEnum.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.enums;
 
 import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.yonge.cooleshow.common.enums.BaseEnum;
+import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
     NO(0,"否"),

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/sdk/PaymentSdk.java

@@ -11,7 +11,7 @@ import com.yonge.cooleshow.biz.dal.service.impl.ImGroupMemberServiceImpl;
 import com.yonge.cooleshow.common.constant.CommonConstants;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.toolset.thirdparty.exception.ThirdpartyException;
+import com.yonge.toolset.base.exception.ThirdpartyException;
 import com.yonge.toolset.utils.collection.MapUtil;
 import com.yonge.toolset.utils.http.HttpUtil;
 import com.yonge.toolset.utils.string.StringUtil;

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

@@ -33,7 +33,7 @@ public interface ImGroupService extends IService<ImGroup> {
     * @author zx
     * @date 2022/3/22 11:17
     */
-    void autoCreate(Long courseGroupId,String courseGroupType) throws Exception;
+    String autoCreate(Long courseGroupId,String courseGroupType) throws Exception;
 
     /**
     * @description: 关闭群聊、解散

+ 13 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -80,6 +80,8 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     private TeacherFreeTimeService teacherFreeTimeService;
     @Autowired
     private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
+    @Autowired
+    private ImGroupService imGroupService;
 
     @Override
     public CourseGroupDao getDao() {
@@ -267,7 +269,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         timeList.forEach(o -> {
             boolean checkDataTime = courseScheduleService.checkTeacherCourseTime(teacherId, startTimeFun.apply(o), endTimeFun.apply(o));
             if (checkDataTime) {
-                throw new BizException("预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程已被学员选择!");
+                throw new BizException("预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程时间存在冲突!");
             }
         });
     }
@@ -706,14 +708,17 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             return;
         }
         courseGroupList.forEach(courseGroup -> {
-            if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum()) {
-                //人数达标则修改课程组为进行中状态
-                courseGroup.setStatus(CourseGroupEnum.ING.getCode());
-            } else {
-                //人数未达标则修改课程组为取消状态
-                courseGroup.setStatus(CourseGroupEnum.CANCEL.getCode());
-            }
             try {
+                if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum()) {
+                    //人数达标则修改课程组为进行中状态
+                    courseGroup.setStatus(CourseGroupEnum.ING.getCode());
+                    //建立群组
+                    String imGroupId = imGroupService.autoCreate(courseGroup.getId(), courseGroup.getType());
+                    courseGroup.setImGroupId(imGroupId);
+                } else {
+                    //人数未达标则修改课程组为取消状态
+                    courseGroup.setStatus(CourseGroupEnum.CANCEL.getCode());
+                }
                 this.updateById(courseGroup);
             } catch (Exception ignored) {
             }

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

@@ -79,17 +79,17 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void autoCreate(Long courseGroupId,String courseGroupType) throws Exception {
+    public String autoCreate(Long courseGroupId, String courseGroupType) throws Exception {
         //获取课程组
         CourseGroup courseGroup = courseGroupService.getById(courseGroupId);
-        if(courseGroup.getTeacherId() == null){
-            return;
+        if (courseGroup.getTeacherId() == null) {
+            return null;
         }
         //获取学员列表
         Set<Long> studentIds = courseScheduleStudentPaymentDao.queryStudentIds(courseGroupId, courseGroupType);
         studentIds.removeAll(Collections.singleton(null));
-        if(CollectionUtils.isEmpty(studentIds)){
-            return;
+        if (CollectionUtils.isEmpty(studentIds)) {
+            return null;
         }
         Date now = new Date();
         Long teacherId = courseGroup.getTeacherId();
@@ -102,18 +102,19 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         imGroup.setType(ImGroup.ImGroupType.COURSE);
         imGroup.setCreateTime(now);
         imGroup.setUpdateTime(now);
-        String imGroupId = UUID.randomUUID().toString() + imGroup.getType().getCode();
+        String imGroupId = UUID.randomUUID() + imGroup.getType().getCode();
         imGroup.setId(imGroupId);
         this.baseMapper.insert(imGroup);
         //保存老师学员关联的通讯录
-        imUserFriendService.saveUserFriend(teacherId,studentIds);
+        imUserFriendService.saveUserFriend(teacherId, studentIds);
         //处理本地群成员列表
         List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMember.ImGroupMemberRoleType.TEACHER);
-        groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId,studentIds,ImGroupMember.ImGroupMemberRoleType.STUDENT));
+        groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId, studentIds, ImGroupMember.ImGroupMemberRoleType.STUDENT));
         //创建融云群
-        this.rtcCreate(courseGroup.getTeacherId(),imGroupId,imGroup.getName());
+        this.rtcCreate(courseGroup.getTeacherId(), imGroupId, imGroup.getName());
         //加入融云群
-        imGroupMemberService.join(groupMembers,imGroupId);
+        imGroupMemberService.join(groupMembers, imGroupId);
+        return imGroupId;
     }
 
     //创建融云群

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

@@ -11,6 +11,9 @@ import java.util.Random;
 import java.util.Set;
 
 import com.yonge.cooleshow.biz.dal.vo.MessageTypeCountVo;
+
+import com.yonge.toolset.base.string.MessageFormatter;
+
 import com.yonge.toolset.mybatis.service.impl.BaseServiceImpl;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -40,7 +43,6 @@ import com.yonge.cooleshow.common.redis.service.RedisCache;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.yonge.toolset.utils.collection.MapUtil;
-import com.yonge.toolset.utils.string.MessageFormatter;
 
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao;
 import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
@@ -13,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.UserAccountService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonPurchaseRecordService;
@@ -55,6 +57,8 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
     private UserAccountService userAccountService;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private UserOrderDao userOrderDao;
 
     public VideoLessonPurchaseRecordDao getDao() {
         return videoLessonPurchaseRecordDao;
@@ -94,7 +98,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
 
         purchaseRecord.setOrderNo(orderNo);
         purchaseRecord.setStudentId(studentId);
-        purchaseRecord.setOrderStatus(0);
+        purchaseRecord.setOrderStatus(OrderStatusEnum.WAIT_PAY.getCode());
         purchaseRecord.setOriginalPrice(lessonGroup.getLessonPrice());//原价
         purchaseRecord.setExpectPrice(lessonGroup.getLessonPrice());//预计价格
         videoLessonPurchaseRecordDao.insert(purchaseRecord);
@@ -130,8 +134,14 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
             throw new BizException("课程组购买记录不存在!");
         }
 
-        //支付状态改为1
-        videoLessonPurchaseRecordDao.updateStatus(orderNo);
+        //查询订单状态
+        UserOrder userOrder = userOrderDao.selectOne(Wrappers.<UserOrder>lambdaQuery()
+                .eq(UserOrder::getOrderNo, orderNo));
+        if (userOrder == null) {
+            throw new BizException("订单不存在!");
+        }
+        //修改支付状态
+        videoLessonPurchaseRecordDao.updateStatus(orderNo,userOrder.getStatus().getCode());
 
         //查询直播课服务费
         String videoServiceRateStr = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_LESSON_SERVICE_FEE);
@@ -148,7 +158,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         userAccountRecord.setTransAmount(payMoney.subtract(payMoney.multiply(liveServiceRate)).setScale(2, RoundingMode.HALF_UP));
         userAccountRecord.setInOrOut(InOrOutEnum.IN);
         userAccountRecord.setBizType(AccountBizTypeEnum.VIDEO);
-        userAccountRecord.setBizId(lessonGroup.getTeacherId());
+        userAccountRecord.setBizId(lessonGroup.getId());
         userAccountRecord.setBizName(lessonGroup.getLessonName());
         userAccountRecord.setOrderNo(orderNo);
         userAccountService.accountChange(userAccountRecord);

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java

@@ -70,6 +70,9 @@ public class CourseGroupVo implements Serializable {
     @ApiModelProperty(value = "最少成课人数")
     private Integer mixStudentNum;
 
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }
@@ -205,4 +208,12 @@ public class CourseGroupVo implements Serializable {
     public void setMixStudentNum(Integer mixStudentNum) {
         this.mixStudentNum = mixStudentNum;
     }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseStudent.java

@@ -54,6 +54,9 @@ public class CourseStudent implements Serializable {
     @ApiModelProperty(value = "头像")
     private String avatar;
 
+    @ApiModelProperty(value = "直播课成课后生成的im群id")
+    private String imGroupId;
+
     public Integer getCourseId() {
         return courseId;
     }
@@ -165,5 +168,13 @@ public class CourseStudent implements Serializable {
     public void setAvatar(String avatar) {
         this.avatar = avatar;
     }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
 }
 

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov