From f4a2224f78d4f13f014a607de9fe2aadc09051a8 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 6 Jun 2023 18:52:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=BF=83=E8=B7=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8B=89=E5=8F=96=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=A1=A8=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E5=9C=A8=E7=BA=BF=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sup/UserComanyController.java | 36 +++++++++++++++++-- .../sup/UserCompanyConfigController.java | 29 +++++++++++++++ .../controller/sup/UserOnLineController.java | 28 ++++++++++++++- .../api/dao/sup/UserCompanyConfigMapper.java | 1 + .../api/dao/sup/UserCompanyOnlineMapper.java | 3 ++ .../api/entity/sup/UserCompanyEntity.java | 6 ++++ .../entity/sup/UserCompanyOnlineEntity.java | 1 + .../api/req/sup/UserCompanyOnlineRequest.java | 15 ++++++++ .../res/sup/UserCompanyOnlineResponse.java | 18 ++++++++++ .../service/sup/UserCompanyOnlineService.java | 21 ++++++++++- src/main/java/com/glxp/api/util/DateUtil.java | 8 ++++- .../mapper/sup/UserCompanyOnlineMapper.xml | 8 +++++ 12 files changed, 169 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/glxp/api/controller/sup/UserCompanyConfigController.java create mode 100644 src/main/java/com/glxp/api/req/sup/UserCompanyOnlineRequest.java create mode 100644 src/main/java/com/glxp/api/res/sup/UserCompanyOnlineResponse.java diff --git a/src/main/java/com/glxp/api/controller/sup/UserComanyController.java b/src/main/java/com/glxp/api/controller/sup/UserComanyController.java index e006aff..c46b685 100644 --- a/src/main/java/com/glxp/api/controller/sup/UserComanyController.java +++ b/src/main/java/com/glxp/api/controller/sup/UserComanyController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.sup; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; @@ -8,11 +9,15 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.sup.UserCompanyEntity; +import com.glxp.api.entity.sup.UserCompanyOnlineEntity; import com.glxp.api.req.auth.FilterUserComapanyRequest; import com.glxp.api.req.basic.ProductInfoFilterRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.auth.registComPerResponse; +import com.glxp.api.res.sup.UserCompanyOnlineResponse; +import com.glxp.api.service.sup.UserCompanyOnlineService; import com.glxp.api.service.sup.UserCompanyService; +import com.glxp.api.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -38,10 +43,10 @@ public class UserComanyController extends BaseController { @GetMapping("udi/auth/user/comapny/search") public BaseResponse search(FilterUserComapanyRequest filterUserComapanyRequest) { //获取部门id - if(filterUserComapanyRequest.getSearchKey() == null){ + if (filterUserComapanyRequest.getSearchKey() == null) { filterUserComapanyRequest.setSearchKey(""); } - List userCompanyEntities = userCompanyService.list(new QueryWrapper().like("companyName", filterUserComapanyRequest.getSearchKey()).eq("checkStatus",1)); + List userCompanyEntities = userCompanyService.list(new QueryWrapper().like("companyName", filterUserComapanyRequest.getSearchKey()).eq("checkStatus", 1)); PageInfo pageInfo; pageInfo = new PageInfo<>(userCompanyEntities); @@ -64,4 +69,31 @@ public class UserComanyController extends BaseController { pageSimpleResponse.setList(userCompanyEntities); return ResultVOUtils.success(pageSimpleResponse); } + + + @Resource + UserCompanyOnlineService userCompanyOnlineService; + + @AuthRuleAnnotation("") + @GetMapping("udi/auth/user/comapny/status/filter") + public BaseResponse filterCompanyStaus(FilterUserComapanyRequest filterUserComapanyRequest) { + + List userCompanyEntities = userCompanyService.filterCompanyName(filterUserComapanyRequest); + + if (CollUtil.isNotEmpty(userCompanyEntities)) { + for (UserCompanyEntity userCompanyEntity : userCompanyEntities) { + UserCompanyOnlineResponse userCompanyOnlineResponse = userCompanyOnlineService.findOnLineByConfig(userCompanyEntity.getId()); + if (DateUtil.isExpire(userCompanyOnlineResponse.getUpdateTime(), userCompanyOnlineResponse.getHeartRate())) { + userCompanyEntity.setOnLineStatus(2); + } else + userCompanyEntity.setOnLineStatus(1); + } + } + PageInfo pageInfo = new PageInfo<>(userCompanyEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(userCompanyEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + } diff --git a/src/main/java/com/glxp/api/controller/sup/UserCompanyConfigController.java b/src/main/java/com/glxp/api/controller/sup/UserCompanyConfigController.java new file mode 100644 index 0000000..84d5da1 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/sup/UserCompanyConfigController.java @@ -0,0 +1,29 @@ +package com.glxp.api.controller.sup; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.sup.UserCompanyConfigEntity; +import com.glxp.api.service.sup.UserCompanyConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +@Slf4j +public class UserCompanyConfigController { + + + @Resource + UserCompanyConfigService userCompanyConfigService; + + //获取企业任务配置 + @PostMapping("/admin/user/config/get") + public BaseResponse heartPost(String companyId) { + UserCompanyConfigEntity userCompanyConfigEntity = userCompanyConfigService.getOne(new QueryWrapper().eq("companyId", companyId)); + return ResultVOUtils.success(userCompanyConfigEntity); + } + +} diff --git a/src/main/java/com/glxp/api/controller/sup/UserOnLineController.java b/src/main/java/com/glxp/api/controller/sup/UserOnLineController.java index 449a5b0..1a83861 100644 --- a/src/main/java/com/glxp/api/controller/sup/UserOnLineController.java +++ b/src/main/java/com/glxp/api/controller/sup/UserOnLineController.java @@ -1,12 +1,38 @@ package com.glxp.api.controller.sup; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.sup.UserCompanyOnlineEntity; +import com.glxp.api.req.sup.UserCompanyOnlineRequest; +import com.glxp.api.service.sup.UserCompanyOnlineService; +import com.glxp.api.util.BeanCopyUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import springfox.documentation.annotations.ApiIgnore; + +import javax.annotation.Resource; @RestController @Slf4j public class UserOnLineController { + @Resource + UserCompanyOnlineService userCompanyOnlineService; + + /** + * 企业定时心跳,报告是否在线 + * + * @param userCompanyOnlineRequest + * @return + */ + @PostMapping("/admin/user/online/heart") + public BaseResponse heartPost(@RequestBody UserCompanyOnlineRequest userCompanyOnlineRequest) { + UserCompanyOnlineEntity userCompanyOnlineEntity = new UserCompanyOnlineEntity(); + BeanCopyUtils.copy(userCompanyOnlineRequest, userCompanyOnlineEntity); + userCompanyOnlineService.saveOrUpdate(userCompanyOnlineEntity); + return ResultVOUtils.success("报告成功!"); + } + } diff --git a/src/main/java/com/glxp/api/dao/sup/UserCompanyConfigMapper.java b/src/main/java/com/glxp/api/dao/sup/UserCompanyConfigMapper.java index 164774b..b906b7f 100644 --- a/src/main/java/com/glxp/api/dao/sup/UserCompanyConfigMapper.java +++ b/src/main/java/com/glxp/api/dao/sup/UserCompanyConfigMapper.java @@ -6,4 +6,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserCompanyConfigMapper extends BaseMapper { + } diff --git a/src/main/java/com/glxp/api/dao/sup/UserCompanyOnlineMapper.java b/src/main/java/com/glxp/api/dao/sup/UserCompanyOnlineMapper.java index 2c382c0..39a2577 100644 --- a/src/main/java/com/glxp/api/dao/sup/UserCompanyOnlineMapper.java +++ b/src/main/java/com/glxp/api/dao/sup/UserCompanyOnlineMapper.java @@ -2,8 +2,11 @@ package com.glxp.api.dao.sup; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.sup.UserCompanyOnlineEntity; +import com.glxp.api.res.sup.UserCompanyOnlineResponse; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserCompanyOnlineMapper extends BaseMapper { + + UserCompanyOnlineResponse findOnLineByConfig(Long companyId); } diff --git a/src/main/java/com/glxp/api/entity/sup/UserCompanyEntity.java b/src/main/java/com/glxp/api/entity/sup/UserCompanyEntity.java index 444bcfc..21139d4 100644 --- a/src/main/java/com/glxp/api/entity/sup/UserCompanyEntity.java +++ b/src/main/java/com/glxp/api/entity/sup/UserCompanyEntity.java @@ -88,5 +88,11 @@ public class UserCompanyEntity implements Serializable { @TableField(value = "`reason`") private String reason; + /** + * 在线状态 1:在线;2:离线 + */ + @TableField(exist = false) + private Integer onLineStatus; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/sup/UserCompanyOnlineEntity.java b/src/main/java/com/glxp/api/entity/sup/UserCompanyOnlineEntity.java index 450ad25..f473816 100644 --- a/src/main/java/com/glxp/api/entity/sup/UserCompanyOnlineEntity.java +++ b/src/main/java/com/glxp/api/entity/sup/UserCompanyOnlineEntity.java @@ -13,6 +13,7 @@ import lombok.Data; @Data @TableName(value = "user_company_online") public class UserCompanyOnlineEntity implements Serializable { + @TableId(value = "companyId", type = IdType.INPUT) private Long companyId; diff --git a/src/main/java/com/glxp/api/req/sup/UserCompanyOnlineRequest.java b/src/main/java/com/glxp/api/req/sup/UserCompanyOnlineRequest.java new file mode 100644 index 0000000..209552d --- /dev/null +++ b/src/main/java/com/glxp/api/req/sup/UserCompanyOnlineRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.req.sup; + +import lombok.Data; + +import java.util.Date; + +@Data +public class UserCompanyOnlineRequest { + + private Long companyId; + + private Long userId; + + private Date updateTime; +} diff --git a/src/main/java/com/glxp/api/res/sup/UserCompanyOnlineResponse.java b/src/main/java/com/glxp/api/res/sup/UserCompanyOnlineResponse.java new file mode 100644 index 0000000..57b067e --- /dev/null +++ b/src/main/java/com/glxp/api/res/sup/UserCompanyOnlineResponse.java @@ -0,0 +1,18 @@ +package com.glxp.api.res.sup; + +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.util.Date; + +@Data +public class UserCompanyOnlineResponse { + private Long companyId; + + private Long userId; + + private Date updateTime; + + private Long heartRate; + +} diff --git a/src/main/java/com/glxp/api/service/sup/UserCompanyOnlineService.java b/src/main/java/com/glxp/api/service/sup/UserCompanyOnlineService.java index 072588c..acf990f 100644 --- a/src/main/java/com/glxp/api/service/sup/UserCompanyOnlineService.java +++ b/src/main/java/com/glxp/api/service/sup/UserCompanyOnlineService.java @@ -1,10 +1,29 @@ package com.glxp.api.service.sup; -import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.sup.UserCompanyOnlineMapper; import com.glxp.api.entity.sup.UserCompanyOnlineEntity; +import com.glxp.api.res.sup.UserCompanyOnlineResponse; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; + @Service public class UserCompanyOnlineService extends ServiceImpl { + + @Resource + UserCompanyOnlineMapper userCompanyOnlineMapper; + + public UserCompanyOnlineEntity findByCompnayId(Long companyId) { + return userCompanyOnlineMapper.selectOne(new QueryWrapper().eq("companyId", companyId)); + } + + public UserCompanyOnlineResponse findOnLineByConfig(Long companyId) { + return userCompanyOnlineMapper.findOnLineByConfig(companyId); + } + + } diff --git a/src/main/java/com/glxp/api/util/DateUtil.java b/src/main/java/com/glxp/api/util/DateUtil.java index 050f83e..b01d329 100644 --- a/src/main/java/com/glxp/api/util/DateUtil.java +++ b/src/main/java/com/glxp/api/util/DateUtil.java @@ -615,7 +615,6 @@ public class DateUtil extends DateUtils { /** * 向后推迟时间 * - * @param time 时间 * @param hour 小时 * @return */ @@ -689,4 +688,11 @@ public class DateUtil extends DateUtils { String formatDate = smdate.format(calendar.getTime()); return formatDate; } + + + public static boolean isExpire(Date date, Long frequency) { + if (date == null || frequency == null) + return true; + return System.currentTimeMillis() - date.getTime() > frequency; + } } diff --git a/src/main/resources/mybatis/mapper/sup/UserCompanyOnlineMapper.xml b/src/main/resources/mybatis/mapper/sup/UserCompanyOnlineMapper.xml index 04a4f5e..4319fed 100644 --- a/src/main/resources/mybatis/mapper/sup/UserCompanyOnlineMapper.xml +++ b/src/main/resources/mybatis/mapper/sup/UserCompanyOnlineMapper.xml @@ -1,4 +1,12 @@ +