add [@CompanyNameTranslate]注解,解决查询单位名称判断是否已审核
This commit is contained in:
@@ -0,0 +1,114 @@
|
|||||||
|
package com.jero.aspect;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.jero.aspect.annotation.CompanyNameTranslate;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.util.oConvertUtils;
|
||||||
|
import com.jero.company.entity.PayCompanyManagement;
|
||||||
|
import com.jero.company.service.IPayCompanyManagementService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
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.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liJiaRao
|
||||||
|
* @date 2021-09-28 21:10
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class CompanyNameAspect {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPayCompanyManagementService payCompanyManagementService;
|
||||||
|
|
||||||
|
@Pointcut("@annotation(com.jero.aspect.annotation.CompanyNameTranslate)")
|
||||||
|
public void dictPointCut() {
|
||||||
|
}
|
||||||
|
@Around("dictPointCut()")
|
||||||
|
public Object arround(ProceedingJoinPoint point) throws Throwable {
|
||||||
|
MethodSignature signature = (MethodSignature) point.getSignature();
|
||||||
|
Method method = signature.getMethod();
|
||||||
|
|
||||||
|
CompanyNameTranslate companyNameTranslate = method.getAnnotation(CompanyNameTranslate.class);
|
||||||
|
|
||||||
|
long time1 = System.currentTimeMillis();
|
||||||
|
Object result = point.proceed();
|
||||||
|
long time2 = System.currentTimeMillis();
|
||||||
|
log.debug("获取JSON数据 耗时:" + (time2 - time1) + "ms");
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
this.parseMethodCompanyNameText(result, companyNameTranslate);
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
log.debug("解析注入JSON数据 耗时" + (end - start) + "ms");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void parseMethodCompanyNameText(Object result, CompanyNameTranslate companyNameTranslate) {
|
||||||
|
if (result instanceof Result) {
|
||||||
|
Object result1 = ((Result<Object>) result).getResult();
|
||||||
|
String jsonStr = JSONUtil.toJsonStr(result1);
|
||||||
|
if (((Result) result).getResult() instanceof IPage) {
|
||||||
|
List<PayCompanyManagement> items = new ArrayList<>();
|
||||||
|
for (Object record : ((IPage) ((Result) result).getResult()).getRecords()) {
|
||||||
|
|
||||||
|
PayCompanyManagement translate = translate(record, companyNameTranslate);
|
||||||
|
items.add(translate);
|
||||||
|
}
|
||||||
|
((IPage) ((Result) result).getResult()).setRecords(items);
|
||||||
|
} else if (JSONUtil.isJsonObj(jsonStr)) {
|
||||||
|
PayCompanyManagement translate = translate(result1, companyNameTranslate);
|
||||||
|
((Result<Object>) result).setResult(translate);
|
||||||
|
} else {
|
||||||
|
List<PayCompanyManagement> items = new ArrayList<>();
|
||||||
|
for (Object o : (List<Object>) result1) {
|
||||||
|
PayCompanyManagement translate = translate(o, companyNameTranslate);
|
||||||
|
items.add(translate);
|
||||||
|
}
|
||||||
|
((Result<Object>) result).setResult(items);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private PayCompanyManagement translate(Object record, CompanyNameTranslate companyNameTranslate) {
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
String json = "{}";
|
||||||
|
try {
|
||||||
|
//解决@JsonFormat注解解析不了的问题详见SysAnnouncement类的@JsonFormat
|
||||||
|
json = mapper.writeValueAsString(record);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
log.error("json解析失败" + e.getMessage(), e);
|
||||||
|
}
|
||||||
|
JSONObject item = JSONObject.parseObject(json);
|
||||||
|
String fieldId = companyNameTranslate.fieldId();
|
||||||
|
String fieldName = companyNameTranslate.fieldName();
|
||||||
|
String splicing = companyNameTranslate.Splicing();
|
||||||
|
|
||||||
|
for (Field field : oConvertUtils.getAllFields(record)) {
|
||||||
|
|
||||||
|
if (Objects.equals(field.getName(),fieldId)) {
|
||||||
|
String companyManagementId = String.valueOf(item.get(field.getName()));
|
||||||
|
PayCompanyManagement companyManagement = payCompanyManagementService.getById(companyManagementId);
|
||||||
|
if (Objects.equals(companyManagement.getStatus(),2)) {
|
||||||
|
String value = String.valueOf(item.get(fieldName));
|
||||||
|
item.put(fieldName,value+splicing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return JSONObject.parseObject(String.valueOf(item),PayCompanyManagement.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.jero.aspect.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liJiaRao
|
||||||
|
* @date 2021-09-28 21:13
|
||||||
|
*/
|
||||||
|
@Target({ElementType.FIELD,ElementType.METHOD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface CompanyNameTranslate {
|
||||||
|
/**
|
||||||
|
* 主字段
|
||||||
|
*/
|
||||||
|
String fieldId() default "companyId";
|
||||||
|
/**
|
||||||
|
* 拼接字段
|
||||||
|
*/
|
||||||
|
String fieldName() default "companyName";
|
||||||
|
/**
|
||||||
|
* 拼接内容
|
||||||
|
*/
|
||||||
|
String Splicing() default " (待审核)";
|
||||||
|
}
|
||||||
+2
-5
@@ -4,15 +4,13 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.jero.aspect.annotation.CompanyNameTranslate;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.aspect.annotation.AutoLog;
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
import com.jero.common.common.RoleCommon;
|
import com.jero.common.common.RoleCommon;
|
||||||
@@ -26,13 +24,11 @@ import com.jero.common.util.PasswordUtil;
|
|||||||
import com.jero.common.util.ValidUtil;
|
import com.jero.common.util.ValidUtil;
|
||||||
import com.jero.common.util.oConvertUtils;
|
import com.jero.common.util.oConvertUtils;
|
||||||
import com.jero.company.common.PayCompanyManagementCommon;
|
import com.jero.company.common.PayCompanyManagementCommon;
|
||||||
import com.jero.company.common.PayContactsManagementCommon;
|
|
||||||
import com.jero.company.entity.PayCompanyManagement;
|
import com.jero.company.entity.PayCompanyManagement;
|
||||||
import com.jero.company.service.IPayCompanyManagementService;
|
import com.jero.company.service.IPayCompanyManagementService;
|
||||||
import com.jero.company.service.ProjectCountService;
|
import com.jero.company.service.ProjectCountService;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
import com.jero.pack.common.PackCommon;
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -85,6 +81,7 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
|
|||||||
* @param req
|
* @param req
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@CompanyNameTranslate(fieldId = "id")
|
||||||
@RequiresPermissions("company:search")
|
@RequiresPermissions("company:search")
|
||||||
@ApiOperation(value="企业管理-分页列表查询", notes="企业管理-分页列表查询")
|
@ApiOperation(value="企业管理-分页列表查询", notes="企业管理-分页列表查询")
|
||||||
@GetMapping(value = "/list")
|
@GetMapping(value = "/list")
|
||||||
|
|||||||
Reference in New Issue
Block a user