diff --git a/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java b/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java index 0d429fc..8e7b4cb 100644 --- a/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java +++ b/policeSecurityServer/src/main/java/com/changhu/config/WebConfig.java @@ -41,6 +41,8 @@ public class WebConfig implements WebMvcConfigurer { whiteList.add("/management/getCheckStatus"); //微信小程序注册 whiteList.add("/miniProgramUser/register"); + //二维码表单录入保安人员 + whiteList.add("/miniProgramUser/qrCodeFormInputSecurityUser"); } @Override diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java index 93e67d8..467439a 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/MiniProgramUserController.java @@ -3,6 +3,7 @@ package com.changhu.module.miniProgram.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.changhu.common.annotation.JsonBody; import com.changhu.module.miniProgram.pojo.params.MiniProgramUserRegisterParams; +import com.changhu.module.miniProgram.pojo.params.SaveOrUpdateSecurityUserParams; import com.changhu.module.miniProgram.pojo.queryParams.ServiceProjectSecurityUserPagerQueryParams; import com.changhu.module.miniProgram.pojo.vo.ServiceProjectSecurityUserPagerVo; import com.changhu.module.miniProgram.service.MiniProgramUserService; @@ -34,6 +35,12 @@ public class MiniProgramUserController { miniProgramUserService.register(params); } + @Operation(summary = "二维码表单录入保安人员") + @PostMapping("/qrCodeFormInputSecurityUser") + public void qrCodeFormInputSecurityUser(@RequestBody @Valid SaveOrUpdateSecurityUserParams params) { + miniProgramUserService.qrCodeFormInputSecurityUser(params); + } + @Operation(summary = "服务项目保安人员分页") @PostMapping("/securityUserPager") public Page securityUserPager(@RequestBody PageParams queryParams) { diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/ProjectManageIndexController.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/ProjectManageIndexController.java index 9419b3a..b64d237 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/ProjectManageIndexController.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/controller/ProjectManageIndexController.java @@ -9,7 +9,11 @@ import com.changhu.module.miniProgram.service.ProjectManageIndexService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -42,7 +46,15 @@ public class ProjectManageIndexController { @Operation(summary = "保存或更新保安人员") @PostMapping("/saveOrUpdateSecurityUser") - public void saveOrUpdateSecurityUser(@RequestBody SaveOrUpdateSecurityUserParams params) { + public void saveOrUpdateSecurityUser(@RequestBody @Valid SaveOrUpdateSecurityUserParams params) { projectManageIndexService.saveOrUpdateSecurityUser(params); } + + @JsonBody(value = false) + @Operation(summary = "获取表单分享二维码") + @GetMapping(value = "/shareForm_QR_Code") + public ResponseEntity shareForm_QR_Code(@Schema(description = "要生成的路径") @RequestParam String path, + @Schema(description = "生成二维码的宽度") @RequestParam(defaultValue = "430") Integer width) { + return projectManageIndexService.shareForm_QR_Code(path, width); + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/SaveOrUpdateSecurityUserParams.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/SaveOrUpdateSecurityUserParams.java index 34ef398..0b4dc16 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/SaveOrUpdateSecurityUserParams.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/params/SaveOrUpdateSecurityUserParams.java @@ -23,6 +23,10 @@ public class SaveOrUpdateSecurityUserParams { @Schema(description = "服务项目id") private Long serviceProjectId; + @NotNull(message = "保安单位不能为空") + @Schema(description = "保安单位id") + private Long securityUnitId; + @NotBlank(message = "名字不能为空") @Schema(description = "名称") private String name; diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/vo/IndexServiceProjectListVo.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/vo/IndexServiceProjectListVo.java index 961908a..ec5e49d 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/vo/IndexServiceProjectListVo.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/pojo/vo/IndexServiceProjectListVo.java @@ -53,6 +53,8 @@ public class IndexServiceProjectListVo { static class ServiceProjectVo { @Schema(description = "服务项目id") private Long snowFlakeId; + @Schema(description = "保安单位id") + private Long securityUnitId; @Schema(description = "项目经理信息") private Dict projectManagerMiniProgramUserInfo; @Schema(description = "服务项目名称") diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java index 536d1ed..543e642 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/MiniProgramUserService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.changhu.module.miniProgram.pojo.entity.MiniProgramUser; import com.changhu.module.miniProgram.pojo.params.MiniProgramUserRegisterParams; +import com.changhu.module.miniProgram.pojo.params.SaveOrUpdateSecurityUserParams; import com.changhu.module.miniProgram.pojo.queryParams.ServiceProjectSecurityUserPagerQueryParams; import com.changhu.module.miniProgram.pojo.vo.ServiceProjectSecurityUserPagerVo; import com.changhu.support.mybatisplus.pojo.params.PageParams; @@ -29,4 +30,11 @@ public interface MiniProgramUserService extends IService { * @return 保安人员 */ Page securityUserPager(PageParams queryParams); + + /** + * 二维码表单录入保安人员 + * + * @param params 参数 + */ + void qrCodeFormInputSecurityUser(SaveOrUpdateSecurityUserParams params); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/ProjectManageIndexService.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/ProjectManageIndexService.java index ca365ee..69c3f9d 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/ProjectManageIndexService.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/ProjectManageIndexService.java @@ -2,6 +2,9 @@ package com.changhu.module.miniProgram.service; import com.changhu.module.miniProgram.pojo.params.SaveOrUpdateSecurityUserParams; import com.changhu.module.miniProgram.pojo.vo.IndexServiceProjectListVo; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; import java.util.List; @@ -31,4 +34,9 @@ public interface ProjectManageIndexService { * @param params 保安人员参数 */ void saveOrUpdateSecurityUser(SaveOrUpdateSecurityUserParams params); + + /** + * 分享表单录入的二维码 + */ + ResponseEntity shareForm_QR_Code(String path, Integer width); } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java index 0c9b091..fb85ceb 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/MiniProgramUserServiceImpl.java @@ -13,9 +13,11 @@ import com.changhu.module.miniProgram.mapper.SecurityUserMapper; import com.changhu.module.miniProgram.pojo.entity.MiniProgramUser; import com.changhu.module.miniProgram.pojo.entity.SecurityUser; import com.changhu.module.miniProgram.pojo.params.MiniProgramUserRegisterParams; +import com.changhu.module.miniProgram.pojo.params.SaveOrUpdateSecurityUserParams; import com.changhu.module.miniProgram.pojo.queryParams.ServiceProjectSecurityUserPagerQueryParams; import com.changhu.module.miniProgram.pojo.vo.ServiceProjectSecurityUserPagerVo; import com.changhu.module.miniProgram.service.MiniProgramUserService; +import com.changhu.module.miniProgram.service.ProjectManageIndexService; import com.changhu.support.mybatisplus.pojo.params.PageParams; import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +37,9 @@ public class MiniProgramUserServiceImpl extends ServiceImpl securityUserPager(PageParams queryParams) { return securityUserMapper.securityUserPager(queryParams.getPage(), queryParams.getParams()); } + + @Override + public void qrCodeFormInputSecurityUser(SaveOrUpdateSecurityUserParams params) { + projectManageIndexService.saveOrUpdateSecurityUser(params); + } } diff --git a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/ProjectManageIndexServiceImpl.java b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/ProjectManageIndexServiceImpl.java index 50f784e..82ee67c 100644 --- a/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/ProjectManageIndexServiceImpl.java +++ b/policeSecurityServer/src/main/java/com/changhu/module/miniProgram/service/impl/ProjectManageIndexServiceImpl.java @@ -1,5 +1,7 @@ package com.changhu.module.miniProgram.service.impl; +import cn.binarywang.wx.miniapp.api.WxMaQrcodeService; +import cn.binarywang.wx.miniapp.api.WxMaService; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.toolkit.Db; import com.changhu.common.exception.MessageException; @@ -10,9 +12,18 @@ import com.changhu.module.miniProgram.pojo.params.SaveOrUpdateSecurityUserParams import com.changhu.module.miniProgram.pojo.vo.IndexServiceProjectListVo; import com.changhu.module.miniProgram.service.ProjectManageIndexService; import com.changhu.support.mybatisplus.pojo.entity.BaseEntity; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import java.io.*; import java.util.List; import java.util.Optional; @@ -21,12 +32,16 @@ import java.util.Optional; * @createTime 2024/9/10 下午3:50 * @desc ProjectManageIndexServiceImpl... */ +@Slf4j @Service public class ProjectManageIndexServiceImpl implements ProjectManageIndexService { @Autowired private ServiceProjectMapper serviceProjectMapper; + @Autowired + private WxMaService wxMaService; + @Override public List getMyServiceProjectList() { return serviceProjectMapper.getServiceProjectList(null, UserUtil.getUserId()); @@ -43,8 +58,6 @@ public class ProjectManageIndexServiceImpl implements ProjectManageIndexService @Override public void saveOrUpdateSecurityUser(SaveOrUpdateSecurityUserParams params) { SecurityUser securityUser = BeanUtil.copyProperties(params, SecurityUser.class); - //填充保安单位 - securityUser.setSecurityUnitId(UserUtil.getUnitId()); //新增的情况 Long snowFlakeId = securityUser.getSnowFlakeId(); if (snowFlakeId == null) { @@ -74,4 +87,18 @@ public class ProjectManageIndexServiceImpl implements ProjectManageIndexService throw new MessageException(); } } + + @Override + public ResponseEntity shareForm_QR_Code(String path, Integer width) { + WxMaQrcodeService qrcodeService = wxMaService.getQrcodeService(); + try { + File qrcodeFile = qrcodeService.createQrcode(path, width); + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + qrcodeFile.getName()) + .contentType(MediaType.APPLICATION_OCTET_STREAM) + .body(new FileSystemResource(qrcodeFile)); + } catch (WxErrorException e) { + throw new MessageException("生成表单二维码失败:{}", e.getMessage()); + } + } } diff --git a/policeSecurityServer/src/main/resources/env/dev/application.yml b/policeSecurityServer/src/main/resources/env/dev/application.yml index d108324..eb06cb5 100644 --- a/policeSecurityServer/src/main/resources/env/dev/application.yml +++ b/policeSecurityServer/src/main/resources/env/dev/application.yml @@ -144,9 +144,9 @@ sa-token: wx: miniapp: #微信小程序的appid - appid: wx8902ddbfddb820d1 + appid: wx0acd1c4fcf94bdd3 #微信小程序的Secret - secret: 8674decea33df3362245937444944596 + secret: 4b700dbacb42ef258537ddc61d964a17 msgDataFormat: JSON project: diff --git a/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml b/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml index b18db61..c770498 100644 --- a/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml +++ b/policeSecurityServer/src/main/resources/mapper/ServiceProjectMapper.xml @@ -48,6 +48,7 @@ ad4.name as 'streetName', JSON_ARRAYAGG(JSON_OBJECT( 'snowFlakeId', sp.snow_flake_id, + 'securityUnitId',sp.security_unit_id, 'name', sp.name, 'type', sp.type, 'isRecruitSecurity', sp.is_recruit_security,