Commit ff6cbcc5 by 陈健智

全网搜新增全网搜索权益

parent c7c69a8d
......@@ -143,7 +143,7 @@ public class UserController extends BaseController {
@PostMapping("/all-user/single-update")
@Auth(role = RoleEnum.SUPER_ADMIN)
public ResponseResult updateOneUserRoles(@ApiParam(name = "json",
value = "json:{id:用户id,nickname:用户名,roleId:权限,expiredTime:过期时间,exportAmount:舆情导出数量,projectId:权限项目id,key:唯一key原封不动传回来即可}",
value = "json:{id:用户id,nickname:用户名,roleId:权限,expiredTime:过期时间,exportAmount:舆情导出数量,projectId:权限项目id,key:唯一key原封不动传回来即可,searchWholeRights:全网搜权益,searchWholeRange:全网搜跨度}",
required = true) @RequestBody JSONObject json) {
return userService.updateOneUserRoles(json);
}
......@@ -151,7 +151,7 @@ public class UserController extends BaseController {
@ApiOperation("批量编辑项目权限")
@PostMapping("/all-user/batch-update")
@Auth(role = RoleEnum.SUPER_ADMIN)
public ResponseResult updateBatchUserRoles(@ApiParam(name = "json", value = "json:{id:用户id,roles:[{projectId:权限项目id,roleId:权限,exportAmount:舆情导出数量,expiredTime:过期时间},{},...]}",
public ResponseResult updateBatchUserRoles(@ApiParam(name = "json", value = "json:{id:用户id,roles:[{projectId:权限项目id,roleId:权限,exportAmount:舆情导出数量,expiredTime:过期时间,searchWholeRights:全网搜权益,searchWholeRange:全网搜跨度},{},...]}",
required = true)
@RequestBody JSONObject json) {
return userService.updateBatchUserRoles(json);
......
......@@ -56,18 +56,32 @@ public class UserRole {
* 舆情导出数量默认1000,超管默认10000
*/
private Integer exportAmount;
/**
* 全网搜索权益,1:近3月,2:近6月,3:近1年,4:近3年,5:近5年
* 月按:31天取
* 年按:365天取
*/
private Integer searchWholeRights;
/**
* 搜索数据跨度,1:3月,2:1年,3:不限制
* 月按:31天取
* 年按:365天取
*/
private Integer searchWholeRange;
public void setRoleId(Integer roleId) {
this.roleId = roleId;
this.key = Tools.concat(projectId, roleId);
}
public UserRole(String projectId, int roleId, Long expiredTime, Integer exportAmount) {
public UserRole(String projectId, int roleId, Long expiredTime, Integer exportAmount, int rights, int range) {
this.projectId = projectId;
this.roleId = roleId;
this.expiredTime = expiredTime;
this.exportAmount = exportAmount;
this.key = Tools.concat(projectId, roleId);
this.searchWholeRights = rights;
this.searchWholeRange = range;
}
public static UserRole createFromUserDto(UserDTO userDTO) {
......@@ -86,11 +100,10 @@ public class UserRole {
calendar.set(Calendar.SECOND, 59);
expiredTime = calendar.getTime().getTime();
}
return new UserRole(userDTO.getProjectId(), userDTO.getRoleId(), expiredTime, exportAmount);
return new UserRole(userDTO.getProjectId(), userDTO.getRoleId(), expiredTime, exportAmount, userDTO.getSearchWholeRights(), userDTO.getSearchWholeRange());
}
public static UserRole defaultUserRole(Date now) {
return new UserRole(DEFAULT_PROJECT_ID, DEFAULT_ROLE_ID, DateUtils.addDays(now, 30).getTime(), DEFAULT_EXPORT_LIMIT);
return new UserRole(DEFAULT_PROJECT_ID, DEFAULT_ROLE_ID, DateUtils.addDays(now, 30).getTime(), DEFAULT_EXPORT_LIMIT, 1, 1);
}
}
......@@ -70,4 +70,19 @@ public class UserDTO {
@ApiModelProperty("舆情导出数量")
private Integer exportAmount;
/**
* 全网搜索权益,1:近3月,2:近6月,3:近1年,4:近3年,5:近5年
* 月按:31天取
* 年按:365天取
*/
@ApiModelProperty("全网搜索权益")
private Integer searchWholeRights;
/**
* 搜索数据跨度,1:3月,2:1年,3:不限制
* 月按:31天取
* 年按:365天取
*/
@ApiModelProperty("全网搜索数据跨度")
private Integer searchWholeRange;
}
......@@ -26,6 +26,7 @@ import com.zhiwei.middleware.event.pojo.entity.BrandkbsBasicInfo;
import com.zhiwei.middleware.mark.vo.MarkerTag;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
......@@ -763,6 +764,7 @@ public class ProjectServiceImpl implements ProjectService {
protected List<JSONObject> getProjectListByUser(User user, boolean retainExpired) {
List<Project> lists;
Map<String, Date> roleExpired = new HashMap<>();
Map<String, Pair<Integer, Integer>> searchWholeInfo = new HashMap<>();
if (user.isSuperAdmin()) {
lists = projectDao.findListByKeywordFuzz(null, null);
} else {
......@@ -773,6 +775,7 @@ public class ProjectServiceImpl implements ProjectService {
if (null != project) {
lists.add(projectDao.findOneById(userRole.getProjectId()));
roleExpired.put(userRole.getProjectId(), null == userRole.getExpiredTime() ? null : new Date(userRole.getExpiredTime()));
searchWholeInfo.put(userRole.getProjectId(), Pair.of(userRole.getSearchWholeRights(), userRole.getSearchWholeRange()));
}
});
}
......@@ -796,6 +799,14 @@ public class ProjectServiceImpl implements ProjectService {
return null;
}
}
if (user.isSuperAdmin()){
json.put("searchWholeRights", 5);
json.put("searchWholeRange", 3);
}else {
Pair<Integer, Integer> pair = searchWholeInfo.get(project.getId());
json.put("searchWholeRights", pair.getLeft());
json.put("searchWholeRange", pair.getRight());
}
return json;
}).filter(Objects::nonNull).collect(Collectors.toList());
}
......
......@@ -234,6 +234,11 @@ public class UserServiceImpl implements UserService {
OptionalLong.of(userDTO.getExpiredTime()).ifPresent(userRole::setExpiredTime);
}
OptionalInt.of(userDTO.getExportAmount()).ifPresent(userRole::setExportAmount);
// 只有超管能修改全网搜权益
if (RoleEnum.SUPER_ADMIN.getState() == UserThreadLocal.getRoleId()) {
OptionalInt.of(userDTO.getSearchWholeRights()).ifPresent(userRole::setSearchWholeRights);
OptionalInt.of(userDTO.getSearchWholeRange()).ifPresent(userRole::setSearchWholeRange);
}
userDao.updateOneByIdWithField(userDTO.getId(), new Update().set("roles", roles));
});
Optional.of(userDTO.getNickname()).ifPresent(nickName -> userDao.updateOneByIdWithField(userDTO.getId(), new Update().set("nickname", nickName)));
......@@ -327,7 +332,8 @@ public class UserServiceImpl implements UserService {
if (RoleEnum.CUSTOMER.getState() == userProject.getRoleId()) {
expiredTime = userProject.getExpiredTime();
}
userRoles.add(new UserRole(project.getId(), userProject.getRoleId(), expiredTime, userProject.getExportAmount()));
// 给默认全网搜权益
userRoles.add(new UserRole(project.getId(), userProject.getRoleId(), expiredTime, userProject.getExportAmount(), 1, 1));
hit.set(true);
}
});
......@@ -426,7 +432,7 @@ public class UserServiceImpl implements UserService {
userDao.addSort(query, "{\"cTime\":\"descend\"}");
List<User> userList = userDao.findList(query);
// roles总量
long count = userList.stream().map(User::getRoles).filter(Objects::nonNull).mapToLong(Collection::size).sum();
// long count = userList.stream().map(User::getRoles).filter(Objects::nonNull).mapToLong(Collection::size).sum();
Map<User, List<UserRole>> userRolesMap = userList.stream().collect(Collectors.toMap(o -> o, User::getRoles));
List<JSONObject> resList = new ArrayList<>();
for (Map.Entry<User, List<UserRole>> entry : userRolesMap.entrySet()) {
......@@ -454,10 +460,12 @@ public class UserServiceImpl implements UserService {
jsonObject.put("expiredTime", role.getExpiredTime());
jsonObject.put("exportAmount", role.getExportAmount());
jsonObject.put("key", role.getKey());
jsonObject.put("searchWholeRights", role.getSearchWholeRights());
jsonObject.put("searchWholeRange", role.getSearchWholeRange());
resList.add(jsonObject);
}
}
return PageVO.createPageVo(count, page, pageSize, resList.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()));
return PageVO.createPageVo(resList.size(), page, pageSize, resList.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()));
}
@Override
......@@ -467,6 +475,8 @@ public class UserServiceImpl implements UserService {
int roleId = json.getIntValue("roleId");
long expiredTime = json.getLongValue("expiredTime");
int exportAmount = json.getIntValue("exportAmount");
int rights = json.getIntValue("searchWholeRights");
int range = json.getIntValue("searchWholeRange");
String projectId = json.getString("projectId");
String key = json.getString("key");
User user = userDao.findOneById(id);
......@@ -489,6 +499,11 @@ public class UserServiceImpl implements UserService {
OptionalLong.of(expiredTime).ifPresent(userRole::setExpiredTime);
}
OptionalInt.of(exportAmount).ifPresent(userRole::setExportAmount);
// 只有超管可修改全网搜权益
if (RoleEnum.SUPER_ADMIN.getState() == UserThreadLocal.getRoleId()) {
OptionalInt.of(rights).ifPresent(userRole::setSearchWholeRights);
OptionalInt.of(range).ifPresent(userRole::setSearchWholeRange);
}
userDao.updateOneByIdWithField(id, new Update().set("roles", roles));
});
Optional.of(nickname).ifPresent(nickName -> userDao.updateOneByIdWithField(id, new Update().set("nickname", nickName)));
......@@ -532,6 +547,8 @@ public class UserServiceImpl implements UserService {
json.put("roleId", role.getRoleId());
json.put("exportAmount", role.getExportAmount());
json.put("expiredTime", role.getExpiredTime());
json.put("searchWholeRights", role.getSearchWholeRights());
json.put("searchWholeRange", role.getSearchWholeRange());
return json;
}).filter(Objects::nonNull).collect(Collectors.toList());
jsonObject.put("roles", roles);
......@@ -578,7 +595,7 @@ public class UserServiceImpl implements UserService {
return queryUserInfo(UserThreadLocal.getUserId(), UserThreadLocal.getProjectId()).toMap();
}
private PageVO<JSONObject> findList(int page, int size, String keyword, String pid, Query query,String sorter) {
private PageVO<JSONObject> findList(int page, int size, String keyword, String pid, Query query, String sorter) {
userDao.addKeywordFuzz(query, keyword, "nickname");
if (null == sorter) {
userDao.addSort(query, "{\"cTime\":\"descend\"}");
......@@ -605,6 +622,8 @@ public class UserServiceImpl implements UserService {
result.put("roleId", userRole.getRoleId());
result.put("expiredTime", userRole.getExpiredTime());
result.put("exportAmount", userRole.getExportAmount());
result.put("searchWholeRights", userRole.getSearchWholeRights());
result.put("searchWholeRange", userRole.getSearchWholeRange());
});
return result;
}).collect(Collectors.toList());
......
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