提交 c826e073 编写于 作者: wangxinxu's avatar wangxinxu

日活统计

上级 4a45d2a8
流水线 #56594 已取消 于阶段
package com.pica.cloud.account.account.server.job;
import com.pica.cloud.account.account.server.mapper.DoctorMapper;
import com.pica.cloud.account.account.server.model.DoctorHospitalReportModel;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;
/**
* Created on 2019/12/16 17:53
* author:crs
* Description:记录doctor修改记录日志
*/
//@JobHandler(value = "DoctorLogHandler")
//@Component
//public class DoctorLogHandler extends IJobHandler {
//
// @Autowired
// private DoctorMapper doctorMapper;
//
// @Override
// public ReturnT<String> execute(String s) throws Exception {
// XxlJobLogger.log("doctorLogRecord start-----");
@JobHandler(value = "DoctorLogHandler")
@Component
public class DoctorLogHandler extends IJobHandler {
@Autowired
private DoctorMapper doctorMapper;
@Override
public ReturnT<String> execute(String s) throws Exception {
XxlJobLogger.log("doctorLogRecord start-----");
// 获取当日登录的医生数和机构数
DoctorHospitalReportModel doctorHospitalReport = new DoctorHospitalReportModel();
Date loginTime = new Date();
// 1. 转成带系统时区的时间,减去1天,然后截断到当天0点
LocalDateTime yesterdayZero = LocalDateTime.ofInstant(loginTime.toInstant(), ZoneId.systemDefault())
.minusDays(1) // 前一天
.truncatedTo(ChronoUnit.DAYS); // 00:00:00
// 2. 转回 Date 对象
Date yesterdayZeroDate = Date.from(yesterdayZero.atZone(ZoneId.systemDefault()).toInstant());
doctorHospitalReport = doctorMapper.getDoctorCount(yesterdayZeroDate);
// 1. 获取前一天 0点时间
Calendar cal = Calendar.getInstance();
cal.setTime(loginTime);
cal.add(Calendar.DATE, -1); // 减1天
// 2. 格式化成 yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String yesterdayDate = sdf.format(cal.getTime());
// Integer rows = doctorMapper.updateDoctorModifyRecord();
// XxlJobLogger.log("doctorLogRecord end-----"+rows);
// return SUCCESS;
// }
//}
doctorHospitalReport.setDateYmd(yesterdayDate);
Integer rows = doctorMapper.insertDoctorHospitalReport(doctorHospitalReport);
XxlJobLogger.log("doctorLogRecord end-----"+rows);
return SUCCESS;
}
}
......@@ -4,6 +4,7 @@ package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.common.resp.DoctorUnionResp;
import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.entity.PICAPDoctor;
import com.pica.cloud.account.account.server.model.DoctorHospitalReportModel;
import com.pica.cloud.account.account.server.model.WechatInfoDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
......@@ -130,4 +131,8 @@ public interface DoctorMapper {
String selectIdByOpenId(String openId);
int updateDoctorLastLoginTime(@Param("userId") Integer userId);
DoctorHospitalReportModel getDoctorCount(@Param("loginTime") Date loginTime);
int insertDoctorHospitalReport(DoctorHospitalReportModel model);
}
\ No newline at end of file
package com.pica.cloud.account.account.server.model;
public class DoctorHospitalReportModel {
private Integer doctorCount;
private Integer hospitalCount;
// 日期
private String dateYmd;
public Integer getDoctorCount() {
return doctorCount;
}
public void setDoctorCount(Integer doctorCount) {
this.doctorCount = doctorCount;
}
public Integer getHospitalCount() {
return hospitalCount;
}
public void setHospitalCount(Integer hospitalCount) {
this.hospitalCount = hospitalCount;
}
public String getDateYmd() {
return dateYmd;
}
public void setDateYmd(String dateYmd) {
this.dateYmd = dateYmd;
}
}
......@@ -1111,4 +1111,20 @@
SET last_login_time = now()
where id = #{userId}
</update>
<select id="getDoctorCount" resultType="com.pica.cloud.account.account.server.model.DoctorHospitalReportModel" parameterType="java.util.Map">
select count(id) as doctorCount, count(distinct hospital_id) as hospitalCount
from p_doctor
where last_login_time >= #{loginTime}
</select>
<insert id="insertDoctorHospitalReport" parameterType="com.pica.cloud.account.account.server.model.DoctorHospitalReportModel">
insert into doctor_hospital_report (doctor_count, hospital_count, date_ymd, delete_flag,
create_id, create_time, modified_id,
modified_time
)
values (#{doctorCount,jdbcType=INTEGER}, #{hospitalCount,jdbcType=INTEGER}, #{dateYmd,jdbcType=VARCHAR},
1, 0, now(), 0, now()
)
</insert>
</mapper>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册