init
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package com.newyetai.recruit.eventtrack.controller;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import com.newyetai.common.AlitaResult;
|
||||
import com.newyetai.tkmybatis.pojo.Page;
|
||||
import com.newyetai.recruit.eventtrack.dto.*;
|
||||
import com.newyetai.recruit.eventtrack.service.EventTrackService;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@Api(tags = " 埋点")
|
||||
@RestController
|
||||
@RequestMapping("/event_track")
|
||||
public class EventTrackController {
|
||||
|
||||
@Autowired
|
||||
private EventTrackService eventTrackService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@ApiOperation(" 埋点-创建")
|
||||
public AlitaResult<EventTrackDTO> create(@RequestBody EventTrackOperatorDTO operatorDTO) {
|
||||
return AlitaResult.success(eventTrackService.create(operatorDTO));
|
||||
}
|
||||
|
||||
@PutMapping("/modify")
|
||||
@ApiOperation(" 埋点-修改")
|
||||
public AlitaResult<EventTrackDTO> modify(@RequestBody EventTrackOperatorDTO operatorDTO) {
|
||||
return AlitaResult.success(eventTrackService.modify(operatorDTO));
|
||||
}
|
||||
|
||||
@DeleteMapping("{id}")
|
||||
@ApiOperation(" 埋点-删除")
|
||||
public AlitaResult<EventTrackDTO> delete(@PathVariable("id") Long id) {
|
||||
return AlitaResult.success(eventTrackService.delete(id));
|
||||
}
|
||||
|
||||
@GetMapping("{id}")
|
||||
@ApiOperation(" 埋点-查询单个")
|
||||
public AlitaResult<EventTrackDTO> findById(@PathVariable("id") Long id) {
|
||||
return AlitaResult.success(eventTrackService.findById(id));
|
||||
}
|
||||
|
||||
@GetMapping("list")
|
||||
@ApiOperation(" 埋点-列表查询")
|
||||
public AlitaResult<List<EventTrackDTO>> list(EventTrackQueryDTO queryDTO) {
|
||||
return AlitaResult.success(eventTrackService.list(queryDTO));
|
||||
}
|
||||
|
||||
@GetMapping("page")
|
||||
@ApiOperation(" 埋点-分页查询")
|
||||
public AlitaResult<Page<EventTrackDTO>> page(EventTrackPageQueryDTO queryDTO) {
|
||||
eventTrackService.page(queryDTO);
|
||||
return AlitaResult.success(queryDTO.getPageResult());
|
||||
}
|
||||
|
||||
@GetMapping("statistics")
|
||||
public AlitaResult<List<EventTrackStatisticsResDTO>> statistics(EventTrackStatisticsQueryDTO queryDTO) {
|
||||
return AlitaResult.success(eventTrackService.statistics(queryDTO));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.newyetai.recruit.eventtrack.convert;
|
||||
|
||||
import com.newyetai.recruit.eventtrack.entity.EventTrack;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackDTO;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackOperatorDTO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface EventTrackConvert {
|
||||
EventTrackConvert INSTANCE = Mappers.getMapper(EventTrackConvert.class);
|
||||
|
||||
EventTrack convert(EventTrackDTO dto);
|
||||
|
||||
EventTrackDTO convert(EventTrack entity);
|
||||
|
||||
EventTrack convert(EventTrackOperatorDTO dto);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.newyetai.recruit.eventtrack.dao;
|
||||
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackStatisticsQueryDTO;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackStatisticsResDTO;
|
||||
import com.newyetai.tkmybatis.mybatis.MyMapper;
|
||||
import com.newyetai.recruit.eventtrack.entity.EventTrack;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackDTO;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackQueryDTO;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackPageQueryDTO;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface EventTrackMapper extends MyMapper<EventTrack> {
|
||||
|
||||
List<EventTrackDTO> page(@Param("param") EventTrackPageQueryDTO queryDTO);
|
||||
|
||||
List<EventTrackDTO> list(@Param("param") EventTrackQueryDTO queryDTO);
|
||||
|
||||
List<EventTrackStatisticsResDTO> statistics(@Param("param") EventTrackStatisticsQueryDTO queryDTO);
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import com.newyetai.common.dto.BaseDTO;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@ApiModel(" 埋点")
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EventTrackDTO extends BaseDTO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("设备编号")
|
||||
private String deviceCode;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: guixinman
|
||||
* @create: 2025-01-23 16:43
|
||||
**/
|
||||
@Data
|
||||
public class EventTrackMachineReqDTO implements Serializable {
|
||||
/**
|
||||
* 机器编号
|
||||
*/
|
||||
private String deviceCode;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String name;
|
||||
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private String createDate;
|
||||
|
||||
/**
|
||||
* 当日使用人数
|
||||
*/
|
||||
private Long userNumber;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@ApiModel(" 埋点")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EventTrackOperatorDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("设备编号")
|
||||
private String deviceCode;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import com.newyetai.common.dto.PageQueryDTO;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
|
||||
@ApiModel(" 埋点")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EventTrackPageQueryDTO extends PageQueryDTO<EventTrackDTO> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("设备编号")
|
||||
private String deviceCode;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty("创建时间起,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTimeStart;
|
||||
|
||||
@ApiModelProperty("创建时间止,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTimeEnd;
|
||||
|
||||
@ApiModelProperty("更新时间起,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTimeStart;
|
||||
|
||||
@ApiModelProperty("更新时间止,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTimeEnd;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import com.newyetai.common.dto.BaseDTO;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@ApiModel(" 埋点")
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class EventTrackQueryDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("设备编号")
|
||||
private String deviceCode;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty("创建时间起,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTimeStart;
|
||||
|
||||
@ApiModelProperty("创建时间止,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTimeEnd;
|
||||
|
||||
@ApiModelProperty("更新时间起,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTimeStart;
|
||||
|
||||
@ApiModelProperty("更新时间止,格式 (yyyy-MM-dd HH:mm:ss)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTimeEnd;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: guixinman
|
||||
* @create: 2025-01-23 16:04
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EventTrackStatisticsQueryDTO implements Serializable {
|
||||
|
||||
private String createTimeStart;
|
||||
|
||||
private String createTimeEnd;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.newyetai.recruit.eventtrack.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @description: 埋点分组DTO
|
||||
* @author: guixinman
|
||||
* @create: 2025-01-23 15:59
|
||||
**/
|
||||
@Data
|
||||
public class EventTrackStatisticsResDTO implements Serializable {
|
||||
private String deviceCode;
|
||||
private Long userId;
|
||||
private String type;
|
||||
private String name;
|
||||
private String address;
|
||||
private String createDate;
|
||||
private Long userNumber;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.newyetai.recruit.eventtrack.entity;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.newyetai.common.entity.BaseEntity;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@TableName(value = "hr_event_track")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EventTrack extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
private String deviceCode;
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String type;
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.newyetai.recruit.eventtrack.job;
|
||||
|
||||
import com.newyetai.common.util.JsonUtils;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackMachineReqDTO;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackStatisticsQueryDTO;
|
||||
import com.newyetai.recruit.eventtrack.dto.EventTrackStatisticsResDTO;
|
||||
import com.newyetai.recruit.eventtrack.service.EventTrackService;
|
||||
import com.newyetai.sdk.common.dto.DefaultSdkInvokeLogDTO;
|
||||
import com.newyetai.sdk.common.util.HttpUtils;
|
||||
import com.newyetai.sdk.tencent.map.dto.TencentMapBaseResDTO;
|
||||
import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixResDTO;
|
||||
import com.newyetai.security.util.MockUtils;
|
||||
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* @description: 埋点job
|
||||
* @author: guixinman
|
||||
* @create: 2025-01-23 14:54
|
||||
**/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class EventTrackJob {
|
||||
|
||||
@Autowired
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
@Autowired
|
||||
private EventTrackService eventTrackService;
|
||||
|
||||
@Scheduled(cron = "0 0/30 * * * *")
|
||||
public void statistics() {
|
||||
String createTimeStart = DateUtil.format(DateUtil.beginOfDay(DateUtil.yesterday()), "yyyy-MM-dd HH:mm:ss");
|
||||
String createTimeEnd = DateUtil.format(DateUtil.endOfDay(DateUtil.yesterday()), "yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
log.info("埋点数据推送宝就业后台 ======开始");
|
||||
MockUtils.mockPlatUser();
|
||||
try {
|
||||
List<EventTrackStatisticsResDTO> statistics = eventTrackService.statistics(EventTrackStatisticsQueryDTO.builder().createTimeStart(createTimeStart).createTimeEnd(createTimeEnd).build());
|
||||
List<EventTrackMachineReqDTO> machineReqDTOList = new ArrayList();
|
||||
for (EventTrackStatisticsResDTO statistic : statistics) {
|
||||
EventTrackMachineReqDTO machineReqDTO = new EventTrackMachineReqDTO();
|
||||
BeanUtils.copyProperties(statistic,machineReqDTO);
|
||||
machineReqDTOList.add(machineReqDTO);
|
||||
}
|
||||
String result = null;
|
||||
if (CollectionUtils.isNotEmpty(machineReqDTOList)) {
|
||||
try {
|
||||
result = HttpRequest.post("https://baoanhr-1gj59gl3122cad49-1331397164.ap-shanghai.app.tcloudbase.com/v1/api/machine")
|
||||
.header("Content-Type", "application/json") // 必须声明 JSON 格式
|
||||
.body(JsonUtils.toJsonString(machineReqDTOList))
|
||||
.timeout(5000)
|
||||
.execute()
|
||||
.body();
|
||||
} catch (Exception e) {
|
||||
log.error("EventTrackJob invoke:{} error:{}",JsonUtils.toJsonString(machineReqDTOList),
|
||||
e);
|
||||
} finally {
|
||||
log.info("EventTrackJob invoke:{}",
|
||||
JsonUtils
|
||||
.toJsonString(
|
||||
DefaultSdkInvokeLogDTO.builder().requestData(machineReqDTOList).responseData(result)
|
||||
.build()));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
|
||||
log.info("埋点数据推送宝就业后台 ======结束");
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?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.newyetai.recruit.eventtrack.dao.EventTrackMapper">
|
||||
|
||||
<select id="list" resultType="com.newyetai.recruit.eventtrack.dto.EventTrackDTO">
|
||||
SELECT t.*
|
||||
<include refid="queryFromSql"></include>
|
||||
</select>
|
||||
|
||||
<select id="page" resultType="com.newyetai.recruit.eventtrack.dto.EventTrackDTO">
|
||||
SELECT t.*
|
||||
<include refid="queryFromSql"></include>
|
||||
</select>
|
||||
<select id="statistics"
|
||||
resultType="com.newyetai.recruit.eventtrack.dto.EventTrackStatisticsResDTO">
|
||||
select a.device_code,
|
||||
a."user_id",
|
||||
a."type",
|
||||
b."name",
|
||||
b.address,
|
||||
DATE_FORMAT(a.create_time, '%Y-%m-%d') as createDate,
|
||||
count(a.id) as userNumber
|
||||
from hr_event_track a
|
||||
left join hr_device b on a."device_code" = b."code" and b."deleted" = 0
|
||||
where a."deleted" = 0
|
||||
<if test='param.createTimeStart != null'>
|
||||
AND a.create_time >= #{param.createTimeStart}
|
||||
</if>
|
||||
<if test='param.createTimeEnd != null'>
|
||||
AND a.create_time <= #{param.createTimeEnd}
|
||||
</if>
|
||||
group by a."device_code",DATE_FORMAT(a.create_time, '%Y-%m-%d')
|
||||
|
||||
</select>
|
||||
|
||||
<sql id="queryFromSql">
|
||||
FROM
|
||||
hr_event_track t
|
||||
WHERE t.deleted = 0
|
||||
<if test='param.id != null'>
|
||||
AND t.id = #{param.id}
|
||||
</if>
|
||||
<if test='param.deviceCode != null and param.deviceCode.trim() != ""'>
|
||||
AND t.device_code = #{param.deviceCode}
|
||||
</if>
|
||||
<if test='param.userId != null'>
|
||||
AND t.user_id = #{param.userId}
|
||||
</if>
|
||||
<if test='param.type != null and param.type.trim() != ""'>
|
||||
AND t.type = #{param.type}
|
||||
</if>
|
||||
<if test='param.createTimeStart != null'>
|
||||
AND t.create_time >= #{param.createTimeStart}
|
||||
</if>
|
||||
<if test='param.createTimeEnd != null'>
|
||||
AND t.create_time <= #{param.createTimeEnd}
|
||||
</if>
|
||||
<if test='param.updateTimeStart != null'>
|
||||
AND t.update_time >= #{param.updateTimeStart}
|
||||
</if>
|
||||
<if test='param.updateTimeEnd != null'>
|
||||
AND t.update_time <= #{param.updateTimeEnd}
|
||||
</if>
|
||||
ORDER BY t.id DESC
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.newyetai.recruit.eventtrack.service;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.groups.Default;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.newyetai.recruit.eventtrack.dto.*;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@Validated(Default.class)
|
||||
public interface EventTrackService {
|
||||
|
||||
/**
|
||||
* 埋点 - 创建
|
||||
*
|
||||
* @param operatorDto 操作dto
|
||||
* @return {@link EventTrackDTO}
|
||||
*/
|
||||
EventTrackDTO create(@Valid EventTrackOperatorDTO operatorDto);
|
||||
|
||||
/**
|
||||
* 埋点 - 修改
|
||||
*
|
||||
* @param operatorDto 操作dto
|
||||
* @return {@link EventTrackDTO}
|
||||
*/
|
||||
EventTrackDTO modify(@Valid EventTrackOperatorDTO operatorDto);
|
||||
|
||||
/**
|
||||
* 埋点 - 删除
|
||||
*
|
||||
* @param id id
|
||||
* @return {@link EventTrackDTO}
|
||||
*/
|
||||
EventTrackDTO delete(Long id);
|
||||
|
||||
/**
|
||||
* 埋点 - 根据ID查询单个
|
||||
*
|
||||
* @param id id
|
||||
* @return {@link EventTrackDTO}
|
||||
*/
|
||||
EventTrackDTO findById(Long id);
|
||||
|
||||
/**
|
||||
* 埋点 - 列表查询
|
||||
*
|
||||
* @param queryDTO 列表查询dto
|
||||
* @return {@link List}<{@link EventTrackDTO}>
|
||||
*/
|
||||
List<EventTrackDTO> list(EventTrackQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* 埋点 - 分页查询
|
||||
*
|
||||
* @param queryDTO 分页查询dto
|
||||
* @return {@link EventTrackDTO}
|
||||
*/
|
||||
List<EventTrackDTO> page(EventTrackPageQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* @description: 按日统计
|
||||
* @return:
|
||||
* @author: guixinman
|
||||
* @param:
|
||||
*/
|
||||
List<EventTrackStatisticsResDTO> statistics(EventTrackStatisticsQueryDTO queryDTO);
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.newyetai.recruit.eventtrack.service.impl;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import com.newyetai.common.util.JsonUtils;
|
||||
import com.newyetai.recruit.eventtrack.convert.EventTrackConvert;
|
||||
import com.newyetai.recruit.eventtrack.entity.EventTrack;
|
||||
import com.newyetai.recruit.eventtrack.dto.*;
|
||||
import com.newyetai.recruit.eventtrack.dao.EventTrackMapper;
|
||||
import com.newyetai.recruit.eventtrack.service.EventTrackService;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.newyetai.common.util.UserContextHolder;
|
||||
import com.newyetai.sdk.tencent.map.dto.TencentMapLocationV1IpResDTO;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 埋点
|
||||
*
|
||||
* @author guixinman
|
||||
* @since 1.0.0 2025-01-22
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class EventTrackServiceImpl implements EventTrackService {
|
||||
|
||||
@Resource
|
||||
private EventTrackMapper eventTrackMapper;
|
||||
|
||||
@Override
|
||||
public EventTrackDTO create(EventTrackOperatorDTO operatorDto) {
|
||||
EventTrack eventTrack = EventTrackConvert.INSTANCE.convert(operatorDto);
|
||||
eventTrackMapper.saveEntity(eventTrack);
|
||||
return EventTrackConvert.INSTANCE.convert(eventTrack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventTrackDTO modify(EventTrackOperatorDTO operatorDto) {
|
||||
EventTrackDTO eventTrackDto = this.findById(operatorDto.getId());
|
||||
if (Objects.isNull(eventTrackDto)) {
|
||||
return null;
|
||||
}
|
||||
EventTrack eventTrack = EventTrackConvert.INSTANCE.convert(operatorDto);
|
||||
eventTrackMapper.updateEntitySelective(eventTrack);
|
||||
return this.findById(operatorDto.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventTrackDTO delete(Long id) {
|
||||
EventTrackDTO eventTrackDto = this.findById(id);
|
||||
if (Objects.isNull(eventTrackDto)) {
|
||||
return null;
|
||||
}
|
||||
EventTrack eventTrack = EventTrack.builder().build();
|
||||
eventTrack.setId(id);
|
||||
eventTrackMapper.deleteEntity(eventTrack, UserContextHolder.getLoginUserId());
|
||||
return eventTrackDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventTrackDTO findById(Long id) {
|
||||
EventTrack eventTrack = eventTrackMapper.getById(id);
|
||||
if (Objects.isNull(eventTrack)) {
|
||||
return null;
|
||||
}
|
||||
return EventTrackConvert.INSTANCE.convert(eventTrack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventTrackDTO> list(EventTrackQueryDTO queryDTO) {
|
||||
return eventTrackMapper.list(queryDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventTrackDTO> page(EventTrackPageQueryDTO queryDTO) {
|
||||
return eventTrackMapper.page(queryDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventTrackStatisticsResDTO> statistics(EventTrackStatisticsQueryDTO queryDTO) {
|
||||
List<EventTrackStatisticsResDTO> statisticList = eventTrackMapper.statistics(queryDTO);
|
||||
return statisticList;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user