Browse Source

Merge branch 'feature/visitor2_zhy'

master
zhangyuan 3 years ago
parent
commit
696c68f5db
  1. 24
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitVisitorChartFormDTO.java
  2. 14
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitorInfoFormDTO.java
  3. 30
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VisitVisitorChartResultDTO.java
  4. 80
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java
  5. 27
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java
  6. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java
  7. 26
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java
  8. 56
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.66__chart_hour.sql
  9. 28
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml

24
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitVisitorChartFormDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* 租客表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-26
*/
@Data
public class VisitVisitorChartFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 时间
*/
private String date;
}

14
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitorInfoFormDTO.java

@ -0,0 +1,14 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
@Data
public class VisitorInfoFormDTO implements Serializable {
private String userId;
private String customerId;
}

30
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VisitVisitorChartResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 租客表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-26
*/
@Data
public class VisitVisitorChartResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 时间
*/
private String hour;
/**
* 数量
*/
private String num;
}

80
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectVisitorController.java

@ -1,7 +1,6 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
@ -14,10 +13,8 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.SaveCollectVisitorFormDTO;
import com.epmet.dto.form.CollectDetailFormDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.VisitVisitorChartResultDTO;
import com.epmet.excel.IcResiCollectVisitorExcel;
import com.epmet.service.IcResiCollectVisitorService;
import org.springframework.beans.factory.annotation.Autowired;
@ -42,7 +39,7 @@ public class IcResiCollectVisitorController {
private IcResiCollectVisitorService icResiCollectVisitorService;
@RequestMapping("page")
public Result<PageData<IcResiCollectVisitorDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<IcResiCollectVisitorDTO>> page(@RequestParam Map<String, Object> params) {
// PageData<IcResiCollectVisitorDTO> page = icResiCollectVisitorService.page(params);
PageData<IcResiCollectVisitorDTO> page = icResiCollectVisitorService.getPhrasePage(params);
return new Result<PageData<IcResiCollectVisitorDTO>>().ok(page);
@ -52,6 +49,7 @@ public class IcResiCollectVisitorController {
/**
* Desc: 访客记录列表
*
* @param formDTO
* @param tokenDto
* @author wgf
@ -60,22 +58,22 @@ public class IcResiCollectVisitorController {
@PostMapping("list")
// @MaskResponse(fieldNames = { "memberIdNum", "memberMobile" },
// fieldsMaskType = { MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE })
public Result<PageData<IcResiCollectVisitorDTO>> getVisitorList(@RequestBody VisitListFormDTO formDTO, @LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(formDTO,CollectListFormDTO.CollectListForm.class);
public Result<PageData<IcResiCollectVisitorDTO>> getVisitorList(@RequestBody VisitListFormDTO formDTO, @LoginUser TokenDto tokenDto) {
ValidatorUtils.validateEntity(formDTO, CollectListFormDTO.CollectListForm.class);
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<PageData<IcResiCollectVisitorDTO>>().ok(icResiCollectVisitorService.getVisitorList(formDTO));
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<IcResiCollectVisitorDTO> get(@PathVariable("id") String id){
@RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET})
public Result<IcResiCollectVisitorDTO> get(@PathVariable("id") String id) {
IcResiCollectVisitorDTO data = icResiCollectVisitorService.get(id);
return new Result<IcResiCollectVisitorDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcResiCollectVisitorDTO dto){
public Result save(@RequestBody IcResiCollectVisitorDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icResiCollectVisitorService.save(dto);
@ -84,7 +82,7 @@ public class IcResiCollectVisitorController {
@NoRepeatSubmit
@PostMapping("update")
public Result update(@RequestBody IcResiCollectVisitorDTO dto){
public Result update(@RequestBody IcResiCollectVisitorDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icResiCollectVisitorService.update(dto);
@ -92,7 +90,7 @@ public class IcResiCollectVisitorController {
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
icResiCollectVisitorService.delete(ids);
@ -106,32 +104,62 @@ public class IcResiCollectVisitorController {
}
/**
* @describe: 保存访客信息
* @author wangtong
* @date 2022/8/3 10:33
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
* @return com.epmet.commons.tools.utils.Result
* @describe: 保存访客信息
* @author wangtong
* @date 2022/8/3 10:33
* @params [dto]
*/
@NoRepeatSubmit
@PostMapping("saveInfo")
public Result saveInfo(@RequestBody SaveCollectVisitorFormDTO dto){
public Result saveInfo(@RequestBody SaveCollectVisitorFormDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto);
return icResiCollectVisitorService.saveInfo(dto);
}
/**
* @describe: 访客信息详情
* @author wangtong
* @date 2022/8/3 15:41
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
* @return com.epmet.commons.tools.utils.Result
* @describe: 访客信息详情
* @author wangtong
* @date 2022/8/3 15:41
* @params [dto]
*/
@PostMapping("getVisitorDetail")
public Result getVisitorDetail(@RequestBody CollectDetailFormDTO dto) {
ValidatorUtils.validateEntity(dto);
return icResiCollectVisitorService.getVisitorDetail(dto);
}
/**
* 登陆访客用户信息
*
* @param tokenDto
* @param dto
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/8/19 15:24
*/
@PostMapping("visitorinfo")
public Result getVisitorInfo(@LoginUser TokenDto tokenDto, @RequestBody VisitorInfoFormDTO dto) {
ValidatorUtils.validateEntity(dto);
return icResiCollectVisitorService.getVisitorInfo(tokenDto, dto);
}
/**
* 访客折线图
*
* @param dto
* @return com.epmet.commons.tools.utils.Result<java.util.List<VisitVisitorChartResultDTO>>
* @author zhy
* @date 2022/8/22 9:56
*/
@NoRepeatSubmit
@PostMapping("chart/traffic")
public Result<List<VisitVisitorChartResultDTO>> getTraffic(@RequestBody VisitVisitorChartFormDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
return new Result<List<VisitVisitorChartResultDTO>>().ok(icResiCollectVisitorService.getTraffic(dto));
}
}

27
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiCollectVisitorDao.java

@ -2,9 +2,10 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.form.VisitVisitorChartFormDTO;
import com.epmet.dto.form.VisitorInfoFormDTO;
import com.epmet.dto.result.VisitVisitorChartResultDTO;
import com.epmet.entity.IcResiCollectVisitorEntity;
import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface IcResiCollectVisitorDao extends BaseDao<IcResiCollectVisitorEnt
/**
* 条件查询
*
* @param params
* @return
*/
@ -29,10 +31,31 @@ public interface IcResiCollectVisitorDao extends BaseDao<IcResiCollectVisitorEnt
/**
* Desc: 查询访客信息
*
* @param formDTO
* @author wgf
* @date 2022/8/5 8:41
*/
List<IcResiCollectVisitorDTO> getCollectList(VisitListFormDTO formDTO);
/**
* 最新一条访客信息
*
* @param formDTO
* @return com.epmet.entity.IcResiCollectVisitorEntity
* @author zhy
* @date 2022/8/19 15:33
*/
IcResiCollectVisitorEntity getLastInfo(VisitorInfoFormDTO formDTO);
/**
* 人流量
*
* @param dto
* @return void
* @author generator
* @date 2022-07-26
*/
List<VisitVisitorChartResultDTO> getTraffic(VisitVisitorChartFormDTO dto);
}

53
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiCollectVisitorService.java

@ -2,13 +2,15 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.SaveCollectVisitorFormDTO;
import com.epmet.dto.form.CollectDetailFormDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.form.VisitVisitorChartFormDTO;
import com.epmet.dto.form.VisitorInfoFormDTO;
import com.epmet.dto.result.VisitVisitorChartResultDTO;
import com.epmet.entity.IcResiCollectVisitorEntity;
import java.util.List;
@ -34,6 +36,7 @@ public interface IcResiCollectVisitorService extends BaseService<IcResiCollectVi
/**
* 分页条件查询
*
* @param params
* @return
*/
@ -92,20 +95,42 @@ public interface IcResiCollectVisitorService extends BaseService<IcResiCollectVi
void delete(String[] ids);
/**
* @describe: 保存访客信息
* @author wangtong
* @date 2022/8/3 10:44
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
* @return com.epmet.commons.tools.utils.Result
* @describe: 保存访客信息
* @author wangtong
* @date 2022/8/3 10:44
* @params [dto]
*/
Result saveInfo(SaveCollectVisitorFormDTO dto);
/**
* @describe: 访客信息详情
* @author wangtong
* @date 2022/8/3 15:43
* @params [dto]
* @return com.epmet.commons.tools.utils.Result
*/
* @return com.epmet.commons.tools.utils.Result
* @describe: 访客信息详情
* @author wangtong
* @date 2022/8/3 15:43
* @params [dto]
*/
Result getVisitorDetail(CollectDetailFormDTO dto);
/**
* 登陆访客用户信息
*
* @param tokenDto
* @param dto
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/8/19 15:24
*/
Result getVisitorInfo(TokenDto tokenDto, VisitorInfoFormDTO dto);
/**
* 人流量
*
* @param dto
* @return void
* @author generator
* @date 2022-07-26
*/
List<VisitVisitorChartResultDTO> getTraffic(VisitVisitorChartFormDTO dto);
}

26
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java

@ -8,17 +8,15 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcResiCollectVisitorDao;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.IcResiCollectVisitorDTO;
import com.epmet.dto.SaveCollectVisitorFormDTO;
import com.epmet.dto.form.CollectDetailFormDTO;
import com.epmet.dto.form.CollectListFormDTO;
import com.epmet.dto.form.VisitListFormDTO;
import com.epmet.dto.form.VisitVisitorFormDTO;
import com.epmet.dto.result.CollectListResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.VisitVisitorChartResultDTO;
import com.epmet.entity.IcResiCollectVisitorEntity;
import com.epmet.redis.IcResiCollectVisitorRedis;
import com.epmet.service.IcResiCollectVisitorService;
@ -30,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -171,4 +170,21 @@ public class IcResiCollectVisitorServiceImpl extends BaseServiceImpl<IcResiColle
return new Result().ok(entity);
}
@Override
public Result getVisitorInfo(TokenDto tokenDto, VisitorInfoFormDTO dto) {
dto.setUserId(tokenDto.getUserId());
dto.setCustomerId(tokenDto.getCustomerId());
IcResiCollectVisitorEntity entity = baseDao.getLastInfo(dto);
return new Result().ok(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<VisitVisitorChartResultDTO> getTraffic(VisitVisitorChartFormDTO dto) {
if (StringUtils.isBlank(dto.getDate())) {
dto.setDate(LocalDate.now().toString());
}
return baseDao.getTraffic(dto);
}
}

56
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.66__chart_hour.sql

@ -0,0 +1,56 @@
/*
Navicat Premium Data Transfer
Source Server : epmet_cloud_dev_user
Source Server Type : MySQL
Source Server Version : 50726
Source Host : 192.168.1.140:3306
Source Schema : epmet_user
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 22/08/2022 13:31:44
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for pli_chart_hour
-- ----------------------------
DROP TABLE IF EXISTS `pli_chart_hour`;
CREATE TABLE `pli_chart_hour` (
`hour` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '图表日期链表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of pli_chart_hour
-- ----------------------------
INSERT INTO `pli_chart_hour` VALUES ('01');
INSERT INTO `pli_chart_hour` VALUES ('02');
INSERT INTO `pli_chart_hour` VALUES ('03');
INSERT INTO `pli_chart_hour` VALUES ('04');
INSERT INTO `pli_chart_hour` VALUES ('05');
INSERT INTO `pli_chart_hour` VALUES ('06');
INSERT INTO `pli_chart_hour` VALUES ('07');
INSERT INTO `pli_chart_hour` VALUES ('08');
INSERT INTO `pli_chart_hour` VALUES ('09');
INSERT INTO `pli_chart_hour` VALUES ('10');
INSERT INTO `pli_chart_hour` VALUES ('11');
INSERT INTO `pli_chart_hour` VALUES ('12');
INSERT INTO `pli_chart_hour` VALUES ('13');
INSERT INTO `pli_chart_hour` VALUES ('14');
INSERT INTO `pli_chart_hour` VALUES ('15');
INSERT INTO `pli_chart_hour` VALUES ('16');
INSERT INTO `pli_chart_hour` VALUES ('17');
INSERT INTO `pli_chart_hour` VALUES ('18');
INSERT INTO `pli_chart_hour` VALUES ('19');
INSERT INTO `pli_chart_hour` VALUES ('20');
INSERT INTO `pli_chart_hour` VALUES ('21');
INSERT INTO `pli_chart_hour` VALUES ('22');
INSERT INTO `pli_chart_hour` VALUES ('23');
INSERT INTO `pli_chart_hour` VALUES ('00');
SET FOREIGN_KEY_CHECKS = 1;

28
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectVisitorDao.xml

@ -104,5 +104,33 @@
order by CREATED_TIME desc
</select>
<select id="getLastInfo" resultType="com.epmet.entity.IcResiCollectVisitorEntity">
SELECT
NAME,
MOBILE,
ID_CARD,
FACE_IMG
FROM
ic_resi_collect_visitor
WHERE
DEL_FLAG = '0'
AND CREATED_BY = #{userId}
AND CUSTOMER_ID = #{customerId}
ORDER BY
CREATED_TIME DESC
LIMIT 1
</select>
<select id="getTraffic" resultType="com.epmet.dto.result.VisitVisitorChartResultDTO">
SELECT
CONCAT( h.`hour`, ':00' ) AS HOUR,
COUNT( v.id ) AS num
FROM
pli_chart_hour h
LEFT JOIN ic_resi_collect_visitor v ON h.`hour` = DATE_FORMAT( v.CREATED_TIME, '%H' )
AND DATE_FORMAT( v.CREATED_TIME, '%Y-%m-%d' ) = #{date}
GROUP BY
h.`hour`;
</select>
</mapper>

Loading…
Cancel
Save