jiangping
2023-10-26 5a4e4f0ac1e40f45ce4e78b1ae57637c84a64fc7
添加统计日志
已修改4个文件
62 ■■■■■ 文件已修改
server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/task/ScheduleTool.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java
@@ -58,6 +58,9 @@
    @TableField(exist = false)
    private String  companyUserName;
    @TableField(exist = false)
    private Integer rootDepartId;
    @ApiModelProperty(value = "登录用户名")
    @ExcelColumn(name="登录用户名")
    private String loginUsername;
server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java
@@ -8,6 +8,7 @@
import doumeemes.core.utils.DateUtil;
import doumeemes.core.utils.Utils;
import doumeemes.dao.business.BizLingyangMapper;
import doumeemes.dao.business.CompanyUserMapper;
import doumeemes.dao.business.model.BizLingyang;
import doumeemes.dao.business.model.Company;
import doumeemes.dao.business.model.CompanyUser;
@@ -18,6 +19,8 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import doumeemes.service.business.CompanyUserService;
import doumeemes.service.ext.CompanyUserExtService;
import doumeemes.service.system.SystemLoginLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
@@ -38,6 +41,9 @@
    @Autowired
    private BizLingyangMapper bizLingyangMapper;
    @Autowired
    @Lazy
    private CompanyUserMapper companyUserMapper;
    @Autowired
    @Lazy
    private SystemDictDataBiz systemDictDataBiz;
@@ -93,6 +99,53 @@
        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 to_days(b.OPERA_TIME) =to_days('"+ DateUtil.getPlusTime2(date) +"') and b.company_id=t1.id ) as logNum");
        mpjLambdaWrapper.selectAs( CompanyUser::getLingyangUserid,SystemLoginLog::getLingyangUserid);
        mpjLambdaWrapper.selectAs( CompanyUser::getRootDepartId,SystemLoginLog::getRootDepartId);
        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('"+ DateUtil.getPlusTime2(date) +"')" );
        mpjLambdaWrapper.select("count(t.id) as num");
        mpjLambdaWrapper.groupBy(SystemLoginLog::getCompanyId);
        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){
                CompanyUser user = new CompanyUser();
                user.setDeleted(Constants.ZERO);
                user.setRootDepartId(log.getRootDepartId());
                user = companyUserMapper.selectOne(new QueryWrapper<>(user).lambda().orderByDesc(CompanyUser::getIsMaster).last("limit 1" ));
                BizLingyang model = new BizLingyang();
                model.setCompanyId(log.getCompanyId());
                model.setCreateTime(date);
                model.setUserPhone(user !=null? user.getPhone():log.getLoginUsername());
                model.setCreditCode(log.getCompanyCode());
                try {
                    model.setUserId(user !=null?Long.parseLong(user.getLingyangUserid()):Long.parseLong(log.getLingyangUserid()));
                }catch (Exception e){
                }
                model.setAppKey(systemDictDataBiz.queryByCode(Constants.LINGYANG_PARAM,Constants.LINGYANG_APPKEY ).getCode());
                model.setActionTimes(log.getNum() + log.getLogNum());
                model.setLoginTimes(log.getNum());
                bizLingyangMapper.insert(model);
            }
        }
    }
//    @Override
    @Transactional
    public void   syncLingDataGroupByUser(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 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);
server/src/main/java/doumeemes/task/ScheduleTool.java
@@ -104,8 +104,8 @@
     * 每天定时统计羚羊数据信息
     * @throws Exception
     */
//    @Scheduled(cron="0 59 23 * * ?")
    @Scheduled(fixedDelay = 1000 * 60 * 60 * 1)
    @Scheduled(cron="0 59 23 * * ?")
//    @Scheduled(fixedDelay = 1000 * 60 * 60 * 1)
    public void syncLingData() throws Exception {
        System.out.println("每天定时统计羚羊数据信息--------Begin------");
        //TODO--------------每天定时统计羚羊数据信息------------
server/src/main/resources/application.yml
@@ -9,7 +9,7 @@
#  application:
#  name: doumeemes
  profiles:
    active: standardPro
    active: standardLingyang
  # JSON返回配置
  jackson:
    # 默认时区