huminghao hace 2 semanas
padre
commit
679106fda2
Se han modificado 58 ficheros con 680 adiciones y 388 borrados
  1. 2
    0
      gly-base-core/build.gradle
  2. 1
    1
      gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractBizPageRequestDTO.java
  3. 7
    26
      gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractBizRequestDTO.java
  4. 2
    2
      gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractStaffBizPageRequestDTO.java
  5. 30
    0
      gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractStaffBizRequestDTO.java
  6. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/AbstractInsertTimeEntity.java
  7. 4
    4
      gly-base-core/src/main/java/cn/com/taiji/core/entity/AbstractUpdateTimeEntity.java
  8. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/basic/DictItem.java
  9. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/basic/DictType.java
  10. 2
    1
      gly-base-core/src/main/java/cn/com/taiji/core/entity/basic/QtkAgency.java
  11. 2
    2
      gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/LoginCacheFinals.java
  12. 91
    0
      gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/RedisCacheManager.java
  13. 1
    1
      gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/RedisKeyGenerator.java
  14. 13
    0
      gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/RedisManager.java
  15. 0
    5
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/AccessTokenCheckRequest.java
  16. 0
    2
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LogoutRequest.java
  17. 2
    2
      gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/invw/InvwCardDetailsRepo.java
  18. 2
    2
      gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/invw/InvwObuDetailsRepo.java
  19. 8
    0
      gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/user/AccountUserRoleRepo.java
  20. 0
    50
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/AbstractBizRequestDTO.java
  21. 6
    0
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/api/transfer/InvwTransferApplyController.java
  22. 0
    15
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/AbstractBizPageRequestDTO.java
  23. 0
    50
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/AbstractBizRequestDTO.java
  24. 2
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/transfer/InvwTransferApplyAddRequestDTO.java
  25. 33
    0
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/transfer/InvwTransferApplyImportRequestDTO.java
  26. 20
    0
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/transfer/InvwTransferApplyImportResponseDTO.java
  27. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/card/InvwQryCardBatchManagerImpl.java
  28. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/card/InvwQryCardsManagerImpl.java
  29. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/obu/InvwQryObuBatchManagerImpl.java
  30. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/obu/InvwQryObusManagerImpl.java
  31. 2
    0
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/transfer/InvwTransferApplyManager.java
  32. 20
    5
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/transfer/InvwTransferApplyManagerImpl.java
  33. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/card/InvwQryCardBatchExcelModel.java
  34. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/card/InvwQryCardsExcelModel.java
  35. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/obu/InvwQryObuBatchExcelModel.java
  36. 1
    1
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/obu/InvwQryObusExcelModel.java
  37. 3
    0
      zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/transfer/InvwTransferApplyDetailsModel.java
  38. 0
    50
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/AbstractBizRequestDTO.java
  39. 2
    0
      zhywpt-app-userw/build.gradle
  40. 10
    8
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/api/rbac/RabcSystemTypeController.java
  41. 0
    15
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/AbstractBizPageRequestDTO.java
  42. 14
    0
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/rbac/RbacSystemTypeByOpenIdRequestDTO.java
  43. 15
    0
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/rbac/RbacSystemTypeByOpenIdResponseDTO.java
  44. 16
    0
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/rbac/RbacSystemTypeByOpenIdVO.java
  45. 212
    0
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/manager/RedisWrapManager.java
  46. 9
    0
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/manager/rbac/RbacSystemTypeManager.java
  47. 57
    0
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/manager/rbac/RbacSystemTypeManagerImpl.java
  48. 2
    0
      zhywpt-app-userw/src/main/resources/bootstrap.yml
  49. 0
    56
      zhywpt-service-ats/src/main/java/cn/com/taiji/ats/dto/AbstractBizRequestDTO.java
  50. 2
    1
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/RedisWrapManager.java
  51. 47
    57
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/AbstractLoginManager.java
  52. 3
    2
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/AccessTokenCheckManager.java
  53. 3
    3
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginByCodeManager.java
  54. 1
    1
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginConfirmManager.java
  55. 6
    6
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginManager.java
  56. 7
    5
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LogoutManager.java
  57. 3
    3
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/SendCodeManager.java
  58. 4
    1
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/request/EmailRequest.java

+ 2
- 0
gly-base-core/build.gradle Ver fichero

@@ -45,7 +45,9 @@ task commCore(type:Jar){
archiveVersion='1.0.0-SNAPSHOT'
archiveExtension='jar'
from("build/classes/java/main/cn/com/taiji/core"){
include "**/dto/**"
include "**/manager/comm/**"
include "**/manager/cache/**"
include "**/manager/tools/**"
include "**/model/comm/*"
include "**/model/comm/protocol/*"

zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/AbstractBizPageRequestDTO.java → gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractBizPageRequestDTO.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.iaw.dto;
package cn.com.taiji.core.dto;

import cn.com.taiji.common.model.finals.SysFinals;
import lombok.Getter;

zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/AbstractBizRequestDTO.java → gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractBizRequestDTO.java Ver fichero

@@ -1,45 +1,26 @@
package cn.com.taiji.userw.dto;

import javax.validation.constraints.NotBlank;

import cn.com.taiji.core.entity.dict.basic.SourceType;
import org.springframework.validation.annotation.Validated;
package cn.com.taiji.core.dto;

import cn.com.taiji.common.valid.BaseValidDTO;
import cn.com.taiji.common.valid.ViolationValidator;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.FixedLength;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;

@Setter
@Getter
@Accessors(chain = true)
@Validated
public abstract class AbstractBizRequestDTO extends BaseValidDTO {
// 前端公参
@NotBlank(message = "openId不能为空")
private String openId;
@NotBlank(message = "accessToken不能为空")
private String accessToken;
@NotBlank(message = "loginSource不能为空")
private String loginSource;
@NotBlank(message = "agentId不能为空")
@FixedLength(length = 11)
private String agentId;
@NotBlank(message = "channelId不能为空")
private String channelId;
@IntegerConstant(values = "1,2", message = "网点类型错误!线下网点填写2")
private Integer channelType;
@NotBlank
private String staffId;
private String terminalId;

private String orgCode;


public SourceType getOrderSource() {
return SourceType.findByCode(loginSource);
}

@Override
protected void validate(ViolationValidator validator) {

zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/AbstractBizPageRequestDTO.java → gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractStaffBizPageRequestDTO.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.managew.dto;
package cn.com.taiji.core.dto;

import cn.com.taiji.common.model.finals.SysFinals;
import lombok.Getter;
@@ -6,7 +6,7 @@ import lombok.Setter;

@Getter
@Setter
public abstract class AbstractBizPageRequestDTO extends AbstractBizRequestDTO {
public abstract class AbstractStaffBizPageRequestDTO extends AbstractStaffBizRequestDTO {

private Integer pageNo = SysFinals.DEFAULT_PAGE_NUM;


+ 30
- 0
gly-base-core/src/main/java/cn/com/taiji/core/dto/AbstractStaffBizRequestDTO.java Ver fichero

@@ -0,0 +1,30 @@
package cn.com.taiji.core.dto;

import cn.com.taiji.common.valid.BaseValidDTO;
import cn.com.taiji.common.valid.ViolationValidator;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;

@Setter
@Getter
@Accessors(chain = true)
@Validated
public abstract class AbstractStaffBizRequestDTO extends BaseValidDTO {
@NotBlank(message = "accessToken不能为空")
private String accessToken;
@NotBlank(message = "loginSource不能为空")
private String loginSource;
@NotBlank(message = "staffId不能为空")
private String staffId;

@Override
protected void validate(ViolationValidator validator) {

}


}

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/AbstractInsertTimeEntity.java Ver fichero

@@ -7,11 +7,12 @@ import java.time.LocalDateTime;

@MappedSuperclass
public abstract class AbstractInsertTimeEntity extends AbstractStringPropertyUUIDEntity {
@Column(name = "insert_time", nullable = false)
private LocalDateTime insertTime = LocalDateTime.now();

public AbstractInsertTimeEntity() {}

@Column(name = "insert_time", nullable = false)
public LocalDateTime getInsertTime() {
return this.insertTime;
}

+ 4
- 4
gly-base-core/src/main/java/cn/com/taiji/core/entity/AbstractUpdateTimeEntity.java Ver fichero

@@ -11,15 +11,15 @@ import java.time.LocalDateTime;
*/
@MappedSuperclass
public abstract class AbstractUpdateTimeEntity extends AbstractInsertTimeEntity {
@Column(
name = "update_time",
nullable = false
)
private LocalDateTime updateTime = LocalDateTime.now();

public AbstractUpdateTimeEntity() {
}

@Column(
name = "update_time",
nullable = false
)
public LocalDateTime getUpdateTime() {
return this.updateTime;
}

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/basic/DictItem.java Ver fichero

@@ -1,5 +1,6 @@
package cn.com.taiji.core.entity.basic;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import lombok.Getter;
import lombok.Setter;
@@ -18,7 +19,7 @@ import java.time.LocalDateTime;
@Getter
@Setter
@Table(name = "DICT_ITEM")
public class DictItem extends StringUUIDEntity {
public class DictItem extends StringPropertyUUIDEntity {

@Column(name = "INSERT_TIME")
private LocalDateTime insertTime;//入库时间

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/basic/DictType.java Ver fichero

@@ -1,6 +1,7 @@
package cn.com.taiji.core.entity.basic;


import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import lombok.Getter;
import lombok.Setter;
@@ -21,7 +22,7 @@ import java.time.LocalDateTime;
@Getter
@Setter
@Table(name = "DICT_TYPE")
public class DictType extends StringUUIDEntity {
public class DictType extends StringPropertyUUIDEntity {

@NotNull
@Column(name = "INSERT_TIME")

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/basic/QtkAgency.java Ver fichero

@@ -1,5 +1,6 @@
package cn.com.taiji.core.entity.basic;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.common.entity.StringUUIDEntity;
import lombok.Getter;
import lombok.Setter;
@@ -21,7 +22,7 @@ import java.time.LocalDateTime;
@Setter
@Entity
@Table(name = "QTK_AGENCY")
public class QtkAgency extends StringUUIDEntity {
public class QtkAgency extends StringPropertyUUIDEntity {

@NotBlank
@Size(max = 6)

zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/LoginFinals.java → gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/LoginCacheFinals.java Ver fichero

@@ -1,8 +1,8 @@
package cn.com.taiji.ias.model;
package cn.com.taiji.core.manager.cache;

import cn.com.taiji.common.model.finals.SysFinals;

public class LoginFinals extends SysFinals {
public class LoginCacheFinals extends SysFinals {

public final static int LOGIN_TRY_COUNT = 5;// 次
public final static int LOGIN_FAILED_EXPIRE = 5;// 分钟

+ 91
- 0
gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/RedisCacheManager.java Ver fichero

@@ -0,0 +1,91 @@
package cn.com.taiji.core.manager.cache;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

@Component
public class RedisCacheManager extends AbstractManager {

@Autowired(required = false)
protected RedisManager redisManager;

protected void setTokenCache(AccountInfo accountInfo, String accessToken, String agencyId) {
redisManager.set(RedisKeyGenerator.getLoginOpenIdKey(accessToken), accountInfo.getOpenId(), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginSourceTypeKey(accessToken), accountInfo.getLoginSource().name(), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginAccountInfoKey(accessToken), accountInfo.toJson(), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginAgencyIdKey(accessToken), agencyId, LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginTokenKey(accountInfo.getOpenId()), accessToken, LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
}

protected void checkTokenCache(String accessToken, String openId, SourceType loginSource) throws ServiceHandleException {
String openIdCache = redisManager.get(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
if (!hasText(openIdCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
if (!openId.equals(openIdCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
String loginSourceStr = redisManager.get(RedisKeyGenerator.getLoginSourceTypeKey(accessToken));
if (!hasText(loginSourceStr)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
if (!loginSourceStr.equals(loginSource.name()))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
String accountInfoStr = redisManager.get(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
if (!hasText(accountInfoStr)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
AccountInfo accountInfo = null;
try {
accountInfo = JsonTools.json2Object(accountInfoStr, AccountInfo.class);
} catch (IOException e) {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效,信息解析失败");
}
String accessTokenCache = redisManager.get(RedisKeyGenerator.getLoginTokenKey(openId));
if (!hasText(accessTokenCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
if (!accessToken.equals(accessTokenCache))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
}

protected void expireTokenCache(String accessToken, String openId) {
redisManager.expire(RedisKeyGenerator.getLoginOpenIdKey(accessToken), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginSourceTypeKey(accessToken), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginAccountInfoKey(accessToken), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginAgencyIdKey(accessToken), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginTokenKey(openId), LoginCacheFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
}

protected void deleteTokenCache(String accessToken, String openId) {
redisManager.delete(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginSourceTypeKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginAgencyIdKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginTokenKey(openId));
}

protected String findOpenIdByToken(String accessToken) throws ServiceHandleException {
String openId = redisManager.get(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
if (!hasText(openId)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
return openId;
}

protected String findAgencyIdByToken(String accessToken) throws ServiceHandleException {
String agencyId = redisManager.get(RedisKeyGenerator.getLoginAgencyIdKey(accessToken));
if (!hasText(agencyId)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
return agencyId;
}

protected AccountInfo findAccountInfoyToken(String accessToken) throws ServiceHandleException {
String accountInfoStr = redisManager.get(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
if (!hasText(accountInfoStr)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
try {
return JsonTools.json2Object(accountInfoStr, AccountInfo.class);
} catch (IOException e) {
logger.error(e.getMessage());
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效,解析失败");
}
}


}

zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/RedisKeyGenerator.java → gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/RedisKeyGenerator.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.ias.model;
package cn.com.taiji.core.manager.cache;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.core.entity.dict.basic.SourceType;

+ 13
- 0
gly-base-core/src/main/java/cn/com/taiji/core/manager/cache/RedisManager.java Ver fichero

@@ -0,0 +1,13 @@
package cn.com.taiji.core.manager.cache;

import java.util.concurrent.TimeUnit;

public interface RedisManager {
void set(String key, String value, long timeout, TimeUnit timeUnit);

String get(String key);

Boolean expire(String key, long timeout, TimeUnit timeUnit);

Boolean delete(String key);
}

+ 0
- 5
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/AccessTokenCheckRequest.java Ver fichero

@@ -16,15 +16,10 @@ public class AccessTokenCheckRequest extends AbstractPortalRequest<AccessTokenCh
public AccessTokenCheckRequest() {
super(PortalServiceCmd.ACCESSTOKENCHECK);
}

@NotBlank(message = "openId不能为空")
private String openId;
@NotNull(message = "来源不能为空")
private SourceType loginSource;
@NotBlank(message = "Token不能为空")
private String accessToken;
// private AccessTokenType tokenType; //token类型


@Override
protected void validate(ErrorMsgBuilder builder) {

+ 0
- 2
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/portal/LogoutRequest.java Ver fichero

@@ -18,8 +18,6 @@ public class LogoutRequest extends AbstractPortalRequest<LogoutResponse> {
super(PortalServiceCmd.LOGOUT);
}

@NotBlank(message = "openId不能为空")
private String openId;
@NotNull(message = "来源不能为空")
private SourceType loginSource;
@NotBlank(message = "Token不能为空")

+ 2
- 2
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/invw/InvwCardDetailsRepo.java Ver fichero

@@ -22,13 +22,13 @@ public interface InvwCardDetailsRepo extends AbstractJpaRepo<InvwCardDetails, St
long findCountByStoreCode(String storeCode);

//根据设备编号范围查询库存
@Query(value = "select count(id) from InvwCardDetails where storeCode = ?1 and status = ?2 and cardId >= ?3 and cardId <= ?4 ")
@Query(value = "select count(id) from InvwCardDetails where storeCode = ?1 and status = ?2 and TO_NUMBER(cardId) >= TO_NUMBER(?3) and TO_NUMBER(cardId) <= TO_NUMBER(?4) ")
long findCountByStoreCodeStatusCardId(String storeCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd);

//修改卡的所属仓库
@Modifying
@Transactional
@Query(value = "update InvwCardDetails set storeCode = ?1,agencyId=?2,channelId=?3 " +
" where storeCode = ?4 and status = ?5 and cardId >= ?6 and cardId <= ?7")
" where storeCode = ?4 and status = ?5 and TO_NUMBER(cardId) >= TO_NUMBER(?6) and TO_NUMBER(cardId) <= TO_NUMBER(?7) ")
int updateStoreCodeByStoreCode(String storeCode, String agencyId, String channelId, String oldStoreCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd);
}

+ 2
- 2
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/invw/InvwObuDetailsRepo.java Ver fichero

@@ -21,14 +21,14 @@ public interface InvwObuDetailsRepo extends AbstractJpaRepo<InvwObuDetails, Stri
long findCountByStoreCode(String storeCode);

//根据仓库编号和状态查询库存
@Query(value = "select count(id) from InvwObuDetails where storeCode = ?1 and status = ?2 and obuId >= ?3 and obuId <= ?4 ")
@Query(value = "select count(id) from InvwObuDetails where storeCode = ?1 and status = ?2 and TO_NUMBER(cardId) >= TO_NUMBER(?3) and TO_NUMBER(cardId) <= TO_NUMBER(?4) ")
long findCountByStoreCodeStatusObuId(String storeCode, InvDeviceStatus status, String obuIdStart, String obuIdEnd);

//修改卡的所属仓库
@Modifying
@Transactional
@Query(value = "update InvwObuDetails set storeCode = ?1,agencyId=?2,channelId=?3 " +
" where storeCode = ?4 and status = ?5 and cardId >= ?6 and cardId <= ?7")
" where storeCode = ?4 and status = ?5 and TO_NUMBER(cardId) >= TO_NUMBER(?6) and TO_NUMBER(cardId) <= TO_NUMBER(?7) ")
int updateStoreCodeByStoreCode(String storeCode, String agencyId, String channelId, String oldStoreCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd);



+ 8
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/user/AccountUserRoleRepo.java Ver fichero

@@ -46,4 +46,12 @@ public interface AccountUserRoleRepo extends AbstractJpaRepo<AccountUserRole, St

@Query(" from AccountUserRole where roleId in ?1")
List<AccountUserRole> findByRoleIdList(List<String> roleIdList);

/**
* 根据用户openId查找该用户的系统访问权限
* @param openId
* @return
*/
@Query(nativeQuery = true, value = " select b.system_type from user_account_role a, user_role b where a.role_id = b.id and b.status = 'ENABLE' and a.open_id = ?1")
List<SystemType> findSystemTypeByOpenId(String openId);
}

+ 0
- 50
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/AbstractBizRequestDTO.java Ver fichero

@@ -1,50 +0,0 @@
package cn.com.taiji.iaw.dto;

import cn.com.taiji.common.valid.BaseValidDTO;
import cn.com.taiji.common.valid.ViolationValidator;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.FixedLength;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;

@Setter
@Getter
@Accessors(chain = true)
@Validated
public abstract class AbstractBizRequestDTO extends BaseValidDTO {
// 前端公参
@NotBlank(message = "openId不能为空")
private String openId;
@NotBlank(message = "loginSource不能为空")
private String loginSource;
@NotBlank(message = "agentId不能为空")
@FixedLength(length = 11)
private String agentId;
@NotBlank(message = "channelId不能为空")
// @FixedLength(length = 19)
private String channelId;
@IntegerConstant(values = "1,2", message = "网点类型错误!线下网点填写2")
private Integer channelType;
private String staffId;
private String terminalId;

private String orgCode;


public SourceType getOrderSource() {
return SourceType.findByCode(loginSource);
}

@Override
protected void validate(ViolationValidator validator) {
if (getOrderSource() == SourceType.SERVICE_HALL) {
validator.validFieldNotBlank("staffId", staffId);
}
}

}

+ 6
- 0
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/api/transfer/InvwTransferApplyController.java Ver fichero

@@ -77,6 +77,12 @@ public class InvwTransferApplyController extends MyValidController {
return ApiResponse.success().setMessage("校验通过");
}

@ApiOperation(value = "08-号段导入")
@PostMapping("/import")
public ApiResponse<InvwTransferApplyImportResponseDTO> importData(@Valid @RequestBody InvwTransferApplyImportRequestDTO req) throws ManagerException {
return ApiResponse.of(manager.importData(req));
}

// @ApiOperation(value = "07-枚举查询")
// @PostMapping("/getEnum")
// public ApiResponse<Map<String,Object>> getEnum() {

+ 0
- 15
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/AbstractBizPageRequestDTO.java Ver fichero

@@ -1,15 +0,0 @@
package cn.com.taiji.invw.dto;

import cn.com.taiji.common.model.finals.SysFinals;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public abstract class AbstractBizPageRequestDTO extends AbstractBizRequestDTO {

private Integer pageNo = SysFinals.DEFAULT_PAGE_NUM;

private Integer pageSize = SysFinals.DEFAULT_PAGE_SIZE;

}

+ 0
- 50
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/AbstractBizRequestDTO.java Ver fichero

@@ -1,50 +0,0 @@
package cn.com.taiji.invw.dto;

import cn.com.taiji.common.valid.BaseValidDTO;
import cn.com.taiji.common.valid.ViolationValidator;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.FixedLength;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;

@Setter
@Getter
@Accessors(chain = true)
@Validated
public abstract class AbstractBizRequestDTO extends BaseValidDTO {
// 前端公参
@NotBlank(message = "openId不能为空")
private String openId;
@NotBlank(message = "loginSource不能为空")
private String loginSource;
@NotBlank(message = "agentId不能为空")
@FixedLength(length = 11)
private String agentId;
@NotBlank(message = "channelId不能为空")
// @FixedLength(length = 19)
private String channelId;
@IntegerConstant(values = "1,2", message = "网点类型错误!线下网点填写2")
private Integer channelType;
private String staffId;
private String terminalId;

private String orgCode;


public SourceType getOrderSource() {
return SourceType.findByCode(loginSource);
}

@Override
protected void validate(ViolationValidator validator) {
if (getOrderSource() == SourceType.SERVICE_HALL) {
validator.validFieldNotBlank("staffId", staffId);
}
}

}

+ 2
- 1
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/transfer/InvwTransferApplyAddRequestDTO.java Ver fichero

@@ -10,6 +10,7 @@ import lombok.Setter;
import lombok.experimental.Accessors;

import javax.validation.Valid;
import java.util.List;

@ApiModel(description = "调拨申请")
@Getter
@@ -23,5 +24,5 @@ public class InvwTransferApplyAddRequestDTO extends AbstractBizRequestDTO {

@ApiModelProperty(value = "调拨明细")
@Valid
private InvwTransferApplyDetailsModel[] transferDetails;
private List<InvwTransferApplyDetailsModel> transferDetails;
}

+ 33
- 0
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/transfer/InvwTransferApplyImportRequestDTO.java Ver fichero

@@ -0,0 +1,33 @@
package cn.com.taiji.invw.dto.transfer;

import cn.com.taiji.core.entity.dict.invw.InventoryType;
import cn.com.taiji.invw.dto.AbstractBizRequestDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

@ApiModel(description = "调拨申请号段导入")
@Getter
@Setter
@Accessors(chain = true)
public class InvwTransferApplyImportRequestDTO extends AbstractBizRequestDTO {
@ApiModelProperty(value = "发货仓库")
@NotBlank(message = "发货仓库不能为空")
private String sendStoreCode;

@ApiModelProperty(value = "设备类型")
@NotNull(message = "设备类型不能为空")
@Enumerated(EnumType.STRING)
private InventoryType inventoryType;//设备类型

@ApiModelProperty(value = "调拨明细文件URL")
@NotBlank(message = "调拨明细文件URL不能为空")
private String fileUrl;
}

+ 20
- 0
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/dto/transfer/InvwTransferApplyImportResponseDTO.java Ver fichero

@@ -0,0 +1,20 @@
package cn.com.taiji.invw.dto.transfer;

import cn.com.taiji.invw.model.transfer.InvwTransferApplyDetailsModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.List;

@ApiModel(description = "调拨详情文件导入响应")
@Getter
@Setter
@Accessors(chain = true)
public class InvwTransferApplyImportResponseDTO {

@ApiModelProperty(value = "调拨详情导入信息")
private List<InvwTransferApplyDetailsModel> transferDetails;
}

+ 1
- 1
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/card/InvwQryCardBatchManagerImpl.java Ver fichero

@@ -9,7 +9,7 @@ import cn.com.taiji.core.repo.request.invw.InvwQryCardBatchPageRequest;
import cn.com.taiji.invw.dto.card.InvwQryCardBatchPageRequestDTO;
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO;
import cn.com.taiji.invw.manager.AbstractCommManager;
import cn.com.taiji.invw.model.excel.InvwQryCardBatchExcelModel;
import cn.com.taiji.invw.model.card.InvwQryCardBatchExcelModel;
import com.alibaba.excel.EasyExcel;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;

+ 1
- 1
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/card/InvwQryCardsManagerImpl.java Ver fichero

@@ -9,7 +9,7 @@ import cn.com.taiji.core.repo.request.invw.InvwQryCardsPageRequest;
import cn.com.taiji.invw.dto.card.InvwQryCardsPageRequestDTO;
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO;
import cn.com.taiji.invw.manager.AbstractCommManager;
import cn.com.taiji.invw.model.excel.InvwQryCardsExcelModel;
import cn.com.taiji.invw.model.card.InvwQryCardsExcelModel;
import com.alibaba.excel.EasyExcel;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;

+ 1
- 1
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/obu/InvwQryObuBatchManagerImpl.java Ver fichero

@@ -9,7 +9,7 @@ import cn.com.taiji.core.repo.request.invw.InvwQryObuBatchPageRequest;
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO;
import cn.com.taiji.invw.dto.obu.InvwQryObuBatchPageRequestDTO;
import cn.com.taiji.invw.manager.AbstractCommManager;
import cn.com.taiji.invw.model.excel.InvwQryObuBatchExcelModel;
import cn.com.taiji.invw.model.obu.InvwQryObuBatchExcelModel;
import com.alibaba.excel.EasyExcel;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;

+ 1
- 1
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/obu/InvwQryObusManagerImpl.java Ver fichero

@@ -9,7 +9,7 @@ import cn.com.taiji.core.repo.request.invw.InvwQryObusPageRequest;
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO;
import cn.com.taiji.invw.dto.obu.InvwQryObusPageRequestDTO;
import cn.com.taiji.invw.manager.AbstractCommManager;
import cn.com.taiji.invw.model.excel.InvwQryObusExcelModel;
import cn.com.taiji.invw.model.obu.InvwQryObusExcelModel;
import com.alibaba.excel.EasyExcel;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;

+ 2
- 0
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/transfer/InvwTransferApplyManager.java Ver fichero

@@ -18,4 +18,6 @@ public interface InvwTransferApplyManager {
void confirmIn(InvwTransferApplyConfirmInRequestDTO req) throws ManagerException;

void check(InvwTransferApplyCheckRequestDTO req) throws ManagerException;

InvwTransferApplyImportResponseDTO importData(InvwTransferApplyImportRequestDTO req) throws ManagerException;
}

+ 20
- 5
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/transfer/InvwTransferApplyManagerImpl.java Ver fichero

@@ -3,28 +3,27 @@ package cn.com.taiji.invw.manager.transfer;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.pub.StringTools;
import cn.com.taiji.core.entity.dict.basic.CardType;
import cn.com.taiji.core.entity.dict.basic.DeviceVersion;
import cn.com.taiji.core.entity.dict.basic.ObuType;
import cn.com.taiji.core.entity.dict.invw.InvApplyStatus;
import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus;
import cn.com.taiji.core.entity.dict.invw.InventoryType;
import cn.com.taiji.core.entity.dict.invw.OwnType;
import cn.com.taiji.core.entity.invw.InvwTransferApply;
import cn.com.taiji.core.entity.invw.InvwTransferApplyDetails;
import cn.com.taiji.core.entity.invw.InvwWarehouse;
import cn.com.taiji.core.manager.tools.minio.MinioUtile;
import cn.com.taiji.core.repo.jpa.invw.*;
import cn.com.taiji.core.repo.request.invw.InvwTransferApplyPageRequest;
import cn.com.taiji.invw.dto.transfer.*;
import cn.com.taiji.invw.manager.AbstractCommManager;
import cn.com.taiji.invw.model.transfer.InvwTransferApplyCommModel;
import cn.com.taiji.invw.model.transfer.InvwTransferApplyDetailsModel;
import cn.com.taiji.invw.tools.EasyExcelUtil;
import cn.com.taiji.invw.tools.GenerateNoUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.File;
import java.math.BigInteger;
import java.time.LocalDateTime;
import java.util.ArrayList;
@@ -43,6 +42,8 @@ public class InvwTransferApplyManagerImpl extends AbstractCommManager implements
private InvwCardDetailsRepo cardDetailsRepo;
@Autowired
private InvwObuDetailsRepo obuDetailsRepo;
@Autowired
private MinioUtile minioUtile;

@Override
public Pagination page(InvwTransferApplyPageRequestDTO req) {
@@ -175,6 +176,20 @@ public class InvwTransferApplyManagerImpl extends AbstractCommManager implements
toCheck(details, req.getInventoryType(), req.getSendStoreCode());
}

@Override
public InvwTransferApplyImportResponseDTO importData(InvwTransferApplyImportRequestDTO req) throws ManagerException {
// 获取导入文件
File file = minioUtile.getFileByUrl(req.getFileUrl());
// 读取文件数据
List<InvwTransferApplyDetailsModel> models = EasyExcelUtil.readExcelColToModelList(file, InvwTransferApplyDetailsModel.class);
if (models.size() == 0) {
throw new ManagerException("导入文件为空");
}
InvwTransferApplyImportResponseDTO response = new InvwTransferApplyImportResponseDTO();
response.setTransferDetails(models);
return response;
}

public void handlerTransferApply(InvwTransferApplyAddRequestDTO addReq, InvwTransferApplyEditRequestDTO editReq,
InvwTransferApply transferApply, List<InvwTransferApplyDetails> transferApplyDetails) throws ManagerException {
// 处理新增请求
@@ -186,7 +201,7 @@ public class InvwTransferApplyManagerImpl extends AbstractCommManager implements
//处理新增
private void handleAddRequest(InvwTransferApplyAddRequestDTO addReq, InvwTransferApply transferApply, List<InvwTransferApplyDetails> transferApplyDetails) throws ManagerException {
InvwTransferApplyCommModel transferApplyModel = addReq.getTransferApply();
InvwTransferApplyDetailsModel[] detailsModels = addReq.getTransferDetails();
List<InvwTransferApplyDetailsModel> detailsModels = addReq.getTransferDetails();

LocalDateTime now = LocalDateTime.now();
//生成申请单号

zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/excel/InvwQryCardBatchExcelModel.java → zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/card/InvwQryCardBatchExcelModel.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.invw.model.excel;
package cn.com.taiji.invw.model.card;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/excel/InvwQryCardsExcelModel.java → zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/card/InvwQryCardsExcelModel.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.invw.model.excel;
package cn.com.taiji.invw.model.card;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/excel/InvwQryObuBatchExcelModel.java → zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/obu/InvwQryObuBatchExcelModel.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.invw.model.excel;
package cn.com.taiji.invw.model.obu;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/excel/InvwQryObusExcelModel.java → zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/obu/InvwQryObusExcelModel.java Ver fichero

@@ -1,4 +1,4 @@
package cn.com.taiji.invw.model.excel;
package cn.com.taiji.invw.model.obu;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

+ 3
- 0
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/model/transfer/InvwTransferApplyDetailsModel.java Ver fichero

@@ -1,5 +1,6 @@
package cn.com.taiji.invw.model.transfer;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@@ -21,11 +22,13 @@ public class InvwTransferApplyDetailsModel {
@ApiModelProperty(value = "开始编号")
@NotBlank(message = "开始编号不能为空")
@Pattern(regexp = "^[0-9]*$", message = "编号只能由0-9组成")
@ExcelProperty(index = 0, value = "开始编号")
private String startId;//开始编号

@ApiModelProperty(value = "结束编号")
@NotBlank(message = "结束编号不能为空")
@Pattern(regexp = "^[0-9]*$", message = "编号只能由0-9组成")
@ExcelProperty(index = 1, value = "结束编号")
private String endId;//结束编号

}

+ 0
- 50
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/AbstractBizRequestDTO.java Ver fichero

@@ -1,50 +0,0 @@
package cn.com.taiji.managew.dto;

import cn.com.taiji.common.valid.BaseValidDTO;
import cn.com.taiji.common.valid.ViolationValidator;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.FixedLength;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;

@Setter
@Getter
@Accessors(chain = true)
@Validated
public abstract class AbstractBizRequestDTO extends BaseValidDTO {
// 前端公参
@NotBlank(message = "openId不能为空")
private String openId;
@NotBlank(message = "loginSource不能为空")
private String loginSource;
@NotBlank(message = "agentId不能为空")
@FixedLength(length = 11)
private String agentId;
@NotBlank(message = "channelId不能为空")
private String channelId;
@IntegerConstant(values = "1,2", message = "网点类型错误!线下网点填写2")
private Integer channelType;
@NotBlank
private String staffId;
private String terminalId;

private String orgCode;


public SourceType getOrderSource() {
return SourceType.findByCode(loginSource);
}

@Override
protected void validate(ViolationValidator validator) {

}



}

+ 2
- 0
zhywpt-app-userw/build.gradle Ver fichero

@@ -15,6 +15,8 @@ dependencies {
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config"
implementation "org.springframework.cloud:spring-cloud-starter-openfeign"
implementation 'com.alibaba:easyexcel:3.2.1'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis'

implementation(group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0') {
// exclude group: 'net.bytebuddy',module: 'byte-buddy'
}

+ 10
- 8
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/api/rbac/RabcSystemTypeController.java Ver fichero

@@ -1,15 +1,12 @@
package cn.com.taiji.userw.api.rbac;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.web.ApiResponse;
import cn.com.taiji.userw.api.MyValidController;
import cn.com.taiji.userw.dto.rbac.RbacMenuListBySystemTypeRequestDTO;
import cn.com.taiji.userw.dto.rbac.RbacMenuListBySystemTypeResponseDTO;
import cn.com.taiji.userw.dto.rbac.SystemTypeListByRbacSourceRequestDTO;
import cn.com.taiji.userw.dto.rbac.SystemTypeListByRbacSourceResponseDTO;
import cn.com.taiji.userw.dto.rbac.*;
import cn.com.taiji.userw.manager.rbac.RbacMenuManger;
import cn.com.taiji.userw.manager.rbac.RbacRoleManger;
import cn.com.taiji.userw.model.rbac.SystemTypeMode;
import cn.com.taiji.userw.manager.rbac.RbacSystemTypeManager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
@@ -18,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
* @Author ChenChao
@@ -32,6 +28,8 @@ public class RabcSystemTypeController extends MyValidController {

@Resource
private RbacMenuManger rbacMenuManger;
@Resource
private RbacSystemTypeManager rbacSystemTypeManager;

@ApiOperation(value = "根据系统类型获取菜单列表")
@PostMapping(value = "/menulistbysystemtype")
@@ -46,6 +44,10 @@ public class RabcSystemTypeController extends MyValidController {
}



@ApiOperation(value = "根据系统类别获取所属系统列表")
@PostMapping(value = "/systemTypeByAccountRole")
public ApiResponse<RbacSystemTypeByOpenIdResponseDTO> systemTypeByAccountRole(@RequestBody RbacSystemTypeByOpenIdRequestDTO dto) throws ServiceHandleException {
return ApiResponse.of(rbacSystemTypeManager.systemTypeByOpneId(dto)).setMessage("获取小程序系统下的所有角色成功");
}

}

+ 0
- 15
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/AbstractBizPageRequestDTO.java Ver fichero

@@ -1,15 +0,0 @@
package cn.com.taiji.userw.dto;

import cn.com.taiji.common.model.finals.SysFinals;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public abstract class AbstractBizPageRequestDTO extends AbstractBizRequestDTO {

private Integer pageNo = SysFinals.DEFAULT_PAGE_NUM;

private Integer pageSize = SysFinals.DEFAULT_PAGE_SIZE;

}

+ 14
- 0
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/rbac/RbacSystemTypeByOpenIdRequestDTO.java Ver fichero

@@ -0,0 +1,14 @@
package cn.com.taiji.userw.dto.rbac;

import cn.com.taiji.userw.dto.AbstractBizRequestDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
public class RbacSystemTypeByOpenIdRequestDTO extends AbstractBizRequestDTO {


}

+ 15
- 0
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/rbac/RbacSystemTypeByOpenIdResponseDTO.java Ver fichero

@@ -0,0 +1,15 @@
package cn.com.taiji.userw.dto.rbac;

import cn.com.taiji.common.model.BaseModel;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.List;

@Getter
@Setter
@Accessors(chain = true)
public class RbacSystemTypeByOpenIdResponseDTO extends BaseModel {
private List<RbacSystemTypeByOpenIdVO> list;
}

+ 16
- 0
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/rbac/RbacSystemTypeByOpenIdVO.java Ver fichero

@@ -0,0 +1,16 @@
package cn.com.taiji.userw.dto.rbac;


import cn.com.taiji.common.model.BaseModel;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
public class RbacSystemTypeByOpenIdVO extends BaseModel {

private String name;
private Integer code;
}

+ 212
- 0
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/manager/RedisWrapManager.java Ver fichero

@@ -0,0 +1,212 @@
package cn.com.taiji.userw.manager;

import cn.com.taiji.common.entity.BaseEntity;
import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.pub.StringTools;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.manager.cache.RedisManager;
import org.apache.commons.collections4.map.HashedMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ScanOptions.ScanOptionsBuilder;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;

/**
* hash操作的方法以hash开头,如:hashGet<br>
*
* @author lijun <br>
* Create Time:2018年12月9日 下午1:43:54<br>
* mail:756915505@qq.com
* @since 1.0
* @version 1.0
*/
@Service
public class RedisWrapManager extends AbstractManager implements RedisManager {

@Autowired(required = false)
private RedisTemplate<String, String> redisTemplate;

public Set<String> key(String pattern) {
if ("*".equals(pattern)) {
throw new RuntimeException("禁止全扫描key");
}
return redisTemplate.keys(pattern);
}

public Boolean expire(String key, final long timeout, final TimeUnit unit) {
return redisTemplate.expire(key, timeout, unit);
}

public String get(String key) {
return redisTemplate.opsForValue().get(key);
}

public String getAndSet(String key, String value) {
return redisTemplate.opsForValue().getAndSet(key, value);
}

public void set(String key, String value, long timeout, TimeUnit unit) {
redisTemplate.opsForValue().set(key, value, timeout, unit);
}

public boolean setIfAbsent(String key, String value, long timeout, TimeUnit unit) {
return redisTemplate.opsForValue().setIfAbsent(key, value, timeout, unit);
}

public long increment(String key, long delta) {
return redisTemplate.opsForValue().increment(key, delta);
}

public Boolean delete(String key) {
return redisTemplate.delete(key);
}

public long listRightPush(String key, String value) {
return redisTemplate.opsForList().rightPush(key, value);
}

/**
* 返回存储在 key 的列表里指定范围内的元素。 start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。
* 偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推
*/
public List<String> listRange(String key, long start, long end) {
return redisTemplate.opsForList().range(key, start, end);
}

public Long listSize(String key) {
return redisTemplate.opsForList().size(key);
}

public Boolean hashHasKey(String key, Object hashKey) {
return opsForHash().hasKey(key, hashKey);
}

public Object hashGet(String key, Object hashKey) {
return opsForHash().get(key, hashKey);
}

public void hashPut(String key, Object hashKey, Object value) {
opsForHash().put(key, hashKey, value);
}

public Boolean hashPutIfAbsent(String key, Object hashKey, Object value) {
return opsForHash().putIfAbsent(key, hashKey, value);
}

public void hashPutAll(String key, Map<? extends Object, ? extends Object> m) {
opsForHash().putAll(key, m);
}

public Long hashIncrement(String key, Object hashKey, long delta) {
return opsForHash().increment(key, hashKey, delta);
}

public Long hashDelete(String key, Object... hashKeys) {
return opsForHash().delete(key, hashKeys);
}

public Map<Object, Object> hashScan(String key, String pattern) {
ScanOptionsBuilder b = new ScanOptionsBuilder();
Cursor<Entry<Object, Object>> s = opsForHash().scan(key, b.match(pattern).build());
Map<Object, Object> map = new HashMap<>();
s.forEachRemaining(e -> map.put(e.getKey(), e.getValue()));
return map;
}

public String findStr(String key, int timeout, Supplier<String> valueSupplier) {
String str = get(key);
if (!StringTools.hasText(str)) {
str = valueSupplier.get();
set(key, str, timeout);
}
return str;
}

public <T extends BaseEntity> T findObj(Class<T> clazz, String key, int timeout, Supplier<T> valueSupplier) {
String jsonStr = (String)get(key);
try {
if (!StringTools.hasText(jsonStr)) {
T obj = valueSupplier.get();
jsonStr = JsonTools.toJsonStr(obj);
set(key, jsonStr, timeout);
}
return JsonTools.json2Object(jsonStr, clazz);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

public <T extends BaseEntity> T findObj(Class<T> clazz, String key) {
String jsonStr = redisTemplate.opsForValue().get(key);
try {
return JsonTools.json2Object(jsonStr, clazz);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

public <T> Map<String, T> findMap(Class<T> clazz, String key, int timeout, Supplier<Map<String, T>> valueSupplier) {
String jsonStr = get(key);
try {
if (!StringTools.hasText(jsonStr)) {
Map<String, T> map = valueSupplier.get();
jsonStr = JsonTools.toJsonStr(map);
set(key, jsonStr, timeout);
}
return JsonTools.json2Map(jsonStr, String.class, clazz);
} catch (IOException e) {
e.printStackTrace();
return new HashedMap<>();
}
}

public <T> List<T> findList(Class<T> clazz, String key, int timeout, Supplier<Collection<T>> valueSupplier) {
String jsonStr = get(key);
try {
if (!StringTools.hasText(jsonStr)) {
Collection<T> c = valueSupplier.get();
jsonStr = JsonTools.toJsonStr(c);
set(key, jsonStr, timeout);
}
return JsonTools.json2List(jsonStr, clazz);
} catch (IOException e) {
e.printStackTrace();
return new ArrayList<>();
}
}

public <T extends BaseEntity> Pagination findPagn(Class<T> clazz, String key, int timeout,
Supplier<Pagination> valueSupplier) {
String jsonStr = get(key);
try {
if (!StringTools.hasText(jsonStr)) {
Pagination c = valueSupplier.get();
jsonStr = JsonTools.toJsonStr(c);
set(key, jsonStr, timeout);
}
return JsonTools.json2Pagn(jsonStr, clazz);
} catch (IOException e) {
e.printStackTrace();
return new Pagination().setResult(new ArrayList<>());
}
}

private <HK, HV> HashOperations<String, HK, HV> opsForHash() {
return redisTemplate.opsForHash();
}

private void set(String key, String value, int timeout) {
redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
}
}

+ 9
- 0
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/manager/rbac/RbacSystemTypeManager.java Ver fichero

@@ -0,0 +1,9 @@
package cn.com.taiji.userw.manager.rbac;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.userw.dto.rbac.RbacSystemTypeByOpenIdRequestDTO;
import cn.com.taiji.userw.dto.rbac.RbacSystemTypeByOpenIdResponseDTO;

public interface RbacSystemTypeManager {
RbacSystemTypeByOpenIdResponseDTO systemTypeByOpneId(RbacSystemTypeByOpenIdRequestDTO dto) throws ServiceHandleException;
}

+ 57
- 0
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/manager/rbac/RbacSystemTypeManagerImpl.java Ver fichero

@@ -0,0 +1,57 @@
package cn.com.taiji.userw.manager.rbac;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.dict.user.SystemType;
import cn.com.taiji.core.manager.cache.RedisCacheManager;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountUserRoleRepo;
import cn.com.taiji.userw.dto.rbac.RbacSystemTypeByOpenIdRequestDTO;
import cn.com.taiji.userw.dto.rbac.RbacSystemTypeByOpenIdResponseDTO;
import cn.com.taiji.userw.dto.rbac.RbacSystemTypeByOpenIdVO;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
public class RbacSystemTypeManagerImpl extends RedisCacheManager implements RbacSystemTypeManager {

@Autowired
private AccountUserRoleRepo accountUserRoleRepo;


@Override
public RbacSystemTypeByOpenIdResponseDTO systemTypeByOpneId(RbacSystemTypeByOpenIdRequestDTO dto) throws ServiceHandleException {
String openId = findOpenIdByToken(dto.getAccessToken());
List<RbacSystemTypeByOpenIdVO> list = Lists.newArrayList();
switch (SourceType.findByCode(dto.getLoginSource())) {
case SERVICE_HALL:
list.add(from(SystemType.APP));
return new RbacSystemTypeByOpenIdResponseDTO().setList(list);
case ALI:
list.add(from(SystemType.MINI_PROGRAM));
return new RbacSystemTypeByOpenIdResponseDTO().setList(list);
case WECHAT:
list.add(from(SystemType.ZFB_MINI_PROGRAM));
return new RbacSystemTypeByOpenIdResponseDTO().setList(list);
case WEB:
List<SystemType> systemTypeList = accountUserRoleRepo.findSystemTypeByOpenId(openId);
if (isEmpty(systemTypeList))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("无访问系统权限");
list = systemTypeList.stream().filter(e -> e != SystemType.APP && e != SystemType.MINI_PROGRAM && e != SystemType.ZFB_MINI_PROGRAM).map(this::from).collect(Collectors.toList());
return new RbacSystemTypeByOpenIdResponseDTO().setList(list);
default:
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("无访问系统权限");
}
}

private RbacSystemTypeByOpenIdVO from(SystemType type) {
RbacSystemTypeByOpenIdVO vo = new RbacSystemTypeByOpenIdVO();
vo.setName(type.getName());
vo.setCode(type.getCode());
return vo;
}
}

+ 2
- 0
zhywpt-app-userw/src/main/resources/bootstrap.yml Ver fichero

@@ -31,6 +31,8 @@ spring:
refresh: true
- data-id: comm-client.yaml
refresh: true
- data-id: redis.yaml
refresh: true
- data-id: minio-client.yaml
refresh: true
- data-id: userw-config.yaml

+ 0
- 56
zhywpt-service-ats/src/main/java/cn/com/taiji/ats/dto/AbstractBizRequestDTO.java Ver fichero

@@ -1,56 +0,0 @@
package cn.com.taiji.ats.dto;

import javax.validation.constraints.NotBlank;

import org.springframework.validation.annotation.Validated;

import cn.com.taiji.common.valid.BaseValidDTO;
import cn.com.taiji.common.valid.ViolationValidator;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.model.comm.protocol.constraint.FixedLength;
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Setter
@Getter
@Accessors(chain = true)
@Validated
public abstract class AbstractBizRequestDTO extends BaseValidDTO {
// 前端公参
@NotBlank(message = "openId不能为空")
private String openId;
@NotBlank(message = "loginSource不能为空")
private String loginSource;
@NotBlank(message = "agentId不能为空")
@FixedLength(length = 11)
private String agentId;
@NotBlank(message = "channelId不能为空")
private String channelId;
@IntegerConstant(values = "1,2", message = "网点类型错误!线下网点填写2")
private Integer channelType;
private String staffId;
private String terminalId;

private String orgCode;


public SourceType getOrderSource() {
return SourceType.findByCode(loginSource);
}

@Override
protected void validate(ViolationValidator validator) {
if (getOrderSource() == SourceType.SERVICE_HALL) {
validator.validFieldNotBlank("staffId", staffId);
}
}

// @JsonIgnore
// public List<String> getPermittedAgencyIdList() {
// AgencyVerifyManager manager = SpringContextHolder.getBean(AgencyVerifyManager.class);
// return manager.getPermittedAgencyIdListWithCache(openId, getOrderSource().getLoginSourceEnum());
// }

}

+ 2
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/RedisWrapManager.java Ver fichero

@@ -5,6 +5,7 @@ import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.common.pub.StringTools;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.manager.cache.RedisManager;
import org.apache.commons.collections4.map.HashedMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.Cursor;
@@ -29,7 +30,7 @@ import java.util.function.Supplier;
* @version 1.0
*/
@Service
public class RedisWrapManager extends AbstractManager {
public class RedisWrapManager extends AbstractManager implements RedisManager {

@Autowired(required = false)
private RedisTemplate<String, String> redisTemplate;

+ 47
- 57
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/AbstractLoginManager.java Ver fichero

@@ -1,30 +1,20 @@
package cn.com.taiji.ias.manager.portal;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.manager.cache.RedisCacheManager;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.StaffRepo;
import cn.com.taiji.ias.manager.RedisWrapManager;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

public abstract class AbstractLoginManager extends AbstractManager {
public abstract class AbstractLoginManager extends RedisCacheManager {

protected final static String commonServiceHallId = "5201010600400000000";// 普通用户的专属网点编号
protected final static String commonStaffId = "003d875dabaa4390b22739f6897cf570";

@Autowired
private StaffRepo staffRepo;
@Autowired
protected RedisWrapManager redisManager;

protected Staff findAndValidStaff(String openId, SourceType loginSource) throws ServiceHandleException {
if (loginSource != SourceType.SERVICE_HALL && loginSource != SourceType.WEB) return null;
@@ -39,49 +29,49 @@ public abstract class AbstractLoginManager extends AbstractManager {
return staff;
}

protected void setTokenCache(AccountInfo accountInfo, String accessToken, String agencyId) {
redisManager.set(RedisKeyGenerator.getLoginOpenIdKey(accessToken), accountInfo.getOpenId(), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginSourceTypeKey(accessToken), accountInfo.getLoginSource().name(), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginAccountInfoKey(accessToken), accountInfo.toJson(), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginAgencyIdKey(accessToken), agencyId, LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginTokenKey(accountInfo.getOpenId()), accessToken, LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
}
protected void checkTokenCache(String accessToken, String openId, SourceType loginSource) throws ServiceHandleException {
String openIdCache = redisManager.get(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
if (!hasText(openIdCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
if (!openId.equals(openIdCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
String loginSourceType = redisManager.get(RedisKeyGenerator.getLoginSourceTypeKey(accessToken));
if (!hasText(loginSourceType)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
if (!loginSourceType.equals(loginSource.name()))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
String accountInfoStr = redisManager.get(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
if (!hasText(accountInfoStr)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
AccountInfo accountInfo = null;
try {
accountInfo = JsonTools.json2Object(accountInfoStr, AccountInfo.class);
} catch (IOException e) {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效,信息解析失败");
}
String accessTokenCache = redisManager.get(RedisKeyGenerator.getLoginTokenKey(openId));
if (!hasText(accessTokenCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
if (!accessToken.equals(accessTokenCache))
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
}
protected void expireTokenCache(String accessToken, String openId) {
redisManager.expire(RedisKeyGenerator.getLoginOpenIdKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginSourceTypeKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginAccountInfoKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginAgencyIdKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getLoginTokenKey(openId), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
}
protected void deleteTokenCache(String accessToken, String openId) {
redisManager.delete(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginSourceTypeKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginAgencyIdKey(accessToken));
redisManager.delete(RedisKeyGenerator.getLoginTokenKey(openId));
}
// protected void setTokenCache(AccountInfo accountInfo, String accessToken, String agencyId) {
// redisManager.set(RedisKeyGenerator.getLoginOpenIdKey(accessToken), accountInfo.getOpenId(), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.set(RedisKeyGenerator.getLoginSourceTypeKey(accessToken), accountInfo.getLoginSource().name(), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.set(RedisKeyGenerator.getLoginAccountInfoKey(accessToken), accountInfo.toJson(), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.set(RedisKeyGenerator.getLoginAgencyIdKey(accessToken), agencyId, LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.set(RedisKeyGenerator.getLoginTokenKey(accountInfo.getOpenId()), accessToken, LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// }
//
// protected void checkTokenCache(String accessToken, String openId, SourceType loginSource) throws ServiceHandleException {
// String openIdCache = redisManager.get(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
// if (!hasText(openIdCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// if (!openId.equals(openIdCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// String loginSourceType = redisManager.get(RedisKeyGenerator.getLoginSourceTypeKey(accessToken));
// if (!hasText(loginSourceType)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// if (!loginSourceType.equals(loginSource.name()))
// throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// String accountInfoStr = redisManager.get(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
// if (!hasText(accountInfoStr)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// AccountInfo accountInfo = null;
// try {
// accountInfo = JsonTools.json2Object(accountInfoStr, AccountInfo.class);
// } catch (IOException e) {
// throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效,信息解析失败");
// }
// String accessTokenCache = redisManager.get(RedisKeyGenerator.getLoginTokenKey(openId));
// if (!hasText(accessTokenCache)) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// if (!accessToken.equals(accessTokenCache))
// throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("Token已失效");
// }
//
// protected void expireTokenCache(String accessToken, String openId) {
// redisManager.expire(RedisKeyGenerator.getLoginOpenIdKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.expire(RedisKeyGenerator.getLoginSourceTypeKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.expire(RedisKeyGenerator.getLoginAccountInfoKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.expire(RedisKeyGenerator.getLoginAgencyIdKey(accessToken), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// redisManager.expire(RedisKeyGenerator.getLoginTokenKey(openId), LoginFinals.LOGIN_TOKEN_EXPIRED, TimeUnit.MINUTES);
// }
//
// protected void deleteTokenCache(String accessToken, String openId) {
// redisManager.delete(RedisKeyGenerator.getLoginOpenIdKey(accessToken));
// redisManager.delete(RedisKeyGenerator.getLoginSourceTypeKey(accessToken));
// redisManager.delete(RedisKeyGenerator.getLoginAccountInfoKey(accessToken));
// redisManager.delete(RedisKeyGenerator.getLoginAgencyIdKey(accessToken));
// redisManager.delete(RedisKeyGenerator.getLoginTokenKey(openId));
// }
}

+ 3
- 2
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/AccessTokenCheckManager.java Ver fichero

@@ -10,8 +10,9 @@ import org.springframework.stereotype.Service;
public class AccessTokenCheckManager extends AbstractLoginManager {

public AccessTokenCheckResponse serviceHandle(AccessTokenCheckRequest request) throws ServiceHandleException {
checkTokenCache(request.getAccessToken(), request.getOpenId(), request.getLoginSource());
expireTokenCache(request.getAccessToken(), request.getOpenId());
String openId = findOpenIdByToken(request.getAccessToken());
checkTokenCache(request.getAccessToken(), openId, request.getLoginSource());
expireTokenCache(request.getAccessToken(), openId);
AccessTokenCheckResponse response = new AccessTokenCheckResponse();
response.setInfo("验证成功,Token尚且有效");
return response;

+ 3
- 3
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginByCodeManager.java Ver fichero

@@ -2,12 +2,12 @@ package cn.com.taiji.ias.manager.portal;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.manager.cache.LoginCacheFinals;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginByCodeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginByCodeResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@@ -30,7 +30,7 @@ public class LoginByCodeManager extends AbstractLoginManager {
if (accountInfo == null) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("手机号输入错误");
findAndValidStaff(accountInfo.getOpenId(), request.getLoginSource());
String code = UUID.randomUUID().toString().replaceAll("-", "");// code用于换Token,还完Token就没用了
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginCacheFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
LoginByCodeResponse response = new LoginByCodeResponse();
response.setInfo("登录成功");
return response;

+ 1
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginConfirmManager.java Ver fichero

@@ -4,12 +4,12 @@ import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginConfirmResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.ias.manager.RedisWrapManager;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


+ 6
- 6
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LoginManager.java Ver fichero

@@ -3,13 +3,13 @@ package cn.com.taiji.ias.manager.portal;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.manager.cache.LoginCacheFinals;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.LoginResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
import cn.com.taiji.ias.manager.RedisWrapManager;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -45,7 +45,7 @@ public class LoginManager extends AbstractLoginManager {
//校验是否是已经被停用的员工,停用则不允许登录web和app端
findAndValidStaff(accountInfo.getOpenId(), request.getLoginSource());
String code = UUID.randomUUID().toString().replaceAll("-", "");// code用于换Token,还完Token就没用了
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getLoginOpenIdByCodeKey(code, request.getLoginSource().name()), accountInfo.getOpenId(), LoginCacheFinals.LOGIN_CODE_EXPIRED, TimeUnit.MINUTES);
LoginResponse response = new LoginResponse(code);
response.setInfo("登录成功");
return response;
@@ -54,14 +54,14 @@ public class LoginManager extends AbstractLoginManager {

private void addFailedCount(String loginName, SourceType sourceType) {
redisManager.increment(RedisKeyGenerator.getFailCountKey(loginName, sourceType), 1L);
redisManager.expire(RedisKeyGenerator.getFailCountKey(loginName, sourceType), LoginFinals.LOGIN_FAILED_EXPIRE, TimeUnit.MINUTES);
redisManager.expire(RedisKeyGenerator.getFailCountKey(loginName, sourceType), LoginCacheFinals.LOGIN_FAILED_EXPIRE, TimeUnit.MINUTES);
}

private void checkFailedCount(String loginName, SourceType sourceType) throws ServiceHandleException {
String countStr = redisManager.get(RedisKeyGenerator.getFailCountKey(loginName, sourceType));
int count = hasText(countStr) ? Integer.parseInt(countStr) : 0;
if (count >= LoginFinals.LOGIN_TRY_COUNT) {
String msg = toLogString("登录失败次数超过{}次,{}分钟内禁止登录", LoginFinals.LOGIN_TRY_COUNT, LoginFinals.LOGIN_FAILED_EXPIRE);
if (count >= LoginCacheFinals.LOGIN_TRY_COUNT) {
String msg = toLogString("登录失败次数超过{}次,{}分钟内禁止登录", LoginCacheFinals.LOGIN_TRY_COUNT, LoginCacheFinals.LOGIN_FAILED_EXPIRE);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException(msg);
}
}

+ 7
- 5
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/LogoutManager.java Ver fichero

@@ -11,15 +11,17 @@ public class LogoutManager extends AbstractLoginManager {

public LogoutResponse serviceHandle(LogoutRequest request) {
try {
checkTokenCache(request.getAccessToken(), request.getOpenId(), request.getLoginSource());
String openId = findOpenIdByToken(request.getAccessToken());
checkTokenCache(request.getAccessToken(), openId, request.getLoginSource());
deleteTokenCache(request.getAccessToken(), openId);
LogoutResponse response = new LogoutResponse();
response.setInfo("退出成功");
return response;
} catch (ServiceHandleException e) {
logger.info("Token失效退出");
LogoutResponse response = new LogoutResponse();
response.setInfo("退出成功");
return response;
}
deleteTokenCache(request.getAccessToken(), request.getOpenId());
LogoutResponse response = new LogoutResponse();
response.setInfo("退出成功");
return response;
}
}

+ 3
- 3
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/portal/SendCodeManager.java Ver fichero

@@ -1,11 +1,11 @@
package cn.com.taiji.ias.manager.portal;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.manager.cache.LoginCacheFinals;
import cn.com.taiji.core.manager.cache.RedisKeyGenerator;
import cn.com.taiji.core.model.comm.protocol.ias.portal.SendCodeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.portal.SendCodeResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.ias.model.LoginFinals;
import cn.com.taiji.ias.model.RedisKeyGenerator;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;
@@ -20,7 +20,7 @@ public class SendCodeManager extends AbstractLoginManager {
code = (Math.random() * 1000000 + "").substring(0, 6);
logger.info("短信验证码:{}", code);
//TODO 短信接口
redisManager.set(RedisKeyGenerator.getSmsCodeKey(request.getMobile(), request.getLoginSource().name(), request.getBusinessType()), code, LoginFinals.LOGIN_SMS_CODE_EXPIRED, TimeUnit.MINUTES);
redisManager.set(RedisKeyGenerator.getSmsCodeKey(request.getMobile(), request.getLoginSource().name(), request.getBusinessType()), code, LoginCacheFinals.LOGIN_SMS_CODE_EXPIRED, TimeUnit.MINUTES);
SendCodeResponse response = new SendCodeResponse();
response.setInfo("短信验证码发送成功");
return response;

+ 4
- 1
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/request/EmailRequest.java Ver fichero

@@ -4,6 +4,8 @@ import cn.com.taiji.core.model.comm.protocol.AbstractReqIdTypeRequest;
import cn.com.taiji.core.model.comm.protocol.ias.message.dto.FileVo;
import cn.com.taiji.core.model.comm.protocol.ias.message.dto.MIMEMultipartTypeEnum;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@@ -13,7 +15,8 @@ import java.util.List;
* @Description 邮件接口参数
*/

@Data
@Getter
@Setter
public class EmailRequest extends AbstractReqIdTypeRequest {
private String email;
private String subject;

Cargando…
Cancelar
Guardar