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

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

parents 74fd0a67 2120c03f
......@@ -37,24 +37,24 @@ public class ChannelConfController {
* @return
*/
@Security(authorityId = "Channel.getChannelList")
@ChannelIdInit
@ChannelIdInit(channelIdSPEL = "#this[0]")
@PostMapping("/info")
public Result channelList(Long channelId, Integer pageNumber, Integer pageSize) {
public Result channelList(Long channelId, String channelName, 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, channelName));
}
/**
* 查询单个渠道配置
* 去过是渠道用户,只能查自己,查询条件置灰
* 如果是渠道用户,只能查自己,查询条件置灰
* @param channelId
* @return
*/
@Security(authorityId = "Channel.getChannelConfInfo")
@ChannelIdInit
@CheckChannelRole
@ChannelIdInit(channelIdSPEL = "#this[0]")
@CheckChannelRole(channelIdSPEL = "#this[0]")
@GetMapping("/cfg/info")
public Result getChannelConfInfo(Long channelId) {
return Result.buildSuccess(channelConfService.getChannelConf(channelId), "success");
......@@ -67,11 +67,13 @@ public class ChannelConfController {
* @return
*/
@Security(authorityId = "Channel.editChannelConfInfo")
@CheckChannelRole(isObjParam = true, paramClazz = ChannelConfVo.class)
@CheckChannelRole(channelIdSPEL = "#this[0].basicInfo.channelId")
@PostMapping("/cfg/info")
public Result editChannelConfInfo(@RequestBody @Valid ChannelConfVo channelConfVo) {
Boolean aBoolean = channelConfService.editChannelConfInfo(channelConfVo);
// TODO 检查渠道
if (aBoolean) {
// 属性ka缓存
clfCenterService.reloadKAConfiguration();
......
......@@ -12,7 +12,7 @@ import org.springframework.data.domain.Page;
*/
public interface ChannelConfService {
Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId);
Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId, String channelName);
ChannelConfVo getChannelConf(Long channelId);
......
......@@ -39,9 +39,9 @@ public class ChannelConfServiceImpl implements ChannelConfService{
@Override
public Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId) {
public Page<ChannelListModel> getChannelInfo(Integer pageNumber, Integer pageSize, Long channelId, String channelName) {
Page<ClfChannelConfiguration> page = clfCenterService.findChannelConfigurationByCriteriaQueryPage(pageNumber, pageSize, channelId);
Page<ClfChannelConfiguration> page = clfCenterService.findChannelConfigurationByCriteriaQueryPage(pageNumber, pageSize, channelId, channelName);
Page<ChannelListModel> channelListModelPage = page.map(it -> {
ChannelListModel channelListModel = new ChannelListModel();
......
......@@ -3,6 +3,7 @@ package cn.quantgroup.cashloanflowboss.api.optlog.controller;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogService;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -24,6 +25,7 @@ public class OperateController {
private OptHistoryLogService optHistoryLogService;
@CheckChannelRole(channelOrderNumberSPEL = "#this[0].channelOrderNumber")
@GetMapping("/history/log/all")
public Result findAllOptHistoryLog(OrderBaseModel orderBaseModel) {
final List<OptHistoryLog> allOptHistoryLog = optHistoryLogService.getAllOptHistoryLog(orderBaseModel);
......
......@@ -6,10 +6,8 @@ import cn.quantgroup.cashloanflowboss.component.security.annotiation.Security;
import cn.quantgroup.cashloanflowboss.core.Application;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRoleByChannelOrderNumber;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.core.base.Tuple;
import cn.quantgroup.cashloanflowboss.core.tuple.ThreeTuple;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -32,8 +30,10 @@ public class OrderController {
/**
*
* 订单查询列表接口
*
* 渠道用户只能查自己渠道订单 如果是别的渠道订单 不能查询(如果channelId 赋值 channelOrderNumber 是别的渠道订单 应该查询不到数据,所以不需要CheckChannelRole)
* @param channelId
* @param channelOrderNumber
* @param pageNumber
......@@ -41,8 +41,7 @@ public class OrderController {
* @return 返回中包含当前订单可操作的 button
*/
@Security(authorityId = "Order.getOrderList")
@ChannelIdInit
@CheckChannelRole
@ChannelIdInit(channelIdSPEL = "#this[0]")
@GetMapping("/list")
public Result orderList(Long channelId, String channelOrderNumber, String applyNo, Long loanId, Integer pageNumber, Integer pageSize) {
if (pageNumber == null || pageSize == null) {
......@@ -55,22 +54,19 @@ public class OrderController {
/**
* 审批接口
*
* 渠道只能审批自己渠道的订单
* @param approveVo
* @return
*/
@Security(authorityId = "Order.approveOpt")
@ChannelIdInit
@CheckChannelRole(channelOrderNumberSPEL = "#this[0].channelOrderNumber")
@PostMapping("/approve")
public Result approveOpt(@RequestBody @Valid ApproveVo approveVo) {
if (Application.isDebug()) {
Tuple<Boolean, String> approveOptBooleanAndFundSettingBooleanTuple = orderService.approveOpt(approveVo);
Boolean approveResult = approveOptBooleanAndFundSettingBooleanTuple.getKey();
if (approveResult) {
return Result.buildSuccess(approveResult, approveOptBooleanAndFundSettingBooleanTuple.getValue());
} else {
return Result.buildSuccess(false,"审批操作失败");
}
return Result.buildSuccess(approveResult, approveOptBooleanAndFundSettingBooleanTuple.getValue());
} else {
return Result.buildSuccess(false,"无此操作");
}
......@@ -82,11 +78,12 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.lending")
@CheckChannelRole(channelOrderNumberSPEL = "#this[0].channelOrderNumber")
@PostMapping("/lending")
public Result<Boolean> lending(@RequestBody @Valid LendingFormModel lendingFormModel) {
if (Application.isDebug()) {
Tuple<Boolean, String> lendingResult = this.orderService.lending(lendingFormModel);
return Result.buildSuccess(lendingResult.getKey(), lendingResult.getKey() ? "放款操作成功" : "放款操作失败");
Tuple<Boolean, String> lending = this.orderService.lending(lendingFormModel);
return Result.buildSuccess(lending.getKey(), lending.getValue());
} else {
return Result.buildSuccess(false,"无此操作");
}
......@@ -98,6 +95,7 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.secondAudit")
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@GetMapping("/secondAudit")
public Result<Boolean> secondAudit(String channelOrderNumber) {
if (Application.isDebug()) {
......@@ -134,6 +132,7 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.cancelPreLoan")
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@PostMapping("/cancel/loan")
public Result<Boolean> cancelPreLoan(@RequestParam @Valid String channelOrderNumber) {
if (Application.isDebug()) {
......@@ -150,6 +149,7 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.cancelAfterLoan")
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@PostMapping("/cancel/after/loan")
public Result<Boolean> cancelAfterLoan(@RequestParam @Valid String channelOrderNumber) {
if (Application.isDebug()) {
......@@ -167,8 +167,7 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.getOrderHistoryStatus")
@ChannelIdInit
@CheckChannelRoleByChannelOrderNumber
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@GetMapping("/history/status")
public Result getOrderHistoryStatus(String channelOrderNumber) {
return Result.buildSuccess(orderService.getOrderHistoryStatus(channelOrderNumber));
......@@ -181,8 +180,7 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.orderCallbackRecordList")
@ChannelIdInit
@CheckChannelRoleByChannelOrderNumber
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@GetMapping("/orderCallbackRecordList")
public Result orderCallbackRecordList(String channelOrderNumber) {
return Result.buildSuccess(orderService.getOrderCallbackRecordList(channelOrderNumber));
......@@ -196,8 +194,7 @@ public class OrderController {
* @return
*/
@Security(authorityId = "Order.repaymentPlan")
@ChannelIdInit
@CheckChannelRoleByChannelOrderNumber
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@GetMapping("/repaymentPlan")
public Result repaymentPlan(String channelOrderNumber, Long loanId) {
return Result.buildSuccess(orderService.findRepaymentPlan(channelOrderNumber, loanId));
......
......@@ -15,4 +15,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Target({METHOD})
@Retention(RUNTIME)
public @interface ChannelIdInit {
String channelIdSPEL() default "";
}
......@@ -15,6 +15,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Target({METHOD})
@Retention(RUNTIME)
public @interface CheckChannelRole {
boolean isObjParam() default false;
Class paramClazz() default Object.class;
String channelIdSPEL() default "";
String channelOrderNumberSPEL() default "";
}
package cn.quantgroup.cashloanflowboss.core.annotation.channelrole;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* function:
* date: 2019/8/6
*
* @author: suntao
*/
@Target({METHOD})
@Retention(RUNTIME)
public @interface CheckChannelRoleByChannelOrderNumber {
}
package cn.quantgroup.cashloanflowboss.core.aspect;
import cn.quantgroup.cashloanflowboss.api.channel.model.ChannelConfVo;
import cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil;
import cn.quantgroup.cashloanflowboss.api.login.model.Principal;
import cn.quantgroup.cashloanflowboss.core.Application;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRoleByChannelOrderNumber;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping;
......@@ -18,11 +14,12 @@ import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.CodeSignature;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionException;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
......@@ -36,24 +33,24 @@ import java.lang.reflect.Method;
@Slf4j
@Component
@Aspect
@Order(Ordered.LOWEST_PRECEDENCE)
public class RoleLoadAspect {
@Order(2)
public class ChannelRoleCheckAspect {
@Pointcut("execution(* cn.quantgroup.cashloanflowboss.api.channel.controller.*.*(..))")
private void channelController() {}
@Pointcut("execution(* cn.quantgroup.cashloanflowboss.api.order.controller.*.*(..))")
private void orderController() {}
@Pointcut("@annotation(cn.quantgroup.cashloanflowboss.core.annotation.channelrole.CheckChannelRole)")
private void checkRole() {}
@Pointcut("channelController() || orderController() ")
private void doSomeRole() {}
@Autowired
private ClfOrderMappingRepository clfOrderMappingRepository;
@Around(value = "doSomeRole()")
public Object around(ProceedingJoinPoint pjp) {
/**
* 通过 channelId 或者 channelOrderNumber 判断 如果是渠道用户登陆 是否当前渠道
* @param pjp
*/
@Around(value = "checkRole()")
public Object checkRoleBefore(ProceedingJoinPoint pjp) {
Object[] args = pjp.getArgs();
MethodSignature methodSignature = (MethodSignature) pjp.getSignature();
Method method = methodSignature.getMethod();
......@@ -61,7 +58,6 @@ public class RoleLoadAspect {
Principal principal = Application.getPrincipal();
if (principal == null) {
try {
// 没有登录 登录检查控制
return pjp.proceed(args);
} catch (Throwable throwable) {
log.error("请求失败,e={}", ExceptionUtils.getStackTrace(throwable));
......@@ -69,83 +65,62 @@ public class RoleLoadAspect {
}
}
// 如果是渠道用户登陆 默认加载channelId
ChannelIdInit annotation = method.getAnnotation(ChannelIdInit.class);
if (annotation != null && principal.isChannel()) {
String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames();
for (int i = 0; i < paramNames.length; i++) {
if (ChannelConfUtil.channelIdParamName.equals(paramNames[i])) {
args[i] = principal.getChannelId();
}
// 如果是渠道用户登陆,参数中channelId 不是登陆用户channelId,返回 拒绝请求
CheckChannelRole checkChannelRoleAnno = method.getAnnotation(CheckChannelRole.class);
if (checkChannelRoleAnno != null) {
String channelIdSPEL = checkChannelRoleAnno.channelIdSPEL();
String channelOrderNumberSPEL = checkChannelRoleAnno.channelOrderNumberSPEL();
if (StringUtils.isAllEmpty(channelIdSPEL, channelOrderNumberSPEL)) {
log.error("[CheckChannelRole]channelIdSPEL, channelOrderNumberSPEL 不能都为空");
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION);
}
}
// 如果是渠道用户登陆,参数中channelId 不是登陆用户channelId,返回 拒绝请求
CheckChannelRole checkChannelRole = method.getAnnotation(CheckChannelRole.class);
if (checkChannelRole != null && principal.isChannel()) {
Long requestChannelId = -1L;
if (!checkChannelRole.isObjParam()) {
String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames();
for (int i = 0; i < paramNames.length; i++) {
// 是简单类型,多个参数 直接参数channelId
if (ChannelConfUtil.channelIdParamName.equals(paramNames[i])) {
// 找到channelId是第几个参数 i
Object requestChannelIdObj = args[i];
if (requestChannelIdObj == null) {
log.info("[CheckChannelRole]无channelId数据");
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION);
if (principal.isChannel()) {
if (StringUtils.isNotEmpty(channelIdSPEL)) {
// 通过channelId 判断
try {
if (channelIdSPEL.startsWith("#this")) {
Expression expression = new SpelExpressionParser().parseExpression(channelIdSPEL);
if (!Application.getPrincipal().getChannelId().equals(expression.getValue(args, Long.class))) {
log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个");
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
}
} else {
log.warn("[CheckChannelRole]channelIdSPEL取值失败");
}
} catch (ExpressionException e) {
log.error("[CheckChannelRole]key表达式“" + channelIdSPEL + "”错误:{}", e);
throw e;
}
} else if (StringUtils.isNotEmpty(channelOrderNumberSPEL)){
// 通过channelOrderNumber 判断
String channelOrderNumber = "";
if (channelOrderNumberSPEL.startsWith("#this")) {
Expression expression = new SpelExpressionParser().parseExpression(channelOrderNumberSPEL);
channelOrderNumber = expression.getValue(args, String.class);
} else {
log.warn("[CheckChannelRole]channelOrderNumberSPEL取值失败");
}
if (StringUtils.isNotEmpty(channelOrderNumber)) {
ClfOrderMapping clfOrderMapping = clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNumber);
if (clfOrderMapping == null) {
log.info("[CheckChannelRoleByChannelOrderNumber]无channelOrderNumber数据,channelOrderNumber={}",channelOrderNumber);
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION, "未找到该订单");
}
requestChannelId = Long.valueOf(String.valueOf(requestChannelIdObj));
if (!principal.isSameChannel(requestChannelId)) {
log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个");
if (!clfOrderMapping.getRegisteredFrom().equals(principal.getChannelId())) {
log.info("[CheckChannelRoleByChannelOrderNumber]不是该渠道的订单,channelOrderNumber={}",channelOrderNumber);
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
}
}
}
} else {
Class paramClazz = checkChannelRole.paramClazz();
if (paramClazz == ChannelConfVo.class) {
ChannelConfVo confVo = (ChannelConfVo) args[0];
final Long channelIdTemp = confVo.getBasicInfo().getChannelId();
if (channelIdTemp == null) {
log.info("[CheckChannelRole]无channelId数据");
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION);
}
requestChannelId = channelIdTemp;
}
}
if (!principal.isSameChannel(requestChannelId)) {
log.info("[CheckChannelRole]渠道用户,登陆channelId与查询channelId不是同一个");
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
}
}
// ======================================== CheckChannelRole end ==========================================
// 如果是渠道用户登陆,参数中channelOrderNumber 不是登陆用户channelOrderNumber,返回 拒绝请求
CheckChannelRoleByChannelOrderNumber checkChannelRoleByChannelOrderNumber = method.getAnnotation(CheckChannelRoleByChannelOrderNumber.class);
if (checkChannelRoleByChannelOrderNumber != null && principal.isChannel()) {
String[] paramNames = ((CodeSignature) pjp.getSignature()).getParameterNames();
String channelOrderNumber = "";
for (int i = 0; i < paramNames.length; i++) {
if ("channelOrderNumber".equals(paramNames[i])) {
channelOrderNumber = String.valueOf(args[i]);
}
}
if (StringUtils.isEmpty(channelOrderNumber)) {
log.info("[CheckChannelRoleByChannelOrderNumber]参数channelOrderNumber不能为空");
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION);
}
ClfOrderMapping clfOrderMapping = clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNumber);
if (clfOrderMapping == null) {
log.info("[CheckChannelRoleByChannelOrderNumber]无channelOrderNumber数据,channelOrderNumber={}",channelOrderNumber);
return Result.buildFial(ApplicationStatus.ARGUMENT_VALID_EXCEPTION, "未找到该订单");
}
if (!clfOrderMapping.getRegisteredFrom().equals(principal.getChannelId())) {
log.info("[CheckChannelRoleByChannelOrderNumber]不是该渠道的订单,channelOrderNumber={}",channelOrderNumber);
return Result.buildFial(ApplicationStatus.INVALID_AUTHORITY);
}
}
// ======================================== CheckChannelRoleByChannelOrderNumber end ==========================================
try {
return pjp.proceed(args);
......
package cn.quantgroup.cashloanflowboss.core.aspect;
import cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil;
import cn.quantgroup.cashloanflowboss.api.login.model.Principal;
import cn.quantgroup.cashloanflowboss.core.Application;
import cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.utils.JSONTools;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.core.annotation.Order;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionException;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
/**
* 加载优先级 高于 ChannelRoleCheckAspect
* function:
* date: 2019/8/6
*
* @author: suntao
*/
@Slf4j
@Component
@Aspect
@Order(1)
public class ChannelRoleLoadAspect {
@Pointcut("@annotation(cn.quantgroup.cashloanflowboss.core.annotation.channelrole.ChannelIdInit)")
private void channelIdInit() {}
@Around(value = "channelIdInit()")
public Object channelIdInitBefore(ProceedingJoinPoint pjp) {
Object[] args = pjp.getArgs();
MethodSignature methodSignature = (MethodSignature) pjp.getSignature();
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
ChannelIdInit annotation = method.getAnnotation(ChannelIdInit.class);
if (annotation != null) {
String channelIdSPEL = annotation.channelIdSPEL();
if (principal.isChannel()) {
if (StringUtils.isNotEmpty(channelIdSPEL)) {
try {
if (channelIdSPEL.startsWith("#this")) {//判断是否是spel表达式
Expression expression = new SpelExpressionParser().parseExpression(channelIdSPEL);
expression.setValue(args, principal.getChannelId());
} else {
log.warn("[channelIdInitBefore]channelIdSPEL设置失败");
}
} catch (ExpressionException e) {
log.error("[channelIdInitBefore]key表达式“" + channelIdSPEL + "”错误:{}", e);
throw e;
}
}
}
}
try {
return pjp.proceed(args);
} catch (Throwable throwable) {
log.error("请求失败,e={}", ExceptionUtils.getStackTrace(throwable));
return Result.buildFial();
}
}
}
......@@ -88,7 +88,7 @@ public class OperationAspect {
optHistoryLog.setChannelId(orderMapping.getRegisteredFrom());
optHistoryLog.setOptEnumName(opt);
optHistoryLog.setOptName(opt.getDesc());
optHistoryLog.setOptUser(Application.getPrincipal().getUserInfo().getNickname());
optHistoryLog.setOptUser(Application.getPrincipal().getUserInfo().getNickname() + "_" + Application.getPrincipal().getUserInfo().getUsername());
optHistoryLog.setCreateTime(new Date());
} else {
log.warn("[operationAnnoAnnSave]orderMapping is null, channelOrderNumber={}" , channelOrderNumber );
......
......@@ -23,7 +23,7 @@ public interface CLFCenterService {
List<ApplyRequestHistory> findApplyRequestHistoryBySpecification(OrderBaseModel orderBaseModel);
Page<ClfChannelConfiguration> findChannelConfigurationByCriteriaQueryPage(Integer pageNumber, Integer pageSize, Long channelId);
Page<ClfChannelConfiguration> findChannelConfigurationByCriteriaQueryPage(Integer pageNumber, Integer pageSize, Long channelId, String channelName);
ClfChannelConfiguration findChannelConfigurationByChannelId(Long channelId);
......
......@@ -2,7 +2,6 @@ package cn.quantgroup.cashloanflowboss.spi.clf.service;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.*;
import cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType;
import cn.quantgroup.cashloanflowboss.spi.clf.repository.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -91,7 +90,7 @@ public class CLFCenterServiceImpl implements CLFCenterService{
}
@Override
public Page<ClfChannelConfiguration> findChannelConfigurationByCriteriaQueryPage(Integer pageNumber, Integer pageSize, Long channelId) {
public Page<ClfChannelConfiguration> findChannelConfigurationByCriteriaQueryPage(Integer pageNumber, Integer pageSize, Long channelId, String channelName) {
return clfChannelConfigurationRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
......@@ -101,6 +100,10 @@ public class CLFCenterServiceImpl implements CLFCenterService{
predicates.add(criteriaBuilder.equal(root.get("registeredFrom"), channelId.longValue()));
}
if (StringUtils.isNotEmpty(channelName)) {
predicates.add(criteriaBuilder.like(root.get("channelName"), "%" + channelName + "%"));
}
// 设置查询条件
criteriaQuery.where(criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()])));
// 指定排序
......
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