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 javax.annotation.Resource;
|
||||
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.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.aspect.annotation.AutoLog;
|
||||
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.oConvertUtils;
|
||||
import com.jero.company.common.PayCompanyManagementCommon;
|
||||
import com.jero.company.common.PayContactsManagementCommon;
|
||||
import com.jero.company.entity.PayCompanyManagement;
|
||||
import com.jero.company.service.IPayCompanyManagementService;
|
||||
import com.jero.company.service.ProjectCountService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.pack.common.PackCommon;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -85,6 +81,7 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@CompanyNameTranslate(fieldId = "id")
|
||||
@RequiresPermissions("company:search")
|
||||
@ApiOperation(value="企业管理-分页列表查询", notes="企业管理-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
|
||||
Reference in New Issue
Block a user