From ee3a8f49c36705361ed3826b9d520c7c07324a7e Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 20 Sep 2024 16:17:13 +0800 Subject: [PATCH] =?UTF-8?q?opt:=20=E6=8B=9C=E8=AE=BFAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 20 ++++++++++++ .../security/model/LoginUserType.java | 1 + .../visit/api/VisitMainInnerController.java | 9 ++++-- .../modules/visit/api/VisitMainOuterApi.java | 32 ++++++++++++++++--- .../serve/modules/visit/entity/VisitMain.java | 2 ++ .../modules/visit/entity/bo/VisitCheckIn.java | 16 ++++++++++ .../serve/modules/wx/api/WxSvcLoginApi.java | 22 +++++++------ .../qs/serve/modules/wx/api/WxSvcUserApi.java | 2 +- .../wx/service/impl/WxUserServiceImpl.java | 2 +- 9 files changed, 87 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/visit/entity/bo/VisitCheckIn.java diff --git a/pom.xml b/pom.xml index ba26ef7..35bdb44 100644 --- a/pom.xml +++ b/pom.xml @@ -202,6 +202,26 @@ 3.1.5 + + + com.github.shalousun + smart-doc + 2.7.7 + test + + + org.web3j + core + 5.0.0 + test + + + com.squareup.okhttp3 + okhttp + 4.3.1 + test + + diff --git a/src/main/java/com/qs/serve/common/framework/security/model/LoginUserType.java b/src/main/java/com/qs/serve/common/framework/security/model/LoginUserType.java index 8538e03..d9cbf96 100644 --- a/src/main/java/com/qs/serve/common/framework/security/model/LoginUserType.java +++ b/src/main/java/com/qs/serve/common/framework/security/model/LoginUserType.java @@ -15,6 +15,7 @@ public enum LoginUserType { * 人员分类 */ APP_USER("00","微信用户"), + MEMBER("03","member"), SYS_USER("01","系统人员"), SYS_SUP_USER("02","超级管理员") ; diff --git a/src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java b/src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java index 500a0ba..8813aa7 100644 --- a/src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java +++ b/src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java @@ -13,6 +13,7 @@ import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.entity.VisitMain; +import com.qs.serve.modules.visit.entity.bo.VisitCheckIn; import com.qs.serve.modules.visit.service.VisitMainService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -37,7 +38,7 @@ public class VisitMainInnerController { private SysUserService sysUserService; /** - * 翻页 + * 翻页(门卫专用) * @param param * @return */ @@ -67,9 +68,9 @@ public class VisitMainInnerController { * @param id * @return */ - @GetMapping("/checkIn/{id}") + @PostMapping("/checkIn/{id}") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) - public R checkIn(@PathVariable("id") String id){ + public R checkIn(@PathVariable String id, @RequestBody VisitCheckIn param){ VisitMain visitMain = visitMainService.getById(id); if(visitMain.getCheckState().equals(VisitMainConst.CheckState_1) &&visitMain.getVisitStatus().equals(VisitMainConst.VisitStatus_1)){ @@ -78,7 +79,9 @@ public class VisitMainInnerController { visitMain.setCheckUserCode(sysUser.getCode()); visitMain.setCheckUserName(sysUser.getName()); visitMain.setVisitTime(LocalDateTime.now()); + visitMain.setRemark2(param.getRemark2()); visitMain.setVisitStatus(VisitMainConst.VisitStatus_3); + visitMainService.updateById(visitMain); return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java b/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java index 06e73e2..3f94064 100644 --- a/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java +++ b/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java @@ -9,6 +9,7 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.entity.VisitMain; import com.qs.serve.modules.visit.service.VisitMainService; import com.qs.serve.modules.wx.common.consts.WxUserTypeConst; @@ -19,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.time.LocalDateTime; import java.util.List; /** @@ -77,13 +79,13 @@ public class VisitMainOuterApi { WxUser wxUser = wxUserService.getCurrentWxUser(); if(wxUser.getUserType().equals(WxUserTypeConst.UMS_MEMBER)){ param.setCheckState(null); + param.setVisitStatus(null); param.setDeptId(null); param.setDeptName(null); param.setUserId(null); param.setUserCode(null); param.setUserName(null); param.setSubmitTime(null); - boolean result = visitMainService.updateById(param); return R.isTrue(result); } @@ -92,14 +94,34 @@ public class VisitMainOuterApi { /** * 提交到OA - * @param id + * @param param * @return */ @PostMapping("/submit") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.SUBMIT) - public R submit(String id){ - visitMainService.submitOaFlow(id); - return R.ok(); + public R submit(@RequestBody @Valid VisitMain param){ + WxUser wxUser = wxUserService.getCurrentWxUser(); + if(wxUser.getUserType().equals(WxUserTypeConst.UMS_MEMBER)){ + param.setCheckState(null); + param.setVisitStatus(null); + param.setDeptId(null); + param.setDeptName(null); + param.setUserId(null); + param.setUserCode(null); + param.setUserName(null); + param.setSubmitTime(null); + + param.setVisitorId(wxUser.getUserId()); + + param.setSyFormId("test"); + param.setSubmitTime(LocalDateTime.now()); + param.setCheckState(VisitMainConst.CheckState_0); + + boolean result = visitMainService.updateById(param); + //visitMainService.submitOaFlow(param.getId()); + return R.ok(); + } + return R.error("用户角色暂不支持"); } } diff --git a/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java b/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java index c6ecdb8..d96e62c 100644 --- a/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java +++ b/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java @@ -117,6 +117,8 @@ public class VisitMain implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + private String remark2; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/visit/entity/bo/VisitCheckIn.java b/src/main/java/com/qs/serve/modules/visit/entity/bo/VisitCheckIn.java new file mode 100644 index 0000000..74c9952 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/visit/entity/bo/VisitCheckIn.java @@ -0,0 +1,16 @@ +package com.qs.serve.modules.visit.entity.bo; + +import lombok.Data; + +/** + * @author YenHex + * @since 2024/9/19 + */ +@Data +public class VisitCheckIn { + + private String id; + + private String remark2; + +} diff --git a/src/main/java/com/qs/serve/modules/wx/api/WxSvcLoginApi.java b/src/main/java/com/qs/serve/modules/wx/api/WxSvcLoginApi.java index 269095f..9d7553d 100644 --- a/src/main/java/com/qs/serve/modules/wx/api/WxSvcLoginApi.java +++ b/src/main/java/com/qs/serve/modules/wx/api/WxSvcLoginApi.java @@ -146,23 +146,27 @@ public class WxSvcLoginApi { public R login(HttpServletRequest request,@RequestBody @Valid WxLoginUser wxLoginUser){ Map objectMap = new HashMap<>(); String token = IdUtil.fastSimpleUUID(); + String userType = wxLoginUser.getUserType(); + String userId = "1"+wxLoginUser.getUserType(); //微信登录ID String wxUserKey = StringUtils.format(RedisCacheKeys.WX_KEY_USER,token); - redisService.set(wxUserKey,"1"); + redisService.set(wxUserKey,userId); - LoginUser loginUser = new LoginUser("1","微信测试用户","", + LoginUser loginUser = new LoginUser(userId,"微信测试用户","", ServletUtils.getIp(request), LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant()); objectMap.put("token",token); - String userType = wxLoginUser.getUserType(); - String sysUserId = "1"; Map tokenMap = new HashMap<>(10); String client = "wx_app"; - String redisKey = StringUtils.format(RedisCacheKeys.LOGIN_KEY_APP,client,sysUserId); - String pctoken = JwtUtils.generateToken(sysUserId,loginUser.getTypeFlag(),client); - redisService.set(redisKey,pctoken); - tokenMap.put("token", pctoken); + if(wxLoginUser.getUserType().equals("user")){ + String redisKey = StringUtils.format(RedisCacheKeys.LOGIN_KEY_APP,client,"1"); + String pctoken = JwtUtils.generateToken("1",loginUser.getTypeFlag(),client); + redisService.set(redisKey,pctoken); + tokenMap.put("token", pctoken); + }else { + tokenMap.put("token", token); + } tokenMap.put("userType", userType); - tokenMap.put("userId", sysUserId); + tokenMap.put("userId", userId); tokenMap.put("IP", loginUser.getLoginIp()); tokenMap.put("loginType",client); tokenMap.put("client",client); diff --git a/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java b/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java index 82cb2a0..2f47219 100644 --- a/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java +++ b/src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java @@ -74,7 +74,7 @@ public class WxSvcUserApi { sysUser.setAuthorList(userDetails.getAuthorList()); sysUserVo = sysUser.toSysUserVo(false); } - }else if (wxUser.getUserType().equals(WxUserTypeConst.SYS_USER) + }else if (wxUser.getUserType().equals(WxUserTypeConst.UMS_MEMBER) &&StringUtils.hasText(wxUser.getUserId())){ UmsMember member = umsMemberMapper.selectById(wxUser.getUserId()); wxUser.setMemberInfo(member); diff --git a/src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java b/src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java index ca37676..136e530 100644 --- a/src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java @@ -126,7 +126,7 @@ public class WxUserServiceImpl extends ServiceImpl impleme String wxUserId = redisService.getString(wxUserKey); String appId = AuthContextUtils.getAppId(); WxUser wxUser = this.getById(wxUserId); - if(updateSub&&!wxUser.getId().equals("1") + if(updateSub&&!wxUser.getId().equals("1user")&&!wxUser.getId().equals("1member") &&(wxUser.getAppType().equals(1)||wxUser.getAppType().equals(2))){ try { WxMpService wxMpService = wxMpConfig.wxMpService().switchoverTo(appId);