15 changed files with 232 additions and 24 deletions
			
			
		| @ -0,0 +1,106 @@ | |||||
|  | package com.epmet.controller; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.tools.constant.NumConstant; | ||||
|  | import com.epmet.commons.tools.constant.StrConstant; | ||||
|  | import com.epmet.commons.tools.enums.BizTypeEnum; | ||||
|  | import com.epmet.commons.tools.exception.EpmetErrorCode; | ||||
|  | import com.epmet.commons.tools.redis.RedisKeys; | ||||
|  | import com.epmet.commons.tools.redis.RedisUtils; | ||||
|  | import com.epmet.commons.tools.utils.DateUtils; | ||||
|  | import com.epmet.commons.tools.utils.Result; | ||||
|  | import com.epmet.dto.StatsFormDTO; | ||||
|  | import com.epmet.dto.extract.form.ExtractOriginFormDTO; | ||||
|  | import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO; | ||||
|  | import com.epmet.service.StatsProjectService; | ||||
|  | import com.epmet.service.evaluationindex.extract.toscreen.ScreenGrassrootsGovernDataAbsorptionService; | ||||
|  | import lombok.extern.slf4j.Slf4j; | ||||
|  | import org.apache.commons.lang3.StringUtils; | ||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||
|  | import org.springframework.web.bind.annotation.*; | ||||
|  | 
 | ||||
|  | import java.util.LinkedHashSet; | ||||
|  | import java.util.List; | ||||
|  | import java.util.Set; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * desc:市北数字社区 单独部署 job入口 【用户积分排名及项目状态数据】 | ||||
|  |  */ | ||||
|  | @RequestMapping("shibeiICJob") | ||||
|  | @RestController | ||||
|  | @Slf4j | ||||
|  | public class ShiBeiICJobController { | ||||
|  |     @Autowired | ||||
|  |     private ScreenGrassrootsGovernDataAbsorptionService screenGrassrootsGovernDataAbsorptionService; | ||||
|  |     @Autowired | ||||
|  |     private StatsProjectService statsProjectService; | ||||
|  |     @Autowired | ||||
|  |     private RedisUtils redisUtils; | ||||
|  | 
 | ||||
|  |     @PostMapping("userPointAndProjectStatus/{bizType}") | ||||
|  |     public Result<String> userPointAndProjectStatus(@PathVariable("bizType") String bizType, @RequestBody ExtractOriginFormDTO formDTO) { | ||||
|  |         if (StringUtils.isBlank(formDTO.getCustomerId())){ | ||||
|  |             return new Result<String>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误cid不能为空"); | ||||
|  |         } | ||||
|  |         long start = System.currentTimeMillis(); | ||||
|  |         Set<String> result = new LinkedHashSet<>(); | ||||
|  |         if (StringUtils.isNotBlank(formDTO.getStartDate()) && StringUtils.isNotBlank(formDTO.getEndDate())) { | ||||
|  |             List<String> daysBetween = DateUtils.getDaysBetween(formDTO.getStartDate(), formDTO.getEndDate()); | ||||
|  |             daysBetween.forEach(d -> { | ||||
|  |                 executeMethod(bizType, formDTO.getCustomerId(), d); | ||||
|  |                 result.add(d); | ||||
|  |                 redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("userPointAndProjectStatus-"+bizType), formDTO.getCustomerId(), result, 3 * 24 * 60 * 60L); | ||||
|  |             }); | ||||
|  |         } else { | ||||
|  |             if (StringUtils.isBlank(formDTO.getDateId())){ | ||||
|  |                 formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE)); | ||||
|  |             } | ||||
|  |             executeMethod(bizType, formDTO.getCustomerId(), formDTO.getDateId()); | ||||
|  |             result.add(formDTO.getDateId()); | ||||
|  |             redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("userPointAndProjectStatus-"+bizType), formDTO.getCustomerId(), result, 3 * 24 * 60 * 60L); | ||||
|  |         } | ||||
|  |         long end = System.currentTimeMillis(); | ||||
|  |         long l = (end - start) / 1000; | ||||
|  |         return new Result<String>().ok("userPointAndProjectStatus耗时-"+bizType + l + "s"); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     private void executeMethod(String bizType, String customerId, String d) { | ||||
|  |         if (bizType.equals(BizTypeEnum.USER.getType())){ | ||||
|  |             this.extractUserPointData(customerId, d); | ||||
|  |         } | ||||
|  |         if (bizType.equals(BizTypeEnum.PROJECT.getType())) { | ||||
|  |             this.agencyProjectStats(customerId, d); | ||||
|  |         } | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * @Author sun | ||||
|  |      * @Description 数据-项目-机关日(月)统计 | ||||
|  |      **/ | ||||
|  |     private Result agencyProjectStats(String customerId, String dateId) { | ||||
|  |         try { | ||||
|  |             if (StringUtils.isNotBlank(dateId)) { | ||||
|  |                 dateId = DateUtils.format(DateUtils.parseDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); | ||||
|  |             } | ||||
|  |             StatsFormDTO formDTO = new StatsFormDTO(); | ||||
|  |             formDTO.setCustomerId(customerId); | ||||
|  |             formDTO.setDate(dateId); | ||||
|  | 
 | ||||
|  |             statsProjectService.agencyProjectStats(formDTO); | ||||
|  |         } catch (Exception e) { | ||||
|  |             log.error("市北-项目状态数据写入失败,参数为:{}" + customerId + StrConstant.HYPHEN + dateId, e); | ||||
|  |         } | ||||
|  |         return new Result(); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     private void extractUserPointData(String customerId, String dateId) { | ||||
|  |         try { | ||||
|  |             //基层治理 - 热心市民 screen_party_user_rank_data
 | ||||
|  |             ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO(); | ||||
|  |             param.setCustomerId(customerId); | ||||
|  |             param.setDateId(dateId); | ||||
|  |             screenGrassrootsGovernDataAbsorptionService.userScoreDataHub(param); | ||||
|  |         } catch (Exception e) { | ||||
|  |             log.error("市北-热心市民/党员得分数据写入失败,参数为:{}" + customerId + StrConstant.HYPHEN + dateId, e); | ||||
|  |         } | ||||
|  |     } | ||||
|  | } | ||||
| @ -0,0 +1,33 @@ | |||||
|  | package com.epmet.task.ic; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | import com.alibaba.fastjson.JSON; | ||||
|  | import com.epmet.commons.tools.enums.BizTypeEnum; | ||||
|  | import com.epmet.commons.tools.utils.Result; | ||||
|  | import com.epmet.dto.extract.form.ExtractOriginFormDTO; | ||||
|  | import com.epmet.feign.DataStatisticalOpenFeignClient; | ||||
|  | import com.epmet.task.ITask; | ||||
|  | import lombok.extern.slf4j.Slf4j; | ||||
|  | import org.apache.commons.lang3.StringUtils; | ||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||
|  | import org.springframework.stereotype.Component; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * desc:数字社区私有化部署 任务之一还有【autoEvaluateDemandTask,statsDemandTask,dailyStatisticalVoteTask,IcPrivateDeploySupportUserPointTask】 | ||||
|  |  */ | ||||
|  | @Slf4j | ||||
|  | @Component("icPrivateDeploySupportProjectTask") | ||||
|  | public class IcPrivateDeploySupportProjectTask implements ITask { | ||||
|  |     @Autowired | ||||
|  |     private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; | ||||
|  | 
 | ||||
|  |     @Override | ||||
|  |     public void run(String params) { | ||||
|  |         ExtractOriginFormDTO formDTO = new ExtractOriginFormDTO(); | ||||
|  |         if (StringUtils.isNotBlank(params)) { | ||||
|  |             formDTO = JSON.parseObject(params, ExtractOriginFormDTO.class); | ||||
|  |         } | ||||
|  |         Result result = dataStatisticalOpenFeignClient.userPointAndProjectStatus(BizTypeEnum.PROJECT.getType(), formDTO); | ||||
|  |         log.info("icPrivateDeploySupportProjectTask excute end,param:{},result:{}",params,result); | ||||
|  |     } | ||||
|  | } | ||||
| @ -0,0 +1,33 @@ | |||||
|  | package com.epmet.task.ic; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | import com.alibaba.fastjson.JSON; | ||||
|  | import com.epmet.commons.tools.enums.BizTypeEnum; | ||||
|  | import com.epmet.commons.tools.utils.Result; | ||||
|  | import com.epmet.dto.extract.form.ExtractOriginFormDTO; | ||||
|  | import com.epmet.feign.DataStatisticalOpenFeignClient; | ||||
|  | import com.epmet.task.ITask; | ||||
|  | import lombok.extern.slf4j.Slf4j; | ||||
|  | import org.apache.commons.lang3.StringUtils; | ||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||
|  | import org.springframework.stereotype.Component; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * desc:数字社区私有化部署 任务之一还有【autoEvaluateDemandTask,statsDemandTask,dailyStatisticalVoteTask,icPrivateDeploySupportProjectTask】 | ||||
|  |  */ | ||||
|  | @Slf4j | ||||
|  | @Component("icPrivateDeploySupportUserPointTask") | ||||
|  | public class IcPrivateDeploySupportUserPointTask implements ITask { | ||||
|  |     @Autowired | ||||
|  |     private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; | ||||
|  | 
 | ||||
|  |     @Override | ||||
|  |     public void run(String params) { | ||||
|  |         ExtractOriginFormDTO formDTO = new ExtractOriginFormDTO(); | ||||
|  |         if (StringUtils.isNotBlank(params)) { | ||||
|  |             formDTO = JSON.parseObject(params, ExtractOriginFormDTO.class); | ||||
|  |         } | ||||
|  |         Result result = dataStatisticalOpenFeignClient.userPointAndProjectStatus(BizTypeEnum.USER.getType(), formDTO); | ||||
|  |         log.info("icPrivateDeploySupportUserPointTask excute end,param:{},result:{}",params,result); | ||||
|  |     } | ||||
|  | } | ||||
					Loading…
					
					
				
		Reference in new issue