فهرست منبع

规范了初始代码接口的规范整理

mac 2 سال پیش
والد
کامیت
4a5b26d01e

+ 11 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/exception/GlobalBizExceptionHandler.java

@@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 import org.springframework.core.annotation.Order;
 import org.springframework.http.HttpStatus;
+import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.util.Assert;
 import org.springframework.validation.BindException;
 import org.springframework.validation.FieldError;
@@ -146,5 +147,15 @@ public class GlobalBizExceptionHandler {
 
 		return R.failed(e.getMessage());
 	}
+	/**
+	 * 参数绑定异常
+	 * @param e 错误类型
+	 * @return {@link R}
+	 */
+	@ExceptionHandler(HttpMessageNotReadableException.class)
+	public R handlerParamException(HttpMessageNotReadableException e){
+
+		return R.failed(e.getMessage());
+	}
 
 }

+ 180 - 156
kxs-gateway/src/main/java/com/kxs/gateway/api/filter/RequestDecoderFilter.java

@@ -1,7 +1,6 @@
 package com.kxs.gateway.api.filter;
 
 import cn.hutool.core.text.CharSequenceUtil;
-import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.symmetric.AES;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -33,11 +32,9 @@ import reactor.core.publisher.Mono;
 import java.net.URI;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
 import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.atomic.AtomicInteger;
-
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 
 /**
@@ -50,161 +47,188 @@ import java.util.concurrent.atomic.AtomicInteger;
 @RequiredArgsConstructor
 public class RequestDecoderFilter extends AbstractGatewayFilterFactory<Object> {
 
-	private final AES cryptoAes;
-
-	private static final String PARAM_NAME = "value";
-
-	/**
-	 * 前端所传分页名称
-	 */
-	private static final String PAGE_NAME = "pageNum";
-	private static final String SIZE_NAME = "pageSize";
-
-	private static final List<String> FILE_TYPES = List.of("multipart/form-data");
-
-	@Override
-	public GatewayFilter apply(Object config) {
-		return (exchange, chain) -> {
-			ServerHttpRequest request = exchange.getRequest();
-
-			MediaType contentType = request.getHeaders().getContentType();
-
-			if (contentType != null && FILE_TYPES.stream().anyMatch(contentType.toString()::startsWith)) {
-				// 这是一个文件请求
-				return chain.filter(exchange);
-			}
-			// 请求方法
-			HttpMethod method = request.getMethod();
-			if (method == HttpMethod.GET) {
-				// 1 修改请求参数,并获取请求参数
-				return decryptGetRequestParam(exchange, chain);
-			}
-
-			if (method == HttpMethod.POST || method == HttpMethod.PUT) {
-				return decryptPostBodyParam(exchange, chain);
-			}
-
-			return chain.filter(exchange);
-
-		};
-
-	}
-
-	/**
-	 * 解密post-body参数
-	 *
-	 * @param exchange exchange
-	 * @param chain    chain
-	 * @return mono<void>
-	 */
-	private Mono<Void> decryptPostBodyParam(ServerWebExchange exchange, GatewayFilterChain chain) {
-		//获取请求体,修改请求体
-		ServerRequest serverRequest = ServerRequest.create(exchange,
-				HandlerStrategies.withDefaults().messageReaders());
-
-		//请求长度
-		AtomicInteger setContentLength = new AtomicInteger();
-		//获取请求头
-		MediaType contentType = exchange.getRequest().getHeaders().getContentType();
-		Flux<DataBuffer> modifiedBody = serverRequest.bodyToFlux(String.class).flatMap(body -> {
-			// 解密请求体
-			try {
+    private final AES cryptoAes;
+
+    private static final String PARAM_NAME = "value";
+
+    /**
+     * 前端所传分页名称
+     */
+    private static final String PAGE_NAME = "pageNum";
+    private static final String SIZE_NAME = "pageSize";
+
+    private static final List<String> FILE_TYPES = List.of("multipart/form-data");
+
+    @Override
+    public GatewayFilter apply(Object config) {
+        return (exchange, chain) -> {
+            ServerHttpRequest request = exchange.getRequest();
+
+            MediaType contentType = request.getHeaders().getContentType();
+
+            if (contentType != null && FILE_TYPES.stream().anyMatch(contentType.toString()::startsWith)) {
+                // 这是一个文件请求
+                return chain.filter(exchange);
+            }
+            // 请求方法
+            HttpMethod method = request.getMethod();
+            if (method == HttpMethod.GET) {
+                // 1 修改请求参数,并获取请求参数
+                return decryptGetRequestParam(exchange, chain);
+            }
+
+            if (method == HttpMethod.POST || method == HttpMethod.PUT ) {
+                return decryptPostBodyParam(exchange, chain);
+            }
+            if (method == HttpMethod.DELETE) {
+                // 1 修改请求参数,并获取请求参数
+                return decryptDeleteRequestParam(exchange, chain);
+            }
+
+            return chain.filter(exchange);
+
+        };
+
+    }
+
+    private Mono<Void> decryptDeleteRequestParam(ServerWebExchange exchange, GatewayFilterChain chain) {
+
+        ServerHttpRequest request = exchange.getRequest();
+        URI uri = exchange.getRequest().getURI();
+        String path = uri.getPath();
+        try{
+            String[] pathSegments = path.split("/");
+            String param = pathSegments[pathSegments.length - 1];
+
+            String decryptStr = cryptoAes.decryptStr(param);
+
+            Pattern pattern = Pattern.compile("(.+/)[^/]+$");
+            Matcher matcher = pattern.matcher(path);
+
+            if (matcher.find()) {
+                String lastSegment = matcher.group(1); // 包括最后一个/
+                path = lastSegment + decryptStr;
+                request = exchange.getRequest().mutate().uri(URI.create(path)).build();
+            }
+        }catch (Exception e) {
+            log.error("解密异常,请求地址:{}", path);
+            return Mono.error(new AesDecodeException(ErrorTypeEnum.DECRYPT_ERROR.getDescription()));
+        }
+
+        return chain.filter(exchange.mutate().request(request.mutate().build()).build());
+    }
+
+    /**
+     * 解密post-body参数
+     *
+     * @param exchange exchange
+     * @param chain    chain
+     * @return mono<void>
+     */
+    private Mono<Void> decryptPostBodyParam(ServerWebExchange exchange, GatewayFilterChain chain) {
+        //获取请求体,修改请求体
+        ServerRequest serverRequest = ServerRequest.create(exchange,
+                HandlerStrategies.withDefaults().messageReaders());
+
+        //获取请求头
+        MediaType contentType = exchange.getRequest().getHeaders().getContentType();
+        Flux<DataBuffer> modifiedBody = serverRequest.bodyToFlux(String.class).flatMap(body -> {
+            // 解密请求体
+            try {
 //				log.info("待解密请求参数:{}", body);
-				String decryptStr = cryptoAes.decryptStr(body);
+                String decryptStr = cryptoAes.decryptStr(body);
 //				log.info("解密后参数:{}", decryptStr);
 
-				DataBufferFactory dataBufferFactory = exchange.getResponse().bufferFactory();
-				DataBuffer bodyDataBuffer = dataBufferFactory.wrap(decryptStr.getBytes());
-				//获取参数长度
-//					setContentLength.set(encrypt.getBytes().length);
-				//添加到请求体
-				return Flux.just(bodyDataBuffer);
-			} catch (Exception e) {
-				log.error(ErrorTypeEnum.DECRYPT_ERROR.getDescription(), e);
-				return Flux.error(new AesDecodeException(ErrorTypeEnum.DECRYPT_ERROR.getDescription()));
-			}
-		});
-		ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator(
-				exchange.getRequest()) {
-			@NotNull
-			@Override
-			public HttpHeaders getHeaders() {
-				//重新设置请求头
-				HttpHeaders httpHeaders = new HttpHeaders();
-				httpHeaders.putAll(super.getHeaders());
-				httpHeaders.remove(HttpHeaders.CONTENT_TYPE);
-				httpHeaders.remove(HttpHeaders.CONTENT_LENGTH);
-				assert contentType != null;
-				httpHeaders.set(HttpHeaders.CONTENT_TYPE, contentType.toString());
-
-				return httpHeaders;
-			}
-
-			@NotNull
-			@Override
-			public Flux<DataBuffer> getBody() {
-				return modifiedBody;
-			}
-		};
-		return chain.filter(exchange.mutate().request(mutatedRequest).build());
-	}
-
-
-	/**
-	 * 解密GET请求参数
-	 *
-	 * @param exchange exchange
-	 * @param chain    chain
-	 * @return mono<void>
-	 */
-	private Mono<Void> decryptGetRequestParam(ServerWebExchange exchange, GatewayFilterChain chain) {
-
-		try {
-			MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams();
-			String decryptedParam = queryParams.getFirst(PARAM_NAME);
-			if(CharSequenceUtil.isEmpty(decryptedParam)){
-				return chain.filter(exchange);
-			}
+                DataBufferFactory dataBufferFactory = exchange.getResponse().bufferFactory();
+                DataBuffer bodyDataBuffer = dataBufferFactory.wrap(decryptStr.getBytes());
+                //添加到请求体
+                return Flux.just(bodyDataBuffer);
+            } catch (Exception e) {
+                log.error(ErrorTypeEnum.DECRYPT_ERROR.getDescription(), e);
+                return Flux.error(new AesDecodeException(ErrorTypeEnum.DECRYPT_ERROR.getDescription()));
+            }
+        });
+        ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator(
+                exchange.getRequest()) {
+            @NotNull
+            @Override
+            public HttpHeaders getHeaders() {
+                //重新设置请求头
+                HttpHeaders httpHeaders = new HttpHeaders();
+                httpHeaders.putAll(super.getHeaders());
+                httpHeaders.remove(HttpHeaders.CONTENT_TYPE);
+                httpHeaders.remove(HttpHeaders.CONTENT_LENGTH);
+                assert contentType != null;
+                httpHeaders.set(HttpHeaders.CONTENT_TYPE, contentType.toString());
+
+                return httpHeaders;
+            }
+
+            @NotNull
+            @Override
+            public Flux<DataBuffer> getBody() {
+                return modifiedBody;
+            }
+        };
+        return chain.filter(exchange.mutate().request(mutatedRequest).build());
+    }
+
+
+    /**
+     * 解密GET请求参数
+     *
+     * @param exchange exchange
+     * @param chain    chain
+     * @return mono<void>
+     */
+    private Mono<Void> decryptGetRequestParam(ServerWebExchange exchange, GatewayFilterChain chain) {
+
+        try {
+            MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams();
+            String decryptedParam = queryParams.getFirst(PARAM_NAME);
+            if (CharSequenceUtil.isEmpty(decryptedParam)) {
+                return chain.filter(exchange);
+            }
 //			log.info("GET:{},请求待解密数据 :{}", exchange.getRequest().getURI(),decryptedParam);
-			String decryptStr = cryptoAes.decryptStr(decryptedParam);
-//			log.info("GET解密后数据 :{}", decryptStr);
-
-			JSONObject decryptJson = JSON.parseObject(decryptStr);
-			//构建新的请求参数webflux
-			MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(decryptJson.size());
-			decryptJson.forEach((key, value) -> {
-				//转换分页参数,前后端定义不一致的问题
-				if(PAGE_NAME.equals(key)){
-					key = "current";
-				}
-				if(SIZE_NAME.equals(key)){
-					key = "size";
-				}
-				if(value instanceof JSONArray){
-					JSONArray values = JSON.parseArray(value.toString());
-					String finalKey = key;
-					values.forEach(v -> parameters.add(finalKey,  URLEncoder.encode(String.valueOf(v), StandardCharsets.UTF_8)));
-				}else{
-					parameters.add(key, URLEncoder.encode(String.valueOf(value), StandardCharsets.UTF_8));
-				}
-			});
+            String decryptStr = cryptoAes.decryptStr(decryptedParam);
+			log.info("GET解密后数据 :{}", decryptStr);
+
+            JSONObject decryptJson = JSON.parseObject(decryptStr);
+            //构建新的请求参数webflux
+            MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(decryptJson.size());
+            decryptJson.forEach((key, value) -> {
+                //转换分页参数,前后端定义不一致的问题
+                if (PAGE_NAME.equals(key)) {
+                    key = "current";
+                }
+                if (SIZE_NAME.equals(key)) {
+                    key = "size";
+                }
+                if (value instanceof JSONArray) {
+                    JSONArray values = JSON.parseArray(value.toString());
+                    String finalKey = key;
+                    values.forEach(v -> parameters.add(finalKey, URLEncoder.encode(String.valueOf(v), StandardCharsets.UTF_8)));
+                } else {
+                    parameters.add(key, URLEncoder.encode(String.valueOf(value), StandardCharsets.UTF_8));
+                }
+            });
 //			log.info("GET解密后数据 :{}", parameters);
-			// 构建修改后的URI
-			URI modifiedUri = UriComponentsBuilder.fromUri(exchange.getRequest().getURI())
-					.replaceQueryParams(parameters)
-					.build(true)
-					.toUri();
-			// 修改请求,设置新的URI
-			ServerHttpRequest modifiedRequest = exchange.getRequest().mutate()
-					.uri(modifiedUri)
-					.build();
-			// 用修改后的请求继续处理请求链
-			return chain.filter(exchange.mutate().request(modifiedRequest).build());
-		} catch (Exception e) {
-			log.error(ErrorTypeEnum.DECRYPT_ERROR.getDescription(), e);
-			return Mono.error(new AesDecodeException(ErrorTypeEnum.DECRYPT_ERROR.getDescription()));
-		}
-
-	}
+            // 构建修改后的URI
+            URI modifiedUri = UriComponentsBuilder.fromUri(exchange.getRequest().getURI())
+                    .replaceQueryParams(parameters)
+                    .build(true)
+                    .toUri();
+            // 修改请求,设置新的URI
+            ServerHttpRequest modifiedRequest = exchange.getRequest().mutate()
+                    .uri(modifiedUri)
+                    .build();
+            // 用修改后的请求继续处理请求链
+            return chain.filter(exchange.mutate().request(modifiedRequest).build());
+        } catch (Exception e) {
+            log.error(ErrorTypeEnum.DECRYPT_ERROR.getDescription(), e);
+            return Mono.error(new AesDecodeException(ErrorTypeEnum.DECRYPT_ERROR.getDescription()));
+        }
+
+    }
 
 }

+ 0 - 2
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/SysLog.java

@@ -133,9 +133,7 @@ public class SysLog implements Serializable {
 	/**
 	 * 删除标记
 	 */
-	@TableLogic
 	@ExcelIgnore
-	@TableField(fill = FieldFill.INSERT)
 	@Schema(description = "删除标记,1:已删除,0:正常")
 	private String delFlag;
 

+ 4 - 4
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysClientController.java

@@ -45,8 +45,8 @@ public class SysClientController {
 	 * @param clientId clientId
 	 * @return SysOauthClientDetails
 	 */
-	@GetMapping("/{clientId}")
-	public R getByClientId(@PathVariable String clientId) {
+	@GetMapping("getById")
+	public R getByClientId(@RequestParam String clientId) {
 		SysOauthClientDetails details = clientDetailsService
 			.getOne(Wrappers.<SysOauthClientDetails>lambdaQuery().eq(SysOauthClientDetails::getClientId, clientId));
 		return R.ok(details);
@@ -75,7 +75,7 @@ public class SysClientController {
 	 * @return success/false
 	 */
 	@SysLog("添加终端")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_client_add')")
 	public R add(@Valid @RequestBody SysOauthClientDetails clientDetails) {
 		return R.ok(clientDetailsService.saveClient(clientDetails));
@@ -100,7 +100,7 @@ public class SysClientController {
 	 * @return success/false
 	 */
 	@SysLog("编辑终端")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_client_edit')")
 	public R update(@Valid @RequestBody SysOauthClientDetails clientDetails) {
 		return R.ok(clientDetailsService.updateClientById(clientDetails));

+ 7 - 7
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysDeptController.java

@@ -41,8 +41,8 @@ public class SysDeptController {
 	 * @param id ID
 	 * @return SysDept
 	 */
-	@GetMapping("/{id}")
-	public R getById(@PathVariable Long id) {
+	@GetMapping("getById")
+	public R getById(@RequestParam Long id) {
 		return R.ok(sysDeptService.getById(id));
 	}
 
@@ -70,7 +70,7 @@ public class SysDeptController {
 	 * @return success/false
 	 */
 	@SysLog("添加部门")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_dept_add')")
 	public R save(@Valid @RequestBody SysDept sysDept) {
 		return R.ok(sysDeptService.save(sysDept));
@@ -82,7 +82,7 @@ public class SysDeptController {
 	 * @return success/false
 	 */
 	@SysLog("删除部门")
-	@DeleteMapping("/{id}")
+	@DeleteMapping("removeById/{id}")
 	@PreAuthorize("@pms.hasPermission('sys_dept_del')")
 	public R removeById(@PathVariable Long id) {
 		return R.ok(sysDeptService.removeDeptById(id));
@@ -94,7 +94,7 @@ public class SysDeptController {
 	 * @return success/false
 	 */
 	@SysLog("编辑部门")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_dept_edit')")
 	public R update(@Valid @RequestBody SysDept sysDept) {
 		sysDept.setUpdateTime(LocalDateTime.now());
@@ -105,8 +105,8 @@ public class SysDeptController {
 	 * 查收子级列表
 	 * @return 返回子级
 	 */
-	@GetMapping(value = "/getDescendantList/{deptId}")
-	public R getDescendantList(@PathVariable Long deptId) {
+	@GetMapping(value = "/getDescendantList")
+	public R getDescendantList(@RequestParam Long deptId) {
 		return R.ok(sysDeptService.listDescendant(deptId));
 	}
 

+ 10 - 10
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysDictController.java

@@ -49,8 +49,8 @@ public class SysDictController {
 	 * @param id ID
 	 * @return 字典信息
 	 */
-	@GetMapping("/details/{id}")
-	public R getById(@PathVariable Long id) {
+	@GetMapping("/getById")
+	public R getById(@RequestParam Long id) {
 		return R.ok(sysDictService.getById(id));
 	}
 
@@ -82,9 +82,9 @@ public class SysDictController {
 	 * @param type 类型
 	 * @return 同类型字典
 	 */
-	@GetMapping("/type/{type}")
+	@GetMapping("type")
 	@Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()")
-	public R<List<SysDictItem>> getDictByType(@PathVariable String type) {
+	public R<List<SysDictItem>> getDictByType(@RequestParam String type) {
 		return R.ok(sysDictItemService.list(Wrappers.<SysDictItem>query().lambda().eq(SysDictItem::getDictType, type)));
 	}
 
@@ -94,7 +94,7 @@ public class SysDictController {
 	 * @return success、false
 	 */
 	@SysLog("添加字典")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_dict_add')")
 	public R save(@Valid @RequestBody SysDict sysDict) {
 		sysDictService.save(sysDict);
@@ -119,7 +119,7 @@ public class SysDictController {
 	 * @param sysDict 字典信息
 	 * @return success/false
 	 */
-	@PutMapping
+	@PutMapping("update")
 	@SysLog("修改字典")
 	@PreAuthorize("@pms.hasPermission('sys_dict_edit')")
 	public R updateById(@Valid @RequestBody SysDict sysDict) {
@@ -155,8 +155,8 @@ public class SysDictController {
 	 * @param id id
 	 * @return R
 	 */
-	@GetMapping("/item/details/{id}")
-	public R getDictItemById(@PathVariable("id") Long id) {
+	@GetMapping("/item/getItemById")
+	public R getDictItemById(@RequestParam("id") Long id) {
 		return R.ok(sysDictItemService.getById(id));
 	}
 
@@ -176,7 +176,7 @@ public class SysDictController {
 	 * @return R
 	 */
 	@SysLog("新增字典项")
-	@PostMapping("/item")
+	@PostMapping("/item/add")
 	@CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true)
 	public R save(@RequestBody SysDictItem sysDictItem) {
 		return R.ok(sysDictItemService.save(sysDictItem));
@@ -188,7 +188,7 @@ public class SysDictController {
 	 * @return R
 	 */
 	@SysLog("修改字典项")
-	@PutMapping("/item")
+	@PutMapping("/item/update")
 	public R updateById(@RequestBody SysDictItem sysDictItem) {
 		return sysDictItemService.updateDictItem(sysDictItem);
 	}

+ 7 - 7
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysMenuController.java

@@ -62,8 +62,8 @@ public class SysMenuController {
 	 * @param roleId 角色ID
 	 * @return 属性集合
 	 */
-	@GetMapping("/tree/{roleId}")
-	public R getRoleTree(@PathVariable Long roleId) {
+	@GetMapping("/getRoleTree")
+	public R getRoleTree(@RequestParam Long roleId) {
 		return R
 			.ok(sysMenuService.findMenuByRoleId(roleId).stream().map(SysMenu::getMenuId).collect(Collectors.toList()));
 	}
@@ -73,8 +73,8 @@ public class SysMenuController {
 	 * @param id 菜单ID
 	 * @return 菜单详细信息
 	 */
-	@GetMapping("/{id}")
-	public R getById(@PathVariable Long id) {
+	@GetMapping("getById")
+	public R getById(@RequestParam Long id) {
 		return R.ok(sysMenuService.getById(id));
 	}
 
@@ -84,7 +84,7 @@ public class SysMenuController {
 	 * @return success/false
 	 */
 	@SysLog("新增菜单")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_menu_add')")
 	public R save(@Valid @RequestBody SysMenu sysMenu) {
 		sysMenuService.save(sysMenu);
@@ -97,7 +97,7 @@ public class SysMenuController {
 	 * @return success/false
 	 */
 	@SysLog("删除菜单")
-	@DeleteMapping("/{id}")
+	@DeleteMapping("removeById/{id}")
 	@PreAuthorize("@pms.hasPermission('sys_menu_del')")
 	public R removeById(@PathVariable Long id) {
 		return sysMenuService.removeMenuById(id);
@@ -109,7 +109,7 @@ public class SysMenuController {
 	 * @return
 	 */
 	@SysLog("更新菜单")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_menu_edit')")
 	public R update(@Valid @RequestBody SysMenu sysMenu) {
 		return R.ok(sysMenuService.updateMenuById(sysMenu));

+ 4 - 4
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysPostController.java

@@ -66,9 +66,9 @@ public class SysPostController {
 	 * @return R
 	 */
 	@Operation(description = "通过id查询", summary = "通过id查询")
-	@GetMapping("/details/{postId}")
+	@GetMapping("/getById")
 	@PreAuthorize("@pms.hasPermission('sys_post_view')")
-	public R getById(@PathVariable("postId") Long postId) {
+	public R getById(@RequestParam("postId") Long postId) {
 		return R.ok(sysPostService.getById(postId));
 	}
 
@@ -91,7 +91,7 @@ public class SysPostController {
 	 */
 	@Operation(description = "新增岗位信息表", summary = "新增岗位信息表")
 	@SysLog("新增岗位信息表")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_post_add')")
 	public R save(@RequestBody SysPost sysPost) {
 		return R.ok(sysPostService.save(sysPost));
@@ -104,7 +104,7 @@ public class SysPostController {
 	 */
 	@Operation(description = "修改岗位信息表", summary = "修改岗位信息表")
 	@SysLog("修改岗位信息表")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_post_edit')")
 	public R updateById(@RequestBody SysPost sysPost) {
 		return R.ok(sysPostService.updateById(sysPost));

+ 9 - 9
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysPublicParamController.java

@@ -38,13 +38,14 @@ public class SysPublicParamController {
 
 	/**
 	 * 通过key查询公共参数值
-	 * @param publicKey
-	 * @return
+	 *
+	 * @param publicKey 公钥
+	 * @return {@link R}
 	 */
 	@Inner(value = false)
 	@Operation(description = "查询公共参数值", summary = "根据key查询公共参数值")
-	@GetMapping("/publicValue/{publicKey}")
-	public R publicKey(@PathVariable("publicKey") String publicKey) {
+	@GetMapping("/publicValue")
+	public R publicKey(@RequestParam("publicKey") String publicKey) {
 		return R.ok(sysPublicParamService.getSysPublicParamKeyToValue(publicKey));
 	}
 
@@ -52,7 +53,6 @@ public class SysPublicParamController {
 	 * 分页查询
 	 * @param page 分页对象
 	 * @param sysPublicParam 公共参数
-	 * @return
 	 */
 	@Operation(description = "分页查询", summary = "分页查询")
 	@GetMapping("/page")
@@ -74,8 +74,8 @@ public class SysPublicParamController {
 	 * @return R
 	 */
 	@Operation(description = "通过id查询公共参数", summary = "通过id查询公共参数")
-	@GetMapping("/details/{publicId}")
-	public R getById(@PathVariable("publicId") Long publicId) {
+	@GetMapping("/getById")
+	public R getById(@RequestParam("publicId") Long publicId) {
 		return R.ok(sysPublicParamService.getById(publicId));
 	}
 
@@ -91,7 +91,7 @@ public class SysPublicParamController {
 	 */
 	@Operation(description = "新增公共参数", summary = "新增公共参数")
 	@SysLog("新增公共参数")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_syspublicparam_add')")
 	public R save(@RequestBody SysPublicParam sysPublicParam) {
 		return R.ok(sysPublicParamService.save(sysPublicParam));
@@ -104,7 +104,7 @@ public class SysPublicParamController {
 	 */
 	@Operation(description = "修改公共参数", summary = "修改公共参数")
 	@SysLog("修改公共参数")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_syspublicparam_edit')")
 	public R updateById(@RequestBody SysPublicParam sysPublicParam) {
 		return sysPublicParamService.updateParam(sysPublicParam);

+ 7 - 6
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysRoleController.java

@@ -43,8 +43,8 @@ public class SysRoleController {
 	 * @param id ID
 	 * @return 角色信息
 	 */
-	@GetMapping("/details/{id}")
-	public R getById(@PathVariable Long id) {
+	@GetMapping("/getById")
+	public R getById(@RequestParam Long id) {
 		return R.ok(sysRoleService.getById(id));
 	}
 
@@ -64,7 +64,7 @@ public class SysRoleController {
 	 * @return success、false
 	 */
 	@SysLog("添加角色")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_role_add')")
 	@CacheEvict(value = CacheConstants.ROLE_DETAILS, allEntries = true)
 	public R save(@Valid @RequestBody SysRole sysRole) {
@@ -77,7 +77,7 @@ public class SysRoleController {
 	 * @return success/false
 	 */
 	@SysLog("修改角色")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_role_edit')")
 	@CacheEvict(value = CacheConstants.ROLE_DETAILS, allEntries = true)
 	public R update(@Valid @RequestBody SysRole sysRole) {
@@ -86,8 +86,9 @@ public class SysRoleController {
 
 	/**
 	 * 删除角色
-	 * @param ids
-	 * @return
+	 *
+	 * @param ids id
+	 * @return {@link R}
 	 */
 	@SysLog("删除角色")
 	@PostMapping("remove")

+ 6 - 6
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysUserController.java

@@ -72,8 +72,8 @@ public class SysUserController {
 	 * @param id ID
 	 * @return 用户信息
 	 */
-	@GetMapping("/details/{id}")
-	public R user(@PathVariable Long id) {
+	@GetMapping("/getById")
+	public R getById(@RequestParam("id") Long id) {
 		return R.ok(userService.selectUserVoById(id));
 	}
 
@@ -108,7 +108,7 @@ public class SysUserController {
 	 * @return success/false
 	 */
 	@SysLog("添加用户")
-	@PostMapping
+	@PostMapping("add")
 	@PreAuthorize("@pms.hasPermission('sys_user_add')")
 	public R user(@RequestBody UserDTO userDto) {
 		return R.ok(userService.saveUser(userDto));
@@ -120,7 +120,7 @@ public class SysUserController {
 	 * @return R
 	 */
 	@SysLog("更新用户信息")
-	@PutMapping
+	@PutMapping("update")
 	@PreAuthorize("@pms.hasPermission('sys_user_edit')")
 	public R updateUser(@Valid @RequestBody UserDTO userDto) {
 		return R.ok(userService.updateUser(userDto));
@@ -154,8 +154,8 @@ public class SysUserController {
 	 * @return R
 	 */
 	@Inner
-	@PutMapping("/lock/{username}")
-	public R lockUser(@PathVariable String username) {
+	@PutMapping("/lock")
+	public R lockUser(@RequestParam("username") String username) {
 		return userService.lockUser(username);
 	}
 

+ 6 - 0
kxs-transfer/src/main/resources/import.txt

@@ -70,6 +70,12 @@ c.ValidForGetAmount as withdrawal_amount, c.TotalAmt as amount, c.ValidAmount as
 FROM Users a left join OperatorRankWhite b on a.Id = b.UserId
 left join KxsOpServer.UserAccount c on a.Id = c.UserId
 WHERE UserType > 0
+-- 合伙人账户日志表
+SELECT a.Id as id, a.UserId as user_id, a.CreateDate as create_time, a.UpdateDate as update_time,
+UseAmount as amount, BeforeAmount as before_amount, AfterAmount as after_amount, case OperateType when 0 then 'add' when 1 then 'add' when 2 then 'sub' end kind,
+AfterValidForGetAmount as after_withdrawal_mount, AfterTotalAmt as after_total_mount, AfterValidAmount as after_store_amount, Remark as remark, ChangeTypeId as change_type,
+UseValidAmount as use_store_amount, UseTotalAmt as use_total_amount, UseValidForGetAmount as use_withdrawal_mount
+FROM AmountRecordNew a
 
 //商品相关
 SELECT Id as id, CreateDate as create_time, UpdateDate as update_time,