Browse Source

Merge remote-tracking branch 'remotes/origin/dev' into dev_data_fusion

master
jianjun 4 years ago
parent
commit
34021d2c47
  1. 37
      epmet-admin/epmet-admin-client/src/main/java/com/epmet/dto/form/CorsConfigFormDTO.java
  2. 27
      epmet-admin/epmet-admin-client/src/main/java/com/epmet/dto/result/CorsConfigResultDTO.java
  3. 24
      epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java
  4. 18
      epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java
  5. 70
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/controller/CorsConfigController.java
  6. 33
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/dao/CorsConfigDao.java
  7. 56
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/entity/CorsConfigEntity.java
  8. 20
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/service/CorsConfigService.java
  9. 110
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/service/impl/CorsConfigServiceImpl.java
  10. 13
      epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.5__cors_config_tbl.sql
  11. 20
      epmet-admin/epmet-admin-server/src/main/resources/mapper/CorsConfigDao.xml
  12. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  13. 10
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  14. 5
      epmet-gateway/pom.xml
  15. 21
      epmet-gateway/src/main/java/com/epmet/bean/CorsConfigCache.java
  16. 101
      epmet-gateway/src/main/java/com/epmet/config/CorsConfig.java
  17. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  18. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/AgencyScoreDao.java
  19. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateDistrictServiceImpl.java
  20. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateStreetServiceImpl.java
  21. 4
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/AgencyScoreDao.xml
  22. 2
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/InitPointRuleResultDTO.java
  23. 16
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java
  24. 20
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java
  25. 13
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/BackDoorController.java
  26. 16
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java
  27. 9
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java
  28. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRuleService.java
  29. 34
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
  30. 19
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRuleServiceImpl.java
  31. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java
  32. 9
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java
  33. 38
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java
  34. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  35. 2
      epmet-module/gov-voice/gov-voice-server/src/main/resources/logback-spring.xml
  36. 12
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml
  37. 2
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
  38. 19
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/GroupPointDetailFormDTO.java
  39. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  40. 7
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  41. 6
      epmet-module/resi-group/resi-group-server/pom.xml
  42. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
  43. 37
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java
  44. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
  45. 20
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

37
epmet-admin/epmet-admin-client/src/main/java/com/epmet/dto/form/CorsConfigFormDTO.java

@ -0,0 +1,37 @@
package com.epmet.dto.form;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CorsConfigFormDTO {
public interface Add {}
public interface Update {}
@NotBlank(message = "ID不能为空", groups = { Update.class })
private String id;
/**
* 首部type
*/
@NotBlank(message = "首部类型不能为空", groups = { Add.class, Update.class })
private String headerType;
/**
* 首部value
*/
@NotBlank(message = "首部值不能为空", groups = { Add.class, Update.class })
private String headerValue;
/**
* 备注
*/
private String comment;
}

27
epmet-admin/epmet-admin-client/src/main/java/com/epmet/dto/result/CorsConfigResultDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.result;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CorsConfigResultDTO {
private String id;
/**
* 首部类型
*/
private String headerType;
/**
* 首部值
*/
private String headerValue;
/**
* 首部备注
*/
private String comment;
}

24
epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java

@ -0,0 +1,24 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.result.CorsConfigResultDTO;
import com.epmet.feign.fallback.EpmetAdminOpenFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
@FeignClient(name = ServiceConstant.EPMET_ADMIN_SERVER, fallback = EpmetAdminOpenFeignClientFallback.class)
//@FeignClient(name = ServiceConstant.EPMET_ADMIN_SERVER, fallback = EpmetAdminOpenFeignClientFallback.class, url = "localhost:8082")
public interface EpmetAdminOpenFeignClient {
/**
* @Description 查询跨域配置列表
* @return
* @author wxz
* @date 2021.06.25 10:00
*/
@PostMapping("/sys/cors-config/list")
Result<List<CorsConfigResultDTO>> list();
}

18
epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java

@ -0,0 +1,18 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.result.CorsConfigResultDTO;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class EpmetAdminOpenFeignClientFallback implements EpmetAdminOpenFeignClient {
@Override
public Result<List<CorsConfigResultDTO>> list() {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "list", null);
}
}

70
epmet-admin/epmet-admin-server/src/main/java/com/epmet/controller/CorsConfigController.java

@ -0,0 +1,70 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CorsConfigFormDTO;
import com.epmet.dto.result.CorsConfigResultDTO;
import com.epmet.service.CorsConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("cors-config")
public class CorsConfigController {
@Autowired
private CorsConfigService corsConfigService;
/**
* @Description 查询跨域配置列表
* @return
* @author wxz
* @date 2021.06.25 10:00
*/
@PostMapping("/list")
public Result<List<CorsConfigResultDTO>> list() {
List<CorsConfigResultDTO> list = corsConfigService.list();
return new Result<List<CorsConfigResultDTO>>().ok(list);
}
/**
* @Description 添加跨域配置
* @return
* @author wxz
* @date 2021.06.25 13:51
*/
@PostMapping("/add")
public Result<CorsConfigResultDTO> addConfig(@RequestBody CorsConfigFormDTO input) {
ValidatorUtils.validateEntity(input, CorsConfigFormDTO.Add.class);
CorsConfigResultDTO data = corsConfigService.addConfig(input.getHeaderType(), input.getHeaderValue(), input.getComment());
return new Result<CorsConfigResultDTO>().ok(data);
}
/**
* @Description 通过id删除配置
* @return
* @author wxz
* @date 2021.06.25 14:18
*/
@PostMapping("/delete/{id}")
public Result deleteConfigById(@PathVariable("id") String configId) {
corsConfigService.deleteById(configId);
return new Result<>();
}
/**
* @Description 根据id更新
* @return
* @author wxz
* @date 2021.06.25 14:23
*/
@PostMapping("/update")
public Result updateById(@RequestBody CorsConfigFormDTO input) {
ValidatorUtils.validateEntity(input, CorsConfigFormDTO.Update.class);
corsConfigService.updateById(input.getId(), input.getHeaderType(), input.getHeaderValue(), input.getComment());
return new Result<>();
}
}

33
epmet-admin/epmet-admin-server/src/main/java/com/epmet/dao/CorsConfigDao.java

@ -0,0 +1,33 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.CorsConfigEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 跨域配置表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-06-25
*/
@Mapper
public interface CorsConfigDao extends BaseDao<CorsConfigEntity> {
}

56
epmet-admin/epmet-admin-server/src/main/java/com/epmet/entity/CorsConfigEntity.java

@ -0,0 +1,56 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 跨域配置表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-06-25
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("cors_config")
public class CorsConfigEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 首部类型
*/
private String headerType;
/**
* 首部值
*/
private String headerValue;
/**
* 说明
*/
private String comment;
}

20
epmet-admin/epmet-admin-server/src/main/java/com/epmet/service/CorsConfigService.java

@ -0,0 +1,20 @@
package com.epmet.service;
import com.epmet.dto.result.CorsConfigResultDTO;
import java.util.List;
/**
* @Description 跨域配置service接口
* @author wxz
* @date 2021-06-44 09:52:44
*/
public interface CorsConfigService {
List<CorsConfigResultDTO> list();
CorsConfigResultDTO addConfig(String headerType, String headerValue, String comment);
void deleteById(String configId);
void updateById(String configId, String headerType, String headerValue, String comment);
}

110
epmet-admin/epmet-admin-server/src/main/java/com/epmet/service/impl/CorsConfigServiceImpl.java

@ -0,0 +1,110 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.CorsConfigDao;
import com.epmet.dto.result.CorsConfigResultDTO;
import com.epmet.entity.CorsConfigEntity;
import com.epmet.service.CorsConfigService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description 跨域配置
* @author wxz
* @date 2021.06.25 09:53:57
*/
@Service
public class CorsConfigServiceImpl implements CorsConfigService {
@Autowired
private CorsConfigDao corsConfigDao;
@Autowired
private RedisTemplate redisTemplate;
private Logger logger = LoggerFactory.getLogger(getClass());
/**
* @Description 查询配置列表
* @return
* @author wxz
* @date 2021.06.25 09:58
*/
@Override
public List<CorsConfigResultDTO> list() {
LambdaQueryWrapper<CorsConfigEntity> conditions = new LambdaQueryWrapper<>();
return ConvertUtils.sourceToTarget(corsConfigDao.selectList(conditions), CorsConfigResultDTO.class);
}
@Override
public CorsConfigResultDTO addConfig(String headerType, String headerValue, String comment) {
LambdaQueryWrapper<CorsConfigEntity> w = new LambdaQueryWrapper<>();
w.eq(CorsConfigEntity::getHeaderType, headerType.trim());
w.eq(CorsConfigEntity::getHeaderValue, headerValue.trim());
if (corsConfigDao.selectCount(w) > 0) {
throw new RenException(EpmetErrorCode.OPER_CORS_CONFIG_ERROR.getCode(), "已存在该跨域配置,请勿重复添加");
}
CorsConfigEntity insert = new CorsConfigEntity();
insert.setHeaderType(headerType);
insert.setHeaderValue(headerValue);
insert.setComment(comment);
if (corsConfigDao.insert(insert) == 0) {
throw new RenException(EpmetErrorCode.OPER_CORS_CONFIG_ERROR.getCode(), "插入跨域配置出错");
}
deleteFromRedis();
return new CorsConfigResultDTO(insert.getId(), headerType, headerValue, comment);
}
@Override
public void deleteById(String configId) {
if (corsConfigDao.deleteById(configId) == 0) {
String msg = "删除出错,不存在该项数据";
throw new RenException(EpmetErrorCode.OPER_CORS_CONFIG_ERROR.getCode(), msg, msg, RenException.MessageMode.CODE_INTERNAL_EXTERNAL);
}
deleteFromRedis();
}
@Override
public void updateById(String configId, String headerType, String headerValue, String comment) {
CorsConfigEntity exists = corsConfigDao.selectById(configId);
if (exists == null) {
String msg = "该项数据不存在";
throw new RenException(EpmetErrorCode.OPER_CORS_CONFIG_ERROR.getCode(), msg, msg, RenException.MessageMode.CODE_INTERNAL_EXTERNAL);
}
exists.setHeaderType(headerType);
exists.setHeaderValue(headerValue);
exists.setComment(comment);
if (corsConfigDao.updateById(exists) == 0) {
throw new RenException(EpmetErrorCode.OPER_CORS_CONFIG_ERROR.getCode(), "更新出错,影响条数为0");
}
deleteFromRedis();
}
/**
* @Description 从缓存中删除
* @return
* @author wxz
* @date 2021.06.25 14:26
*/
private void deleteFromRedis() {
try {
redisTemplate.delete(RedisKeys.getCorsConfigKey());
} catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("从Redis中删除Cors跨域信息失败,程序继续执行。错误信息:%s", errorMsg));
}
}
}

13
epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.5__cors_config_tbl.sql

@ -0,0 +1,13 @@
CREATE TABLE `cors_config` (
`ID` varchar(64) NOT NULL,
`HEADER_TYPE` varchar(32) NOT NULL COMMENT '首部类型',
`HEADER_VALUE` varchar(128) NOT NULL COMMENT '首部值',
`COMMENT` varchar(512) DEFAULT NULL COMMENT '说明',
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='跨域配置表'

20
epmet-admin/epmet-admin-server/src/main/resources/mapper/CorsConfigDao.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.CorsConfigDao">
<resultMap type="com.epmet.entity.CorsConfigEntity" id="corsConfigMap">
<result property="id" column="ID"/>
<result property="headerType" column="HEADER_TYPE"/>
<result property="headerValue" column="HEADER_VALUE"/>
<result property="comment" column="COMMENT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
</mapper>

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -128,6 +128,7 @@ public enum EpmetErrorCode {
USER_LIST_ROLES_BY_KEY_FAIL(8715, "根据角色key查询角色列表失败"),
OPER_UPLOAD_IMG_TYPE_ERROR(8716, "请上传PNG格式的图片"),
OPER_UPLOAD_IMG_SIZE_ERROR(8717, "请上传200*200的图片"),
OPER_CORS_CONFIG_ERROR(8718, "跨域配置错误"),
// 党建声音 前端提示 88段
DRAFT_CONTENT_IS_NULL(8801, "至少需要添加一个段落"),

10
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -459,4 +459,14 @@ public class RedisKeys {
String currentMonth= DateUtils.getBeforeNMonth(NumConstant.ZERO);
return "groupread:user:".concat(currentMonth).concat(":").concat(source).concat(":").concat(groupId).concat(":").concat(sourceId);
}
/**
* @Description 跨域配置key
* @return
* @author wxz
* @date 2021.06.25 10:31
*/
public static String getCorsConfigKey() {
return rootPrefix.concat("sys:cors");
}
}

5
epmet-gateway/pom.xml

@ -81,6 +81,11 @@
<artifactId>epmet-commons-openapi</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-admin-client</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
<build>

21
epmet-gateway/src/main/java/com/epmet/bean/CorsConfigCache.java

@ -0,0 +1,21 @@
package com.epmet.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Description 跨域配置缓存
* @author wxz
* @date 2021.06.25 10:59:44
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CorsConfigCache {
private List<String> accessControlAllowOrigins;
}

101
epmet-gateway/src/main/java/com/epmet/config/CorsConfig.java

@ -1,15 +1,29 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有侵权必究
*/
package com.epmet.config;
import com.epmet.bean.CorsConfigCache;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.dto.result.CorsConfigResultDTO;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
@ -21,6 +35,11 @@ import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Mono;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Cors跨域
*
@ -29,11 +48,33 @@ import reactor.core.publisher.Mono;
*/
@Configuration
public class CorsConfig {
private static final String MAX_AGE = "18000L";
@Bean
public WebFilter corsFilter() {
return (ServerWebExchange ctx, WebFilterChain chain) -> {
return new EpmetWebFilter();
}
}
/**
* @Description 用于CORS等操作的判断
* @return
* @author wxz
* @date 2021.06.25 10:42
*/
class EpmetWebFilter implements WebFilter, ResultDataResolver {
private static final String MAX_AGE = "18000L";
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Resource
private RedisTemplate<String, CorsConfigCache> redisTemplate;
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public Mono<Void> filter(ServerWebExchange ctx, WebFilterChain chain) {
ServerHttpRequest request = ctx.getRequest();
if (!CorsUtils.isCorsRequest(request)) {
return chain.filter(ctx);
@ -42,7 +83,9 @@ public class CorsConfig {
ServerHttpResponse response = ctx.getResponse();
HttpMethod requestMethod = requestHeaders.getAccessControlRequestMethod();
HttpHeaders headers = response.getHeaders();
if (isAllowed(requestHeaders.getOrigin())) {
headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, requestHeaders.getOrigin());
}
headers.addAll(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, requestHeaders.getAccessControlRequestHeaders());
if (requestMethod != null) {
headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, requestMethod.name());
@ -55,7 +98,55 @@ public class CorsConfig {
return Mono.empty();
}
return chain.filter(ctx);
};
}
/**
* @Description 是否允许跨域
* @return
* @author wxz
* @date 2021.06.25 10:43
*/
private Boolean isAllowed(String origin) {
HashOperations<String, String, List<String>> ope = redisTemplate.opsForHash();
Map<String, List<String>> configMap = ope.entries(RedisKeys.getCorsConfigKey());
if (configMap == null || configMap.size() == 0) {
List<CorsConfigResultDTO> data = null;
try {
data = getResultDataOrThrowsException(
adminOpenFeignClient.list(),
ServiceConstant.EPMET_ADMIN_SERVER,
EpmetErrorCode.SERVER_ERROR.getCode(),
"调用Admin服务查询Cors配置失败");
} catch (Exception e) {
logger.error("调用Admin服务查询Cors配置失败");
}
// 将origin集合
List<String> origins = data.stream()
.filter((c) -> HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN.equals(c.getHeaderType()))
.map((c) -> c.getHeaderValue())
.collect(Collectors.toList());
try {
configMap.put(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, origins);
ope.putAll(RedisKeys.getCorsConfigKey(), configMap);
} catch (Exception e) {
logger.error(String.format("gateway缓存跨域配置出错:%s", ExceptionUtils.getErrorStackTrace(e)));
}
}
List<String> accessControlAllowOrigins = configMap.get(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN);
logger.info("accessControlAllowOrigins:" + accessControlAllowOrigins);
logger.info("origin:" + origin);
if (CollectionUtils.isEmpty(accessControlAllowOrigins)) {
return false;
}
if (accessControlAllowOrigins.contains("*")) {
return true;
}
return accessControlAllowOrigins.contains(origin);
}
}

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java

@ -7,7 +7,6 @@ import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.epmetuser.StaffPatrolRecordDao;
import com.epmet.dataaggre.dao.epmetuser.StaffRoleDao;
import com.epmet.dataaggre.dao.epmetuser.UserBaseInfoDao;
import com.epmet.dataaggre.dto.datastats.result.SubAgencyUserResultDTO;
import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO;
import com.epmet.dataaggre.dto.epmetuser.StaffPatrolRecordDTO;
import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO;
@ -21,9 +20,7 @@ import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService;
import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import lombok.extern.slf4j.Slf4j;
import oracle.sql.NUMBER;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -78,6 +75,7 @@ public class EpmetUserServiceImpl implements EpmetUserService {
/**
* @Param formDTO
* @Description 001各人员巡查记录列表查询
* @remark 因为是yi以人为单位的数据 所以要内存分页
* @author sun
*/
@Override

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcal/AgencyScoreDao.java

@ -94,7 +94,7 @@ public interface AgencyScoreDao extends BaseDao<AgencyScoreEntity> {
* @date 2021/1/18 上午9:09
*/
List<SubAgencyScoreAvgResultDTO> selectAgencyScoreAvgExistsSub(@Param("monthId")String monthId, @Param("indexCode")String indexCode,@Param("areaCode")String areaCode);
List<SubAgencyScoreAvgResultDTO> selectAgencyScoreAvgExistsSubNew(@Param("monthId")String monthId, @Param("indexCode")String indexCode,@Param("areaCode")String areaCode,@Param("quarterId")String quarterId,@Param("yearId")String yearId);
List<SubAgencyScoreAvgResultDTO> selectAgencyScoreAvgExistsSubNew(@Param("monthId")String monthId, @Param("indexCode")String indexCode,@Param("areaCode")String areaCode,@Param("quarterId")String quarterId,@Param("yearId")String yearId,@Param("customerId")String customerId);
List<SubAgencyScoreAvgResultDTO> selectAgencyScoreAvgByOrgIds(@Param("monthId")String monthId, @Param("indexCode")String indexCode,@Param("orgIds")List<String> orgIds);

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateDistrictServiceImpl.java

@ -649,10 +649,10 @@ public class IndexCalculateDistrictServiceImpl implements IndexCalculateDistrict
Map<String, Integer> gridPartyScoreSampleCountMap = new HashMap<>();
indexDetailList.forEach(detail -> {
if (IndexCodeEnum.QU_XIA_JI_JIE_DDJNLHZPJZ.getCode().equals(detail.getIndexCode())) {
List<SubAgencyScoreAvgResultDTO> subGridPartyAvgScore = agencyScoreDao.selectAgencyScoreAvgExistsSubNew(monthId,IndexCodeEnum.DANG_JIAN_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId);
List<SubAgencyScoreAvgResultDTO> subGridPartyAvgScore = agencyScoreDao.selectAgencyScoreAvgExistsSubNew(monthId,IndexCodeEnum.DANG_JIAN_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId,customerId);
log.info("subGridPartyAvgScore:::"+subGridPartyAvgScore.toString());
subGridPartyAvgScore.forEach(s -> {
gridPartyScoreSampleCountMap.put(s.getAgencyId().concat(":").concat(IndexCodeEnum.QU_XIA_JI_JIE_DDJNLHZPJZ.getCode()), s.getSampleCount());
gridPartyScoreSampleCountMap.put(s.getParentId().concat(":").concat(IndexCodeEnum.QU_XIA_JI_JIE_DDJNLHZPJZ.getCode()), s.getSampleCount());
});
if (CollectionUtils.isEmpty(subGridPartyAvgScore)) {
log.warn(IndexCalConstant.DISTRICT_PARTY_AVG_NULL);
@ -745,10 +745,10 @@ public class IndexCalculateDistrictServiceImpl implements IndexCalculateDistrict
detailListByParentCode.forEach(detail -> {
if (IndexCodeEnum.SUO_YOU_JIE_DAO_ZLNLPJZ.getCode().equals(detail.getIndexCode())) {
// 治理能力平均值
List<SubAgencyScoreAvgResultDTO> districtGovernAvgList = agencyScoreDao.selectAgencyScoreAvgExistsSubNew(monthId, IndexCodeEnum.ZHI_LI_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId);
List<SubAgencyScoreAvgResultDTO> districtGovernAvgList = agencyScoreDao.selectAgencyScoreAvgExistsSubNew(monthId, IndexCodeEnum.ZHI_LI_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId,customerId);
log.info("districtGovernAvgList:::"+districtGovernAvgList.toString());
districtGovernAvgList.forEach(s -> {
gridPartyScoreSampleCountMap.put(s.getAgencyId().concat(":").concat(IndexCodeEnum.SUO_YOU_JIE_DAO_ZLNLPJZ.getCode()), s.getSampleCount());
gridPartyScoreSampleCountMap.put(s.getParentId().concat(":").concat(IndexCodeEnum.SUO_YOU_JIE_DAO_ZLNLPJZ.getCode()), s.getSampleCount());
});
for (int i = 0; i < districtGovernAvgList.size(); i++) {
if (districtGovernAvgList.get(i).getAgencyId().equals(NumConstant.ZERO_STR)){
@ -790,6 +790,9 @@ public class IndexCalculateDistrictServiceImpl implements IndexCalculateDistrict
if (CollectionUtils.isEmpty(deptScoreAvgList)) {
log.warn("查询所有直属部门治理能力平均值集合为空");
} else{
deptScoreAvgList.forEach(d -> {
gridPartyScoreSampleCountMap.put(d.getAgencyId().concat(":").concat(IndexCodeEnum.SUO_YOU_ZHI_SHU_BMZLNLPJZ.getCode()), d.getSampleCount());
});
MaxAndMinBigDecimalResultDTO maxAndMinBigDecimal = this.getMaxAndMinBigDecimal(deptScoreAvgList.stream().map(o -> o.getScore()).collect(Collectors.toList()));
List<List<SubAgencyScoreAvgResultDTO>> governAvg = ListUtils.partition(deptScoreAvgList, IndexCalConstant.PAGE_SIZE);
governAvg.forEach(avg -> {
@ -845,10 +848,10 @@ public class IndexCalculateDistrictServiceImpl implements IndexCalculateDistrict
detailListByParentCode.forEach(detail -> {
String indexCode = detail.getIndexCode();
if (IndexCodeEnum.QU_XIA_SHU_JIE_DFWNLHZPJZ.getCode().equals(indexCode)) {
List<SubAgencyScoreAvgResultDTO> subStreetAvgList = agencyScoreDao.selectAgencyScoreAvgExistsSubNew(monthId,IndexCodeEnum.FU_WU_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId);
List<SubAgencyScoreAvgResultDTO> subStreetAvgList = agencyScoreDao.selectAgencyScoreAvgExistsSubNew(monthId,IndexCodeEnum.FU_WU_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId,customerId);
log.info("subStreetAvgList:::"+subStreetAvgList.toString());
subStreetAvgList.forEach(s -> {
gridPartyScoreSampleCountMap.put(s.getAgencyId().concat(":").concat(IndexCodeEnum.QU_XIA_SHU_JIE_DFWNLHZPJZ.getCode()), s.getSampleCount());
gridPartyScoreSampleCountMap.put(s.getParentId().concat(":").concat(IndexCodeEnum.QU_XIA_SHU_JIE_DFWNLHZPJZ.getCode()), s.getSampleCount());
});
for (int i = 0; i < subStreetAvgList.size(); i++) {
if (subStreetAvgList.get(i).getAgencyId().equals(NumConstant.ZERO_STR)){

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateStreetServiceImpl.java

@ -667,7 +667,7 @@ public class IndexCalculateStreetServiceImpl implements IndexCalculateStreetServ
List<SubCommunityAvgResultDTO> dispose = communityScoreDao.selectSubCommAvgScoreExistSubNotSelfNew(monthId,IndexCodeEnum.DANG_JIAN_NENG_LI.getCode(),form.getCustomerAreaCode(),quarterId,yearId);
// 数据处理
List<SubCommunityAvgResultDTO> subCommPartyAvgScore = disposeSubAvg(dispose, form);
dispose.forEach(s -> {
subCommPartyAvgScore.forEach(s -> {
gridPartyScoreSampleCountMap.put(s.getAgencyId().concat(":").concat(IndexCodeEnum.JIE_DAO_XIA_SHU_SYSQDJNLHZPJZ.getCode()), s.getSampleCount());
});
if (CollectionUtils.isEmpty(subCommPartyAvgScore)) {
@ -971,6 +971,7 @@ public class IndexCalculateStreetServiceImpl implements IndexCalculateStreetServ
avgScore.forEach(avg -> {
if (subScore.getAgencyId().equals(avg.getParentId())){
subScore.setScore(avg.getScore());
subScore.setSampleCount(avg.getSampleCount());
avg.setScoreStatus(true);
}
});
@ -991,6 +992,8 @@ public class IndexCalculateStreetServiceImpl implements IndexCalculateStreetServ
// 孔村单独处理
if (s.getAgencyId().equals(PingYinConstant.KONG_CUN_AGENCY_ID)){
s.setScore(divide);
// 党总支数量求平均数
s.setSampleCount(subAvgResultDTOS.size());
}
});
}

4
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcal/AgencyScoreDao.xml

@ -263,7 +263,9 @@
(fics.agency_id = sca.agency_id
AND fics.del_flag = '0'
AND fics.month_id = #{monthId}
AND fics.index_code = #{indexCode})
AND fics.index_code = #{indexCode}
AND fics.CUSTOMER_ID = #{customerId}
)
WHERE sca.DEL_FLAG = '0'
AND sca.PARENT_AREA_CODE = #{areaCode}
GROUP BY parentId

2
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/InitPointRuleResultDTO.java

@ -42,4 +42,6 @@ public class InitPointRuleResultDTO implements Serializable {
* 已经初始化总数
*/
private Integer initedTotal;
private String InitedDetail;
}

16
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java

@ -2,12 +2,15 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.InitPointRuleResultDTO;
import com.epmet.dto.form.CommonUserFormDTO;
import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.dto.result.ResiPointDetailResultDTO;
import com.epmet.feign.fallback.EpmetPointOpenFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -33,5 +36,16 @@ public interface EpmetPointOpenFeignClient {
* @author sun
**/
@PostMapping("/point/opback/initpointrule")
Result<InitPointRuleResultDTO> initPointRule();
Result<InitPointRuleResultDTO> initPointRule(String customerId);
/**
* 获取小组积分
* @author zhaoqifeng
* @date 2021/6/24 12:24
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.BizPointTotalDetailDTO>
*/
@PostMapping("/point/group/point/grouppoint")
Result<BizPointTotalDetailDTO> getGroupPoint(@RequestBody GroupPointFormDTO formDTO);
}

20
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java

@ -3,11 +3,14 @@ package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.InitPointRuleResultDTO;
import com.epmet.dto.form.CommonUserFormDTO;
import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.dto.result.ResiPointDetailResultDTO;
import com.epmet.feign.EpmetPointOpenFeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @Description
@ -23,7 +26,20 @@ public class EpmetPointOpenFeignClientFallback implements EpmetPointOpenFeignCli
}
@Override
public Result<InitPointRuleResultDTO> initPointRule() {
return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "initPointRule");
public Result<InitPointRuleResultDTO> initPointRule(@RequestParam String customerId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "initPointRule",customerId);
}
/**
* 获取小组积分
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.BizPointTotalDetailDTO>
* @author zhaoqifeng
* @date 2021/6/24 12:24
*/
@Override
public Result<BizPointTotalDetailDTO> getGroupPoint(GroupPointFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "formDTO");
}
}

13
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/BackDoorController.java

@ -9,10 +9,7 @@ import com.epmet.dto.InitPointRuleResultDTO;
import com.epmet.dto.form.PointRuleFormDTO;
import com.epmet.service.PointRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -44,12 +41,12 @@ public class BackDoorController {
/**
* desc:批量添加规则
*
* @param list
* @param customerId
* @return
*/
@PostMapping(value = "initpointrule")
public Result<InitPointRuleResultDTO> initPointRule() {
InitPointRuleResultDTO resultDTO = pointRuleService.initPointRule();
@GetMapping(value = "initpointrule")
public Result<InitPointRuleResultDTO> initPointRule(@RequestParam(required = false) String customerId) {
InitPointRuleResultDTO resultDTO = pointRuleService.initPointRule(customerId);
return new Result<InitPointRuleResultDTO>().ok(resultDTO);
}

16
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.dto.result.GroupPointRankingResultDTO;
import com.epmet.dto.result.GroupPointRuleResultDTO;
@ -97,4 +98,19 @@ public class GroupPointController {
result.setGroupSummary(ModuleConstant.GROUP_RULE_SUMMARY);
return new Result<GroupPointRuleResultDTO>().ok(result);
}
/**
* 获取小组积分
* @author zhaoqifeng
* @date 2021/6/24 12:17
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.BizPointTotalDetailDTO>
*/
@PostMapping("grouppoint")
public Result<BizPointTotalDetailDTO> getGroupPoint(@RequestBody GroupPointFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GroupPointFormDTO.GroupPoint.class);
BizPointTotalDetailDTO result = bizPointTotalDetailService.getGroupPoint(formDTO);
return new Result<BizPointTotalDetailDTO>().ok(result);
}
}

9
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java

@ -126,4 +126,13 @@ public interface BizPointTotalDetailService extends BaseService<BizPointTotalDet
* @date 2021/4/21 14:05
*/
List<GroupPointRankingResultDTO> groupPointRanking(GroupPointFormDTO formDTO);
/**
* 获取小组积分
* @author zhaoqifeng
* @date 2021/6/24 12:17
* @param formDTO
* @return com.epmet.dto.BizPointTotalDetailDTO
*/
BizPointTotalDetailDTO getGroupPoint(GroupPointFormDTO formDTO);
}

2
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRuleService.java

@ -69,7 +69,7 @@ public interface PointRuleService extends BaseService<PointRuleEntity> {
**/
PointRuleEntity getByEventCodeAndCustomerId(String customerId,String eventCode);
InitPointRuleResultDTO initPointRule();
InitPointRuleResultDTO initPointRule(String customerId);
/**
* 获取小组积分规则

34
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -29,6 +30,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.BizPointTotalDetailDao;
import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.resi.group.dto.group.form.GroupPointDetailFormDTO;
import com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO;
import com.epmet.dto.result.GroupPointRankingResultDTO;
import com.epmet.entity.BizPointTotalDetailEntity;
@ -140,16 +142,20 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
*/
@Override
public GroupPointDetailResultDTO pointDetail(GroupPointFormDTO formDTO) {
Result<GroupPointDetailResultDTO> result = resiGroupOpenFeignClient.groupPointDetail(formDTO.getGroupId());
if (!result.success() || null == result.getData()) {
throw new RenException(result.getCode(), result.getMsg());
}
GroupPointDetailResultDTO detail = result.getData();
QueryWrapper<BizPointTotalDetailEntity> wrapper = new QueryWrapper<>();
wrapper.eq("BIZ_TYPE", "group")
.eq("OBJECT_ID", formDTO.getGroupId())
.eq("DEL_FLAG", NumConstant.ZERO_STR);
BizPointTotalDetailEntity entity = baseDao.selectOne(wrapper);
GroupPointDetailFormDTO groupPointDetailFormDTO = new GroupPointDetailFormDTO();
groupPointDetailFormDTO.setGroupId(formDTO.getGroupId());
groupPointDetailFormDTO.setPoint(null == entity?NumConstant.ZERO:entity.getTotalPoint());
Result<GroupPointDetailResultDTO> result = resiGroupOpenFeignClient.groupPointDetail(groupPointDetailFormDTO);
if (!result.success() || null == result.getData()) {
throw new RenException(result.getCode(), result.getMsg());
}
GroupPointDetailResultDTO detail = result.getData();
Integer increase = userPointActionLogService.getIncrease("group", formDTO.getGroupId());
detail.setIncrease(increase.toString());
if (null == entity) {
@ -215,4 +221,22 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
return list;
}
/**
* 获取小组积分
*
* @param formDTO
* @return com.epmet.dto.BizPointTotalDetailDTO
* @author zhaoqifeng
* @date 2021/6/24 12:17
*/
@Override
public BizPointTotalDetailDTO getGroupPoint(GroupPointFormDTO formDTO) {
LambdaQueryWrapper<BizPointTotalDetailEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BizPointTotalDetailEntity :: getBizType, "group")
.eq(BizPointTotalDetailEntity ::getObjectId, formDTO.getGroupId())
.eq(BizPointTotalDetailEntity ::getDelFlag, NumConstant.ZERO_STR);
BizPointTotalDetailEntity entity = baseDao.selectOne(wrapper);
return ConvertUtils.sourceToTarget(entity, BizPointTotalDetailDTO.class);
}
}

19
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRuleServiceImpl.java

@ -16,7 +16,6 @@
*/
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.common.enu.PointUnitEnum;
@ -196,14 +195,23 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
@Override
@Transactional(rollbackFor = Exception.class)
public InitPointRuleResultDTO initPointRule() {
public InitPointRuleResultDTO initPointRule(String customerId) {
//得到所有客户Id
List<CustomerDTO> customerDTOList = null;
if (StringUtils.isBlank(customerId)){
Result<List<CustomerDTO>> customerListResult = operCrmOpenFeignClient.getAllCustomerList();
log.info("initPointRule operCrmOpenFeignClient.getAllCustomerList result:{}",JSON.toJSONString(customerListResult));
if (!customerListResult.success() || CollectionUtils.isEmpty(customerListResult.getData())) {
throw new RenException("获取所有客户列表失败");
}
List<CustomerDTO> customerDTOList = customerListResult.getData();
customerDTOList = customerListResult.getData();
}else{
customerDTOList = new ArrayList<>();
CustomerDTO customerDTO = new CustomerDTO();
customerDTO.setId(customerId);
customerDTOList.add(customerDTO);
}
//获取默认规则列表
List<PointRuleDefaultEntity> ruleDefaultEntities = pointRuleDefaultDao.selectList(null);
if (CollectionUtils.isEmpty(ruleDefaultEntities)) {
@ -221,7 +229,7 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
//key :: customerId || value :: 客户规则集合
Map<String,List<PointRuleEntity>> customerRuleMap =
customerRule.stream().collect(Collectors.groupingBy(PointRuleEntity :: getCustomerId));
customerRuleMap.forEach((customerId,ruleList) -> {
customerRuleMap.forEach((cId,ruleList) -> {
if(null != ruleList){
List<String> event = new LinkedList<>(defaultEventCodeList);
//取差集,event只剩下当前客户没有的积分规则
@ -234,7 +242,7 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
entity.setCreatedTime(new Date());
entity.setUpdatedBy("");
entity.setUpdatedTime(new Date());
entity.setCustomerId(customerId);
entity.setCustomerId(cId);
insertList.add(entity);
return entity;
}).collect(Collectors.toList());
@ -281,6 +289,7 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
InitPointRuleResultDTO result = new InitPointRuleResultDTO();
result.setCustomerTotal(customerDTOList.size());
result.setInitedTotal(insertList.size());
result.setInitedDetail(JSON.toJSONString(insertList));
return result;
}

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java

@ -6,7 +6,6 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.CustomerMpDTO;
import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -96,7 +95,7 @@ public class PaCustomerController {
* @Description 查询公众号注册的客户信息列表
**/
@PostMapping("registerinfo")
public Result<PageData> registerInfo(@LoginUser TokenDto tokenDTO, @RequestBody RegisterInfoFormDTO formDTO) {
public Result<PageData> registerInfo( @RequestBody RegisterInfoFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<PageData>().ok(paCustomerService.registerInfo(formDTO));
}

9
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java

@ -31,4 +31,13 @@ public class CommonArticleListFormDTO implements Serializable {
* */
private Integer num;
/**
* 标签名称(高级配置里的参数)
* */
private String tagName;
/**
* 排除的标签名称(高级配置里的参数)
* */
private String excludeTagName;
}

38
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java

@ -23,7 +23,6 @@ import com.epmet.dto.result.GovArticleDetailResultDTO;
import com.epmet.dto.result.ArticleBannerResultDTO;
import com.epmet.dto.result.ArticleDetailResultDTO;
import com.epmet.dto.result.ArticleLatestResultDTO;
import com.epmet.dto.result.ArticleWithTagsResultDTO;
import com.epmet.entity.ArticleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -43,45 +42,45 @@ public interface ArticleDao extends BaseDao<ArticleEntity> {
/**
* 政府端查询文章详情
*
* @param articleId
* 文章id
* @param articleId 文章id
*/
GovArticleDetailResultDTO queryGovArticleDetail(String articleId);
/**
* 政府端查询文章详情-内容
*
* @param articleId
* 文章id
* @param articleId 文章id
*/
List<GovArticleContentDTO> queryGovArticleContent(String articleId);
/**
* @Description
* @param formDto
* @Description
* @author zxc
*/
Integer checkPublishArticle(ResiTagListFormDTO formDto);
/**
* 已发布列表---组织工作人员
* @author zhaoqifeng
* @date 2020/6/2 16:59
*
* @param customerId
* @param tagIdList
* @return java.util.List<com.epmet.dto.result.PublishedListResultDTO>
* @author zhaoqifeng
* @date 2020/6/2 16:59
*/
@DataFilter(tableAliases = "a", gridIdsArgName = "gridList")
List<PublishedListResultDTO> selectArticleListForAgency(@Param("customerId") String customerId, @Param("tagIdList") List<String> tagIdList, Set<String> gridList);
/**
* 已发布列表---网格工作人员
* @author zhaoqifeng
* @date 2020/6/5 16:35
*
* @param customerId
* @param tagIdList
* @param gridList
* @return java.util.List<com.epmet.dto.result.PublishedListResultDTO>
* @author zhaoqifeng
* @date 2020/6/5 16:35
*/
List<PublishedListResultDTO> selectArticleListForGrid(@Param("customerId") String customerId,
@Param("tagIdList") List<String> tagIdList,
@ -89,58 +88,61 @@ public interface ArticleDao extends BaseDao<ArticleEntity> {
/**
* 已下线文章列表
* @author zhaoqifeng
* @date 2020/6/3 15:16
*
* @param gridList
* @return java.util.List<com.epmet.dto.result.OfflineListResultDTO>
* @author zhaoqifeng
* @date 2020/6/3 15:16
*/
@DataFilter(tableAliases = "a", gridIdsArgName = "gridList")
List<OfflineListResultDTO> selectOfflineList(Set<String> gridList);
/**
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @param gridId
* @param num
* @return List<ArticleBannerResultDTO>
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @author wangc
* @date 2020.06.02 16:04
**/
List<ArticleBannerResultDTO> selectTopArticleMsg(@Param("gridId") String gridId, @Param("num") Integer num);
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端最新文章列表
* @param gridId
* @param tagName
* @param excludeTagName
* @param num
* @return List<ArticleBannerResultDTO>
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端最新文章列表
* @author wangc
* @date 2020.06.02 16:04
**/
List<ArticleLatestResultDTO> selectLatestArticleMsg(@Param("gridId")String gridId,@Param("num")Integer num);
List<ArticleLatestResultDTO> selectLatestArticleMsg(@Param("gridId") String gridId, @Param("tagName") String tagName, @Param("excludeTagName") String excludeTagName, @Param("num") Integer num);
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @param gridId
* @param tagIdList
* @return List<ArticleListResultDTO>
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @author wangc
* @date 2020.06.03 14:19
**/
List<ArticleListResultDTO> selectArticleList(@Param("gridId") String gridId, @Param("tagIdList") List<String> tagIdList);
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param gridId
* @param articleId
* @return ArticleDetailResultDTO
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @author wangc
* @date 2020.06.03 18:28
**/
ArticleDetailResultDTO selectArticleDetail(@Param("gridId") String gridId, @Param("articleId") String articleId);
/**
* @Description 根据draftId获取文章id
* @param draftId
* @Description 根据draftId获取文章id
* @author zxc
*/
String getArticleIdByDraftId(@Param("draftId") String draftId);

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -688,7 +688,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
**/
@Override
public List<ArticleLatestResultDTO> getLatestArticleList(CommonArticleListFormDTO commonArticleListFormDTO) {
return baseDao.selectLatestArticleMsg(commonArticleListFormDTO.getGridId(),
return baseDao.selectLatestArticleMsg(commonArticleListFormDTO.getGridId(),commonArticleListFormDTO.getTagName(),commonArticleListFormDTO.getExcludeTagName(),
null == commonArticleListFormDTO.getNum() || commonArticleListFormDTO.getNum() <= NumConstant.ZERO ?
NumConstant.FIVE : commonArticleListFormDTO.getNum());
}

2
epmet-module/gov-voice/gov-voice-server/src/main/resources/logback-spring.xml

@ -139,7 +139,7 @@
</appender>
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<springProfile name="local,dev,test">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>

12
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml

@ -193,9 +193,11 @@
art.TITLE AS articleTitle ,
IFNULL(artcover.IMG_URL,'') AS articleCoverImg,
art.PUBLISHER_NAME AS publishName,
art.PUBLISH_DATE AS publishDate
art.PUBLISH_DATE AS publishDate,
group_concat(tag.TAG_NAME) tags #条件筛选用
FROM
ARTICLE art
LEFT JOIN article_tags tag ON tag.ARTICLE_ID = art.ID AND tag.DEL_FLAG = '0'
LEFT JOIN (
SELECT
@ -223,6 +225,14 @@
AND
art.STATUS_FLAG = 'published'
GROUP BY art.ID
HAVING 1 = 1
<if test="tagName != null and tagName != ''">
AND FIND_IN_SET(#{tagName},tags)
</if>
<if test="excludeTagName != null and excludeTagName != ''">
AND !FIND_IN_SET(#{excludeTagName},tags)
</if>
ORDER BY art.PUBLISH_DATE DESC , art.CREATED_TIME DESC
LIMIT #{num}
</select>

2
epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java

@ -569,7 +569,7 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerDao, CustomerEn
//2021.1.25 sun 新增初始化客户积分规则和评价指标权重 start
//8.客户初始化已有的积分规则
Result<InitPointRuleResultDTO> resultPoint = epmetPointOpenFeignClient.initPointRule();
Result<InitPointRuleResultDTO> resultPoint = epmetPointOpenFeignClient.initPointRule(formDTO.getCustomerId());
if (!resultPoint.success()) {
throw new RenException(resultPoint.getCode(), resultPoint.getInternalMsg());
}

19
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/GroupPointDetailFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.resi.group.dto.group.form;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/6/24 10:50
*/
@Data
public class GroupPointDetailFormDTO implements Serializable {
private static final long serialVersionUID = 2668579587643641113L;
private String groupId;
private Integer point;
}

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java

@ -246,11 +246,11 @@ public interface ResiGroupOpenFeignClient {
* 小组积分详情
* @author zhaoqifeng
* @date 2021/4/21 16:30
* @param groupId
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO>
*/
@PostMapping("resi/group/group/groupPointDetail/{groupId}")
Result<GroupPointDetailResultDTO> groupPointDetail(@PathVariable String groupId);
@PostMapping("resi/group/group/groupPointDetail")
Result<GroupPointDetailResultDTO> groupPointDetail(@RequestBody GroupPointDetailFormDTO formDTO);
/**
* @Description 查询话题的创建者

7
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java

@ -14,6 +14,7 @@ import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.HashMap;
import java.util.List;
@ -190,14 +191,14 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
/**
* 小组积分详情
*
* @param groupId
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO>
* @author zhaoqifeng
* @date 2021/4/21 16:30
*/
@Override
public Result<GroupPointDetailResultDTO> groupPointDetail(String groupId) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", groupId);
public Result<GroupPointDetailResultDTO> groupPointDetail(GroupPointDetailFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", formDTO);
}
@Override

6
epmet-module/resi-group/resi-group-server/pom.xml

@ -124,6 +124,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-point-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java

@ -558,12 +558,12 @@ public class ResiGroupController {
* 小组积分详情
* @author zhaoqifeng
* @date 2021/4/21 16:22
* @param groupId
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO>
*/
@PostMapping("groupPointDetail/{groupId}")
public Result<GroupPointDetailResultDTO> groupPointDetail(@PathVariable String groupId) {
return new Result<GroupPointDetailResultDTO>().ok(resiGroupService.groupPointDetail(groupId));
@PostMapping("groupPointDetail")
public Result<GroupPointDetailResultDTO> groupPointDetail(@RequestBody GroupPointDetailFormDTO formDTO) {
return new Result<GroupPointDetailResultDTO>().ok(resiGroupService.groupPointDetail(formDTO));
}
/**

37
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java

@ -19,15 +19,20 @@ package com.epmet.modules.group.redis;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.feign.EpmetPointOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.modules.constant.ResiGroupRedisKeys;
import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.modules.group.service.ResiGroupStatisticalService;
import com.epmet.modules.support.GroupLevelUtils;
import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
@ -64,6 +69,8 @@ public class ResiGroupRedis {
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private EpmetPointOpenFeignClient epmetPointOpenFeignClient;
public void delete(Object[] ids) {
@ -92,16 +99,37 @@ public class ResiGroupRedis {
public ResiGroupInfoRedisDTO get(String groupId){
if(StringUtils.isNotBlank(groupId)){
GroupPointFormDTO groupPointFormDTO = new GroupPointFormDTO();
groupPointFormDTO.setGroupId(groupId);
Result<BizPointTotalDetailDTO> bizPointTotalDetailResult = epmetPointOpenFeignClient.getGroupPoint(groupPointFormDTO);
if (!bizPointTotalDetailResult.success()) {
throw new RenException(bizPointTotalDetailResult.getCode(), bizPointTotalDetailResult.getMsg());
}
Integer level = 1;
if (null != bizPointTotalDetailResult.getData()) {
level = GroupLevelUtils.getLevel(bizPointTotalDetailResult.getData().getTotalPoint());
if (null == level) {
level = 1;
}
}
ResiGroupDTO groupMySql = groupService.get(groupId);
if (!level.equals(groupMySql.getLevel())) {
ResiGroupDTO dto = new ResiGroupDTO();
dto.setId(groupMySql.getId());
dto.setLevel(level);
groupService.update(dto);
}
ResiGroupInfoRedisDTO groupCache = (ResiGroupInfoRedisDTO)
redisUtils.get(ResiGroupRedisKeys.getResiGroupInfoKey(groupId));
if(null == groupCache || StringUtils.isBlank(groupCache.getGroupId()) || null == groupCache.getGroupStatisticalInfo()){
//如果缓存中没有该组信息,从数据库中查询并放入缓存
ResiGroupDTO groupMySql = groupService.get(groupId);
if(null != groupMySql && StringUtils.isNotBlank(groupMySql.getId())){
if(StringUtils.isNotBlank(groupMySql.getId())){
ResiGroupInfoRedisDTO groupRedis = ConvertUtils.sourceToTarget(groupMySql,ResiGroupInfoRedisDTO.class);
groupRedis.setGroupId(groupMySql.getId());
groupRedis.setGroupState(groupMySql.getState());
groupRedis.setLevel("LV" + groupMySql.getLevel());
groupRedis.setLevel("LV" + level);
Map<String,Object> param = new HashMap<>();
param.put(TopicConstant.RESI_GROUP_ID,groupId);
param.put(FieldConstant.DEL_FLAG, NumConstant.ZERO_STR);
@ -127,6 +155,9 @@ public class ResiGroupRedis {
//返回数据
return groupRedis;
}
} else {
groupCache.setLevel("LV" + level);
set(groupCache);
}
return groupCache;
}

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java

@ -404,10 +404,10 @@ public interface ResiGroupService extends BaseService<ResiGroupEntity> {
* 小组积分详情
* @author zhaoqifeng
* @date 2021/4/21 16:22
* @param groupId
* @param formDTO
* @return com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO
*/
GroupPointDetailResultDTO groupPointDetail(String groupId);
GroupPointDetailResultDTO groupPointDetail(GroupPointDetailFormDTO formDTO);
/**
* 小组近段时间实现的成就列表

20
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -1318,20 +1318,30 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
/**
* 小组积分详情
*
* @param groupId
* @param formDTO
* @return com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO
* @author zhaoqifeng
* @date 2021/4/21 16:22
*/
@Override
public GroupPointDetailResultDTO groupPointDetail(String groupId) {
public GroupPointDetailResultDTO groupPointDetail(GroupPointDetailFormDTO formDTO) {
GroupPointDetailResultDTO result = new GroupPointDetailResultDTO();
ResiGroupEntity group = baseDao.selectById(groupId);
Integer nextLevel = group.getLevel() + 1;
ResiGroupEntity group = baseDao.selectById(formDTO.getGroupId());
Integer level = GroupLevelUtils.getLevel(formDTO.getPoint());
if (null == level) {
level = 1;
}
Integer nextLevel = level + 1;
Integer nextLevelPoint = GroupLevelUtils.getPoint(nextLevel);
result.setLevel("LV" + group.getLevel().toString());
result.setLevel("LV" + level.toString());
result.setNextLevel("LV" + nextLevel.toString());
result.setNextLevelPoint(nextLevelPoint.toString());
if (!level.equals(group.getLevel())) {
ResiGroupEntity entity = new ResiGroupEntity();
entity.setId(group.getId());
entity.setLevel(level);
baseDao.updateById(entity);
}
return result;
}

Loading…
Cancel
Save