Browse Source

opt: 拜访API

master
Yen 10 months ago
parent
commit
ee3a8f49c3
  1. 20
      pom.xml
  2. 1
      src/main/java/com/qs/serve/common/framework/security/model/LoginUserType.java
  3. 9
      src/main/java/com/qs/serve/modules/visit/api/VisitMainInnerController.java
  4. 32
      src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java
  5. 2
      src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java
  6. 16
      src/main/java/com/qs/serve/modules/visit/entity/bo/VisitCheckIn.java
  7. 22
      src/main/java/com/qs/serve/modules/wx/api/WxSvcLoginApi.java
  8. 2
      src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java
  9. 2
      src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

20
pom.xml

@ -202,6 +202,26 @@
<version>3.1.5</version>
</dependency>
<dependency>
<groupId>com.github.shalousun</groupId>
<artifactId>smart-doc</artifactId>
<version>2.7.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.web3j</groupId>
<artifactId>core</artifactId>
<version>5.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>

1
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","超级管理员")
;

9
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<VisitMain> checkIn(@PathVariable("id") String id){
public R<VisitMain> 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();
}

32
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("用户角色暂不支持");
}
}

2
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")

16
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;
}

22
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<String,Object> 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<String,Object> 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);

2
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);

2
src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

@ -126,7 +126,7 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> 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);

Loading…
Cancel
Save