Commit 26fc5718 authored by fshenye's avatar fshenye

1. 添加测试环境配置文件test

2. 重要操作添加日志注解
3. 主要接口添加权限限制
parent d5d42ded
package cn.sh.stc.sict.cloud.auth; package cn.sh.stc.sict.cloud.auth;
import cn.sh.stc.sict.cloud.common.security.annotation.EnableSictFeignClients; import cn.sh.stc.sict.cloud.common.security.annotation.EnableSictFeignClients;
import cn.sh.stc.sict.cloud.common.swagger.annotation.EnableSictSwagger2;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.SpringCloudApplication;
/** /**
* @author F_xh * @author F_xh
*/ */
@EnableSictSwagger2
@SpringCloudApplication @SpringCloudApplication
@EnableSictFeignClients @EnableSictFeignClients
public class SictAuthApplication { public class SictAuthApplication {
......
...@@ -50,10 +50,13 @@ public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter { ...@@ -50,10 +50,13 @@ public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
.and() .and()
.authorizeRequests() .authorizeRequests()
.antMatchers( .antMatchers(
"/token/**", "/token/**",
"/v2/api-docs",
"/webjars/**",
"/swagger-resources/**",
"/test/**", "/test/**",
"/actuator/**", "/actuator/**",
"/mobile/**").permitAll() "/mobile/**").permitAll()
.anyRequest().authenticated() .anyRequest().authenticated()
.and().csrf().disable() .and().csrf().disable()
.apply(mobileSecurityConfigurer()); .apply(mobileSecurityConfigurer());
......
...@@ -7,10 +7,14 @@ import cn.sh.stc.sict.cloud.common.core.constant.PaginationConstants; ...@@ -7,10 +7,14 @@ import cn.sh.stc.sict.cloud.common.core.constant.PaginationConstants;
import cn.sh.stc.sict.cloud.common.core.constant.RedisCacheConstant; import cn.sh.stc.sict.cloud.common.core.constant.RedisCacheConstant;
import cn.sh.stc.sict.cloud.common.core.constant.SecurityConstants; import cn.sh.stc.sict.cloud.common.core.constant.SecurityConstants;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.security.util.SysLogUtils;
import cn.sh.stc.sict.cloud.upms.feign.RemoteLogService;
import cn.sh.stc.sict.cloud.upms.model.SysLog;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.sh.stc.sict.cloud.common.security.annotation.Inner; import cn.sh.stc.sict.cloud.common.security.annotation.Inner;
import cn.sh.stc.sict.cloud.common.security.service.SictUser; import cn.sh.stc.sict.cloud.common.security.service.SictUser;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.CacheManager; import org.springframework.cache.CacheManager;
import org.springframework.data.redis.core.ConvertingCursor; import org.springframework.data.redis.core.ConvertingCursor;
import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.Cursor;
...@@ -26,6 +30,7 @@ import org.springframework.security.oauth2.provider.token.TokenStore; ...@@ -26,6 +30,7 @@ import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -35,6 +40,7 @@ import java.util.Map; ...@@ -35,6 +40,7 @@ import java.util.Map;
* @Author * @Author
* @Date * @Date
*/ */
@Slf4j
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/token") @RequestMapping("/token")
...@@ -44,6 +50,7 @@ public class SictTokenEndpoint { ...@@ -44,6 +50,7 @@ public class SictTokenEndpoint {
private final TokenStore tokenStore; private final TokenStore tokenStore;
private final RedisTemplate redisTemplate; private final RedisTemplate redisTemplate;
private final CacheManager cacheManager; private final CacheManager cacheManager;
private final RemoteLogService remoteLogService;
/** /**
* 认证页面 * 认证页面
...@@ -61,7 +68,8 @@ public class SictTokenEndpoint { ...@@ -61,7 +68,8 @@ public class SictTokenEndpoint {
* @param authHeader Authorization * @param authHeader Authorization
*/ */
@DeleteMapping("/logout") @DeleteMapping("/logout")
public R logout(@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authHeader) { public R logout(HttpServletRequest request,
@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authHeader) {
if (StrUtil.isBlank(authHeader)) { if (StrUtil.isBlank(authHeader)) {
return R.builder() return R.builder()
.code(Constant.BYTE_NO) .code(Constant.BYTE_NO)
...@@ -79,10 +87,23 @@ public class SictTokenEndpoint { ...@@ -79,10 +87,23 @@ public class SictTokenEndpoint {
} }
OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(accessToken); OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(accessToken);
SictUser user = (SictUser) cacheManager.getCache(RedisCacheConstant.USER_DETAILS).get(auth2Authentication.getName()).get(); String username = auth2Authentication.getName();
SictUser user = (SictUser) cacheManager.getCache(RedisCacheConstant.USER_DETAILS).get(username).get();
cacheManager.getCache(RedisCacheConstant.USER_DETAILS) cacheManager.getCache(RedisCacheConstant.USER_DETAILS)
.evict(auth2Authentication.getName()); .evict(username);
tokenStore.removeAccessToken(accessToken); tokenStore.removeAccessToken(accessToken);
SysLog sysLog = SysLogUtils.getSysLog(request, username);
sysLog.setTitle(username + "-用户登出");
sysLog.setParams(user.getName());
sysLog.setServiceId(auth2Authentication.getOAuth2Request().getClientId());
// 保存退出的token
String token = request.getHeader(HttpHeaders.AUTHORIZATION);
sysLog.setParams(token);
remoteLogService.saveLog(sysLog, SecurityConstants.FROM_IN);
log.info("用户:{} 退出成功, token:{} 已注销", username, token);
return new R<>(Boolean.TRUE); return new R<>(Boolean.TRUE);
} }
......
server:
port: 12254
spring:
application:
name: @artifactId@
main:
allow-bean-definition-overriding: true
# nacos
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
namespace: eb001e6c-9c22-421f-8f36-ed92821014d8
config:
namespace: eb001e6c-9c22-421f-8f36-ed92821014d8
file-extension: yml
shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<appender-ref ref="error"/> <appender-ref ref="error"/>
</logger> </logger>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="DEBUG"> <root level="ERROR">
<appender-ref ref="console"/> <appender-ref ref="console"/>
<appender-ref ref="debug"/> <appender-ref ref="debug"/>
</root> </root>
......
...@@ -26,7 +26,7 @@ public class GlobalCorsConfig { ...@@ -26,7 +26,7 @@ public class GlobalCorsConfig {
*/ */
private static final String ALLOWED_HEADERS = "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN,token,username,client,access-token"; private static final String ALLOWED_HEADERS = "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN,token,username,client,access-token";
private static final String ALLOWED_METHODS = "*"; private static final String ALLOWED_METHODS = "*";
private static final String ALLOWED_ORIGIN = "*"; private static final String ALLOWED_ORIGIN = "https://inno.sh-sict.com/, https://hy.hpwjsns.org.cn/";
private static final String ALLOWED_Expose = "*"; private static final String ALLOWED_Expose = "*";
private static final String MAX_AGE = "18000L"; private static final String MAX_AGE = "18000L";
......
...@@ -54,7 +54,7 @@ public class SictFeignClientInterceptor extends OAuth2FeignRequestInterceptor { ...@@ -54,7 +54,7 @@ public class SictFeignClientInterceptor extends OAuth2FeignRequestInterceptor {
boolean isIngore = false; boolean isIngore = false;
if (CollectionUtil.isNotEmpty(permitAllUrlProperties.getIgnoreUrls())) { if (CollectionUtil.isNotEmpty(permitAllUrlProperties.getIgnoreUrls())) {
for (String ingoreUrl : permitAllUrlProperties.getIgnoreUrls()) { for (String ingoreUrl : permitAllUrlProperties.getIgnoreUrls()) {
if(template.url().startsWith(ingoreUrl.replace("*", ""))){ if(template.url().startsWith(ingoreUrl.replace("/**", ""))){
isIngore = true; isIngore = true;
break; break;
} }
......
server:
port: 12998
spring:
application:
name: @artifactId@
# nacos
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
namespace: eb001e6c-9c22-421f-8f36-ed92821014d8
config:
namespace: eb001e6c-9c22-421f-8f36-ed92821014d8
file-extension: yml
shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
profiles:
active: dev
logging:
config: classpath:logback-spring.xml
file:
name: ../logs/${spring.application.name}/console.log
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<appender-ref ref="error"/> <appender-ref ref="error"/>
</logger> </logger>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO"> <root level="ERROR">
<appender-ref ref="console"/> <appender-ref ref="console"/>
<appender-ref ref="debug"/> <appender-ref ref="debug"/>
</root> </root>
......
package cn.sh.stc.sict.cloud.upms.controller.feign;
import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.upms.model.SysLog;
import cn.sh.stc.sict.cloud.upms.service.SysLogService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 系统日志
*
* @author F_xh。
* @date 2020-12-27 11:34:55
*/
@Slf4j
@RestController
@RequestMapping("/feign/log")
@AllArgsConstructor
public class LogFeignController {
private final SysLogService sysLogService;
@PostMapping("/save")
private R<Boolean> saveLog(@RequestBody SysLog sysLog){
sysLogService.save(sysLog);
return new R(true);
}
}
package cn.sh.stc.sict.cloud.upms.controller.web; package cn.sh.stc.sict.cloud.upms.controller.web;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.upms.service.HpRoleMenuService; import cn.sh.stc.sict.cloud.upms.service.HpRoleMenuService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -61,8 +63,10 @@ public class HpMenuController { ...@@ -61,8 +63,10 @@ public class HpMenuController {
* @param hpMenu 系统菜单表 * @param hpMenu 系统菜单表
* @return R * @return R
*/ */
@SysLog
@ApiOperation("新增系统菜单表") @ApiOperation("新增系统菜单表")
@PostMapping @PostMapping
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
public R save(@RequestBody HpMenu hpMenu) { public R save(@RequestBody HpMenu hpMenu) {
hpMenuService.saveOrUpdate(hpMenu); hpMenuService.saveOrUpdate(hpMenu);
return new R<>(); return new R<>();
...@@ -73,8 +77,10 @@ public class HpMenuController { ...@@ -73,8 +77,10 @@ public class HpMenuController {
* *
* @return R * @return R
*/ */
@SysLog
@ApiOperation("删除系统菜单表") @ApiOperation("删除系统菜单表")
@DeleteMapping("/{menuId}") @DeleteMapping("/{menuId}")
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
public R removeById(@PathVariable Long menuId) { public R removeById(@PathVariable Long menuId) {
if (hpRoleMenuService.exist(menuId)) { if (hpRoleMenuService.exist(menuId)) {
return new R().error("不可删除!"); return new R().error("不可删除!");
......
package cn.sh.stc.sict.cloud.upms.controller.web; package cn.sh.stc.sict.cloud.upms.controller.web;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.upms.dto.RoleDTO; import cn.sh.stc.sict.cloud.upms.dto.RoleDTO;
import cn.sh.stc.sict.cloud.upms.model.HpMenu; import cn.sh.stc.sict.cloud.upms.model.HpMenu;
import cn.sh.stc.sict.cloud.upms.model.HpRole; import cn.sh.stc.sict.cloud.upms.model.HpRole;
...@@ -14,8 +15,10 @@ import io.swagger.annotations.Api; ...@@ -14,8 +15,10 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
...@@ -70,15 +73,19 @@ public class HpRoleController { ...@@ -70,15 +73,19 @@ public class HpRoleController {
return new R<>(dto); return new R<>(dto);
} }
@SysLog
@ApiOperation("新增/修改系统角色") @ApiOperation("新增/修改系统角色")
@PostMapping @PostMapping
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
public R save(@RequestBody RoleDTO dto) { public R save(@RequestBody RoleDTO dto) {
hpRoleService.saveDto(dto); hpRoleService.saveDto(dto);
return new R<>(); return new R<>();
} }
@SysLog
@ApiOperation("删除系统角色表") @ApiOperation("删除系统角色表")
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
public R removeById(@PathVariable Long id) { public R removeById(@PathVariable Long id) {
// 判断是否可删除 // 判断是否可删除
if(hpUserRoleService.exist(id)){ if(hpUserRoleService.exist(id)){
......
...@@ -3,6 +3,7 @@ package cn.sh.stc.sict.cloud.upms.controller.web; ...@@ -3,6 +3,7 @@ package cn.sh.stc.sict.cloud.upms.controller.web;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.cloud.upms.dto.UserDTO; import cn.sh.stc.sict.cloud.upms.dto.UserDTO;
...@@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -62,8 +64,10 @@ public class SysUserBaseController { ...@@ -62,8 +64,10 @@ public class SysUserBaseController {
return new R<>(sysUserBaseService.page(page, Wrappers.query(sysUserBase))); return new R<>(sysUserBaseService.page(page, Wrappers.query(sysUserBase)));
} }
@SysLog
@ApiOperation("新增/修改用户") @ApiOperation("新增/修改用户")
@PostMapping @PostMapping
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
public R save(@RequestBody SysUserBase userBase) { public R save(@RequestBody SysUserBase userBase) {
if (NumberUtil.isNullOrZero(userBase.getId())) { if (NumberUtil.isNullOrZero(userBase.getId())) {
if(StrUtil.isBlank(userBase.getUserName())){ if(StrUtil.isBlank(userBase.getUserName())){
...@@ -114,8 +118,10 @@ public class SysUserBaseController { ...@@ -114,8 +118,10 @@ public class SysUserBaseController {
} }
@SysLog
@ApiOperation("设置用户角色信息") @ApiOperation("设置用户角色信息")
@PostMapping("/role") @PostMapping("/role")
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
public R saveUserRole(@RequestBody UserDTO dto) { public R saveUserRole(@RequestBody UserDTO dto) {
if (NumberUtil.isNullOrZero(dto.getUser().getId())) { if (NumberUtil.isNullOrZero(dto.getUser().getId())) {
return new R().error("用户id不可为空!"); return new R().error("用户id不可为空!");
...@@ -129,8 +135,10 @@ public class SysUserBaseController { ...@@ -129,8 +135,10 @@ public class SysUserBaseController {
* *
* @return R * @return R
*/ */
@SysLog
@ApiOperation("删除系统基础用户表") @ApiOperation("删除系统基础用户表")
@DeleteMapping("/{userId}") @DeleteMapping("/{userId}")
@PreAuthorize("@pms.hasPermission('ROLE_admin')")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R removeById(@PathVariable Long userId) { public R removeById(@PathVariable Long userId) {
hpUserRoleService.removeByUserId(userId); hpUserRoleService.removeByUserId(userId);
......
package cn.sh.stc.sict.cloud.upms.service.impl; package cn.sh.stc.sict.cloud.upms.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
...@@ -12,7 +14,9 @@ import cn.sh.stc.sict.cloud.common.core.util.SsbUtil; ...@@ -12,7 +14,9 @@ import cn.sh.stc.sict.cloud.common.core.util.SsbUtil;
import cn.sh.stc.sict.cloud.upms.dao.SysUserBaseMapper; import cn.sh.stc.sict.cloud.upms.dao.SysUserBaseMapper;
import cn.sh.stc.sict.cloud.upms.dto.UserDTO; import cn.sh.stc.sict.cloud.upms.dto.UserDTO;
import cn.sh.stc.sict.cloud.upms.dto.UserInfo; import cn.sh.stc.sict.cloud.upms.dto.UserInfo;
import cn.sh.stc.sict.cloud.upms.model.HpRole;
import cn.sh.stc.sict.cloud.upms.model.SysUserBase; import cn.sh.stc.sict.cloud.upms.model.SysUserBase;
import cn.sh.stc.sict.cloud.upms.service.HpRoleService;
import cn.sh.stc.sict.cloud.upms.service.HpUserRoleService; import cn.sh.stc.sict.cloud.upms.service.HpUserRoleService;
import cn.sh.stc.sict.cloud.upms.service.SysUserBaseService; import cn.sh.stc.sict.cloud.upms.service.SysUserBaseService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -27,6 +31,9 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; ...@@ -27,6 +31,9 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service("sysUserBaseService") @Service("sysUserBaseService")
@AllArgsConstructor @AllArgsConstructor
...@@ -35,6 +42,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -35,6 +42,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
private final SysUserBaseMapper sysUserBaseMapper; private final SysUserBaseMapper sysUserBaseMapper;
private WxMpService wxMpService; private WxMpService wxMpService;
private HpUserRoleService hpUserRoleService; private HpUserRoleService hpUserRoleService;
private HpRoleService hpRoleService;
private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
@Override @Override
...@@ -47,6 +55,14 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -47,6 +55,14 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
UserInfo info = new UserInfo(); UserInfo info = new UserInfo();
info.setSysUserBase(user); info.setSysUserBase(user);
info.setOpenId(user.getOpenId()); info.setOpenId(user.getOpenId());
List<HpRole> roleList = hpRoleService.listByUserId(user.getId());
if(CollUtil.isNotEmpty(roleList)){
// 设置角色列表 (ID)
List<String> roleIds = roleList.stream().map(HpRole::getRoleCode)
.collect(Collectors.toList());
info.setRoles(ArrayUtil.toArray(roleIds, String.class));
}
return info; return info;
} }
return null; return null;
......
server:
port: 12256
spring:
application:
name: @artifactId@
main:
allow-bean-definition-overriding: true
# nacos
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
namespace: eb001e6c-9c22-421f-8f36-ed92821014d8
config:
namespace: eb001e6c-9c22-421f-8f36-ed92821014d8
file-extension: yml
shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
profiles:
active: dev
...@@ -16,7 +16,10 @@ ...@@ -16,7 +16,10 @@
<groupId>cn.sh.stc.sict</groupId> <groupId>cn.sh.stc.sict</groupId>
<artifactId>cloud-common-data</artifactId> <artifactId>cloud-common-data</artifactId>
</dependency> </dependency>
<dependency>
<groupId>cn.sh.stc.sict</groupId>
<artifactId>cloud-common-log</artifactId>
</dependency>
<dependency> <dependency>
<groupId>cn.sh.stc.sict</groupId> <groupId>cn.sh.stc.sict</groupId>
<artifactId>cloud-common-minio</artifactId> <artifactId>cloud-common-minio</artifactId>
......
...@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.theme.hpgp.model.HpAppointmentEva; import cn.sh.stc.sict.theme.hpgp.model.HpAppointmentEva;
...@@ -53,6 +54,7 @@ public class HpAppointmentEvaController { ...@@ -53,6 +54,7 @@ public class HpAppointmentEvaController {
return new R(page); return new R(page);
} }
@SysLog
@ApiOperation("评价") @ApiOperation("评价")
@PostMapping("/eva") @PostMapping("/eva")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
......
...@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.XmlUtil; import cn.hutool.core.util.XmlUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.theme.hpgp.vo.IntelligentAnswerVO; import cn.sh.stc.sict.theme.hpgp.vo.IntelligentAnswerVO;
...@@ -31,6 +32,7 @@ import java.util.Map; ...@@ -31,6 +32,7 @@ import java.util.Map;
public class HpGpIntelligentQAController { public class HpGpIntelligentQAController {
private final static String CONTENT = "Content"; private final static String CONTENT = "Content";
@SysLog
@ApiOperation("智能问答") @ApiOperation("智能问答")
@PostMapping @PostMapping
public R<?> qa(String question) { public R<?> qa(String question) {
......
...@@ -2,6 +2,7 @@ package cn.sh.stc.sict.theme.hpgp.controller.mobile; ...@@ -2,6 +2,7 @@ package cn.sh.stc.sict.theme.hpgp.controller.mobile;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.theme.hpgp.model.HpgpLumbarAnswer; import cn.sh.stc.sict.theme.hpgp.model.HpgpLumbarAnswer;
...@@ -32,7 +33,8 @@ public class HpgpLumbarAnswerController { ...@@ -32,7 +33,8 @@ public class HpgpLumbarAnswerController {
return new R().success(this.hpgpLumbarAnswerService.page(page, new QueryWrapper<>(hpgpLumbarAnswer))); return new R().success(this.hpgpLumbarAnswerService.page(page, new QueryWrapper<>(hpgpLumbarAnswer)));
} }
@ApiOperation("新增") @SysLog
@ApiOperation("腰椎问卷-新增")
@PostMapping @PostMapping
public R insert(@RequestBody HpgpLumbarAnswer lumbar) { public R insert(@RequestBody HpgpLumbarAnswer lumbar) {
CurrentUser current = SecurityUtils.getCurrentUser(); CurrentUser current = SecurityUtils.getCurrentUser();
......
...@@ -9,6 +9,7 @@ import cn.hutool.json.JSONUtil; ...@@ -9,6 +9,7 @@ import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.core.util.WebUtils; import cn.sh.stc.sict.cloud.common.core.util.WebUtils;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.theme.hphy.constant.PatientConstant; import cn.sh.stc.sict.theme.hphy.constant.PatientConstant;
...@@ -47,6 +48,7 @@ public class AppointmentController { ...@@ -47,6 +48,7 @@ public class AppointmentController {
return new R(cfg); return new R(cfg);
} }
@SysLog
@ApiOperation("预约") @ApiOperation("预约")
@PostMapping("/app") @PostMapping("/app")
public R appointment(@RequestBody OrderInfo order) throws Exception { public R appointment(@RequestBody OrderInfo order) throws Exception {
...@@ -153,6 +155,7 @@ public class AppointmentController { ...@@ -153,6 +155,7 @@ public class AppointmentController {
return new R().error("预约失败!"); return new R().error("预约失败!");
} }
@SysLog
@ApiOperation("取消预约") @ApiOperation("取消预约")
@PostMapping("/cancel/app") @PostMapping("/cancel/app")
public R cancelAppointment(@RequestBody CancelOrderInfo order) throws Exception { public R cancelAppointment(@RequestBody CancelOrderInfo order) throws Exception {
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.XmlUtil; import cn.hutool.core.util.XmlUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
...@@ -27,6 +28,7 @@ import java.util.Map; ...@@ -27,6 +28,7 @@ import java.util.Map;
public class HpHyIntelligentQAController { public class HpHyIntelligentQAController {
private final static String CONTENT = "Content"; private final static String CONTENT = "Content";
@SysLog
@ApiOperation("智能问答") @ApiOperation("智能问答")
@PostMapping @PostMapping
public R qa(String question) { public R qa(String question) {
......
...@@ -7,6 +7,7 @@ import cn.hutool.json.JSONUtil; ...@@ -7,6 +7,7 @@ import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.theme.common.dto.SocketMsg; import cn.sh.stc.sict.theme.common.dto.SocketMsg;
import cn.sh.stc.sict.theme.handler.WebSocketServer; import cn.sh.stc.sict.theme.handler.WebSocketServer;
...@@ -108,6 +109,7 @@ public class HphyEvaController { ...@@ -108,6 +109,7 @@ public class HphyEvaController {
* *
* @return * @return
*/ */
@SysLog
@ApiOperation("提交答案并获取下一题") @ApiOperation("提交答案并获取下一题")
@PostMapping("/next") @PostMapping("/next")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
......
...@@ -11,6 +11,7 @@ import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo; ...@@ -11,6 +11,7 @@ import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.core.util.SsbUtil; import cn.sh.stc.sict.cloud.common.core.util.SsbUtil;
import cn.sh.stc.sict.cloud.common.log.annotation.SysLog;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.theme.hphy.constant.PatientConstant; import cn.sh.stc.sict.theme.hphy.constant.PatientConstant;
...@@ -52,6 +53,7 @@ public class HphyPatientBaseController { ...@@ -52,6 +53,7 @@ public class HphyPatientBaseController {
* @param patient * @param patient
* @return * @return
*/ */
@SysLog
@ApiOperation("注册") @ApiOperation("注册")
@PostMapping("/register") @PostMapping("/register")
public R register(@RequestBody HphyPatientBase patient) { public R register(@RequestBody HphyPatientBase patient) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment