yonge 4 년 전
부모
커밋
b722f1b381

+ 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;
     }
 

+ 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"/>

+ 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);
+	}
 
 }

+ 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>