From de652cce5f349261ab4a01fd8b585de271e665d1 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Fri, 11 Apr 2025 17:31:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BF=E5=AE=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integrated/constant/VisitorTypeEnum.java | 22 +++++ .../controller/VisitorsController.java | 46 +++++++++-- .../integrated/entity/VisitorsEntity.java | 8 ++ .../integrated/service/VisitorsService.java | 22 +++++ .../service/impl/VisitorsServiceImpl.java | 82 +++++++++++++++++-- .../main/resources/mapper/VisitorsMapper.xml | 2 + .../thirdparty/controller/SmsController.java | 4 +- 7 files changed, 172 insertions(+), 14 deletions(-) create mode 100644 pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/VisitorTypeEnum.java diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/VisitorTypeEnum.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/VisitorTypeEnum.java new file mode 100644 index 00000000..b90c6814 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/VisitorTypeEnum.java @@ -0,0 +1,22 @@ +package com.bsd.pjcloud.integrated.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 出库入口 + */ +@AllArgsConstructor +@Getter +public enum VisitorTypeEnum { + + FKSQ("1", "访客申请"), + ZDYQ("2", "主动邀请"), + HTXZ("3", "后台新增") + ; + private final String type; + private final String description; + + + +} diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java index 4d151181..b8aa9600 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java @@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.idempotent.annotation.Idempotent; import com.bsd.pjcloud.common.log.annotation.SysLog; @@ -14,6 +15,7 @@ import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsEntity; import com.bsd.pjcloud.integrated.service.VisitorsService; +import com.bsd.pjcloud.integrated.vo.app.visitor.VisitorsAppVo; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -131,16 +133,27 @@ public class VisitorsController { * @param visitors 访客表 * @return R */ - @Operation(summary = "app新增访客表" , description = "app新增访客表" ) - @SysLog("新增访客表" ) + @Operation(summary = "app新增访客" , description = "app新增访客" ) + @SysLog("新增访客" ) @PostMapping("/app/save") - @Idempotent(key = "#", expireTime = 10, info = "请勿重复提交") + @Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交") @Inner(value = false) - public R save(@RequestBody VisitorsAppDTO visitors) { - + public R saveFK(@RequestBody VisitorsAppDTO visitors) { return R.ok(visitorsService.vistorsSave(visitors)); } + /** + * 根据token查询预约的信息 + * 通过token查询访客表 + * @param + * @return R + */ + @Operation(summary = "通过token查询" , description = "通过token查询" ) + @GetMapping("/app/get/{token}" ) + public R getByToken(@PathVariable("token" ) String token) { + + return R.ok(visitorsService.getByToken(token)); + } /** * 扫码发送请求确认是否能通过 * 通过token查询访客表 @@ -149,7 +162,7 @@ public class VisitorsController { */ @Operation(summary = "通过token查询" , description = "通过token查询" ) @GetMapping("/app/check/{token}" ) - public R getByToken(@PathVariable("token" ) String token) { + public R checkByToken(@PathVariable("token" ) String token) { LambdaQueryWrapper visitorsEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getToken,token); @@ -169,4 +182,25 @@ public class VisitorsController { return R.ok(true); } + + /** + * 新增拜访 + * @param visitors 访客表 + * @return R + */ + @Operation(summary = "app新增拜访" , description = "app新增拜访" ) + @SysLog("新增拜访" ) + @PostMapping("/app/saveBF") + @Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交") + public R saveBF(@RequestBody VisitorsAppDTO visitors) { + + return R.ok(visitorsService.vistorsBFSave(visitors)); + } + + + @GetMapping("/app/pageBF") + @SysLog("获取我的邀约记录" ) + public R getPageBF(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) { + return R.ok( visitorsService.getPageBF(page, visitors)); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java index 8e8a7088..1839138d 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsEntity.java @@ -163,4 +163,12 @@ public class VisitorsEntity extends Model { @Schema(description="token") private String token; + + + @Schema(description="1 主动申请,2邀约,3 后台创建") + private String type; + + + @Schema(description="用户id") + private Long userId; } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java index b00b6756..5c5f13ca 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java @@ -1,8 +1,10 @@ package com.bsd.pjcloud.integrated.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsEntity; +import com.bsd.pjcloud.integrated.vo.app.visitor.VisitorsAppVo; public interface VisitorsService extends IService { @@ -13,4 +15,24 @@ public interface VisitorsService extends IService { * @return */ Object vistorsSave(VisitorsAppDTO visitors); + + + /** + * 根据token查询访客信息 + * @param token + * @return + */ + VisitorsAppVo getByToken(String token); + + + /** + * 移动端发起拜访 + * @param visitors + * @return + */ + Object vistorsBFSave(VisitorsAppDTO visitors); + + + + Object getPageBF(Page page, VisitorsEntity visitors); } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java index 88bd0502..f6267810 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java @@ -1,15 +1,20 @@ package com.bsd.pjcloud.integrated.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.common.core.exception.ServiceException; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService; import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto; import com.bsd.pjcloud.flow.task.entity.Process; import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant; +import com.bsd.pjcloud.integrated.constant.VisitorTypeEnum; import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsAppDTO; import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsCarAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity; @@ -48,7 +53,6 @@ public class VisitorsServiceImpl extends ServiceImpl processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR); if (!processR.isOk() || processR.getData() == null) { @@ -64,13 +68,14 @@ public class VisitorsServiceImpl extends ServiceImpl visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList(); if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){ List visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class); @@ -79,10 +84,75 @@ public class VisitorsServiceImpl extends ServiceImpl visitorsCarAppVos = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarAppVo.class); - visitorAppVo.setVisitorsCarAppVos(visitorsCarAppVos); - return visitorAppVo; +// VisitorsAppVo visitorAppVo = BeanUtils.toBean(bean, VisitorsAppVo.class); +// List visitorsCarAppVos = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarAppVo.class); +// visitorAppVo.setVisitorsCarAppVos(visitorsCarAppVos); + return insert; + } + + @Override + public VisitorsAppVo getByToken(String token) { + LambdaQueryWrapper visitorsEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getToken,token); + VisitorsEntity visitors = baseMapper.selectOne(visitorsEntityLambdaQueryWrapper); + VisitorsAppVo bean = BeanUtils.toBean(visitors, VisitorsAppVo.class); + List visitorsCarEntities = + visitorsCarMapper.selectList(new LambdaQueryWrapper().eq(VisitorsCarEntity::getVisitorsId, visitors.getId())); + List visitorsCarAppVos = BeanUtils.toBean(visitorsCarEntities, VisitorsCarAppVo.class); + bean.setVisitorsCarAppVos(visitorsCarAppVos); + return bean; + } + + @Override + public Object vistorsBFSave(VisitorsAppDTO visitors) { + //发起流程 + R processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR); + if (!processR.isOk() || processR.getData() == null) { + throw new ServiceException("流程配置获取失败: " + processR.getMsg()); + } + String flowId = processR.getData().getFlowId(); + ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto(); + processInstanceParamDto.setFlowId(flowId); + R stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); + if (!stringR.isOk() || stringR.getData() == null) { + throw new ServiceException("流程实例启动失败: " + stringR.getMsg()); + } + String processInstanceId = stringR.getData(); + Long deptId = SecurityUtils.getUser().getDeptId(); + VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class); + bean.setType(VisitorTypeEnum.ZDYQ.getType()); + bean.setProcessInstanceId(processInstanceId); + bean.setDeptId(deptId); + bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); + + String uniqueToken = UUID.randomUUID().toString(); + String token = uniqueToken.replace("-", ""); + bean.setToken(token); + int insert = baseMapper.insert(bean); + List visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList(); + if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){ + List visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class); + visitorsCarEntities.forEach(i->{ + i.setVisitorsId(bean.getId()); + }); + visitorsCarMapper.insert(visitorsCarEntities); + } + return insert; + } + + @Override + public Object getPageBF(Page page, VisitorsEntity visitors) { + Long userId = SecurityUtils.getUser().getId(); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(VisitorsEntity::getUserId, userId); + Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + + pageData.getRecords().forEach(i->{ + }); + + + return pageData; } diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml index 840556b3..60215c24 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml @@ -27,5 +27,7 @@ + + \ No newline at end of file diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/SmsController.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/SmsController.java index e6bff3e8..7be7fbc3 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/SmsController.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/SmsController.java @@ -15,13 +15,13 @@ public class SmsController { private final SmsService smsService; // 简单发送 - @PostMapping("/verify-code") + @PostMapping("/sendMsg") public void sendVerifyCode(@RequestParam String mobile) { smsService.sendSms(mobile, "20657"); } // 带参数发送 - @PostMapping("/order-notify") + @PostMapping("/sendMsgParams") @Inner(value = false) public void sendOrderNotify( @RequestParam String mobile,