Bläddra i källkod

Merge remote-tracking branch 'origin/master'

周箭河 4 år sedan
förälder
incheckning
43f080fc21
34 ändrade filer med 361 tillägg och 90 borttagningar
  1. 5 0
      cms/pom.xml
  2. 1 1
      cms/src/main/java/com/ym/mec/cms/CmsServerApplication.java
  3. 11 0
      cms/src/main/java/com/ym/mec/cms/config/WebMvcConfig.java
  4. 3 0
      cms/src/main/java/com/ym/mec/cms/controller/HelpCenterCatalogController.java
  5. 3 0
      cms/src/main/java/com/ym/mec/cms/controller/HelpCenterContentControlller.java
  6. 4 0
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  7. 2 2
      cms/src/main/java/com/ym/mec/cms/controller/TaskController.java
  8. 33 0
      cms/src/main/java/com/ym/mec/cms/interceptor/OperationLogInterceptor.java
  9. 8 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherCourseStatisticsDao.java
  10. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentRouteOrderDto.java
  11. 37 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherCourseStatistics.java
  12. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  13. 42 12
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  14. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  15. 34 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseStatisticsServiceImpl.java
  16. 3 1
      mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml
  17. 24 14
      mec-biz/src/main/resources/config/mybatis/TeacherCourseStatisticsMapper.xml
  18. 1 1
      mec-common/audit-log/src/main/java/com/yonge/log/dal/dao/AuditLogDao.java
  19. 6 7
      mec-common/audit-log/src/main/java/com/yonge/log/dal/model/AuditLog.java
  20. 13 5
      mec-common/audit-log/src/main/java/com/yonge/log/interceptor/AuditLogInterceptor.java
  21. 1 1
      mec-common/audit-log/src/main/java/com/yonge/log/service/AuditLogService.java
  22. 2 2
      mec-common/audit-log/src/main/java/com/yonge/log/service/impl/AuditLogServiceImpl.java
  23. 5 5
      mec-common/audit-log/src/test/java/com/yonge/log/test/SpringBootMongodbApplicationTests.java
  24. 1 1
      mec-common/audit-log/src/test/resources/application.properties
  25. 6 5
      mec-common/pom.xml
  26. 4 4
      mec-util/src/main/java/com/ym/mec/util/web/WebUtil.java
  27. 6 0
      mec-web/pom.xml
  28. 1 1
      mec-web/src/main/java/com/ym/mec/web/WebApplication.java
  29. 2 0
      mec-web/src/main/java/com/ym/mec/web/config/PermissionCheckService.java
  30. 19 7
      mec-web/src/main/java/com/ym/mec/web/config/WebMvcConfig.java
  31. 27 0
      mec-web/src/main/java/com/ym/mec/web/controller/AuditLogController.java
  32. 2 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  33. 33 0
      mec-web/src/main/java/com/ym/mec/web/interceptor/OperationLogInterceptor.java
  34. 6 0
      pom.xml

+ 5 - 0
cms/pom.xml

@@ -62,6 +62,11 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-client-api</artifactId>
 		</dependency>
+		
+		<dependency>
+			<groupId>com.yonge.log</groupId>
+			<artifactId>audit-log</artifactId>
+		</dependency>
 	</dependencies>
 	
 	<build>

+ 1 - 1
cms/src/main/java/com/ym/mec/cms/CmsServerApplication.java

@@ -17,7 +17,7 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 @EnableDiscoveryClient
 @EnableFeignClients("com.ym.mec")
 @MapperScan("com.ym.mec.cms.dal.dao")
-@ComponentScan(basePackages = { "com.ym.mec.cms", "com.ym.mec.im", "com.ym.mec.auth", "com.ym.mec.common.config", "com.ym.mec.common.security" })
+@ComponentScan(basePackages = { "com.ym.mec.cms", "com.ym.mec.im", "com.ym.mec.auth", "com.ym.mec.common.config", "com.ym.mec.common.security", "com.yonge.log" })
 @Configuration
 @EnableSwagger2Doc
 public class CmsServerApplication {

+ 11 - 0
cms/src/main/java/com/ym/mec/cms/config/WebMvcConfig.java

@@ -3,18 +3,24 @@ package com.ym.mec.cms.config;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
+import com.ym.mec.cms.interceptor.OperationLogInterceptor;
 import com.ym.mec.common.config.EnumConverterFactory;
 import com.ym.mec.common.config.LocalFastJsonHttpMessageConverter;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
+	
+	@Autowired
+	private OperationLogInterceptor operationLogInterceptor;
 
 	/**
 	 * 枚举类的转换器 addConverterFactory
@@ -24,6 +30,11 @@ public class WebMvcConfig implements WebMvcConfigurer {
 		registry.addConverterFactory(new EnumConverterFactory());
 	}
 	
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
+	}
+
 	@Bean
     public HttpMessageConverters fastJsonHttpMessageConverters(){
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();

+ 3 - 0
cms/src/main/java/com/ym/mec/cms/controller/HelpCenterCatalogController.java

@@ -20,6 +20,7 @@ import com.ym.mec.cms.dal.entity.HelpCenterCatalog;
 import com.ym.mec.cms.service.HelpCenterCatalogService;
 import com.ym.mec.cms.service.HelpCenterContentService;
 import com.ym.mec.common.controller.BaseController;
+import com.yonge.log.model.AuditLogAnnotation;
 
 @RestController
 @RequestMapping("helpCenterCatalog")
@@ -52,6 +53,7 @@ public class HelpCenterCatalogController extends BaseController {
 
 	@ApiOperation("修改分类")
 	@PostMapping(value = "modify", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@AuditLogAnnotation(operateName = "帮助中心分类修改",interfaceURL = "helpCenterCatalog/modify")
 	public Object modifyHelpCatalog(HelpCenterCatalog helpCatalog) {
 		if (helpCatalog == null)
 			return failed("参数输入有误");
@@ -70,6 +72,7 @@ public class HelpCenterCatalogController extends BaseController {
 	@ApiOperation("删除分类")
 	@PostMapping(value = "delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@ApiImplicitParam(name = "id", value = "分类编号", required = true, dataType = "Integer", paramType = "path")
+	@AuditLogAnnotation(operateName = "帮助中心分类删除",interfaceURL = "helpCenterCatalog/delete")
 	public Object delHelpCatalog(Integer id) {
 		if (id == null || id <= 0)
 			return failed("ID解析失败");

+ 3 - 0
cms/src/main/java/com/ym/mec/cms/controller/HelpCenterContentControlller.java

@@ -20,6 +20,7 @@ import com.ym.mec.cms.service.HelpCenterCatalogService;
 import com.ym.mec.cms.service.HelpCenterContentService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.PageInfo;
+import com.yonge.log.model.AuditLogAnnotation;
 
 @RestController
 @RequestMapping("helpCenterContent")
@@ -54,6 +55,7 @@ public class HelpCenterContentControlller extends BaseController {
 
 	@ApiOperation("修改帮助中心内容")
 	@PostMapping(value = "modify", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@AuditLogAnnotation(operateName = "帮助中心内容修改",interfaceURL = "helpCenterContent/modify")
 	public Object modifyHelpContent(HelpCenterContent helpContent) {
 		if (helpContent == null) {
 			return failed("参数输入有误");
@@ -80,6 +82,7 @@ public class HelpCenterContentControlller extends BaseController {
 	@ApiOperation("删除帮助中心内容")
 	@PostMapping(value = "delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@ApiImplicitParam(name = "id", value = "编号", required = true, dataType = "Integer", paramType = "path")
+	@AuditLogAnnotation(operateName = "帮助中心内容删除",interfaceURL = "helpCenterContent/delete")
 	public Object delHelpContent(Integer id) {
 		if (id == null || id <= 0)
 			return failed("ID解析失败");

+ 4 - 0
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -25,6 +25,7 @@ import com.ym.mec.cms.dal.entity.SysNewsInformation;
 import com.ym.mec.cms.service.SysNewsInformationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.util.collection.MapUtil;
+import com.yonge.log.model.AuditLogAnnotation;
 
 @RestController
 @RequestMapping("news")
@@ -74,12 +75,14 @@ public class NewsController extends BaseController {
 
 	@ApiOperation("新增资讯")
 	@PostMapping(value = "/add", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@AuditLogAnnotation(operateName = "资讯新增",interfaceURL = "news/add")
 	public Object add(SysNewsInformation newsInfo) {
 		return succeed(sysNewsInformationService.insert(newsInfo));
 	}
 
 	@ApiOperation("更新资讯")
 	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@AuditLogAnnotation(operateName = "资讯更新",interfaceURL = "news/update")
 	public Object update(SysNewsInformation newsInfo) {
 		Date date = new Date();
 		newsInfo.setUpdateTime(date);
@@ -89,6 +92,7 @@ public class NewsController extends BaseController {
 
 	@ApiOperation("删除")
 	@PostMapping(value = "/del/{id}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@AuditLogAnnotation(operateName = "资讯删除",interfaceURL = "news/del")
 	public Object add(@PathVariable("id") Long id) {
 		return succeed(sysNewsInformationService.deleteWithLogical(id));
 	}

+ 2 - 2
cms/src/main/java/com/ym/mec/cms/controller/TaskController.java

@@ -13,13 +13,13 @@ import com.ym.mec.common.controller.BaseController;
 
 @RequestMapping("task")
 @RestController
-@Api(tags = "资讯服务")
+@Api(tags = "资讯定时任务服务")
 public class TaskController extends BaseController {
 
 	@Autowired
 	private SysNewsInformationService sysNewsInformationService;
 
-	@ApiOperation(value = "查询奖品组列表")
+	@ApiOperation(value = "更新资讯发布状态")
 	@GetMapping("/updateStatus")
 	public void updateStatus(){
 		sysNewsInformationService.autoUpdateStatus();

+ 33 - 0
cms/src/main/java/com/ym/mec/cms/interceptor/OperationLogInterceptor.java

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

+ 8 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherCourseStatisticsDao.java

@@ -10,9 +10,14 @@ import java.util.List;
 
 public interface TeacherCourseStatisticsDao extends BaseDAO<Long, TeacherCourseStatistics> {
 
-    List<TeacherCourseStatistics> findUserByWarringSalary(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("salary") BigDecimal salary);
+    int deleteByMonth(@Param("date") Date date);
 
-    List<TeacherCourseStatistics> findUserCourseSalaryByUserIds(@Param("userIds") List<Integer> userIds,@Param("startDate") Date startDate, @Param("endDate") Date endDate);
+    List<TeacherCourseStatistics> findUserByWarringSalary(@Param("startDate") Date startDate,
+                                                          @Param("endDate") Date endDate);
+
+    List<TeacherCourseStatistics> findUserCourseSalaryByUserIds(@Param("userIds") List<Integer> userIds,
+                                                                @Param("startDate") Date startDate,
+                                                                @Param("endDate") Date endDate);
 
     int batchAdd(@Param("lists") List<TeacherCourseStatistics> lists);
-}
+}

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentRouteOrderDto.java

@@ -12,6 +12,8 @@ public class StudentPaymentRouteOrderDto extends StudentPaymentOrder {
      * 分配分部id
      */
     private Integer routeOrganId;
+    
+    private String routeOrganName;
 
     /**
      * 学校id
@@ -59,7 +61,15 @@ public class StudentPaymentRouteOrderDto extends StudentPaymentOrder {
         this.routeOrganId = routingOrganId;
     }
 
-    public BigDecimal getRouteAmount() {
+    public String getRouteOrganName() {
+		return routeOrganName;
+	}
+
+	public void setRouteOrganName(String routeOrganName) {
+		this.routeOrganName = routeOrganName;
+	}
+
+	public BigDecimal getRouteAmount() {
         return routeAmount;
     }
 

+ 37 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherCourseStatistics.java

@@ -38,6 +38,11 @@ public class TeacherCourseStatistics {
     private Integer musicCourseNum;
 
     /**
+     * 网管课节数
+     */
+    private Integer practiceCourseNum;
+
+    /**
     * 预计乐团课酬
     */
     private BigDecimal expectMusicCourseSalary;
@@ -48,6 +53,11 @@ public class TeacherCourseStatistics {
     private BigDecimal expectVipCourseSalary;
 
     /**
+     * 预计小课课酬
+     */
+    private BigDecimal expectPracticeCourseSalary;
+
+    /**
     * 预计合计课酬
     */
     private BigDecimal expectTotalSalary;
@@ -57,6 +67,8 @@ public class TeacherCourseStatistics {
     */
     private Integer averageClassMinutes;
 
+    private Boolean lowSalary;
+
     /**
     * 统计时间
     */
@@ -132,6 +144,22 @@ public class TeacherCourseStatistics {
         this.musicCourseNum = musicCourseNum;
     }
 
+    public Integer getPracticeCourseNum() {
+        return practiceCourseNum;
+    }
+
+    public void setPracticeCourseNum(Integer practiceCourseNum) {
+        this.practiceCourseNum = practiceCourseNum;
+    }
+
+    public BigDecimal getExpectPracticeCourseSalary() {
+        return expectPracticeCourseSalary;
+    }
+
+    public void setExpectPracticeCourseSalary(BigDecimal expectPracticeCourseSalary) {
+        this.expectPracticeCourseSalary = expectPracticeCourseSalary;
+    }
+
     public BigDecimal getExpectMusicCourseSalary() {
         return expectMusicCourseSalary;
     }
@@ -227,4 +255,12 @@ public class TeacherCourseStatistics {
     public void setSubjectListStr(String subjectListStr) {
         this.subjectListStr = subjectListStr;
     }
-}
+
+    public Boolean getLowSalary() {
+        return lowSalary;
+    }
+
+    public void setLowSalary(Boolean lowSalary) {
+        this.lowSalary = lowSalary;
+    }
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -211,6 +211,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     String DAYA_BASE_SALARY_AMOUNT = "daya_base_salary_amount";
 
+    String WARNING_MIN_COURSE_SALARY = "warning_min_course_salary";
+
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

+ 42 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -14,6 +14,7 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -41,12 +42,6 @@ import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -156,16 +151,35 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
             for (CourseSchedule courseSchedule : courseScheduleList) {
                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), ClassGroupTypeEnum.HIGH_ONLINE.getCode(), null);
+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                     if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
                         throw new BizException("请设置老师线上网管课课酬");
                     }
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
-                    if (studentNum > 5) {
+
+                    if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
                         studentNum = 5;
                     }
-                    BigDecimal salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
+
+                    BigDecimal salary = null;
+                    if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                    }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                            throw new BizException("请设置老师课酬");
+                        }
+                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                        }
+                        salary = salary.multiply(new BigDecimal(studentNum));
+                    }
+                    if(Objects.isNull(salary)){
+                        throw new BizException("请设置老师课酬");
+                    }
 
                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
@@ -507,7 +521,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
             for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), ClassGroupTypeEnum.HIGH_ONLINE.getCode(), null);
+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                     if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
                         throw new BizException("请设置老师线上网管课课酬");
                     }
@@ -515,11 +529,27 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
 
                     int studentNum = studentIds.size();
-                    if (studentNum > 5) {
+                    if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
                         studentNum = 5;
                     }
 
-                    BigDecimal salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                    BigDecimal salary = null;
+                    if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                    }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                            throw new BizException("请设置老师课酬");
+                        }
+                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                        }
+                        salary = salary.multiply(new BigDecimal(studentNum));
+                    }
+                    if(Objects.isNull(salary)){
+                        throw new BizException("请设置老师课酬");
+                    }
 
                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -63,6 +63,9 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		startDate = startDate.withDayOfMonth(1);
 
 		LocalDate endDate = startDate.withMonth(12);
+		if(nowDate.getYear()>endDate.getYear()){
+			currentMonth = Date.from(endDate.atStartOfDay(DateUtil.zoneId).toInstant());
+		}
 
 		Set<Integer> organIds = null;
 		if(StringUtils.isNotBlank(organIdsStr)){

+ 34 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseStatisticsServiceImpl.java

@@ -1,11 +1,13 @@
 package com.ym.mec.biz.service.impl;
 
-
-import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.TeacherCourseStatisticsDao;
 import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
 import com.ym.mec.biz.dal.page.TeacherCourseStatisticsQueryInfo;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.TeacherCourseStatisticsService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
@@ -26,7 +28,7 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
     @Autowired
     private TeacherCourseStatisticsDao teacherCourseStatisticsDao;
     @Autowired
-    private SysConfigDao sysConfigDao;
+    private SysConfigService sysConfigService;
 
     @Override
     public BaseDAO<Long, TeacherCourseStatistics> getDAO() {
@@ -53,39 +55,54 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
 
     @Override
     public void teacherCourseStatistic() {
-        Date nextMonthDate = DateUtil.addMonths(new Date(), 1);
+        Date nextMonthDate = new Date();
         Date startDate = DateUtil.getFirstDayOfMonth(nextMonthDate);
         Date endDate = DateUtil.getLastDayOfMonth(nextMonthDate);
-        String salaryConfig = sysConfigDao.findConfigValue("warning_min_course_salary");
-        BigDecimal salary = new BigDecimal(salaryConfig);
-        List<TeacherCourseStatistics> teacherCourseStatisticsList = teacherCourseStatisticsDao.findUserByWarringSalary(startDate, endDate, salary);
+        List<TeacherCourseStatistics> teacherCourseStatisticsList = teacherCourseStatisticsDao.findUserByWarringSalary(startDate, endDate);
         if (teacherCourseStatisticsList.size() == 0) {
             return;
         }
+        SysConfig salaryConfig = sysConfigService.findByParamName(SysConfigService.WARNING_MIN_COURSE_SALARY);
+        JSONObject salaryConfigObject = JSON.parseObject(salaryConfig.getParanValue());
+
         List<Integer> userIds = teacherCourseStatisticsList.stream().map(TeacherCourseStatistics::getUserId).collect(Collectors.toList());
-        List<TeacherCourseStatistics> teCourseSalaryStatisAndTypes = teacherCourseStatisticsDao.findUserCourseSalaryByUserIds(userIds, startDate, endDate);
+        List<TeacherCourseStatistics> teCourseSalaryStaticsAndTypes = teacherCourseStatisticsDao.findUserCourseSalaryByUserIds(userIds, startDate, endDate);
 
         for (TeacherCourseStatistics teacherCourseStatistics : teacherCourseStatisticsList) {
             int vipCourseNum = 0;
             int musicCourseNum = 0;
+            int practiceCourseNum = 0;
             BigDecimal expectVipCourseSalary = BigDecimal.ZERO;
             BigDecimal expectMusicCourseSalary = BigDecimal.ZERO;
+            BigDecimal expectPracticeCourseSalary = BigDecimal.ZERO;
 
-            for (TeacherCourseStatistics teCourseSalaryStatisAndType : teCourseSalaryStatisAndTypes) {
-                if (!teacherCourseStatistics.getUserId().equals(teCourseSalaryStatisAndType.getUserId())) continue;
+            for (TeacherCourseStatistics teCourseSalaryStaticsAndType : teCourseSalaryStaticsAndTypes) {
+                if (!teacherCourseStatistics.getUserId().equals(teCourseSalaryStaticsAndType.getUserId())) continue;
 
-                if (teCourseSalaryStatisAndType.getGroupType().equals("VIP")) {
-                    expectVipCourseSalary = teCourseSalaryStatisAndType.getExpectTotalSalary();
-                    vipCourseNum = teCourseSalaryStatisAndType.getMusicCourseNum();
-                } else if (teCourseSalaryStatisAndType.getGroupType().equals("MUSIC")) {
-                    expectMusicCourseSalary = teCourseSalaryStatisAndType.getExpectTotalSalary();
-                    musicCourseNum = teCourseSalaryStatisAndType.getMusicCourseNum();
+                if (teCourseSalaryStaticsAndType.getGroupType().equals("VIP")) {
+                    expectVipCourseSalary = teCourseSalaryStaticsAndType.getExpectTotalSalary();
+                    vipCourseNum = teCourseSalaryStaticsAndType.getMusicCourseNum();
+                } else if (teCourseSalaryStaticsAndType.getGroupType().equals("MUSIC")) {
+                    expectMusicCourseSalary = teCourseSalaryStaticsAndType.getExpectTotalSalary();
+                    musicCourseNum = teCourseSalaryStaticsAndType.getMusicCourseNum();
+                } else if (teCourseSalaryStaticsAndType.getGroupType().equals("PRACTICE")) {
+                    expectPracticeCourseSalary = teCourseSalaryStaticsAndType.getExpectTotalSalary();
+                    practiceCourseNum = teCourseSalaryStaticsAndType.getMusicCourseNum();
                 }
             }
             teacherCourseStatistics.setExpectVipCourseSalary(expectVipCourseSalary);
             teacherCourseStatistics.setExpectMusicCourseSalary(expectMusicCourseSalary);
+            teacherCourseStatistics.setExpectPracticeCourseSalary(expectPracticeCourseSalary);
             teacherCourseStatistics.setVipCourseNum(vipCourseNum);
             teacherCourseStatistics.setMusicCourseNum(musicCourseNum);
+            teacherCourseStatistics.setPracticeCourseNum(practiceCourseNum);
+
+            BigDecimal organWarningSalary = salaryConfigObject.getBigDecimal(teacherCourseStatistics.getOrganId().toString());
+            if(Objects.isNull(organWarningSalary)||teacherCourseStatistics.getExpectTotalSalary().compareTo(organWarningSalary)<=0){
+                teacherCourseStatistics.setLowSalary(true);
+            }else{
+                teacherCourseStatistics.setLowSalary(false);
+            }
 
             if (teacherCourseStatistics.getSubjectIdList() == null) {
                 teacherCourseStatistics.setSubjectIdList("");
@@ -93,6 +110,7 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
             teacherCourseStatistics.setMonth(startDate);
         }
 
+        teacherCourseStatisticsDao.deleteByMonth(startDate);
         teacherCourseStatisticsDao.batchAdd(teacherCourseStatisticsList);
     }
 }

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml

@@ -38,6 +38,7 @@
         <result column="mer_no_" property="merNo"/>
         <result column="order_no_" property="orderNo"/>
         <result column="fee_flag_" property="feeFlag"/>
+        <result column="route_organ_name_" property="routeOrganName"/>
     </resultMap>
 
     <resultMap id="StudentPaymentRouteOrderMap" type="com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder" extends="StudentPaymentRouteOrder">
@@ -157,9 +158,10 @@
     </insert>
 
     <select id="queryPageOrder" parameterType="map" resultMap="StudentPaymentRouteOrderDto">
-        SELECT spo.*,spro.*,u.username_,u.phone_ FROM student_payment_order spo
+        SELECT spo.*,spro.*,u.username_,u.phone_,o.name_ route_organ_name_ FROM student_payment_order spo
         LEFT JOIN student_payment_route_order spro ON spo.order_no_ = spro.order_no_
         left join sys_user u on spo.user_id_ = u.id_
+        left join organization o on o.id_ = spro.route_organ_id_
         <include refid="queryPaymentOrder"/>
         ORDER BY spo.id_ DESC
         <include refid="global.limit"/>

+ 24 - 14
mec-biz/src/main/resources/config/mybatis/TeacherCourseStatisticsMapper.xml

@@ -9,9 +9,12 @@
         <result column="subject_id_list_" jdbcType="VARCHAR" property="subjectIdList"/>
         <result column="vip_course_num_" jdbcType="INTEGER" property="vipCourseNum"/>
         <result column="music_course_num_" jdbcType="INTEGER" property="musicCourseNum"/>
+        <result column="practice_course_num_" jdbcType="INTEGER" property="practiceCourseNum"/>
         <result column="expect_music_course_salary_" jdbcType="DECIMAL" property="expectMusicCourseSalary"/>
         <result column="expect_vip_course_salary_" jdbcType="DECIMAL" property="expectVipCourseSalary"/>
+        <result column="expect_practice_course_salary_" jdbcType="DECIMAL" property="expectPracticeCourseSalary"/>
         <result column="expect_total_salary_" jdbcType="DECIMAL" property="expectTotalSalary"/>
+        <result column="low_salary" jdbcType="DECIMAL" property="lowSalary"/>
         <result column="average_class_minutes_" jdbcType="INTEGER" property="averageClassMinutes"/>
         <result column="statistics_date_time_" jdbcType="DATE" property="statisticsDateTime"/>
         <result column="group_type_" jdbcType="VARCHAR" property="groupType"/>
@@ -27,30 +30,36 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseStatistics" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO teacher_course_statistics (id_, user_id_, organ_id_, month_,
-        subject_id_list_, vip_course_num_, music_course_num_,
-        expect_music_course_salary_, expect_vip_course_salary_,
+        subject_id_list_, vip_course_num_, music_course_num_, practice_course_num_,
+        expect_music_course_salary_, expect_vip_course_salary_, expect_practice_course_salary_,
         expect_total_salary_, average_class_minutes_,
-        statistics_date_time_)
+        statistics_date_time_,low_salary)
         VALUES (#{id,jdbcType=BIGINT}, #{userId,jdbcType=INTEGER}, #{organId,jdbcType=INTEGER}, #{month,jdbcType=DATE},
-        #{subjectIdList,jdbcType=VARCHAR}, #{vipCourseNum,jdbcType=INTEGER}, #{musicCourseNum,jdbcType=INTEGER},
-        #{expectMusicCourseSalary,jdbcType=DECIMAL}, #{expectVipCourseSalary,jdbcType=DECIMAL},
-        #{expectTotalSalary,jdbcType=DECIMAL}, #{averageClassMinutes,jdbcType=INTEGER},NOW())
+        #{subjectIdList,jdbcType=VARCHAR}, #{vipCourseNum,jdbcType=INTEGER}, #{musicCourseNum,jdbcType=INTEGER}, #{practiceCourseNum},
+        #{expectMusicCourseSalary,jdbcType=DECIMAL}, #{expectVipCourseSalary,jdbcType=DECIMAL}, #{expectPracticeCourseSalary},
+        #{expectTotalSalary,jdbcType=DECIMAL}, #{averageClassMinutes,jdbcType=INTEGER},NOW(),#{lowSalary})
     </insert>
 
     <insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO teacher_course_statistics (id_, user_id_, organ_id_, month_,
-        subject_id_list_, vip_course_num_, music_course_num_,
-        expect_music_course_salary_, expect_vip_course_salary_,
-        expect_total_salary_, average_class_minutes_,statistics_date_time_)
+        subject_id_list_, vip_course_num_, music_course_num_, practice_course_num_,
+        expect_music_course_salary_, expect_vip_course_salary_, expect_practice_course_salary_,
+        expect_total_salary_, average_class_minutes_,statistics_date_time_,low_salary)
         VALUE
         <foreach collection="lists" item="list" separator=",">
         (#{list.id,jdbcType=BIGINT}, #{list.userId,jdbcType=INTEGER}, #{list.organId,jdbcType=INTEGER}, #{list.month,jdbcType=DATE},
         #{list.subjectIdList,jdbcType=VARCHAR}, #{list.vipCourseNum,jdbcType=INTEGER}, #{list.musicCourseNum,jdbcType=INTEGER},
+            #{list.practiceCourseNum},
         #{list.expectMusicCourseSalary,jdbcType=DECIMAL}, #{list.expectVipCourseSalary,jdbcType=DECIMAL},
-        #{list.expectTotalSalary,jdbcType=DECIMAL}, #{list.averageClassMinutes,jdbcType=INTEGER},NOW())
+            #{list.expectPracticeCourseSalary},
+        #{list.expectTotalSalary,jdbcType=DECIMAL}, #{list.averageClassMinutes,jdbcType=INTEGER},NOW(),#{list.lowSalary})
         </foreach>
     </insert>
 
+    <delete id="deleteByMonth">
+        DELETE FROM teacher_course_statistics WHERE month_=#{date}
+    </delete>
+
     <!-- 查找下月排课小于基准课酬的老师-->
     <select id="findUserByWarringSalary" resultMap="TeacherCourseStatistics"><![CDATA[
         SELECT SUM(csts.expect_salary_) expect_total_salary_, csts.user_id_,t.organ_id_,t.subject_id_ subject_id_list_,
@@ -58,8 +67,9 @@
         FROM course_schedule_teacher_salary csts
         LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
         LEFT JOIN teacher t on t.id_ = csts.user_id_
-        WHERE cs.class_date_ >= #{startDate} AND cs.class_date_ <= #{endDate} AND csts.group_type_ IN ('VIP','MUSIC') AND cs.del_flag_ != 1
-        GROUP BY csts.user_id_ HAVING expect_total_salary_ <= #{salary}
+        WHERE cs.class_date_ >= #{startDate} AND cs.class_date_ <= #{endDate} AND csts.group_type_ IN ('VIP','MUSIC', 'PRACTICE')
+          AND cs.del_flag_ != 1 AND t.organ_id_ IS NOT NULL
+        GROUP BY csts.user_id_
         ]]>
   </select>
     <select id="findUserCourseSalaryByUserIds" resultMap="TeacherCourseStatistics">
@@ -69,7 +79,7 @@
         <foreach collection="userIds" item="userId" open="(" separator="," close=")">
             #{userId}
         </foreach>
-        <![CDATA[AND cs.class_date_ >= #{startDate} AND cs.class_date_ <= #{endDate} AND csts.group_type_ IN ('VIP','MUSIC') AND cs.del_flag_ != 1
+        <![CDATA[AND cs.class_date_ >= #{startDate} AND cs.class_date_ <= #{endDate} AND csts.group_type_ IN ('VIP', 'MUSIC', 'PRACTICE') AND cs.del_flag_ != 1
         GROUP BY csts.user_id_, csts.group_type_;
   ]]></select>
 
@@ -102,4 +112,4 @@
             </if>
         </where>
     </sql>
-</mapper>
+</mapper>

+ 1 - 1
mec-common/audit-log/src/main/java/com/yonge/log/dal/dao/AuditLogDao.java

@@ -6,7 +6,7 @@ import com.yonge.log.dal.model.AuditLog;
 import com.yonge.mongodb.dao.BaseDaoWithMongo;
 
 @Component
-public class AuditLogDao extends BaseDaoWithMongo<Long, AuditLog> {
+public class AuditLogDao extends BaseDaoWithMongo<String, AuditLog> {
 
 	@Override
 	public Class<AuditLog> getClassEntity() {

+ 6 - 7
mec-common/audit-log/src/main/java/com/yonge/log/dal/model/AuditLog.java

@@ -1,7 +1,6 @@
 package com.yonge.log.dal.model;
 
 import java.io.Serializable;
-import java.util.Date;
 
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
@@ -15,7 +14,7 @@ public class AuditLog implements Serializable {
 	private static final long serialVersionUID = 7721535265828759275L;
 
 	@Id
-	private Long id;
+	private String id;
 
 	private String username;
 
@@ -25,15 +24,15 @@ public class AuditLog implements Serializable {
 
 	private String inputParams;
 
-	private Date operateTime;
+	private String operateTime;
 
 	private String userIp;
 
-	public Long getId() {
+	public String getId() {
 		return id;
 	}
 
-	public void setId(Long id) {
+	public void setId(String id) {
 		this.id = id;
 	}
 
@@ -69,11 +68,11 @@ public class AuditLog implements Serializable {
 		this.inputParams = inputParams;
 	}
 
-	public Date getOperateTime() {
+	public String getOperateTime() {
 		return operateTime;
 	}
 
-	public void setOperateTime(Date operateTime) {
+	public void setOperateTime(String operateTime) {
 		this.operateTime = operateTime;
 	}
 

+ 13 - 5
mec-common/audit-log/src/main/java/com/yonge/log/interceptor/AuditLogInterceptor.java

@@ -1,12 +1,16 @@
 package com.yonge.log.interceptor;
 
 import java.io.IOException;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Map;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.io.IOUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -27,9 +31,7 @@ public class AuditLogInterceptor extends HandlerInterceptorAdapter {
 
 	private String username;
 
-	public AuditLogInterceptor(String username) {
-		this.username = username;
-	}
+	private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {
@@ -48,10 +50,16 @@ public class AuditLogInterceptor extends HandlerInterceptorAdapter {
 			auditLog.setOperateName(anno.operateName());
 			auditLog.setInterfaceUrl(anno.interfaceURL());
 			auditLog.setUserIp(WebUtil.getRemoteIp(request));
-			auditLog.setInputParams(JsonUtil.toJSONString(WebUtil.getParameterMap(request)));
+
+			Map<String, Object> params = WebUtil.getParameterMap(request);
+			if (params == null || params.size() == 0) {
+				auditLog.setInputParams(IOUtils.toString(request.getInputStream(), Charset.defaultCharset()));
+			} else {
+				auditLog.setInputParams(JsonUtil.toJSONString(WebUtil.getParameterMap(request)));
+			}
 			// 操作人
 			auditLog.setUsername(username);
-			auditLog.setOperateTime(new Date());
+			auditLog.setOperateTime(sdf.format(new Date()));
 			auditLogService.insert(auditLog);
 		}
 

+ 1 - 1
mec-common/audit-log/src/main/java/com/yonge/log/service/AuditLogService.java

@@ -3,6 +3,6 @@ package com.yonge.log.service;
 import com.yonge.log.dal.model.AuditLog;
 import com.yonge.mongodb.service.BaseServiceWithMongo;
 
-public interface AuditLogService extends BaseServiceWithMongo<Long, AuditLog> {
+public interface AuditLogService extends BaseServiceWithMongo<String, AuditLog> {
 
 }

+ 2 - 2
mec-common/audit-log/src/main/java/com/yonge/log/service/impl/AuditLogServiceImpl.java

@@ -10,13 +10,13 @@ import com.yonge.mongodb.dao.BaseDaoWithMongo;
 import com.yonge.mongodb.service.impl.BaseServiceImplWithMongo;
 
 @Service
-public class AuditLogServiceImpl extends BaseServiceImplWithMongo<Long, AuditLog> implements AuditLogService {
+public class AuditLogServiceImpl extends BaseServiceImplWithMongo<String, AuditLog> implements AuditLogService {
 
 	@Autowired
 	private AuditLogDao auditLogDao;
 
 	@Override
-	public BaseDaoWithMongo<Long, AuditLog> getDAO() {
+	public BaseDaoWithMongo<String, AuditLog> getDAO() {
 		return auditLogDao;
 	}
 

+ 5 - 5
mec-common/audit-log/src/test/java/com/yonge/log/test/SpringBootMongodbApplicationTests.java

@@ -25,7 +25,7 @@ public class SpringBootMongodbApplicationTests {
 	@Test
 	public void add() {
 		AuditLog auditLog = new AuditLog();
-		auditLog.setId(1L);
+		auditLog.setId("1");
 		auditLog.setInputParams("{'signClassId':'','mixClassId':'','snapClassIds':'','highClassId':'','temporaryCourseFee':null,'studentRegistration':{'name':'上低08','gender':1,'birthdate':'2020-12-21','parentsName':'上低08家长','parentsPhone':'18881230038','currentGrade':'一年级','currentClass':'A','subjectId':2,'musicGroupId':'20123009470100001'},'studentPaymentOrderDetails':[]}");
 		auditLog.setInterfaceUrl("api-web/studentRegistration/insertStudent");
 		auditLog.setOperateName("进行中加学员");
@@ -41,23 +41,23 @@ public class SpringBootMongodbApplicationTests {
 	@Test
 	public void query() {
 		System.out.println("********query**********");
-		System.out.println(JsonUtil.toJSONString(auditLogService.get(1L)));
+		System.out.println(JsonUtil.toJSONString(auditLogService.get("1")));
 		System.out.println("******************");
 	}
 
 	@Test
 	public void update() {
-		AuditLog auditLog = auditLogService.get(1L);
+		AuditLog auditLog = auditLogService.get("1");
 		auditLog.setInputParams("测试输入参数222");
 		System.out.println("********update**********");
-		System.out.println(JsonUtil.toJSONString(auditLogService.update(1L, auditLog)));
+		System.out.println(JsonUtil.toJSONString(auditLogService.update("1", auditLog)));
 		System.out.println("******************");
 	}
 
 	@Test
 	public void delete() {
 		System.out.println("********delete**********");
-		System.out.println(JsonUtil.toJSONString(auditLogService.delete(1L)));
+		System.out.println(JsonUtil.toJSONString(auditLogService.delete("1")));
 		System.out.println("******************");
 	}
 

+ 1 - 1
mec-common/audit-log/src/test/resources/application.properties

@@ -1,6 +1,6 @@
 spring.application.name=audit-log
 
 # mongodb
-spring.data.mongodb.uri=mongodb://47.114.1.200:27018
+spring.data.mongodb.uri=mongodb://47.114.1.200:27017
 
 spring.data.mongodb.database=mec_dev

+ 6 - 5
mec-common/pom.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<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">
+<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>
 	<parent>
 		<groupId>com.ym</groupId>
@@ -22,11 +23,11 @@
 			<artifactId>mec-util</artifactId>
 		</dependency>
 	</dependencies>
-	
+
 	<modules>
 		<module>common-core</module>
 		<module>common-log</module>
-	  <module>mongo-db</module>
-    <module>audit-log</module>
-  </modules>
+		<module>mongo-db</module>
+		<module>audit-log</module>
+	</modules>
 </project>

+ 4 - 4
mec-util/src/main/java/com/ym/mec/util/web/WebUtil.java

@@ -7,17 +7,17 @@
  */
 package com.ym.mec.util.web;
 
-import java.util.*;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
 
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import com.ym.mec.util.encode.AES;
 import org.apache.commons.lang3.StringUtils;
 
-import static com.ym.mec.util.encode.AES.encrypt;
-
 /**
  * 
  */

+ 6 - 0
mec-web/pom.xml

@@ -56,6 +56,12 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-biz</artifactId>
 		</dependency>
+		
+		<dependency>
+			<groupId>com.yonge.log</groupId>
+			<artifactId>audit-log</artifactId>
+		</dependency>
+		
 		<dependency>
 			<groupId>com.github.penggle</groupId>
 			<artifactId>kaptcha</artifactId>

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/WebApplication.java

@@ -25,7 +25,7 @@ import com.ym.mec.common.filters.EmojiEncodingFilter;
 @EnableDiscoveryClient
 @EnableFeignClients("com.ym.mec")
 @MapperScan("com.ym.mec.biz.dal.dao")
-@ComponentScan(basePackages = "com.ym.mec")
+@ComponentScan(basePackages = {"com.ym.mec", "com.yonge.log"})
 @Configuration
 @EnableSwagger2Doc
 @EnableAsync

+ 2 - 0
mec-web/src/main/java/com/ym/mec/web/config/PermissionCheckService.java

@@ -4,6 +4,7 @@ import java.util.Collection;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.stereotype.Component;
@@ -16,6 +17,7 @@ import com.ym.mec.common.security.SecurityUtils;
 public class PermissionCheckService {
 	
 	@Autowired
+	@Lazy
 	private SysUserFeignService sysUserFeignService;
 
 	public boolean hasPermissions(String... permissions) {

+ 19 - 7
mec-web/src/main/java/com/ym/mec/web/config/WebMvcConfig.java

@@ -3,19 +3,25 @@ package com.ym.mec.web.config;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import com.ym.mec.common.config.EnumConverterFactory;
 import com.ym.mec.common.config.LocalFastJsonHttpMessageConverter;
+import com.ym.mec.web.interceptor.OperationLogInterceptor;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
 
+	@Autowired
+	private OperationLogInterceptor operationLogInterceptor;
+
 	/**
 	 * 枚举类的转换器 addConverterFactory
 	 */
@@ -23,14 +29,20 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	public void addFormatters(FormatterRegistry registry) {
 		registry.addConverterFactory(new EnumConverterFactory());
 	}
-	
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+
+		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
+	}
+
 	@Bean
-    public HttpMessageConverters fastJsonHttpMessageConverters(){
+	public HttpMessageConverters fastJsonHttpMessageConverters() {
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
-        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
-        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
-        converter.setSupportedMediaTypes(fastMediaTypes);
-        return new HttpMessageConverters(converter);
-    }
+		List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
 
 }

+ 27 - 0
mec-web/src/main/java/com/ym/mec/web/controller/AuditLogController.java

@@ -0,0 +1,27 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.common.controller.BaseController;
+import com.yonge.log.service.AuditLogService;
+import com.yonge.mongodb.QueryInfo;
+
+@RequestMapping("auditLog")
+@Api(tags = "系统操作日志")
+@RestController
+public class AuditLogController extends BaseController {
+
+	@Autowired
+	private AuditLogService auditLogService;
+
+	@GetMapping("/queryPage")
+	public Object queryPage(QueryInfo queryInfo) {
+		return succeed(auditLogService.queryPage(queryInfo));
+	}
+
+}

+ 2 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -35,6 +35,7 @@ import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
+import com.yonge.log.model.AuditLogAnnotation;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -50,6 +51,7 @@ public class MusicGroupController extends BaseController {
 
 	@ApiOperation(value = "修改乐团基本信息")
 	@PostMapping("/update")
+	@AuditLogAnnotation(operateName = "乐团基本信息修改",interfaceURL = "musicGroup/update")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
 	public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
 		musicGroupService.updateBaseInfo(subFeeSettingDto);

+ 33 - 0
mec-web/src/main/java/com/ym/mec/web/interceptor/OperationLogInterceptor.java

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

+ 6 - 0
pom.xml

@@ -88,6 +88,12 @@
 				<artifactId>mongo-db</artifactId>
 				<version>1.0</version>
 			</dependency>
+		
+			<dependency>
+				<groupId>com.yonge.log</groupId>
+				<artifactId>audit-log</artifactId>
+				<version>1.0</version>
+			</dependency>
 
 			<dependency>
 				<groupId>com.ym</groupId>