From 7a1d1ae5f7bb4fce96fb7a134d755765cd3c4e4a Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 26 十月 2023 10:51:50 +0800 Subject: [PATCH] 添加统计日志 --- server/src/main/java/doumeemes/task/ScheduleTool.java | 4 +++- server/src/main/java/doumeemes/core/annotation/trace/TraceInterceptor.java | 2 +- server/src/main/java/doumeemes/dao/business/model/BizLingyang.java | 2 ++ server/src/main/java/doumeemes/core/utils/DateUtil.java | 10 ++++++++++ server/src/main/java/doumeemes/config/shiro/ShiroConfig.java | 1 + server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java | 18 ++++++++++++------ server/src/main/java/doumeemes/api/system/SystemController.java | 13 +++++++++++++ server/src/main/java/doumeemes/service/business/BizLingyangService.java | 4 +++- 8 files changed, 45 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/doumeemes/api/system/SystemController.java b/server/src/main/java/doumeemes/api/system/SystemController.java index 61dc7cb..f52d886 100644 --- a/server/src/main/java/doumeemes/api/system/SystemController.java +++ b/server/src/main/java/doumeemes/api/system/SystemController.java @@ -7,12 +7,14 @@ import doumeemes.core.model.ApiResponse; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.utils.Constants; +import doumeemes.core.utils.DateUtil; import doumeemes.dao.business.dto.CompanyInitDataDTO; import doumeemes.dao.ext.dto.WxLoginDTO; import doumeemes.dao.ext.dto.WxLoginOutDTO; import doumeemes.dao.ext.vo.WxLoginVO; import doumeemes.dao.system.dto.LoginDTO; import doumeemes.dao.system.dto.UpdatePwdDto; +import doumeemes.service.business.BizLingyangService; import doumeemes.service.system.SystemLoginService; import doumeemes.service.system.WxLoginService; import io.swagger.annotations.Api; @@ -31,6 +33,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.Iterator; /** @@ -53,12 +56,22 @@ @Autowired private WxLoginService wxLoginService; + @Autowired + BizLingyangService bizLingyangService; @PreventRepeat(limit = 10, lockTime = 10000) @ApiOperation("鐧诲綍") @PostMapping("/login") public ApiResponse<String> login (@Validated @RequestBody LoginDTO dto, HttpServletRequest request) { return ApiResponse.success(systemLoginService.loginByPassword(dto, request)); } + @PreventRepeat(limit = 10, lockTime = 10000) + @ApiOperation("鎵嬪姩鍚屾鏌愬ぉ鐨勬暟鎹�(yyyy-MM-dd HH:mm:ss)") + @GetMapping("/syncLingCountData") + public ApiResponse<String> syncLingCountData (@RequestParam String dateStr, HttpServletRequest request) { + Date date = DateUtil.getDateFromString(dateStr); + bizLingyangService.syncLingData(date); + return ApiResponse.success("鎿嶄綔瀹屾垚"); + } @PreventRepeat(limit = 10, lockTime = 10000) @ApiOperation("骞冲彴鐧诲綍") diff --git a/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java b/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java index 3f1eeba..b5fe363 100644 --- a/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java +++ b/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java @@ -90,6 +90,7 @@ Map<String, String> map = new LinkedHashMap<>(); // 璺緞鎷︽埅閰嶇疆 map.put("/system/login", "anon"); + map.put("/system/syncLingCountData", "anon"); map.put("/system/wxLogin", "anon"); map.put("/system/wxProgramLogin", "anon"); map.put("/system/wxAccountLogin", "anon"); diff --git a/server/src/main/java/doumeemes/core/annotation/trace/TraceInterceptor.java b/server/src/main/java/doumeemes/core/annotation/trace/TraceInterceptor.java index 7c12213..08d2c43 100644 --- a/server/src/main/java/doumeemes/core/annotation/trace/TraceInterceptor.java +++ b/server/src/main/java/doumeemes/core/annotation/trace/TraceInterceptor.java @@ -89,7 +89,7 @@ traceLog.setUserRealname(userInfo.getRealname()); traceLog.setUserRoles(StringUtils.join(userInfo.getRoles(), ",")); traceLog.setUserPermissions(StringUtils.join(userInfo.getPermissions(), ",")); - traceLog.setCompanyId(userInfo.getCompanyUser()!=null?userInfo.getCompanyUser().getId():null); + traceLog.setCompanyUserId(userInfo.getCompanyUser()!=null?userInfo.getCompanyUser().getId():null); traceLog.setCompanyId(userInfo.getCompany()!=null?userInfo.getCompany().getId():null); } // 鎿嶄綔淇℃伅 diff --git a/server/src/main/java/doumeemes/core/utils/DateUtil.java b/server/src/main/java/doumeemes/core/utils/DateUtil.java index 10d7411..93ffbee 100644 --- a/server/src/main/java/doumeemes/core/utils/DateUtil.java +++ b/server/src/main/java/doumeemes/core/utils/DateUtil.java @@ -2329,6 +2329,16 @@ return new Timestamp(System.currentTimeMillis()); } } + public static Date getSdfShortDateFromString(String strDate) { + if (StringUtils.isEmpty(strDate)) { + return new Date(System.currentTimeMillis()); + } + try { + return sdfShort.parse(strDate); + } catch (Exception ex) { + return new Timestamp(System.currentTimeMillis()); + } + } // ----------------------------------------------------------------------- diff --git a/server/src/main/java/doumeemes/dao/business/model/BizLingyang.java b/server/src/main/java/doumeemes/dao/business/model/BizLingyang.java index 34b2611..f057af6 100644 --- a/server/src/main/java/doumeemes/dao/business/model/BizLingyang.java +++ b/server/src/main/java/doumeemes/dao/business/model/BizLingyang.java @@ -1,5 +1,6 @@ package doumeemes.dao.business.model; +import com.baomidou.mybatisplus.annotation.TableField; import doumeemes.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -58,6 +59,7 @@ private Integer actionTimes; @ApiModelProperty(value = "鐧婚檰娆℃暟", example = "1") @ExcelColumn(name="鐧婚檰娆℃暟") + @TableField(exist = false) private Integer loginTimes; } diff --git a/server/src/main/java/doumeemes/service/business/BizLingyangService.java b/server/src/main/java/doumeemes/service/business/BizLingyangService.java index 9333920..fea3e4e 100644 --- a/server/src/main/java/doumeemes/service/business/BizLingyangService.java +++ b/server/src/main/java/doumeemes/service/business/BizLingyangService.java @@ -3,6 +3,8 @@ import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.dao.business.model.BizLingyang; + +import java.util.Date; import java.util.List; /** @@ -54,7 +56,7 @@ * @param bizLingyangs 瀹炰綋闆� */ void updateByIdInBatch(List<BizLingyang> bizLingyangs); - void syncLingData(); + void syncLingData(Date data); /** * 涓婚敭鏌ヨ diff --git a/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java index 230f60a..d4ae173 100644 --- a/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java +++ b/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java @@ -5,6 +5,7 @@ import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; +import doumeemes.core.utils.DateUtil; import doumeemes.core.utils.Utils; import doumeemes.dao.business.BizLingyangMapper; import doumeemes.dao.business.model.BizLingyang; @@ -85,27 +86,32 @@ } @Override @Transactional - public void syncLingData() { - Date date = new Date(); + public void syncLingData(Date date) { +// Date date = new Date(); QueryWrapper<SystemLoginLog> param = new QueryWrapper<>(); MPJLambdaWrapper<SystemLoginLog> mpjLambdaWrapper = new MPJLambdaWrapper<>(); mpjLambdaWrapper.selectAll(SystemLoginLog.class); mpjLambdaWrapper.leftJoin(Company.class,Company::getId,SystemLoginLog::getCompanyId); mpjLambdaWrapper.leftJoin(CompanyUser.class,CompanyUser::getId,SystemLoginLog::getCompanyUserId); - mpjLambdaWrapper.select("(select count(b.id) from system_trace_log b where b.company_id=t1.id and b.company_user_id=t2.id) as logNum"); + mpjLambdaWrapper.select("(select count(b.id) from system_trace_log b where to_days(b.OPERA_TIME) =to_days('"+ DateUtil.getPlusTime2(date) +"') and b.company_id=t1.id and b.company_user_id=t2.id) as logNum"); mpjLambdaWrapper.selectAs( CompanyUser::getLingyangUserid,SystemLoginLog::getLingyangUserid); mpjLambdaWrapper.selectAs(Company::getCreditCode, SystemLoginLog::getCompanyCode); mpjLambdaWrapper.eq(SystemLoginLog::getSuccess, Constants.ONE); mpjLambdaWrapper.eq(SystemLoginLog::getOrgin, Constants.USER_LOGIN_ORIGIN.lingyang); - mpjLambdaWrapper.apply("to_days(login_time) =to_days(now())" ); + mpjLambdaWrapper.apply("to_days(login_time) =to_days('"+ DateUtil.getPlusTime2(date) +"')" ); mpjLambdaWrapper.select("count(t.id) as num"); mpjLambdaWrapper.groupBy(SystemLoginLog::getUserId); List<SystemLoginLog> list = systemLoginLogJoinMapper.selectJoinList(SystemLoginLog.class,mpjLambdaWrapper); + if(list!=null && list.size()>0){ + //鍒犻櫎鑰佺殑 + bizLingyangMapper.delete(new QueryWrapper<BizLingyang>() + .lambda().apply("to_days(create_time) =to_days('"+ DateUtil.getPlusTime2(date) +"')" ) + ); for(SystemLoginLog log : list){ BizLingyang model = new BizLingyang(); model.setCompanyId(log.getCompanyId()); - model.setCreateTime(new Date()); + model.setCreateTime(date); model.setUserPhone(log.getLoginUsername()); model.setCreditCode(log.getCompanyCode()); try { @@ -114,7 +120,7 @@ } model.setAppKey(systemDictDataBiz.queryByCode(Constants.LINGYANG_PARAM,Constants.LINGYANG_APPKEY ).getCode()); - model.setActionTimes(log.getLogNum()); + model.setActionTimes(log.getNum() + log.getLogNum()); model.setLoginTimes(log.getNum()); bizLingyangMapper.insert(model); } diff --git a/server/src/main/java/doumeemes/task/ScheduleTool.java b/server/src/main/java/doumeemes/task/ScheduleTool.java index 66fca74..138422a 100644 --- a/server/src/main/java/doumeemes/task/ScheduleTool.java +++ b/server/src/main/java/doumeemes/task/ScheduleTool.java @@ -13,6 +13,8 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.util.Date; + /** * 瀹氭椂浠诲姟 * @author jiangping @@ -107,7 +109,7 @@ public void syncLingData() throws Exception { System.out.println("姣忓ぉ瀹氭椂缁熻缇氱緤鏁版嵁淇℃伅--------Begin------"); //TODO--------------姣忓ぉ瀹氭椂缁熻缇氱緤鏁版嵁淇℃伅------------ - bizLingyangService.syncLingData(); + bizLingyangService.syncLingData(new Date()); System.out.println("姣忓ぉ瀹氭椂缁熻缇氱緤鏁版嵁淇℃伅--------end------"); } -- Gitblit v1.9.3