提交 28d11c8d authored 作者: 孙于凯's avatar 孙于凯

feat:新增浙政钉

上级 81d1c5de
......@@ -108,28 +108,32 @@ public class Sm4Util {
public static void main(String[] args) throws Exception {
/**
* SM4算法目前只支持128位(即密钥16字节)
*/
String key = "nXwqj7JVe@czbD4E";
System.out.println("key:" + key);
String data = "dasdsadsadqwefdsfdf热瓦甫企鹅我访问否dqfwq";
/**
* 加密
*/
byte[] encrypt = Sm4Util.encrypt(data.getBytes("UTF-8"), key.getBytes("UTF-8"));
//转换为标准的Base64字符串
String encryptStr = Base64.encodeBase64String(encrypt);
System.out.println("加密:" + encryptStr);
/**
* 解密
*/
byte[] decryptBytes = Base64.decodeBase64(encryptStr);
byte[] decrypt = Sm4Util.decrypt(decryptBytes, key.getBytes("UTF-8"));
String decryptStr = new String(decrypt);
System.out.println("解密:" + decryptStr);
// /**
// * SM4算法目前只支持128位(即密钥16字节)
// */
// String key = "nXwqj7JVe@czbD4E";
// System.out.println("key:" + key);
// String data = "dasdsadsadqwefdsfdf热瓦甫企鹅我访问否dqfwq";
//
// /**
// * 加密
// */
// byte[] encrypt = Sm4Util.encrypt(data.getBytes("UTF-8"), key.getBytes("UTF-8"));
// //转换为标准的Base64字符串
// String encryptStr = Base64.encodeBase64String(encrypt);
// System.out.println("加密:" + encryptStr);
//
// /**
// * 解密
// */
// byte[] decryptBytes = Base64.decodeBase64(encryptStr);
// byte[] decrypt = Sm4Util.decrypt(decryptBytes, key.getBytes("UTF-8"));
// String decryptStr = new String(decrypt);
// System.out.println("解密:" + decryptStr);
String decrypt = decrypt("No3E5a0/73I+/TMJZ43eVQ==", KEY);
System.out.println(decrypt);
}
......
......@@ -23,5 +23,10 @@
<artifactId>zydd-misc</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.tykj</groupId>
<artifactId>zydd-user</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -3,15 +3,14 @@ package com.tykj.zydd.pickup.controller;
import com.tykj.zydd.misc.swagger.AutoDocument;
import com.tykj.zydd.pickup.entity.PickUp;
import com.tykj.zydd.pickup.entity.dto.NotificationDTO;
import com.tykj.zydd.pickup.entity.dto.PickUpDTO;
import com.tykj.zydd.pickup.entity.vo.NotificationVO;
import com.tykj.zydd.pickup.service.PickUpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
......@@ -31,4 +30,16 @@ public class PickUpController {
public List<PickUp> getListPickUp(@RequestBody PickUpDTO pickUpDTO){
return pickUpService.getListPickUp(pickUpDTO);
}
@PostMapping ("/getNotificationList")
@ApiOperation(value = "传入接收单位获取该单位下的通知人员")
public List<NotificationVO> getNotificationList(@RequestParam List<String> unitName){
return pickUpService.getNotificationList(unitName);
}
@PostMapping ("/notification")
@ApiOperation(value = "发送消息通知 ")
public void notification(@RequestBody List<NotificationDTO> notificationDTOList){
pickUpService.notification(notificationDTOList);
}
}
......@@ -2,13 +2,12 @@ package com.tykj.zydd.pickup.controller;
import com.tykj.zydd.misc.swagger.AutoDocument;
import com.tykj.zydd.pickup.entity.Template;
import com.tykj.zydd.pickup.entity.dto.TemplateDTO;
import com.tykj.zydd.pickup.service.TemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
......@@ -25,9 +24,15 @@ public class TemplateController {
@PostMapping("/getListTemplate")
@ApiOperation(value = "后台查询模板")
public List<Template> getListTemplate(String organizationCode){
return templateService.getListTemplate(organizationCode);
@GetMapping("/getListTemplate")
@ApiOperation(value = "查询模板")
public List<Template> getListTemplate(){
return templateService.getListTemplate();
}
@PostMapping("/addOrUpdate")
@ApiOperation(value = "修改或者添加模板")
public void addOrUpdate(@RequestBody TemplateDTO templateDTO){
templateService.saveTemplate(templateDTO);
}
}
......@@ -39,6 +39,9 @@ public class PickUp extends BaseEntity{
@ApiModelProperty(value = "接收电话")
private String toUnitPhone;
@ApiModelProperty(value = "状态")
@ApiModelProperty(value = "状态 0成功 1失败")
private Integer status;
@ApiModelProperty("所属单位")
private String organizationCode;
}
package com.tykj.zydd.pickup.entity.dto;
import com.tykj.zydd.pickup.entity.Template;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ManualOperationDTO {
@ApiModelProperty("收电序号")
private String telegramNumber;
@ApiModelProperty("收电单位")
private List<String> unitList;
@ApiModelProperty("模板列表")
private Template template;
}
package com.tykj.zydd.pickup.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class NotificationDTO {
@ApiModelProperty("接收单位")
private String toUnitName;
@ApiModelProperty("联系人")
private String user;
@ApiModelProperty("发送内容")
private String content;
}
......@@ -6,6 +6,8 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.time.LocalTime;
@Data
public class PickUpDTO {
@ApiModelProperty("时间")
......@@ -18,9 +20,7 @@ public class PickUpDTO {
// @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
// private LocalDateTime endTime;
@ApiModelProperty("通知单位")
private String fromUnitName;
@ApiModelProperty("接收单位")
private String toUnitName;
@ApiModelProperty("单位code")
private String organizationCode;
}
package com.tykj.zydd.pickup.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class TemplateDTO {
@ApiModelProperty(value = "模板id")
private Integer id;
@ApiModelProperty(value = "模板名称")
private String templateName;
@ApiModelProperty(value = "模板内容")
private String content;
@ApiModelProperty(value = "单位id")
private String organizationCode;
}
package com.tykj.zydd.pickup.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.catalina.User;
import java.util.List;
@Data
public class NotificationVO {
@ApiModelProperty("单位")
private String UnitName;
@ApiModelProperty("钉钉id")
private List<UserVO> userVOS;
}
package com.tykj.zydd.pickup.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class UserVO {
@ApiModelProperty("联系人姓名")
private String UserName;
@ApiModelProperty("钉钉id")
private String accountId;
}
......@@ -3,7 +3,10 @@ package com.tykj.zydd.pickup.service;
import com.tykj.zydd.pickup.entity.PickUp;
import com.tykj.zydd.pickup.entity.dto.ManualOperationDTO;
import com.tykj.zydd.pickup.entity.dto.NotificationDTO;
import com.tykj.zydd.pickup.entity.dto.PickUpDTO;
import com.tykj.zydd.pickup.entity.vo.NotificationVO;
import java.util.List;
......@@ -17,5 +20,16 @@ public interface PickUpService {
/**
* 手动添加记录
*/
PickUp addPickUp();
void addPickUp(ManualOperationDTO manualOperationDTO);
/**
* 根据前端传入的单位进行查询 所属单位跟联系人
*/
List<NotificationVO> getNotificationList(List<String> unitName);
/**
* 扫码通知
*/
void notification(List<NotificationDTO> notificationDTOList);
}
package com.tykj.zydd.pickup.service;
import com.tykj.zydd.pickup.entity.Template;
import com.tykj.zydd.pickup.entity.dto.TemplateDTO;
import java.util.List;
......@@ -9,8 +10,13 @@ public interface TemplateService {
/**
* 通知模板后台查看
*/
List<Template> getListTemplate(String organizationCode);
List<Template> getListTemplate();
/**
* 添加或者修改模板
*/
void saveTemplate(TemplateDTO templateDTO);
void saveTemplate();
}
......@@ -2,14 +2,38 @@ package com.tykj.zydd.pickup.service.impl;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.tykj.zydd.misc.exception.ApiException;
import com.tykj.zydd.pickup.dao.PickUpDAO;
import com.tykj.zydd.pickup.entity.PickUp;
import com.tykj.zydd.pickup.entity.dto.ManualOperationDTO;
import com.tykj.zydd.pickup.entity.dto.NotificationDTO;
import com.tykj.zydd.pickup.entity.dto.PickUpDTO;
import com.tykj.zydd.pickup.entity.vo.NotificationVO;
import com.tykj.zydd.pickup.entity.vo.UserVO;
import com.tykj.zydd.pickup.service.PickUpService;
import com.tykj.zydd.user.dao.KxAdminDao;
import com.tykj.zydd.user.dao.SpecificUnitDao;
import com.tykj.zydd.user.dao.SpecificUserDao;
import com.tykj.zydd.user.dao.SpecificUserMessageDao;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.SpecificUnit;
import com.tykj.zydd.user.entity.SpecificUser;
import com.tykj.zydd.user.entity.SpecificUserMessage;
import com.tykj.zydd.user.entity.dto.SendWorkMessageDTO;
import com.tykj.zydd.user.service.ZyddUserService;
import com.tykj.zydd.user.utils.UserUtils;
import org.apache.catalina.User;
import org.apache.tomcat.jni.Local;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.rmi.CORBA.Util;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class PickUpServiceImpl implements PickUpService {
......@@ -18,20 +42,130 @@ public class PickUpServiceImpl implements PickUpService {
@Resource
private PickUpDAO pickUpDAO;
@Resource
private SpecificUnitDao specificUnitDao;
@Resource
private SpecificUserMessageDao specificUserMessageDao;
@Resource
private SpecificUserDao specificUserDao;
@Resource
private KxAdminDao kxAdminDao;
@Resource
private ZyddUserService zyddUserService;
@Resource
private UserUtils userUtils;
@Override
public List<PickUp> getListPickUp(PickUpDTO pickUpDTO) {
PredicateBuilder<PickUp> predicateBuilder = Specifications.and();
// predicateBuilder.ge(pickUpDTO.getStartTime() != null, "notificationTime", pickUpDTO.getStartTime());
// predicateBuilder.le(pickUpDTO.getEndTime() != null, "notificationTime", pickUpDTO.getEndTime());
predicateBuilder.eq(pickUpDTO.getTime()!=null,"notificationTime",pickUpDTO.getTime());
predicateBuilder.eq(pickUpDTO.getFromUnitName() != null, "fromUnitName", pickUpDTO.getFromUnitName());
KxAdmin currentUser = userUtils.getCurrentUser();
predicateBuilder.eq("organizationCode", currentUser.getOrganizationCode());
predicateBuilder.eq(pickUpDTO.getToUnitName() != null, "toUnitName", pickUpDTO.getToUnitName());
if (pickUpDTO.getTime() != null) {
LocalDateTime time = pickUpDTO.getTime();
LocalDateTime startOfDay = time.toLocalDate().atStartOfDay();
LocalDateTime endOfDay = time.toLocalDate().atTime(LocalTime.MAX);
predicateBuilder.ge("notificationTime", startOfDay);
predicateBuilder.le("notificationTime", endOfDay);
}
return pickUpDAO.findAll(predicateBuilder.build());
}
@Override
public PickUp addPickUp() {
return null;
public void addPickUp(ManualOperationDTO manualOperationDTO) {
List<String> unitList = manualOperationDTO.getUnitList();
KxAdmin currentUser = userUtils.getCurrentUser();
for (String unit : unitList) {
PickUp pickUp = new PickUp();
pickUp.setToUnitName(unit);
LocalDateTime now = LocalDateTime.now();
pickUp.setNotificationTime(now);
pickUp.setFromUnitName(currentUser.getOrganizationName());
pickUp.setFromUser(currentUser.getUsername());
pickUp.setToUnitName(unit);
}
}
@Override
public List<NotificationVO> getNotificationList(List<String> unitName) {
List<NotificationVO> rs = new ArrayList<>();
List<SpecificUser> userAll = specificUserDao.findAll();
List<SpecificUnit> all = specificUnitDao.findAll();
List<SpecificUserMessage> userMessageAll = specificUserMessageDao.findAll();
List<KxAdmin> kxAdmins = kxAdminDao.findAll();
for (String s : unitName) {
NotificationVO vo = new NotificationVO();
List<UserVO> userVOS = new ArrayList<>();
vo.setUnitName(s);
//查找详细信息获取单位code
SpecificUnit specificUnit = all.stream().filter(a -> a.getOrganizationName().equals(s)).findFirst().orElse(new SpecificUnit());
//根据code查询该单位下的人员id
List<Integer> collect = userMessageAll.stream().filter(a -> a.getOrganizationCode().equals(specificUnit.getOrganizationCode()) && a.getEnable() == 0)
.map(SpecificUserMessage::getUserId)
.collect(Collectors.toList());
for (Integer integer : collect) {
UserVO userVO = new UserVO();
SpecificUser specificUser = userAll.stream().filter(a -> a.getId().equals(integer)).findFirst().orElse(new SpecificUser());
userVO.setUserName(specificUser.getEmployeeName());
KxAdmin kxAdmin = kxAdmins.stream().filter(a -> a.getUsername().equals(specificUser.getEmployeeName())).findFirst().orElse(new KxAdmin());
if (kxAdmin.getAccount() == null) {
throw new ApiException(specificUser.getEmployeeName() + "该用户没有从钉钉免登请先从钉钉登入");
}
userVO.setAccountId(kxAdmin.getAccount());
userVOS.add(userVO);
}
vo.setUserVOS(userVOS);
rs.add(vo);
}
return rs;
}
@Override
public void notification(List<NotificationDTO> notificationDTOList) {
for (NotificationDTO notificationDTO : notificationDTOList) {
KxAdmin byUserName = kxAdminDao.findByUsername(notificationDTO.getUser());
SpecificUser byEmployeeName = specificUserDao.findByEmployeeName(notificationDTO.getUser());
SpecificUserMessage byUserId = specificUserMessageDao.findByUserId(byEmployeeName.getId());
KxAdmin currentUser = userUtils.getCurrentUser();
if (byUserId.getEnable() == 1) {
PickUp pickUp = new PickUp();
LocalDateTime now = LocalDateTime.now();
pickUp.setNotificationTime(now);
pickUp.setFromUnitName(currentUser.getOrganizationName());
pickUp.setFromUser(currentUser.getUsername());
pickUp.setToUnitUser(notificationDTO.getUser());
pickUp.setToUnitName(notificationDTO.getToUnitName());
pickUp.setStatus(1);
pickUp.setOrganizationCode(currentUser.getOrganizationCode());
pickUpDAO.save(pickUp);
throw new ApiException("该用户为被启用");
}
SendWorkMessageDTO sendWorkMessageDTO = new SendWorkMessageDTO();
sendWorkMessageDTO.setContent(notificationDTO.getContent());
sendWorkMessageDTO.setReceiverIds(byUserName.getAccount());
boolean flag = zyddUserService.sendWorkMessage(sendWorkMessageDTO);
PickUp pickUp = new PickUp();
LocalDateTime now = LocalDateTime.now();
pickUp.setNotificationTime(now);
pickUp.setFromUnitName(currentUser.getOrganizationName());
pickUp.setFromUser(currentUser.getUsername());
pickUp.setToUnitUser(notificationDTO.getUser());
pickUp.setToUnitName(notificationDTO.getToUnitName());
if (flag) {
pickUp.setStatus(0);
} else {
pickUp.setStatus(1);
}
pickUp.setOrganizationCode(currentUser.getOrganizationCode());
pickUpDAO.save(pickUp);
}
}
}
......@@ -4,11 +4,18 @@ import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.tykj.zydd.pickup.dao.TemplateDAO;
import com.tykj.zydd.pickup.entity.Template;
import com.tykj.zydd.pickup.entity.dto.TemplateDTO;
import com.tykj.zydd.pickup.service.PickUpService;
import com.tykj.zydd.pickup.service.TemplateService;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.SpecificUnit;
import com.tykj.zydd.user.security.SecurityUser;
import com.tykj.zydd.user.utils.UserUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
......@@ -17,19 +24,32 @@ public class TemplateServiceImpl implements TemplateService {
@Resource
private TemplateDAO templateDAO;
@Resource
private UserUtils userUtils;
@Override
public List<Template> getListTemplate(String organizationCode) {
public List<Template> getListTemplate() {
KxAdmin currentUser = userUtils.getCurrentUser();
PredicateBuilder<Template> predicateBuilder = Specifications.and();
predicateBuilder.eq("organizationCode",organizationCode);
predicateBuilder.eq("organizationCode",currentUser.getOrganizationCode());
return templateDAO.findAll(predicateBuilder.build());
}
@Override
public void saveTemplate() {
public void saveTemplate(TemplateDTO templateDTO) {
if(templateDTO.getId()!=null){
Template template = templateDAO.findById(templateDTO.getId()).get();
BeanUtils.copyProperties(templateDTO, template, "createTime");
templateDAO.save(template);
}else {
Template template=new Template();
BeanUtils.copyProperties(templateDTO, template);
templateDAO.save(template);
}
}
}
server.port=8080
server.port=8111
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/zzd?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
......
......@@ -4,8 +4,10 @@ spring.datasource.url=jdbc:mysql://localhost:3306/zzd?serverTimezone=Asia/Shangh
spring.datasource.username=root
spring.datasource.password=root
app.key=TZSTZFS-g8v0wtN9hHb65p18iE7bya
app.key=TZSTZFS01-Vf6J5033x86tFVR3ey63
app.secret=hinRj2U4URX7533EJDKv0pk21ODNjfDYVxWrG36j
app.secret=M8e13kbbz0N4uYCuS3E9fLR7hBM914cBSZ6TgRUj
domainName=openplatform-pro.ding.zj.gov.cn
tenantId=196729
\ No newline at end of file
......@@ -17,3 +17,20 @@ domainName=openplatform.dg-work.cn
tenantId=50355510
#redis连接配置
spring.redis.host=122.51.246.117
spring.redis.password=tykj@2022
spring.redis.port=6379
spring.redis.database=15
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
## 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
## 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=20
## 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=2
## 连接超时时间(毫秒)
spring.redis.timeout=1800000
\ No newline at end of file
package com.tykj.zydd.user.contorller;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.vo.UserMessageVO;
import com.tykj.zydd.user.entity.vo.admin.LoginSystemVO;
import com.tykj.zydd.user.entity.vo.admin.RegisterVO;
import com.tykj.zydd.misc.aop.Timer;
......@@ -42,6 +43,14 @@ public class KxAdminController {
return ResponseEntity.ok(kxAdminService.loginBySystem(loginSystemVO));
}
@PostMapping("/loginByUserMessageVO")
@ApiOperation(value = "模拟浙政钉登录接口")
public UserMessageVO loginByUserMessageVO(@RequestBody LoginSystemVO loginSystemVO){
return kxAdminService.loginByUserMessageVO(loginSystemVO);
}
// @GetMapping("/login")
// @ApiOperation(value = "外部系统登录接口",notes = "外部系统登录接口")
// @Timer(desc = "外部系统登录接口")
......
......@@ -4,6 +4,7 @@ import com.alibaba.xxpt.gateway.shared.api.request.OapiMessageWorkNotificationRe
import com.alibaba.xxpt.gateway.shared.api.response.*;
import com.alibaba.xxpt.gateway.shared.client.http.IntelligentGetClient;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.tykj.zydd.user.entity.dto.SendWorkMessageDTO;
import com.tykj.zydd.user.entity.vo.UserMessageVO;
import com.tykj.zydd.user.init.AppKeyInit;
import com.tykj.zydd.misc.swagger.AutoDocument;
......@@ -86,16 +87,16 @@ public class UserController {
}
@ApiOperation(value = "发送工作通知")
@GetMapping("/sendWorkMessage")
public OapiMessageWorkNotificationResponse sendWorkMessage(String receiverIds){
return zyddUserService.sendWorkMessage(receiverIds);
@PostMapping ("/sendWorkMessage")
public void sendWorkMessage(@RequestBody SendWorkMessageDTO sendWorkMessageDTO){
zyddUserService.sendWorkMessage(sendWorkMessageDTO);
}
@ApiOperation(value = "测试")
@ApiOperation(value = "拉取部门人员信息入库")
@GetMapping("/cacheUnit")
public void test(){
zyddUserService.cacheUnit();
......
......@@ -8,6 +8,8 @@ import com.tykj.zydd.user.entity.vo.UnitVO;
import com.tykj.zydd.user.entity.vo.UserResultVO;
import com.tykj.zydd.user.service.UserDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.repository.query.Param;
......@@ -30,20 +32,33 @@ public class UserDataController {
private UserDataService userDataService;
@ApiOperation(value = "获取市单位")
// @ApiOperation(value = "获取单位")
// @GetMapping("/getUnitList")
// public List<UnitMunicipalVO> getUnitList(){
// return userDataService.getUnitList();
// }
@ApiOperation(value = "获取单位(市级 登录信息level为0)")
@GetMapping("/getUnitList")
public List<UnitMunicipalVO> getUnitList(String organizationName){
return userDataService.getUnitList(organizationName);
public List<UnitMunicipalVO> getUnitList(){
return userDataService.getUnitList();
}
@ApiOperation(value = "获取区单位")
@GetMapping("/getUnitVOList")
public List<DistrictUnitVO> getUnitVOList(String organizationName){
return userDataService.getUnitVOList(organizationName);
public List<DistrictUnitVO> getUnitVOList(String organizationCode){
return userDataService.getUnitVOList(organizationCode);
}
@ApiOperation(value = "根据单位code获取人员")
@GetMapping("/getUserList")
@ApiImplicitParams({
@ApiImplicitParam(name = "organizationCode", value = "单位code", dataType = "String"),
@ApiImplicitParam(name = "employeeName", value = "姓名", dataType = "String"),
@ApiImplicitParam(name = "enable", value = "是否可用", dataType = "Integer")})
public List<UserResultVO> getUserList(String organizationCode,String employeeName,Integer enable){
return userDataService.getUserList(organizationCode,employeeName,enable);
}
......
......@@ -15,4 +15,6 @@ public interface KxAdminDao extends JpaRepository<KxAdmin,Integer>, JpaSpecifica
KxAdmin findByAccount(String account);
KxAdmin findBySystemUserId(String systemUserId);
KxAdmin findByUsername(String userName);
}
......@@ -12,4 +12,13 @@ public interface SpecificUserDao extends JpaRepository<SpecificUser,Integer>, J
*/
SpecificUser findFirstByEmployeeCode(String employeeCode);
/**
* 根据人员姓名查询信息
* @param employeeName
* @return
*/
SpecificUser findByEmployeeName(String employeeName);
}
......@@ -9,6 +9,8 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface SpecificUserMessageDao extends JpaRepository<SpecificUserMessage,Integer>, JpaSpecificationExecutor<SpecificUserMessage> {
/**
......@@ -23,4 +25,15 @@ public interface SpecificUserMessageDao extends JpaRepository<SpecificUserMessag
@Query("update SpecificUserMessage s set s.enable = :enable where s.userId = :id")
@Transactional
void updateEnable(@Param("id") int id,@Param("enable") int enable);
/**
* 根据单位code查询可用人员
*/
List<SpecificUserMessage> findAllByOrganizationCodeAndEnable(String organizationCode,Integer enable);
/**
* 根据关联字段查询信息
*/
SpecificUserMessage findByUserId(Integer userId);
}
......@@ -59,4 +59,12 @@ public class KxAdmin extends BaseEntity {
@Convert(converter = Sm4AttributeConverter.class)
private String username;
@ApiModelProperty("所属单位")
private String organizationCode;
@ApiModelProperty("单位名称")
private String organizationName;
@ApiModelProperty("是否是市级账号 0代表是 1代表不是")
private Integer level;
}
package com.tykj.zydd.user.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SendWorkMessageDTO {
@ApiModelProperty("钉钉用户id")
private String receiverIds;
@ApiModelProperty("输入内容")
private String content;
}
......@@ -47,6 +47,12 @@ public class UserMessageVO {
@ApiModelProperty("租户id")
private Integer realmId;
@ApiModelProperty("部门编码")
@ApiModelProperty("单位编码")
private String organizationCode;
@ApiModelProperty("单位名称")
private String organizationName;
@ApiModelProperty("是否是市级账号 0代表是 1代表不是")
private Integer level;
}
package com.tykj.zydd.user.security;
import com.tykj.zydd.misc.exception.ApiException;
import com.tykj.zydd.user.dao.KxAdminDao;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.dto.UserInfo;
......@@ -31,20 +32,19 @@ public class MyUserDetailsServiceImpl implements UserDetailsService {
String[] split = username.split("Ǵ");
// 获取ID
String userId = split[1];
UserInfo userInfo = new UserInfo();
// UserInfo userInfo = new UserInfo();
if ("0".equals(split[0])){
//说明是管理员登录
KxAdmin kxAdmin = kxAdminDao.findByAccount(userId);
if (kxAdmin == null){
throw new UsernameNotFoundException("用户不存在");
if (kxAdmin == null) {
throw new ApiException("用户不存在");
}
BeanUtils.copyProperties(kxAdmin,userInfo);
securityUser.setCurrentUserInfo(userInfo);
securityUser.setKxAdmin(kxAdmin);
securityUser.setUsername(kxAdmin.getUsername());
securityUser.setAccount(kxAdmin.getAccount( ));
securityUser.setPassword(kxAdmin.getPassword());
SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(securityUser,
securityUser.getCurrentUserInfo().getPassword(),securityUser.getAuthorities()));
securityUser.getKxAdmin().getPassword(),securityUser.getAuthorities()));
return securityUser;
}else {
//说明是普通用户登录
......
......@@ -55,7 +55,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.antMatchers("/admin/register","/admin/loginSystem").permitAll()
.antMatchers("/admin/register","/admin/loginSystem","/admin/loginByUserMessageVO").permitAll()
//grace/app
.antMatchers("/grace/app/**","/activity/app/**","/record/app/**","/science/ip/**","/admin/login",
"/user/getUserMessage","/user/getAccessToken").permitAll()
......
package com.tykj.zydd.user.security;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.KxPermissions;
import com.tykj.zydd.user.entity.KxRole;
import com.tykj.zydd.user.entity.KxUnit;
......@@ -24,12 +25,6 @@ public class SecurityUser implements UserDetails {
private String token;
private List<KxRole> kxRoleList;
private List<KxPermissions> permissions;
private List<KxUnit> kxUnits;
private String username;
private String account;
......@@ -37,15 +32,12 @@ public class SecurityUser implements UserDetails {
@Transient
private String password;
private UserInfo currentUserInfo;
private KxAdmin kxAdmin;
public SecurityUser() {
}
public SecurityUser(UserInfo currentUserInfo) {
this.currentUserInfo = currentUserInfo;
}
......
......@@ -2,6 +2,7 @@ package com.tykj.zydd.user.service;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.vo.UserMessageVO;
import com.tykj.zydd.user.entity.vo.admin.LoginSystemVO;
import com.tykj.zydd.user.entity.vo.admin.RegisterVO;
import com.tykj.zydd.user.security.SecurityUser;
......@@ -26,6 +27,11 @@ public interface KxAdminService {
*/
KxAdmin registeredBySystem(RegisterVO registerVO);
/**
* 模拟登陆
*/
UserMessageVO loginByUserMessageVO(LoginSystemVO loginSystemVO);
// /**
// * 从外部系统登录咖啡馆
// * @param code
......
......@@ -8,15 +8,15 @@ import com.tykj.zydd.user.entity.vo.UserResultVO;
import java.util.List;
public interface UserDataService {
/**
* 获取市级单位列表
*/
List<UnitMunicipalVO> getUnitList(String organizationName);
// /**
// * 获取市级单位列表
// */
// List<UnitMunicipalVO> getUnitList();
/**
* 获取区级单位列表
*/
List<DistrictUnitVO> getUnitVOList(String organizationName);
List<DistrictUnitVO> getUnitVOList(String organizationCode);
/**
* 根据单位code查询员工
......@@ -32,4 +32,10 @@ public interface UserDataService {
* 获取所有单位的信息
*/
List<SpecificUnit> getAllUnit();
/**
* 获取市级单位列表
*/
List<UnitMunicipalVO> getUnitList();
}
......@@ -3,6 +3,7 @@ package com.tykj.zydd.user.service;
import com.alibaba.xxpt.gateway.shared.api.response.*;
import com.alibaba.xxpt.gateway.shared.client.http.IntelligentGetClient;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.tykj.zydd.user.entity.dto.SendWorkMessageDTO;
import com.tykj.zydd.user.entity.vo.UserMessageVO;
import java.util.List;
......@@ -50,7 +51,7 @@ public interface ZyddUserService {
/**
* 发送工作通知
*/
OapiMessageWorkNotificationResponse sendWorkMessage(String receiverIds);
boolean sendWorkMessage(SendWorkMessageDTO sendWorkMessageDTO);
/**
* 更新单位
......
......@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.tykj.zydd.user.dao.KxAdminDao;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.dto.SystemUserVO;
import com.tykj.zydd.user.entity.vo.UserMessageVO;
import com.tykj.zydd.user.entity.vo.admin.LoginSystemVO;
import com.tykj.zydd.user.entity.vo.admin.RegisterVO;
import com.tykj.zydd.user.jwt.JwtTokenProvider;
......@@ -59,15 +60,16 @@ public class KxAdminServiceImpl implements KxAdminService {
String account = loginSystemVO.getAccount();
String password = loginSystemVO.getPassword();
KxAdmin kxAdmin = kxAdminDao.findByAccount(account);
SecurityUser userDetails = (SecurityUser) myUserDetailsServiceImpl.loadUserByUsername("0" + "Ǵ" + kxAdmin.getId());
SecurityUser userDetails = (SecurityUser) myUserDetailsServiceImpl.loadUserByUsername("0" + "Ǵ" + kxAdmin.getAccount());
// 验证密码
boolean verify = Sm3Util.verify(password+kxAdmin.getSalt(), userDetails.getPassword());
if (!verify) {
throw new ApiException("密码错误");
}
//生成token
String token = jwtTokenProvider.createToken(kxAdmin.getId()+"", "0");
String token = jwtTokenProvider.createToken(kxAdmin.getAccount()+"", "0");
userDetails.setToken(token);
userDetails.setKxAdmin(kxAdmin);
stringRedisTemplate.opsForValue().set(RedisKeyConstants.TOKEN+token, JSON.toJSONString(userDetails));
stringRedisTemplate.expire(RedisKeyConstants.TOKEN+token, RedisTimeConstants.TOKEN_TIME, TimeUnit.MINUTES);
return userDetails;
......@@ -92,6 +94,33 @@ public class KxAdminServiceImpl implements KxAdminService {
return kxAdminDao.save(kxAdmin);
}
@Override
public UserMessageVO loginByUserMessageVO(LoginSystemVO loginSystemVO) {
UserMessageVO vo=new UserMessageVO();
String account = loginSystemVO.getAccount();
String password = loginSystemVO.getPassword();
KxAdmin kxAdmin = kxAdminDao.findByAccount(account);
vo.setAccountId(Integer.valueOf(kxAdmin.getAccount()));
vo.setLastName(kxAdmin.getUsername());
vo.setOrganizationName(kxAdmin.getOrganizationName());
vo.setOrganizationCode(kxAdmin.getOrganizationCode());
vo.setLevel(kxAdmin.getLevel());
SecurityUser userDetails = (SecurityUser) myUserDetailsServiceImpl.loadUserByUsername("0" + "Ǵ" + kxAdmin.getAccount());
// 验证密码
boolean verify = Sm3Util.verify(password+kxAdmin.getSalt(), userDetails.getPassword());
if (!verify) {
throw new ApiException("密码错误");
}
//生成token
String token = jwtTokenProvider.createToken(kxAdmin.getAccount()+"", "0");
vo.setToken(token);
userDetails.setToken(token);
userDetails.setKxAdmin(kxAdmin);
stringRedisTemplate.opsForValue().set(RedisKeyConstants.TOKEN+token, JSON.toJSONString(userDetails));
stringRedisTemplate.expire(RedisKeyConstants.TOKEN+token, RedisTimeConstants.TOKEN_TIME, TimeUnit.MINUTES);
return vo;
}
// @Override
// @Transactional(rollbackFor = Exception.class)
// public SecurityUser login(String code) {
......
......@@ -4,6 +4,7 @@ import com.tykj.zydd.misc.util.BeanCopyUtil;
import com.tykj.zydd.user.dao.SpecificUnitDao;
import com.tykj.zydd.user.dao.SpecificUserDao;
import com.tykj.zydd.user.dao.SpecificUserMessageDao;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.entity.SpecificUnit;
import com.tykj.zydd.user.entity.SpecificUser;
import com.tykj.zydd.user.entity.SpecificUserMessage;
......@@ -11,6 +12,7 @@ import com.tykj.zydd.user.entity.vo.*;
import com.tykj.zydd.user.enums.AreaEnum;
import com.tykj.zydd.user.service.KxAdminService;
import com.tykj.zydd.user.service.UserDataService;
import com.tykj.zydd.user.utils.UserUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Bean;
......@@ -23,6 +25,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
public class UserDataServiceImpl implements UserDataService {
......@@ -36,16 +39,17 @@ public class UserDataServiceImpl implements UserDataService {
@Resource
private SpecificUserMessageDao specificUserMessageDao;
@Resource
private UserUtils userUtils;
@Override
public List<UnitMunicipalVO> getUnitList(String organizationName) {
public List<UnitMunicipalVO> getUnitList() {
List<SpecificUnit> allByLevel;
if (StringUtils.isEmpty(organizationName)) {
// if (StringUtils.isEmpty(organizationName)) {
allByLevel = specificUnitDao.findAllByLevel(1);
} else {
allByLevel = specificUnitDao.findFirstByOrganizationNameAndLevel(organizationName, 1);
}
// } else {
// allByLevel = specificUnitDao.findFirstByOrganizationNameAndLevel(organizationName, 1);
// }
List<UnitMunicipalVO> rs=new ArrayList<>();
allByLevel.forEach(item->{
UnitMunicipalVO vo=new UnitMunicipalVO();
......@@ -55,16 +59,31 @@ public class UserDataServiceImpl implements UserDataService {
return rs;
}
// @Override
// public List<UnitMunicipalVO> getUnitList() {
// KxAdmin currentUser = userUtils.getCurrentUser();
// List<SpecificUnit> all = specificUnitDao.findAll();
// Stream<SpecificUnit> specificUnitStream = all.stream().filter(a -> a.getOrganizationCode().equals(currentUser.getOrganizationCode()) || a.getParentCode().equals(currentUser.getOrganizationCode()));
// List<UnitMunicipalVO> rs=new ArrayList<>();
// specificUnitStream.forEach(item->{
// UnitMunicipalVO vo=new UnitMunicipalVO();
// BeanUtils.copyProperties(item,vo);
// rs.add(vo);
// });
// return rs;
// }
@Override
public List<DistrictUnitVO> getUnitVOList(String organizationName) {
List<SpecificUnit> allByLevel;
if (StringUtils.isEmpty(organizationName)) {
allByLevel = specificUnitDao.findAllByLevel(2);
} else {
allByLevel = specificUnitDao.findFirstByOrganizationNameAndLevel(organizationName, 2);
public List<DistrictUnitVO> getUnitVOList(String organizationCode) {
List<SpecificUnit> allByLevel = specificUnitDao.findAllByLevel(2);
List<SpecificUnit> specificUnits;
if (organizationCode!=null){
specificUnits = allByLevel.stream().filter(a -> a.getOrganizationCode().equals(organizationCode) || a.getParentCode().equals(organizationCode)).collect(Collectors.toList());
}else {
specificUnits = new ArrayList<>(allByLevel);
}
List<DistrictUnitVO> rs=new ArrayList<>();
Map<String, List<SpecificUnit>> groupedUnits = allByLevel.stream()
Map<String, List<SpecificUnit>> groupedUnits = specificUnits.stream()
.collect(Collectors.groupingBy(SpecificUnit::getDivisionCode));
for (Map.Entry<String, List<SpecificUnit>> entry : groupedUnits.entrySet()) {
String divisionCode = entry.getKey().substring(0,6);
......
......@@ -21,6 +21,7 @@ import com.tykj.zydd.user.dao.SpecificUnitDao;
import com.tykj.zydd.user.dao.SpecificUserDao;
import com.tykj.zydd.user.dao.SpecificUserMessageDao;
import com.tykj.zydd.user.entity.*;
import com.tykj.zydd.user.entity.dto.SendWorkMessageDTO;
import com.tykj.zydd.user.entity.dto.SpecificUnitDTO;
import com.tykj.zydd.user.entity.vo.SpecificUserVO;
import com.tykj.zydd.user.entity.vo.UserMessageVO;
......@@ -31,6 +32,7 @@ import com.tykj.zydd.user.jwt.JwtTokenProvider;
import com.tykj.zydd.user.service.KxAdminService;
import com.tykj.zydd.user.service.ZyddUserService;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.sql.Select;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
......@@ -107,19 +109,29 @@ public class ZyddUserServiceImpl implements ZyddUserService {
Object data = contentObj.get("data");
UserMessageVO userMessageVO = JSON.parseObject(data + "", UserMessageVO.class);
KxAdmin byAccount = kxAdminDao.findByAccount(userMessageVO.getAccountId() + "");
//获取用户所属单位
String userUnitCode = getUserUnitCode(userMessageVO.getEmployeeCode());
userMessageVO.setOrganizationCode(userUnitCode);
String lastName = userMessageVO.getLastName();
SpecificUnit organizationName = specificUnitDao.findFirstByOrganizationCode(userUnitCode);
userMessageVO.setOrganizationName(organizationName.getOrganizationName());
String intelligent = getIntelligent();
if (userUnitCode.equals(intelligent)){
userMessageVO.setLevel(0);
}else {
userMessageVO.setLevel(1);
}
if (byAccount==null){
registeredBySystem(userMessageVO.getAccountId()+"");
registeredBySystem(userMessageVO.getAccountId()+"",userUnitCode,lastName,organizationName.getOrganizationName(),userMessageVO.getLevel());
}
String token = jwtTokenProvider.createToken(userMessageVO.getAccountId()+"","0");
stringRedisTemplate.opsForValue().set(RedisKeyConstants.TOKEN+token, JSON.toJSONString(userMessageVO));
stringRedisTemplate.expire(RedisKeyConstants.TOKEN+token, RedisTimeConstants.TOKEN_TIME, TimeUnit.MINUTES);
userMessageVO.setToken(token);
userMessageVO.setOrganizationCode(getUserUnitCode(userMessageVO.getEmployeeCode()));
return userMessageVO;
}
//一人一个单位
public String getUserUnitCode(String employeeCode){
String intelligent = getIntelligent();
OapiMoziOrganizationPageOrganizationEmployeePositionsResponse specificUser = getUser(intelligent);
......@@ -136,12 +148,15 @@ public class ZyddUserServiceImpl implements ZyddUserService {
@Transactional(rollbackFor = Exception.class)
public KxAdmin registeredBySystem(String accountId) {
public KxAdmin registeredBySystem(String accountId,String organizationCode,String lastName,String organizationName,Integer level) {
String account = accountId;
String password = "123456";
KxAdmin kxAdmin = new KxAdmin();
kxAdmin.setAccount(account);
kxAdmin.setPassword(password);
kxAdmin.setUsername(lastName);
kxAdmin.setLevel(level);
kxAdmin.setOrganizationName(organizationName);
KxAdmin byAccount = kxAdminDao.findByAccount(account);
if (byAccount != null){
throw new ApiException("账号已存在");
......@@ -150,6 +165,7 @@ public class ZyddUserServiceImpl implements ZyddUserService {
kxAdmin.setSalt(salt);
kxAdmin.setPassword(Sm3Util.encrypt(password+salt));
kxAdmin.setOrigin("0");
kxAdmin.setOrganizationCode(organizationCode);
return kxAdminDao.save(kxAdmin);
}
......@@ -237,7 +253,7 @@ public class ZyddUserServiceImpl implements ZyddUserService {
BeanUtils.copyProperties(specificUnitDTO, specificUnit);
if (specificUnit.getDivisionCode()!=null){
String divisionCode = specificUnit.getDivisionCode().substring(0, 6);
specificUnit.setLevel(divisionCode.equals(AreaEnum.TZS_AREA.getCode()) ? 1 : 2);
specificUnit.setLevel(divisionCode.equals(AreaEnum.CS_HZ.getCode()) ? 1 : 2);
}
rs.add(specificUnit);
}
......@@ -324,19 +340,19 @@ public class ZyddUserServiceImpl implements ZyddUserService {
}
return apiResult;
}
@Value("${url}")
private String url;
@Override
public OapiMessageWorkNotificationResponse sendWorkMessage(String receiverIds) {
public boolean sendWorkMessage(SendWorkMessageDTO sendWorkMessageDTO) {
//executableClient保证单例
IntelligentGetClient intelligentGetClient = appKeyInit.getExecutableClient().newIntelligentGetClient("/message/workNotification");
OapiMessageWorkNotificationRequest oapiMessageWorkNotificationRequest = new OapiMessageWorkNotificationRequest();
//接收者的部门id列表
oapiMessageWorkNotificationRequest.setOrganizationCodes("");
//接收人用户ID
oapiMessageWorkNotificationRequest.setReceiverIds(receiverIds);
oapiMessageWorkNotificationRequest.setReceiverIds(sendWorkMessageDTO.getReceiverIds());
//租户ID
oapiMessageWorkNotificationRequest.setTenantId("50355510");
oapiMessageWorkNotificationRequest.setTenantId(tenantId+"");
//业务消息id
Random random=new Random();
oapiMessageWorkNotificationRequest.setBizMsgId(random.nextInt()+"");
......@@ -345,11 +361,10 @@ public class ZyddUserServiceImpl implements ZyddUserService {
" \"msgtype\": \"action_card\",\n" +
" \"action_card\": {\n" +
" \"title\": \"工作通知发送\",\n" +
" \"markdown\": \"测试内容 你好\",\n" +
" \"markdown\": \"" + sendWorkMessageDTO.getContent() + "\",\n" +
" \"btn_orientation\": \"1\",\n" +
" \"btn_json_list\": [\n" +
" {\n" +
// " \"title\": \"\",\n" +
" \"action_url\": \" \"\n" +
" }\n" +
" ]\n" +
......@@ -361,8 +376,9 @@ public class ZyddUserServiceImpl implements ZyddUserService {
OapiMessageWorkNotificationResponse apiResult = intelligentGetClient.get(oapiMessageWorkNotificationRequest);
if (!apiResult.getSuccess()){
log.error("获取信息为:"+JSONObject.toJSONString(apiResult));
return false;
}
return apiResult;
return true;
}
@Override
......
package com.tykj.zydd.user.utils;
import com.tykj.zydd.misc.util.SpringUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware;
import java.util.Optional;
@Configuration
public class UserIDAuditorBean implements AuditorAware<Integer> {
/**
* 自动填充id
* @return
*/
@Override
public Optional<Integer> getCurrentAuditor() {
//获取当前用户Id并返回
UserUtils userUtils = SpringUtils.getBean("userUtils");
Integer userId = null;
if (userUtils != null) {
userId = userUtils.getCurrentUserId();
}
if (userId != null) {
return Optional.of(userId);
} else {
return Optional.empty();
}
}
}
package com.tykj.zydd.user.utils;
import cn.hutool.core.util.ObjectUtil;
import com.tykj.zydd.user.entity.KxAdmin;
import com.tykj.zydd.user.security.SecurityUser;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Component;
@Component
public class UserUtils {
public static String ANONYMOUS_USER_STRING = "anonymousUser";
public SecurityUser getAuthentication(){
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null) {
Object userObject = authentication.getPrincipal();
if (ANONYMOUS_USER_STRING.equals(userObject)) {
return null;
}
if (userObject instanceof SecurityUser) {
return (SecurityUser) userObject;
} else {
return null;
}
} else {
return null;
}
}
public Integer getCurrentUserId() {
SecurityUser authentication = getAuthentication();
if (authentication != null) {
return authentication.getKxAdmin().getId();
} else {
return null;
}
}
public KxAdmin getCurrentUser() {
SecurityUser authentication = getAuthentication();
if (authentication != null) {
return authentication.getKxAdmin();
} else {
throw new UsernameNotFoundException("当前无用户信息");
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论