Commit b06b4190 authored by 王俊权's avatar 王俊权

Merge remote-tracking branch 'origin/v1' into v1

parents eefea9f2 5958805b
...@@ -55,6 +55,12 @@ ...@@ -55,6 +55,12 @@
<artifactId>druid-spring-boot-starter</artifactId> <artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.5</version> <version>1.1.5</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
...@@ -146,7 +152,7 @@ ...@@ -146,7 +152,7 @@
<build> <build>
<resources> <resources>
<resource> <resource>
<directory>${project.ba1dir}/src/main/resources</directory> <directory>${project.basedir}/src/main/resources</directory>
</resource> </resource>
<resource> <resource>
<directory>${project.build.directory}/generated-resources</directory> <directory>${project.build.directory}/generated-resources</directory>
......
...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.channel.controller; ...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.api.channel.controller;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo; import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo;
import cn.quantgroup.cashloanflowboss.api.channel.service.ChannelConfService; import cn.quantgroup.cashloanflowboss.api.channel.service.ChannelConfService;
import cn.quantgroup.cashloanflowboss.component.security.annotiation.Security;
import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit; import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit;
import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole; import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole;
import cn.quantgroup.cashloanflowboss.core.base.Result; import cn.quantgroup.cashloanflowboss.core.base.Result;
...@@ -32,9 +33,13 @@ public class ChannelConfController { ...@@ -32,9 +33,13 @@ public class ChannelConfController {
* @param pageSize * @param pageSize
* @return * @return
*/ */
@Security(authorityId = "Channel.getChannelInfo")
@ChannelIdInit @ChannelIdInit
@PostMapping("/info") @PostMapping("/info")
public Result channelInfo(Long channelId, Integer pageNumber, Integer pageSize) { public Result channelInfo(Long channelId, Integer pageNumber, Integer pageSize) {
if (pageNumber == null || pageSize == null) {
return Result.buildFial("page信息不对");
}
return Result.buildSuccess(channelConfService.getChannelInfo(pageNumber, pageSize, channelId)); return Result.buildSuccess(channelConfService.getChannelInfo(pageNumber, pageSize, channelId));
} }
......
...@@ -30,7 +30,7 @@ public class LogController { ...@@ -30,7 +30,7 @@ public class LogController {
* @return * @return
*/ */
@PostMapping("/login") @PostMapping("/login")
public Result<Boolean> login(@RequestBody @Valid LoginFormModel loginFormModel) { public Result<String> login(@RequestBody @Valid LoginFormModel loginFormModel) {
return new Result<>(ApplicationStatus.SUCCESS, this.logService.login(loginFormModel.getUsername(), loginFormModel.getPassword())); return new Result<>(ApplicationStatus.SUCCESS, this.logService.login(loginFormModel.getUsername(), loginFormModel.getPassword()));
} }
......
...@@ -36,7 +36,7 @@ public class LogService { ...@@ -36,7 +36,7 @@ public class LogService {
* @param password 密码(明文) * @param password 密码(明文)
* @return * @return
*/ */
public boolean login(String username, String password) { public String login(String username, String password) {
User user = this.userService.getUser(username); User user = this.userService.getUser(username);
...@@ -61,7 +61,7 @@ public class LogService { ...@@ -61,7 +61,7 @@ public class LogService {
session.setAttribute(ApplicationDictionary.PRINCIPAL, JSONTools.serialize(principal)); session.setAttribute(ApplicationDictionary.PRINCIPAL, JSONTools.serialize(principal));
return true; return session.getId();
} }
......
...@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.order.model.ApproveVo; ...@@ -4,6 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.order.model.ApproveVo;
import cn.quantgroup.cashloanflowboss.api.order.model.LendingFormModel; import cn.quantgroup.cashloanflowboss.api.order.model.LendingFormModel;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderVo; import cn.quantgroup.cashloanflowboss.api.order.model.OrderVo;
import cn.quantgroup.cashloanflowboss.api.order.service.OrderService; import cn.quantgroup.cashloanflowboss.api.order.service.OrderService;
import cn.quantgroup.cashloanflowboss.component.security.annotiation.Security;
import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit; import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit;
import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole; import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole;
import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRoleByChannelOrderNumber; import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRoleByChannelOrderNumber;
...@@ -37,10 +38,14 @@ public class OrderController { ...@@ -37,10 +38,14 @@ public class OrderController {
* @param pageSize * @param pageSize
* @return 返回中包含当前订单可操作的 button * @return 返回中包含当前订单可操作的 button
*/ */
@Security(authorityId = "Order.getOrderList")
@ChannelIdInit @ChannelIdInit
@CheckChannelRole @CheckChannelRole
@GetMapping("/info") @GetMapping("/list")
public Result getOrders(Long channelId, String channelOrderNumber, Integer pageNumber, Integer pageSize) { public Result getOrders(Long channelId, String channelOrderNumber, Integer pageNumber, Integer pageSize) {
if (pageNumber == null || pageSize == null) {
return Result.buildFial("page信息不对");
}
return Result.buildSuccess(orderService.getOrders(channelId, channelOrderNumber, pageNumber, pageSize)); return Result.buildSuccess(orderService.getOrders(channelId, channelOrderNumber, pageNumber, pageSize));
} }
......
...@@ -36,7 +36,7 @@ public class OrderVo { ...@@ -36,7 +36,7 @@ public class OrderVo {
cancel("贷前关单"), cancel("贷前关单"),
pay_succ("放款成功"), pay_succ("放款成功"),
pay_fail("放款失败"), pay_fail("放款失败"),
withdraw2_succ("二次提现成功"), withdraw_second("存管提现"),
cancel_after("贷后关单"); cancel_after("贷后关单");
OptButtonAction(String desc) { OptButtonAction(String desc) {
......
...@@ -111,6 +111,7 @@ public class OrderService { ...@@ -111,6 +111,7 @@ public class OrderService {
orderVo.setChannelId(it.getRegisteredFrom()); orderVo.setChannelId(it.getRegisteredFrom());
orderVo.setChannelOrderNumber(it.getChannelOrderNo()); orderVo.setChannelOrderNumber(it.getChannelOrderNo());
orderVo.setCreatedAt(it.getCreatedAt().getTime()); orderVo.setCreatedAt(it.getCreatedAt().getTime());
if (StringUtils.isNotEmpty(it.getApplyNo())) {
OrderApprove orderApprove = orderApproveRepository.findByCreditNumber(it.getApplyNo()); OrderApprove orderApprove = orderApproveRepository.findByCreditNumber(it.getApplyNo());
...@@ -126,6 +127,12 @@ public class OrderService { ...@@ -126,6 +127,12 @@ public class OrderService {
} else { } else {
orderVo.setMessage("订单查询错误"); orderVo.setMessage("订单查询错误");
} }
} else {
orderVo.setStatus("授信中");
orderVo.setOpt(new ArrayList<>());
orderVo.setMessage("");
}
return orderVo; return orderVo;
}); });
} }
......
...@@ -80,6 +80,10 @@ public class OrderUtil { ...@@ -80,6 +80,10 @@ public class OrderUtil {
cancelAfterButton.setAction(OrderVo.OptButtonAction.cancel_after.name()); cancelAfterButton.setAction(OrderVo.OptButtonAction.cancel_after.name());
cancelAfterButton.setName(OrderVo.OptButtonAction.cancel_after.getDesc()); cancelAfterButton.setName(OrderVo.OptButtonAction.cancel_after.getDesc());
buttonList.add(cancelAfterButton); buttonList.add(cancelAfterButton);
OrderVo.OptButton withdrawSecondButton = new OrderVo.OptButton();
withdrawSecondButton.setAction(OrderVo.OptButtonAction.withdraw_second.name());
withdrawSecondButton.setName(OrderVo.OptButtonAction.withdraw_second.getDesc());
buttonList.add(withdrawSecondButton);
} else { } else {
tuple.setKey("放款成功"); tuple.setKey("放款成功");
} }
......
...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.core.aspect; ...@@ -2,6 +2,7 @@ package cn.quantgroup.cashloanflowboss.core.aspect;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo; import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo;
import cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil; import cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil;
import cn.quantgroup.cashloanflowboss.api.log.model.Principal;
import cn.quantgroup.cashloanflowboss.core.Application; import cn.quantgroup.cashloanflowboss.core.Application;
import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit; import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit;
import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole; import cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole;
...@@ -57,20 +58,31 @@ public class RoleLoadAspect { ...@@ -57,20 +58,31 @@ public class RoleLoadAspect {
MethodSignature methodSignature = (MethodSignature) pjp.getSignature(); MethodSignature methodSignature = (MethodSignature) pjp.getSignature();
Method method = methodSignature.getMethod(); Method method = methodSignature.getMethod();
Principal principal = Application.getPrincipal();
if (principal == null) {
try {
// 没有登录 登录检查控制
return pjp.proceed(args);
} catch (Throwable throwable) {
log.error("请求失败,e={}", ExceptionUtils.getStackTrace(throwable));
return Result.buildFial();
}
}
// 如果是渠道用户登陆 默认加载channelId // 如果是渠道用户登陆 默认加载channelId
ChannelIdInit annotation = method.getAnnotation(ChannelIdInit.class); ChannelIdInit annotation = method.getAnnotation(ChannelIdInit.class);
if (annotation != null && Application.getPrincipal().isChannel()) { if (annotation != null && principal.isChannel()) {
String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames(); String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames();
for (int i = 0; i < paramNames.length; i++) { for (int i = 0; i < paramNames.length; i++) {
if (ChannelConfUtil.channelIdParamName.equals(paramNames[i])) { if (ChannelConfUtil.channelIdParamName.equals(paramNames[i])) {
args[i] = Application.getPrincipal().getChannelId(); args[i] = principal.getChannelId();
} }
} }
} }
// 如果是渠道用户登陆,参数中channelId 不是登陆用户channelId,返回 拒绝请求 // 如果是渠道用户登陆,参数中channelId 不是登陆用户channelId,返回 拒绝请求
CheckChannelRole checkChannelRole = method.getAnnotation(CheckChannelRole.class); CheckChannelRole checkChannelRole = method.getAnnotation(CheckChannelRole.class);
if (checkChannelRole != null && Application.getPrincipal().isChannel()) { if (checkChannelRole != null && principal.isChannel()) {
Long requestChannelId = -1L; Long requestChannelId = -1L;
if (!checkChannelRole.isObjParam()) { if (!checkChannelRole.isObjParam()) {
String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames(); String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames();
...@@ -84,7 +96,7 @@ public class RoleLoadAspect { ...@@ -84,7 +96,7 @@ public class RoleLoadAspect {
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION); return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION);
} }
requestChannelId = Long.valueOf(String.valueOf(requestChannelIdObj)); requestChannelId = Long.valueOf(String.valueOf(requestChannelIdObj));
if (!Application.getPrincipal().isSameChannel(requestChannelId)) { if (!principal.isSameChannel(requestChannelId)) {
log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个"); log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个");
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY); return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
} }
...@@ -102,7 +114,7 @@ public class RoleLoadAspect { ...@@ -102,7 +114,7 @@ public class RoleLoadAspect {
requestChannelId = channelIdTemp; requestChannelId = channelIdTemp;
} }
} }
if (!Application.getPrincipal().isSameChannel(requestChannelId)) { if (!principal.isSameChannel(requestChannelId)) {
log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个"); log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个");
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY); return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
} }
...@@ -111,7 +123,7 @@ public class RoleLoadAspect { ...@@ -111,7 +123,7 @@ public class RoleLoadAspect {
// 如果是渠道用户登陆,参数中channelOrderNumber 不是登陆用户channelOrderNumber,返回 拒绝请求 // 如果是渠道用户登陆,参数中channelOrderNumber 不是登陆用户channelOrderNumber,返回 拒绝请求
CheckChannelRoleByChannelOrderNumber checkChannelRoleByChannelOrderNumber = method.getAnnotation(CheckChannelRoleByChannelOrderNumber.class); CheckChannelRoleByChannelOrderNumber checkChannelRoleByChannelOrderNumber = method.getAnnotation(CheckChannelRoleByChannelOrderNumber.class);
if (checkChannelRoleByChannelOrderNumber != null && Application.getPrincipal().isChannel()) { if (checkChannelRoleByChannelOrderNumber != null && principal.isChannel()) {
String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames(); String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames();
String channelOrderNumber = ""; String channelOrderNumber = "";
for (int i = 0; i < paramNames.length; i++) { for (int i = 0; i < paramNames.length; i++) {
...@@ -128,7 +140,7 @@ public class RoleLoadAspect { ...@@ -128,7 +140,7 @@ public class RoleLoadAspect {
log.info("[CheckChannelRoleByChannelOrderNumber]无channelOrderNumber数据,channelOrderNumber={}",channelOrderNumber); log.info("[CheckChannelRoleByChannelOrderNumber]无channelOrderNumber数据,channelOrderNumber={}",channelOrderNumber);
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION, "未找到该订单"); return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION, "未找到该订单");
} }
if (!clfOrderMapping.getRegisteredFrom().equals(Application.getPrincipal().getChannelId())) { if (!clfOrderMapping.getRegisteredFrom().equals(principal.getChannelId())) {
log.info("[CheckChannelRoleByChannelOrderNumber]不是该渠道的订单,channelOrderNumber={}",channelOrderNumber); log.info("[CheckChannelRoleByChannelOrderNumber]不是该渠道的订单,channelOrderNumber={}",channelOrderNumber);
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY); return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
} }
......
package cn.quantgroup.cashloanflowboss.core.configuration;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* function:
* date: 2019/8/20
*
* @author: suntao
*/
@Configuration
public class CorsConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "TRACE")
.allowCredentials(true);
}
}
package cn.quantgroup.cashloanflowboss.core.configuration;
import org.apache.tomcat.util.http.LegacyCookieProcessor;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Created by WeiWei on 2019/8/21.
*/
@Configuration
public class TomcatConfiguration {
@Bean
public EmbeddedServletContainerCustomizer cookieProcessorCustomizer() {
return container -> {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
((TomcatEmbeddedServletContainerFactory) container).addContextCustomizers((TomcatContextCustomizer) context -> context.setCookieProcessor(new LegacyCookieProcessor()));
}
};
}
}
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
<pattern>${FILE_LOG_PATTERN}</pattern> <pattern>${FILE_LOG_PATTERN}</pattern>
</encoder> </encoder>
</appender> </appender>
<appender name="Sentry" class="cn.quantgroup.sentry.appender.StandardSentryAppender"> <!--<appender name="Sentry" class="cn.quantgroup.sentry.appender.StandardSentryAppender">-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
<level>ERROR</level> <!--<level>ERROR</level>-->
<!-- level:基本建议ERROR or WARN --> <!--&lt;!&ndash; level:基本建议ERROR or WARN &ndash;&gt;-->
</filter> <!--</filter>-->
</appender> <!--</appender>-->
<logger name="org.springframework" level="warn"/> <logger name="org.springframework" level="warn"/>
<logger name="org.hibernate" level="warn"/> <logger name="org.hibernate" level="warn"/>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<logger name="cn.quantgroup.user.UserSdkServiceImpl" level="warn"/> <logger name="cn.quantgroup.user.UserSdkServiceImpl" level="warn"/>
<root level="info"> <root level="info">
<appender-ref ref="FILE"/> <appender-ref ref="FILE"/>
<appender-ref ref="Sentry"/> <!--<appender-ref ref="Sentry"/>-->
</root> </root>
</configuration> </configuration>
\ No newline at end of file
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