Browse Source

登录调整、新增的拜访流程调整

contract
Yen 2 years ago
parent
commit
73a0dd36f4
  1. 33
      src/main/java/com/qs/serve/controller/WxSvcLoginApi.java
  2. 151
      src/main/java/com/qs/serve/modules/biz/controller/api/BizCusVisitApi.java
  3. 31
      src/main/java/com/qs/serve/modules/sys/service/impl/SysUserLoginServiceImpl.java

33
src/main/java/com/qs/serve/controller/WxSvcLoginApi.java

@ -10,6 +10,7 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.HttpCode; import com.qs.serve.common.model.enums.HttpCode;
import com.qs.serve.common.model.enums.InterType; import com.qs.serve.common.model.enums.InterType;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.sys.mapper.SysTenantMapper;
import com.qs.serve.modules.wx.entity.WxUser; import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.entity.dto.WxLoginUser; import com.qs.serve.modules.wx.entity.dto.WxLoginUser;
import com.qs.serve.modules.wx.service.WxUserService; import com.qs.serve.modules.wx.service.WxUserService;
@ -42,6 +43,8 @@ public class WxSvcLoginApi {
private final RedisService redisService; private final RedisService redisService;
private final SysTenantMapper sysTenantMapper;
/** /**
* 公众号登录 * 公众号登录
@ -68,6 +71,21 @@ public class WxSvcLoginApi {
ServletUtils.getIp(request), LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant()); ServletUtils.getIp(request), LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant());
redisService.set(key, JsonUtil.objectToJson(loginUser.loginUserDTO()),2, TimeUnit.DAYS); redisService.set(key, JsonUtil.objectToJson(loginUser.loginUserDTO()),2, TimeUnit.DAYS);
objectMap.put("token",token); objectMap.put("token",token);
//后台管理员信息
Map<String,Object> tokenMap = new HashMap<>(10);
String client = "wx_app";
String redisKey = StringUtils.format(RedisCacheKeys.LOGIN_KEY_APP,client,wxUser.getSysUserId());
String pctoken = JwtUtils.generateToken(wxUser.getSysUserId(),loginUser.getTypeFlag(),client);
redisService.set(redisKey,pctoken);
tokenMap.put("token", pctoken);
tokenMap.put("userId", wxUser.getSysUserId());
tokenMap.put("IP", loginUser.getLoginIp());
tokenMap.put("tenant", sysTenantMapper.selectById(loginUser.getTenant()));
tokenMap.put("loginType",client);
tokenMap.put("client",client);
//关联
objectMap.put("adminTokenInfo",tokenMap);
return R.ok(objectMap); return R.ok(objectMap);
} }
@ -83,6 +101,21 @@ public class WxSvcLoginApi {
ServletUtils.getIp(request), LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant()); ServletUtils.getIp(request), LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant());
redisService.set(key, JsonUtil.objectToJson(loginUser.loginUserDTO()),2, TimeUnit.DAYS); redisService.set(key, JsonUtil.objectToJson(loginUser.loginUserDTO()),2, TimeUnit.DAYS);
objectMap.put("token",token); objectMap.put("token",token);
Map<String,Object> tokenMap = new HashMap<>(10);
String client = "wx_app";
String redisKey = StringUtils.format(RedisCacheKeys.LOGIN_KEY_APP,client,loginUser.getUserId());
String pctoken = JwtUtils.generateToken(loginUser.getUserId(),loginUser.getTypeFlag(),client);
redisService.set(redisKey,pctoken);
tokenMap.put("token", pctoken);
tokenMap.put("userId", loginUser.getUserId());
tokenMap.put("IP", loginUser.getLoginIp());
tokenMap.put("tenant", sysTenantMapper.selectById(loginUser.getTenant()));
tokenMap.put("loginType",client);
tokenMap.put("client",client);
//关联
objectMap.put("adminTokenInfo",tokenMap);
return R.ok(objectMap); return R.ok(objectMap);
} }

151
src/main/java/com/qs/serve/modules/biz/controller/api/BizCusVisitApi.java

@ -0,0 +1,151 @@
package com.qs.serve.modules.biz.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.biz.entity.BizCusVisit;
import com.qs.serve.modules.biz.entity.BizVisit;
import com.qs.serve.modules.biz.service.BizCusVisitService;
import com.qs.serve.modules.biz.service.BizVisitService;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* API业务 拜访日志2
* @author YenHex
* @since 2022-10-26
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/api/cusVisit")
public class BizCusVisitApi {
private BizCusVisitService bizVisitService;
private WxUserService wxUserService;
private SysUserService sysUserService;
private BmsSupplierService supplierService;
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<BizCusVisit>> getPage(BizCusVisit param){
WxUser wxUser = wxUserService.getCurrentWxUser();
if(wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0")){
return R.byEmptyList();
}
String userId = wxUser.getSysUserId();
param.setVisitorId(userId);
PageUtil.startPage();
LambdaQueryWrapper<BizCusVisit> visitWrapper = new LambdaQueryWrapper<>(param);
List<BizCusVisit> list = bizVisitService.list(visitWrapper);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
public R<BizCusVisit> getById(@PathVariable("id") String id){
WxUser wxUser = wxUserService.getCurrentWxUser();
if(wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0")){
return R.ok();
}
String userId = wxUser.getSysUserId();
BizCusVisit bizVisit = bizVisitService.getById(id);
if(!bizVisit.getVisitorId().equals(userId)){
return R.ok();
}
return R.ok(bizVisit);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
public R<?> updateById(@RequestBody @Valid BizCusVisit param){
WxUser wxUser = wxUserService.getCurrentWxUser();
if(wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0")){
return R.ok();
}
String userId = wxUser.getSysUserId();
BizCusVisit bizVisit = bizVisitService.getById(param.getId());
if(!bizVisit.getVisitorId().equals(userId)){
return R.ok();
}
if(StringUtils.hasText(param.getCustomerId())){
BmsSupplier supplier = supplierService.getById(param.getCustomerId());
param.setCustomerId(supplier.getId());
param.setCustomerName(supplier.getName());
param.setCustomerCode(supplier.getCode());
}
boolean result = bizVisitService.updateById(param);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
public R<?> save(@RequestBody @Valid BizCusVisit param){
WxUser wxUser = wxUserService.getCurrentWxUser();
if(wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0")){
return R.ok();
}
String userId = wxUser.getSysUserId();
SysUser sysUser = sysUserService.getById(userId);
param.setVisitorId(userId);
param.setVisitorName(sysUser.getName());
BmsSupplier supplier = supplierService.getById(param.getCustomerId());
param.setCustomerId(supplier.getId());
param.setCustomerName(supplier.getName());
param.setCustomerCode(supplier.getCode());
boolean result = bizVisitService.save(param);
return R.isTrue(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
public R<?> deleteById(@PathVariable("id") Long id){
WxUser wxUser = wxUserService.getCurrentWxUser();
if(wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0")){
return R.ok();
}
String userId = wxUser.getSysUserId();
BizCusVisit bizVisit = bizVisitService.getById(id);
if(!bizVisit.getVisitorId().equals(userId)){
return R.ok();
}
boolean result = bizVisitService.removeById(id);
return R.isTrue(result);
}
}

31
src/main/java/com/qs/serve/modules/sys/service/impl/SysUserLoginServiceImpl.java

@ -4,18 +4,18 @@ import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.redis.RedisService; import com.qs.serve.common.framework.redis.RedisService;
import com.qs.serve.common.framework.security.model.LoginUser; import com.qs.serve.common.framework.security.model.LoginUser;
import com.qs.serve.common.framework.security.model.LoginUserType;
import com.qs.serve.common.framework.security.service.SysUserDetailsServiceImpl; import com.qs.serve.common.framework.security.service.SysUserDetailsServiceImpl;
import com.qs.serve.common.model.consts.RedisCacheKeys; import com.qs.serve.common.model.consts.RedisCacheKeys;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.JwtUtils;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.dto.SysLoginByPhoneParam; import com.qs.serve.modules.sys.entity.dto.SysLoginByPhoneParam;
import com.qs.serve.modules.sys.entity.dto.SysLoginParam; import com.qs.serve.modules.sys.entity.dto.SysLoginParam;
import com.qs.serve.modules.sys.mapper.SysTenantMapper; import com.qs.serve.modules.sys.mapper.SysTenantMapper;
import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysUserLoginService; import com.qs.serve.modules.sys.service.SysUserLoginService;
import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.mapper.WxUserMapper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
@ -24,9 +24,11 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
/** /**
* @author YenHex * @author YenHex
@ -45,6 +47,8 @@ public class SysUserLoginServiceImpl implements SysUserLoginService {
private final RedisService redisService; private final RedisService redisService;
private final WxUserMapper wxUserMapper;
@Override @Override
public Map<String, Object> login(SysLoginParam loginParam) { public Map<String, Object> login(SysLoginParam loginParam) {
UserDetails userDetails = userDetailsService.loadUserByUsername(loginParam.getAccount()); UserDetails userDetails = userDetailsService.loadUserByUsername(loginParam.getAccount());
@ -104,6 +108,25 @@ public class SysUserLoginServiceImpl implements SysUserLoginService {
tokenMap.put("tenant", sysTenantMapper.selectById(loginUser.getTenant())); tokenMap.put("tenant", sysTenantMapper.selectById(loginUser.getTenant()));
tokenMap.put("loginType",loginType); tokenMap.put("loginType",loginType);
tokenMap.put("client",client); tokenMap.put("client",client);
//拓展微信token
String wxtoken = IdUtil.fastSimpleUUID();
String key = RedisCacheKeys.LOGIN_KEY_WX + wxtoken;
LambdaQueryWrapper<WxUser> wxUsrLqw = new LambdaQueryWrapper<>();
wxUsrLqw.eq(WxUser::getSysUserId,loginUser.getUserId());
WxUser wxUser = null;
try {
wxUser = wxUserMapper.selectOne(wxUsrLqw);
} catch (Exception e) {
e.printStackTrace();
}
if(wxUser!=null){
LoginUser wxloginUser = new LoginUser(wxUser.getId(),wxUser.getEmpName(),"",
"", LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant());
redisService.set(key, JsonUtil.objectToJson(wxloginUser.loginUserDTO()),2, TimeUnit.DAYS);
tokenMap.put("wxToken",token);
}else {
tokenMap.put("wxToken","notBindWx");
}
return tokenMap; return tokenMap;
} }

Loading…
Cancel
Save