记得上下班打卡 | git大法好,push需谨慎

Commit 51410384 authored by 张国柄's avatar 张国柄

替换REDIS存储结构MAP -> String;

parent 1b2f0c33
......@@ -18,9 +18,9 @@ public interface IAdamAddressesService extends IService<AdamAddresses> {
void add(AdamAddresses adamAddresses);
List<AdamAddresses> queryByUid(String uid);
// List<AdamAddresses> queryByUid(String uid);
AdamAddresses query(String uid, String addressesId);
// AdamAddresses query(String uid, String addressesId);
void def(String uid, String addressesId);
......
......@@ -15,7 +15,7 @@ import com.liquidnet.service.adam.entity.AdamDisposed;
* @author liquidnet
* @since 2021-05-18
*/
public interface IAdamDisposedService extends IService<AdamDisposed> {
public interface IAdamDisposedService {
void add(AdamDisposedBaseVo disposedBaseVo);
......
......@@ -15,11 +15,11 @@ import java.util.List;
* @since 2021-04-28
*/
public interface IAdamEntersService extends IService<AdamEnters> {
List<AdamEnters> queryByUid(String uid);
// List<AdamEnters> queryByUid(String uid);
void add(AdamEnters info);
AdamEnters query(String uid, String entersId);
// AdamEnters query(String uid, String entersId);
void def(String uid, String entersId);
......
......@@ -11,5 +11,5 @@ import com.liquidnet.service.adam.entity.AdamMember;
public interface IAdamMemberService extends IService<AdamMember> {
AdamMemberVo queryMemberInfo();
AdamMemberSimpleVo queryMemberSimpleVo();
// AdamMemberSimpleVo queryMemberSimpleVo();
}
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamEnters;
import java.util.List;
public interface IAdamRdmService {
boolean setUidByMobile(String mobile, String uid);
void delUidByMobile(String mobile);
String getUidByMobile(String mobile);
boolean setUidByPlatformOpenId(String platform, String openId, String uid);
void delUidByPlatformOpenId(String platform, String openId);
String getUidByPlatformOpenId(String platform, String openId);
void delUserInfoVoByUid(String uid);
boolean setUserInfoVoByUid(String uid, AdamUserInfoVo vo);
AdamUserInfoVo getUserInfoVoByUid(String uid);
boolean setRealInfoVoByUid(String uid, AdamRealInfoVo vo);
void delRealInfoVoByUid(String uid);
AdamRealInfoVo getRealInfoVoByUid(String uid);
boolean setThirdPartVoListByUid(String uid, List<AdamThirdPartInfoVo> voList);
void delThirdPartVoListByUid(String uid);
List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid);
AdamThirdPartInfoVo getThirdPartVoByUidPlatform(String uid, String platform);
AdamUserMemberVo getUserMemberVoByUid(String uid);
AdamMemberSimpleVo getMemberSimpleVo();
boolean setEntersByUid(String uid, List<AdamEnters> list);
void delEntersByUid(String uid);
List<AdamEnters> getEntersByUid(String uid);
AdamEnters getEntersByUidEntersId(String uid, String entersId);
boolean setAddressesByUid(String uid, List<AdamAddresses> list);
void delAddressesByUid(String uid);
List<AdamAddresses> getAddressesByUid(String uid);
AdamAddresses getAddressesByUidAddressesId(String uid, String addressesId);
}
......@@ -16,7 +16,7 @@ import java.util.List;
*/
public interface IAdamThirdPartyService extends IService<AdamThirdParty> {
List<AdamThirdPartInfoVo> queryByUid(String uid);
// List<AdamThirdPartInfoVo> queryByUid(String uid);
AdamThirdPartInfoVo queryByUidAndPlatform(String uid, String platform);
// AdamThirdPartInfoVo queryByUidAndPlatform(String uid, String platform);
}
......@@ -12,7 +12,7 @@ public interface IAdamUserMemberService extends IService<AdamUserMember> {
String getMaxMemberNo(String memberId);
// 获取用户会员信息
AdamUserMemberVo getUserMemberInfo(String uid);
// AdamUserMemberVo getUserMemberInfo(String uid);
/**
* 获取会员库存
......
......@@ -19,11 +19,11 @@ import java.util.List;
*/
public interface IAdamUserService extends IService<AdamUser> {
String queryUidByRedis(String mobile);
// String queryUidByRedis(String mobile);
//
// String queryUidByRedis(String openId, String platform);
String queryUidByRedis(String openId, String platform);
AdamUserInfoVo queryByUid(String uid);
// AdamUserInfoVo queryByUid(String uid);
/**
* 手机号注册
......@@ -55,18 +55,16 @@ public interface IAdamUserService extends IService<AdamUser> {
* @param bindUid
* @param unBindUid
* @param param
* @return
*/
List<AdamThirdPartInfoVo> bindTpaForce(String bindUid, String unBindUid, AdamThirdPartParam param);
void bindTpaForce(String bindUid, String unBindUid, AdamThirdPartParam param);
/**
* 第三方账号解绑
*
* @param uid
* @param platform
* @return List<AdamThirdPartInfoVo>
*/
List<AdamThirdPartInfoVo> unBindTpa(String uid, String platform);
void unBindTpa(String uid, String platform);
void close(String uid);
......
......@@ -23,6 +23,8 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
private String timeEnd;
@ApiModelProperty(position = 15, value = "票种列表信息")
private List<KylinStationTicketVo> ticketVoList;
@ApiModelProperty(position = 16, value = "可下载时间")
private String canDownTime;
private static final KylinStationPerformanceVo obj = new KylinStationPerformanceVo();
......@@ -33,4 +35,14 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
return new KylinStationPerformanceVo();
}
}
public KylinStationPerformanceVo copy(KylinPerformanceVo source) {
if (null == source) return this;
this.performanceId = source.getPerformancesId();
this.type = source.getType();
this.title = source.getTitle();
this.timeStart = source.getTimeStart();
this.timeEnd = source.getTimeEnd();
return this;
}
}
......@@ -31,4 +31,14 @@ public class KylinStationTicketVo implements Serializable, Cloneable {
private Integer checkedNum;
@ApiModelProperty(position = 19, value = "余量[9]")
private Integer remainderNum;
private static final KylinStationTicketVo obj = new KylinStationTicketVo();
public static KylinStationTicketVo getNew() {
try {
return (KylinStationTicketVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinStationTicketVo();
}
}
}
......@@ -14,7 +14,7 @@ public class CurrentUtil {
public static String getToken() {
String authToken = ServletUtils.getRequest().getHeader(uToken);
return StringUtils.isBlank(authToken) ? null : authToken.substring(7);
return StringUtils.isEmpty(authToken) ? "" : authToken;
}
public static Map getTokenClaims() {
......
......@@ -75,21 +75,15 @@ zuul:
# ignored-patterns: /**/div/**
# -----------------------------------------------------------
global:
login:
url: /adam/login/sms,
/adam/login/mobile,
/adam/login/tpa
include:
url:
url-pattern: /kylin/station/**
exclude:
url: /adam/v2/api-docs,
/adam/v2/api-docs-ext,
/kylin/v2/api-docs,
/kylin/v2/api-docs-ext,
/adam/login/sms,
/adam/login/mobile,
/adam/login/tpa,
/adam/send,
url: /adam/send,
/adam/member/info
url-pattern: /kylin/**
url-pattern: /**/login/**,
/*/v2/api-docs*,
/kylin/**
# -----------------------------------------------------------
#解决错误 com.netflix.client.ClientException: Load balancer does not have available server for client:panfeng-item-service
#这样就可以即指定path与URL,又不破坏Zuul的Hystrix与Ribbon特性了。
......
......@@ -4,17 +4,20 @@ package com.liquidnet.service.adam.constant;
* @date 2020-11-04 14:02
*/
public class AdamRedisConst {
public static final String ADAM = "adam";
public static final String ADAM = "adam:";
public static final String INFO_IDENTITY = ADAM.concat(":identity");
public static final String INFO_IDENTITY_MOBILE = INFO_IDENTITY.concat(":mobile");
public static final String INFO_IDENTITY_THIRD_PARTY = INFO_IDENTITY.concat(":third_party");
public static final String INFO_USER = ADAM.concat(":list:user");
public static final String INFO_REAL_NAME = ADAM.concat(":list:real_name");
public static final String INFO_THIRD_PARTY = ADAM.concat(":list:third_party");
public static final String IDENTITY = ADAM.concat("identity:");
public static final String IDENTITY_MOBILE = IDENTITY.concat("mobile:");
public static final String IDENTITY_THIRD_PARTY = IDENTITY.concat("third_party:");
public static final String INFO_ENTERS = ADAM.concat(":list:enters:");
public static final String INFO_ADDRESSES = ADAM.concat(":list:addresses:");
public static final String INFO = ADAM.concat("info:");
public static final String INFO_USER = INFO.concat("user:");
public static final String INFO_REAL_NAME = INFO.concat("info:real_name:");
public static final String INFO_THIRD_PARTY = INFO.concat("info:third_party:");
public static final String INFO_USER_MEMBER = INFO.concat("info:user_member:");
public static final String INFO_MEMBER_SIMPLE = INFO.concat("info:member_simple:");
public static final String INFO_ENTERS = INFO.concat("info:enters:");
public static final String INFO_ADDRESSES = INFO.concat("info:addresses:");
public static final String INFO_MEMBERS = ADAM.concat(":list:members");
public static final String INFO_MEMBERS_INFO = ADAM.concat(":list:members:info:");
......@@ -24,33 +27,4 @@ public class AdamRedisConst {
public static final String INFO_MEMBERS_USER = ADAM.concat(":list:members:user");
public static final String INFO_MEMBERS_REPERTORY_INFO = ADAM.concat(":list:members:repertory:");
public static final String INFO_MEMBERS_ORDER_INFO = ADAM.concat(":list:members:order:");
// public static final String USER_CONFIRM_SMS_CODE_KEY = ADAM + ":user:sms_confirm:";
//
// public static final String USER_EMAIL_CONFIRM_KEY = ADAM + ":user:email:confirm:";
//
// public static final String USER_EMAIL_UPDATE_KEY = ADAM + ":user:email:update:";
//
// public static final String USER_PASSWORD_FORGET_KEY = ADAM + ":user:password:forget:";
//
// public static final String USER_PASSWORD_ERROR_KEY = ADAM + ":user:password:error:";
//
// public static final String CONVERSION_SEND_CONFIRM_KEY = ADAM + ":conversion:send_confirm:";
//
// public static final String WALLET_LOCK = ADAM + "_wallet_lock_";
//
// public static final String FUNDING_LOCK = ADAM + "_funding_lock_";
//
// public static final String PAYOUT_LOCK = ADAM + "_payout_lock_";
//
// public static final String USER_LOGIN_TIME_OUT_KEY = ADAM + ":user:login:timeout:";
//
// public static final String USER_LOGIN_TOKEN_ITEM_EMAIL_CHANGE = "emailChangeFlag";
//
// public static final String USER_LOGIN_KEY = ADAM + ":user:login:";
//
// public static final String USER_LOGIN_ITEM_TOKEN = "token";
//
// public static final String USER_LOGIN_ITEM_PERMIT = "permit";
}
......@@ -6,6 +6,7 @@ import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.service.IAdamAddressesService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
......@@ -36,6 +37,8 @@ import java.util.List;
@RestController
@RequestMapping("addr")
public class AdamAddressesController {
@Autowired
IAdamRdmService adamRdmService;
@Autowired
IAdamAddressesService adamAddressesService;
......@@ -65,7 +68,7 @@ public class AdamAddressesController {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamAddressesVo> voList = new ArrayList<>();
adamAddressesService.queryByUid(currentUid).forEach(i -> {
adamRdmService.getAddressesByUid(currentUid).forEach(i -> {
voList.add(AdamAddressesVo.getNew().copy(i));
});
......@@ -78,7 +81,7 @@ public class AdamAddressesController {
public ResponseDto<Object> def(@PathVariable String addrId) {
String currentUid = CurrentUtil.getCurrentUid();
AdamAddresses addresses = adamAddressesService.query(currentUid, addrId);
AdamAddresses addresses = adamRdmService.getAddressesByUidAddressesId(currentUid, addrId);
if (null == addresses) return ResponseDto.failure(ErrorMapping.get("10106"));
if (!addresses.getIsDefault()) adamAddressesService.def(currentUid, addrId);
......@@ -111,7 +114,7 @@ public class AdamAddressesController {
String currentUid = CurrentUtil.getCurrentUid();
AdamAddresses addresses = adamAddressesService.query(currentUid, addrId);
AdamAddresses addresses = adamRdmService.getAddressesByUidAddressesId(currentUid, addrId);
if (null == addresses) return ResponseDto.failure(ErrorMapping.get("10106"));
adamAddressesService.remove(currentUid, addrId);
......@@ -125,7 +128,7 @@ public class AdamAddressesController {
@RequestParam(name = "uid", required = false) String uid) {
// TODO: 2021/4/28 校验
AdamAddresses addresses = adamAddressesService.query(StringUtils.isBlank(uid) ? CurrentUtil.getCurrentUid() : uid, addrId);
AdamAddresses addresses = adamRdmService.getAddressesByUidAddressesId(StringUtils.isBlank(uid) ? CurrentUtil.getCurrentUid() : uid, addrId);
return null == addresses ? ResponseDto.failure(ErrorMapping.get(10105)) : ResponseDto.success(AdamAddressesVo.getNew().copy(addresses));
}
......
......@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
......@@ -36,6 +37,8 @@ import java.util.List;
@RestController
@RequestMapping("enters")
public class AdamEntersController {
@Autowired
IAdamRdmService adamRdmService;
@Autowired
IAdamEntersService adamEntersService;
......@@ -66,7 +69,7 @@ public class AdamEntersController {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamEntersVo> voList = new ArrayList<>();
adamEntersService.queryByUid(currentUid).forEach(i -> {
adamRdmService.getEntersByUid(currentUid).forEach(i -> {
voList.add(AdamEntersVo.getNew().copy(i));
});
......@@ -78,7 +81,7 @@ public class AdamEntersController {
@PostMapping("def/{entersId}")
public ResponseDto<Object> def(@PathVariable String entersId) {
String currentUid = CurrentUtil.getCurrentUid();
AdamEnters enters = adamEntersService.query(currentUid, entersId);
AdamEnters enters = adamRdmService.getEntersByUidEntersId(currentUid, entersId);
if (null == enters) return ResponseDto.failure(ErrorMapping.get("10105"));
if (!enters.getIsDefault()) {
......@@ -94,7 +97,7 @@ public class AdamEntersController {
// TODO: 2021/4/28 校验
String currentUid = CurrentUtil.getCurrentUid();
AdamEnters enters = adamEntersService.query(currentUid, parameter.getEntersId());
AdamEnters enters = adamRdmService.getEntersByUidEntersId(currentUid, parameter.getEntersId());
if (null == enters) return ResponseDto.failure(ErrorMapping.get("10105"));
AdamEnters updateInfo = new AdamEnters();
......@@ -114,7 +117,7 @@ public class AdamEntersController {
public ResponseDto<Object> del(@PathVariable String entersId) {
String currentUid = CurrentUtil.getCurrentUid();
AdamEnters enters = adamEntersService.query(currentUid, entersId);
AdamEnters enters = adamRdmService.getEntersByUidEntersId(currentUid, entersId);
if (null == enters) return ResponseDto.failure(ErrorMapping.get(10105));
adamEntersService.remove(currentUid, entersId);
......@@ -128,7 +131,7 @@ public class AdamEntersController {
@RequestParam(name = "uid", required = false) String uid) {
// TODO: 2021/4/28 校验
AdamEnters info = adamEntersService.query(StringUtils.isBlank(uid) ? CurrentUtil.getCurrentUid() : uid, entersId);
AdamEnters info = adamRdmService.getEntersByUidEntersId(StringUtils.isBlank(uid) ? CurrentUtil.getCurrentUid() : uid, entersId);
return null == info ? ResponseDto.failure(ErrorMapping.get(10105)) : ResponseDto.success(AdamEntersVo.getNew().copy(info));
}
......
......@@ -60,6 +60,8 @@ public class AdamLoginController {
IAdamUserMemberService adamUserMemberService;
@Autowired
IAdamMemberService adamMemberService;
@Autowired
IAdamRdmService adamRdmService;
/*@ApiOperationSupport(order = 1)
@ApiOperation(value = "手机号密码登录")
......@@ -117,15 +119,15 @@ public class AdamLoginController {
if (!this.checkSmsCode(mobile, code)) return ResponseDto.failure(ErrorMapping.get("10002"));
String uid = adamUserService.queryUidByRedis(mobile);
String uid = adamRdmService.getUidByMobile(mobile);
AdamUserInfoVo userInfoVo =
StringUtils.isEmpty(uid) ? adamUserService.register(mobile) : adamUserService.queryByUid(uid);
StringUtils.isEmpty(uid) ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
// if (userInfoVo.getIsComplete() == 1) {
loginInfoVo.setRealNameInfo(adamRealNameService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamThirdPartyService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setUserMemberVo(adamUserMemberService.getUserMemberInfo(userInfoVo.getUid()));
loginInfoVo.setMemberSimpleVo(adamMemberService.queryMemberSimpleVo());
loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid()));
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(userInfoVo.getUid()));
loginInfoVo.setMemberSimpleVo(adamRdmService.getMemberSimpleVo());
// }
loginInfoVo.setUserInfo(userInfoVo);
......@@ -151,15 +153,15 @@ public class AdamLoginController {
String mobile = this.getMobile(accessToken);
if (StringUtils.isEmpty(mobile)) return ResponseDto.failure(ErrorMapping.get("10005"));
String uid = adamUserService.queryUidByRedis(mobile);
String uid = adamRdmService.getUidByMobile(mobile);
AdamUserInfoVo userInfoVo =
StringUtils.isEmpty(uid) ? adamUserService.register(mobile) : adamUserService.queryByUid(uid);
StringUtils.isEmpty(uid) ? adamUserService.register(mobile) : adamRdmService.getUserInfoVoByUid(uid);
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
// if (loginInfoVo.getUserInfo().getIsComplete() == 1) {
loginInfoVo.setRealNameInfo(adamRealNameService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamThirdPartyService.queryByUid(userInfoVo.getUid()));
loginInfoVo.setUserMemberVo(adamUserMemberService.getUserMemberInfo(userInfoVo.getUid()));
loginInfoVo.setMemberSimpleVo(adamMemberService.queryMemberSimpleVo());
loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(userInfoVo.getUid()));
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(userInfoVo.getUid()));
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(userInfoVo.getUid()));
loginInfoVo.setMemberSimpleVo(adamRdmService.getMemberSimpleVo());
// }
loginInfoVo.setUserInfo(userInfoVo);
......@@ -180,20 +182,21 @@ public class AdamLoginController {
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
if (StringUtils.isEmpty(parameter.getMobile())) {
String uid = adamUserService.queryUidByRedis(parameter.getOpenId(), parameter.getPlatform());
String uid = adamRdmService.getUidByPlatformOpenId(parameter.getPlatform(), parameter.getOpenId());
if (StringUtils.isEmpty(uid)) return ResponseDto.failure(ErrorMapping.get("10006"));
loginInfoVo.setUserInfo(adamUserService.queryByUid(uid));
loginInfoVo.setRealNameInfo(adamRealNameService.queryByUid(uid));
loginInfoVo.setThirdPartInfo(adamThirdPartyService.queryByUid(uid));
loginInfoVo.setUserMemberVo(adamUserMemberService.getUserMemberInfo(uid));
loginInfoVo.setMemberSimpleVo(adamMemberService.queryMemberSimpleVo());
loginInfoVo.setUserInfo(adamRdmService.getUserInfoVoByUid(uid));
loginInfoVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(uid));
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(uid));
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(uid));
loginInfoVo.setMemberSimpleVo(adamRdmService.getMemberSimpleVo());
} else {// 新账号注册
if (!this.checkSmsCode(parameter.getMobile(), parameter.getCode())) return ResponseDto.failure(ErrorMapping.get("10002"));
loginInfoVo.setUserInfo(adamUserService.register(parameter));
loginInfoVo.setThirdPartInfo(adamThirdPartyService.queryByUid(loginInfoVo.getUserInfo().getUid()));
loginInfoVo.setMemberSimpleVo(adamMemberService.queryMemberSimpleVo());
AdamUserInfoVo registerUserInfo = adamUserService.register(parameter);
loginInfoVo.setUserInfo(registerUserInfo);
loginInfoVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(registerUserInfo.getUid()));
loginInfoVo.setMemberSimpleVo(adamRdmService.getMemberSimpleVo());
}
Map<String, Object> claimsMap = new HashMap<>();
......@@ -211,11 +214,11 @@ public class AdamLoginController {
String uToken = request.getHeader(CurrentUtil.uToken);
log.info("###logout:uid:{}\ntoken:{}\nuToken:{}", CurrentUtil.getCurrentUid(), CurrentUtil.getToken(), uToken);
String ssoKey = jwtValidator.getSsoRedisKey().concat(
String ssoKeyUidM5Token = jwtValidator.getSsoRedisKey().concat(CurrentUtil.getCurrentUid()).concat(
DigestUtils.md5DigestAsHex(uToken.getBytes(StandardCharsets.UTF_8))
);
redisUtil.set(ssoKey, false);
redisUtil.set(ssoKeyUidM5Token, false);
return ResponseDto.success();
}
......@@ -232,8 +235,8 @@ public class AdamLoginController {
/* ---------------------------- Internal Method ---------------------------- */
private boolean checkSmsCode(String mobile, String code) {
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active")) && "111111".equals(code)) {
return true;
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
return "111111".equals(code);
}
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
......
......@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.dto.vo.AdamMemberRightsVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.service.IAdamMemberService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
......@@ -30,7 +31,8 @@ import java.util.Date;
@RestController
@RequestMapping("/member")
public class AdamMemberController {
@Autowired
IAdamRdmService adamRdmService;
@Autowired
IAdamMemberService adamMemberService;
@Autowired
......@@ -43,8 +45,12 @@ public class AdamMemberController {
public ResponseDto<AdamMemberVo> query() {
AdamMemberVo info = adamMemberService.queryMemberInfo();
if (null != info) {
info.setMemberInfo(adamUserMemberService.getUserMemberInfo(CurrentUtil.getCurrentUid()));
info.setRightsVoList(AdamMemberRightsVo.getNew().initDefault());
String currentUid = CurrentUtil.getCurrentUid();
if (!"1".equals(currentUid)) {
info.setMemberInfo(adamRdmService.getUserMemberVoByUid(currentUid));
}
}
return ResponseDto.success(info);
}
......@@ -65,7 +71,7 @@ public class AdamMemberController {
public ResponseDto<Boolean> isMember(@PathVariable String uid) {
if (StringUtils.isBlank(uid)) return ResponseDto.success(false);
AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(uid);
AdamUserMemberVo userMemberInfo = adamRdmService.getUserMemberVoByUid(uid);
if (null != userMemberInfo) {
Integer state = userMemberInfo.getState();
if (null != state && state == 1) {
......
......@@ -14,6 +14,7 @@ import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
......@@ -34,7 +35,6 @@ import java.util.List;
@RestController
@RequestMapping("member/order")
public class AdamMemberOrderController {
@Autowired
IAdamMemberOrderService adamMemberOrderService;
@Autowired
......@@ -43,6 +43,8 @@ public class AdamMemberOrderController {
IAdamRealNameService adamRealNameService;
@Autowired
IAdamUserService adamUserService;
@Autowired
IAdamRdmService adamRdmService;
@ApiOperationSupport(order = 0)
@ApiOperation(value = "购买会员预览")
......@@ -55,7 +57,7 @@ public class AdamMemberOrderController {
previewVo.setRealInfoVo(realInfoVo);
previewVo.setPriceVo(adamMemberPriceService.query(mno, id));
AdamUserInfoVo userInfoVo = adamUserService.queryByUid(CurrentUtil.getCurrentUid());
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(CurrentUtil.getCurrentUid());
previewVo.setBirthday(null == userInfoVo ? null : userInfoVo.getBirthday());
return ResponseDto.success(previewVo);
}
......
......@@ -9,10 +9,7 @@ import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.AdamUserInfoParam;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.service.IAdamThirdPartyService;
import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.service.*;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
......@@ -44,6 +41,8 @@ public class AdamUserController {
IAdamThirdPartyService adamThirdPartyService;
@Autowired
IAdamRealNameService adamRealNameService;
@Autowired
IAdamRdmService adamRdmService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "个人资料编辑")
......@@ -53,7 +52,7 @@ public class AdamUserController {
log.info("parameter:{}", JsonUtils.toJson(parameter));
String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo editUserInfoVo = adamUserService.queryByUid(currentUid);
AdamUserInfoVo editUserInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
editUserInfoVo.setAvatar(parameter.getAvatar());
editUserInfoVo.setBackground(parameter.getBackground());
editUserInfoVo.setNickname(parameter.getNickname());
......@@ -170,24 +169,26 @@ public class AdamUserController {
log.info("login by tpa:{}", JsonUtils.toJson(parameter));
String currentUid = CurrentUtil.getCurrentUid();
String existUid = adamUserService.queryUidByRedis(parameter.getOpenId(), parameter.getPlatform());
String existUid = adamRdmService.getUidByPlatformOpenId(parameter.getPlatform(), parameter.getOpenId());
if (StringUtils.isNotEmpty(existUid)) {
if (existUid.equals(currentUid)) {
return ResponseDto.success(adamThirdPartyService.queryByUid(currentUid));
return ResponseDto.success(adamRdmService.getThirdPartVoListByUid(currentUid));
}
Boolean force = parameter.getForce();
if (null != force && force) {// 强制解绑,并重新绑定当前账号
return ResponseDto.success(adamUserService.bindTpaForce(currentUid, existUid, parameter));
adamUserService.bindTpaForce(currentUid, existUid, parameter);
return ResponseDto.success();
}
return ResponseDto.failure(ErrorMapping.get("10007"));
}
// 判断该用户是否已绑定同类型第三方账号
AdamThirdPartInfoVo bindThirdPartVo = adamThirdPartyService.queryByUidAndPlatform(currentUid, parameter.getPlatform());
AdamThirdPartInfoVo bindThirdPartVo = adamRdmService.getThirdPartVoByUidPlatform(currentUid, parameter.getPlatform());
if (null != bindThirdPartVo) return ResponseDto.failure(ErrorMapping.get("10008"));
adamUserService.bindTpa(currentUid, parameter);
return ResponseDto.success(adamThirdPartyService.queryByUid(currentUid));
return ResponseDto.success(adamRdmService.getThirdPartVoListByUid(currentUid));
}
@ApiOperationSupport(order = 8)
......@@ -201,14 +202,16 @@ public class AdamUserController {
String currentUid = CurrentUtil.getCurrentUid();
log.info("unbind tpa.platform:{},uid:{}", platform, currentUid);
return ResponseDto.success(adamUserService.unBindTpa(currentUid, platform));
adamUserService.unBindTpa(currentUid, platform);
return ResponseDto.success(adamRdmService.getThirdPartVoListByUid(currentUid));
}
/* ---------------------------- Internal Method ---------------------------- */
private boolean checkSmsCode(String mobile, String code) {
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active")) && "111111".equals(code)) {
return true;
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
return "111111".equals(code);
}
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
......
......@@ -42,7 +42,7 @@ public class AdamMemberAdminController {
return ResponseDto.success();
}
@ApiOperationSupport(order = 1)
@ApiOperationSupport(order = 2)
@ApiOperation(value = "生成兑换码")
@PostMapping("gen_code")
public ResponseDto<Object> genMemberCode(@RequestBody AdamMemberCodeParam parameter) {
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.mapper.AdamAddressesMapper;
import com.liquidnet.service.adam.service.IAdamAddressesService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -46,61 +45,64 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
IAdamRdmService adamRdmService;
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamAddresses adamAddresses) {
adamAddresses.setIsDefault(CollectionUtils.isEmpty(this.queryByUid(adamAddresses.getUid())));
List<AdamAddresses> addressesList = adamRdmService.getAddressesByUid(adamAddresses.getUid());
mongoTemplate.insert(Collections.singletonList(adamAddresses), AdamAddresses.class.getSimpleName());
adamAddresses.setIsDefault(CollectionUtils.isEmpty(addressesList));
mongoTemplate.insert(adamAddresses, AdamAddresses.class.getSimpleName());
// TODO: 2021/5/14
List<Object> objectList = Arrays.asList();
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_addresses.add", objectList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(adamAddresses.getUid()), adamAddresses.getAddressesId(), adamAddresses);
}
@Override
public List<AdamAddresses> queryByUid(String uid) {
List<AdamAddresses> infoList = new ArrayList<>();
Map<Object, Object> objectMap = redisUtil.hmget(AdamRedisConst.INFO_ADDRESSES.concat(uid));
if (CollectionUtils.isEmpty(objectMap)) {
infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamAddresses.class, AdamAddresses.class.getSimpleName());
} else {
Collection<Object> values = objectMap.values();
for (Object o : values) {
infoList.add((AdamAddresses) o);
}
}
return infoList;
}
@Override
public AdamAddresses query(String uid, String addressesId) {
AdamAddresses info = (AdamAddresses) redisUtil.hget(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId);
if (null == info) {
info = mongoTemplate.findOne(
Query.query(Criteria.where("entersId").is(addressesId).and("state").is(1).and("uid").is(uid)
), AdamAddresses.class, AdamAddresses.class.getSimpleName());
if (null != info) redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId, info);
}
return info;
}
addressesList.add(adamAddresses);
adamRdmService.setAddressesByUid(adamAddresses.getUid(), addressesList);
}
// @Override
// public List<AdamAddresses> queryByUid(String uid) {
// List<AdamAddresses> infoList = new ArrayList<>();
//
// Map<Object, Object> objectMap = redisUtil.hmget(AdamRedisConst.INFO_ADDRESSES.concat(uid));
//
// if (CollectionUtils.isEmpty(objectMap)) {
// infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamAddresses.class, AdamAddresses.class.getSimpleName());
// } else {
// Collection<Object> values = objectMap.values();
// for (Object o : values) {
// infoList.add((AdamAddresses) o);
// }
// }
//
// return infoList;
// }
// @Override
// public AdamAddresses query(String uid, String addressesId) {
// AdamAddresses info = (AdamAddresses) redisUtil.hget(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId);
//
// if (null == info) {
// info = mongoTemplate.findOne(
// Query.query(Criteria.where("entersId").is(addressesId).and("state").is(1).and("uid").is(uid)
// ), AdamAddresses.class, AdamAddresses.class.getSimpleName());
//
// if (null != info) redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId, info);
// }
//
// return info;
// }
@Override
public void def(String uid, String addressesId) {
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> linkedList = new LinkedList<>();
List<AdamAddresses> addressesList = this.queryByUid(uid);
List<AdamAddresses> addressesList = adamRdmService.getAddressesByUid(uid);
if (addressesList.size() > 1) {// 取消原默认
AdamAddresses unDeaultAddresses = new AdamAddresses();
unDeaultAddresses.setIsDefault(false);
......@@ -119,7 +121,8 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
paramList.add(unDefaultAfterAddresses.getAddressesId());
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(unDefaultAfterAddresses.getUid()), unDefaultAfterAddresses.getAddressesId(), unDefaultAfterAddresses);
addressesList.removeIf(r -> r.getAddressesId().equals(unDefaultAfterAddresses.getAddressesId()));
addressesList.add(unDefaultAfterAddresses);
}
}
{// 设置新默认
......@@ -141,8 +144,11 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
// SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(addresses.getUid()), addresses.getAddressesId(), addresses);
addressesList.removeIf(r -> r.getAddressesId().equals(addresses.getAddressesId()));
addressesList.add(addresses);
}
adamRdmService.setAddressesByUid(uid, addressesList);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_addresses.update.is_default", linkedList));
......@@ -162,7 +168,10 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_addresses.edit", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(info.getUid()), info.getAddressesId(), BsonUtil.toBean(doc, AdamAddresses.class));
List<AdamAddresses> list = adamRdmService.getAddressesByUid(info.getUid());
list.removeIf(r -> r.getAddressesId().equals(info.getAddressesId()));
list.add(info);
adamRdmService.setAddressesByUid(info.getUid(), list);
}
@Override
......@@ -181,12 +190,14 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_addresses.remove", paramList.toArray()));
redisUtil.hdel(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId);
List<AdamAddresses> list = adamRdmService.getAddressesByUid(uid);
list.removeIf(r -> r.getAddressesId().equals(addressesId));
adamRdmService.setAddressesByUid(uid, list);
}
@Override
public AdamAddressesVo queryDefault(String uid) {
List<AdamAddresses> addressesList = this.queryByUid(uid);
List<AdamAddresses> addressesList = adamRdmService.getAddressesByUid(uid);
if (!CollectionUtils.isEmpty(addressesList)) {
AdamAddresses defaultAddr = null;
......
......@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
......@@ -11,7 +10,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamCollection;
import com.liquidnet.service.adam.mapper.AdamCollectionMapper;
import com.liquidnet.service.adam.service.IAdamCollectionService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
......@@ -51,14 +50,11 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
IAdamUserService adamUserService;
IAdamRdmService adamRdmService;
/* ---------------- 外部服务API ---------------- */
@Autowired
FeignKylinPerformanceClient kylinPerformanceClient;
FeignKylinPerformanceClient feignKylinPerformanceClient;
@Override
public void add(AdamCollectBaseVo collectionVo) {
......@@ -68,7 +64,7 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
collectionVo.setState(1);
collectionVo.setCreatedAt(nowStr);
AdamUserInfoVo userInfoVo = adamUserService.queryByUid(collectionVo.getUid());
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(collectionVo.getUid());
collectionVo.setAvatar(userInfoVo.getAvatar());
collectionVo.setNickname(userInfoVo.getNickname());
collectionVo.setSex(userInfoVo.getSex());
......@@ -121,7 +117,7 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
try {
String[] contentIds = collectVoList.stream().map(AdamCollectVo::getContentId).toArray(a -> new String[collectVoList.size()]);
ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = kylinPerformanceClient.performanceList(contentIds);
ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = feignKylinPerformanceClient.performanceList(contentIds);
if (performanceVoListDto.isSuccess()) {
List<KylinPerformanceVo> kylinPerformanceVoList = performanceVoListDto.getData();
......@@ -136,10 +132,10 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
});
});
} else {
log.info("Failed:{}.API.performanceList(...) for AdamCollection:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
log.info("Failed:{}.API.performanceList(...) for AdamCollection:{}", feignKylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
}
} catch (Exception e) {
log.error("Exception:{}.API.performanceList(...) for AdamCollection", kylinPerformanceClient.getClass().getSimpleName(), e);
log.error("Exception:{}.API.performanceList(...) for AdamCollection", feignKylinPerformanceClient.getClass().getSimpleName(), e);
}
voPageInfo = PageInfo.of(collectVoList);
voPageInfo.setTotal(count);
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamDisposed;
import com.liquidnet.service.adam.mapper.AdamDisposedMapper;
import com.liquidnet.service.adam.service.IAdamDisposedService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
......@@ -39,7 +35,7 @@ import java.util.List;
*/
@Slf4j
@Service
public class AdamDisposedServiceImpl extends ServiceImpl<AdamDisposedMapper, AdamDisposed> implements IAdamDisposedService {
public class AdamDisposedServiceImpl implements IAdamDisposedService {
@Autowired
MongoConverter mongoConverter;
@Autowired
......@@ -47,9 +43,7 @@ public class AdamDisposedServiceImpl extends ServiceImpl<AdamDisposedMapper, Ada
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
IAdamUserService adamUserService;
IAdamRdmService adamRdmService;
/* ---------------- 外部服务API ---------------- */
......@@ -64,7 +58,7 @@ public class AdamDisposedServiceImpl extends ServiceImpl<AdamDisposedMapper, Ada
disposedBaseVo.setState(1);
disposedBaseVo.setCreatedAt(nowStr);
AdamUserInfoVo userInfoVo = adamUserService.queryByUid(disposedBaseVo.getUid());
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(disposedBaseVo.getUid());
disposedBaseVo.setAvatar(userInfoVo.getAvatar());
disposedBaseVo.setNickname(userInfoVo.getNickname());
disposedBaseVo.setSex(userInfoVo.getSex());
......
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -26,7 +25,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -48,32 +50,34 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Override
public List<AdamEnters> queryByUid(String uid) {
List<AdamEnters> infoList = new ArrayList<>();
Map<Object, Object> objectMap = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid));
if (CollectionUtils.isEmpty(objectMap)) {
infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamEnters.class, AdamEnters.class.getSimpleName());
} else {
Collection<Object> values = objectMap.values();
for (Object o : values) {
infoList.add((AdamEnters) o);
}
}
return infoList;
}
IAdamRdmService adamRdmService;
// @Override
// public List<AdamEnters> queryByUid(String uid) {
// List<AdamEnters> infoList = new ArrayList<>();
//
// Map<Object, Object> objectMap = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid));
//
// if (CollectionUtils.isEmpty(objectMap)) {
// infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamEnters.class, AdamEnters.class.getSimpleName());
// } else {
// Collection<Object> values = objectMap.values();
// for (Object o : values) {
// infoList.add((AdamEnters) o);
// }
// }
//
// return infoList;
// }
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamEnters info) {
info.setIsDefault(CollectionUtils.isEmpty(this.queryByUid(info.getUid())));
List<AdamEnters> entersList = adamRdmService.getEntersByUid(info.getUid());
info.setIsDefault(CollectionUtils.isEmpty(entersList));
mongoTemplate.insert(Collections.singletonList(info), AdamEnters.class.getSimpleName());
mongoTemplate.insert(info, AdamEnters.class.getSimpleName());
List<Object> paramList = new ArrayList<>();
paramList.add(info.getEntersId());
......@@ -91,30 +95,31 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.add", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(info.getUid()), info.getEntersId(), info);
entersList.add(info);
adamRdmService.setEntersByUid(info.getUid(), entersList);
}
@Override
public AdamEnters query(String uid, String entersId) {
AdamEnters info = (AdamEnters) redisUtil.hget(AdamRedisConst.INFO_ENTERS.concat(uid), entersId);
if (null == info) {
info = mongoTemplate.findOne(
Query.query(Criteria.where("entersId").is(entersId).and("state").is(1).and("uid").is(uid)),
AdamEnters.class, AdamEnters.class.getSimpleName());
if (null != info) redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(uid), entersId, info);
}
return info;
}
// @Override
// public AdamEnters query(String uid, String entersId) {
// AdamEnters info = (AdamEnters) redisUtil.hget(AdamRedisConst.INFO_ENTERS.concat(uid), entersId);
//
// if (null == info) {
// info = mongoTemplate.findOne(
// Query.query(Criteria.where("entersId").is(entersId).and("state").is(1).and("uid").is(uid)),
// AdamEnters.class, AdamEnters.class.getSimpleName());
//
// if (null != info) redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(uid), entersId, info);
// }
// return info;
// }
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void def(String uid, String entersId) {
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> linkedList = new LinkedList<>();
List<AdamEnters> adamEnters = this.queryByUid(uid);
if (adamEnters.size() > 1) {// 取消原默认
List<AdamEnters> entersList = adamRdmService.getEntersByUid(uid);
if (entersList.size() > 1) {// 取消原默认
AdamEnters unDeaultEnters = new AdamEnters();
unDeaultEnters.setIsDefault(false);
unDeaultEnters.setUpdatedAt(now);
......@@ -134,7 +139,9 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
// SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
entersList.removeIf(r -> r.getEntersId().equals(enters.getEntersId()));
entersList.add(enters);
}
}
{// 设置新默认
......@@ -156,8 +163,12 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
// SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
entersList.removeIf(r -> r.getEntersId().equals(enters.getEntersId()));
entersList.add(enters);
}
adamRdmService.setEntersByUid(uid, entersList);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.update.is_default", linkedList));
}
......@@ -183,7 +194,10 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.edit", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(info.getUid()), info.getEntersId(), BsonUtil.toBean(doc, AdamEnters.class));
List<AdamEnters> entersList = adamRdmService.getEntersByUid(info.getUid());
entersList.removeIf(r -> r.getEntersId().equals(info.getEntersId()));
entersList.add(info);
adamRdmService.setEntersByUid(info.getUid(), entersList);
}
@Override
......@@ -205,12 +219,14 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.remove", paramList.toArray()));
redisUtil.hdel(AdamRedisConst.INFO_ENTERS.concat(uid), entersId);
List<AdamEnters> entersList = adamRdmService.getEntersByUid(uid);
entersList.removeIf(r -> r.getEntersId().equals(entersId));
adamRdmService.setEntersByUid(uid, entersList);
}
@Override
public AdamEntersVo queryDefault(String uid) {
List<AdamEnters> list = this.queryByUid(uid);
List<AdamEnters> list = adamRdmService.getEntersByUid(uid);
if (!CollectionUtils.isEmpty(list)) {
AdamEnters defaultVo = null;
......
......@@ -57,7 +57,7 @@ public class AdamMemberCodeServiceImpl extends ServiceImpl<AdamMemberCodeMapper,
vo.setCreatedAt(DateUtil.format(adamMemberCode.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
vo.setUpdatedAt(DateUtil.format(adamMemberCode.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
mongoTemplate.insert(Collections.singletonList(null), AdamMemberCodeVo.class.getSimpleName());
mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName());
// redis
Map<String, Object> redisMap = new HashMap<>();
......
......@@ -17,6 +17,7 @@ import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamMemberService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.liquidnet.service.adam.util.MemberUtil;
......@@ -38,7 +39,8 @@ import java.util.*;
@Slf4j
@Service
public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> implements IAdamMemberOrderService {
@Autowired
IAdamRdmService adamRdmService;
@Autowired
AdamMemberOrderMapper adamMemberOrderMapper;
@Autowired
......@@ -352,7 +354,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
int day = priceVo.getDays();
try {
if (AdamMemberConst.SUB_TYPE_BUY_VIP.equals(orderVo.getMode())) { // 购买会员
AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(orderVo.getUid());
AdamUserMemberVo userMemberInfo = adamRdmService.getUserMemberVoByUid(orderVo.getUid());
if (null == userMemberInfo) { // 创建会员
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
AdamUserMemberVo createMemberUser = AdamUserMemberVo.getNew();
......
......@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberSimpleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.mapper.AdamMemberMapper;
......@@ -17,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Iterator;
......@@ -75,18 +73,18 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
return info;
}
@Override
public AdamMemberSimpleVo queryMemberSimpleVo() {
AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBERS);
if (null == simpleVo) {
List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
if (null != simpleVo) {
redisUtil.set(AdamRedisConst.INFO_MEMBERS, simpleVo);
}
}
return simpleVo;
}
// @Override
// public AdamMemberSimpleVo queryMemberSimpleVo() {
// AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBERS);
// if (null == simpleVo) {
// List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
//
// simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
//
// if (null != simpleVo) {
// redisUtil.set(AdamRedisConst.INFO_MEMBERS, simpleVo);
// }
// }
// return simpleVo;
// }
}
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamRdmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
@Service
public class AdamRdmServiceImpl implements IAdamRdmService {
@Autowired
RedisUtil redisUtil;
@Autowired
MongoTemplate mongoTemplate;
@Override
public boolean setUidByMobile(String mobile, String uid) {
return redisUtil.set(AdamRedisConst.IDENTITY_MOBILE.concat(mobile), uid);
}
@Override
public void delUidByMobile(String mobile) {
redisUtil.del(AdamRedisConst.IDENTITY_MOBILE.concat(mobile));
}
@Override
public String getUidByMobile(String mobile) {
return (String) redisUtil.get(AdamRedisConst.IDENTITY_MOBILE.concat(mobile));
}
@Override
public boolean setUidByPlatformOpenId(String platform, String openId, String uid) {
return redisUtil.set(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId), uid);
}
@Override
public void delUidByPlatformOpenId(String platform, String openId) {
redisUtil.del(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId));
}
@Override
public String getUidByPlatformOpenId(String platform, String openId) {
return (String) redisUtil.get(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId));
}
@Override
public void delUserInfoVoByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_USER.concat(uid));
}
@Override
public boolean setUserInfoVoByUid(String uid, AdamUserInfoVo vo) {
return redisUtil.set(AdamRedisConst.INFO_USER.concat(uid), vo);
}
@Override
public AdamUserInfoVo getUserInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER.concat(uid);
AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisUtil.get(rk);
if (null == userInfoVo) {
userInfoVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
if (null != userInfoVo) redisUtil.hset(AdamRedisConst.INFO_USER, uid, userInfoVo);
}
return userInfoVo;
}
@Override
public boolean setRealInfoVoByUid(String uid, AdamRealInfoVo vo) {
return redisUtil.set(AdamRedisConst.INFO_REAL_NAME.concat(uid), vo);
}
@Override
public void delRealInfoVoByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_REAL_NAME.concat(uid));
}
@Override
public AdamRealInfoVo getRealInfoVoByUid(String uid) {
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
AdamRealInfoVo realInfoVo = (AdamRealInfoVo) redisUtil.get(rk);
if (null == realInfoVo) {
realInfoVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
if (null != realInfoVo) redisUtil.set(rk, realInfoVo);
}
return realInfoVo;
}
@Override
public boolean setThirdPartVoListByUid(String uid, List<AdamThirdPartInfoVo> voList) {
return redisUtil.set(AdamRedisConst.INFO_THIRD_PARTY.concat(uid), voList);
}
@Override
public void delThirdPartVoListByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_THIRD_PARTY.concat(uid));
}
@Override
public List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid) {
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
}
return thirdPartInfoVos;
}
@Override
public AdamThirdPartInfoVo getThirdPartVoByUidPlatform(String uid, String platform) {
List<AdamThirdPartInfoVo> list = this.getThirdPartVoListByUid(uid);
if (!CollectionUtils.isEmpty(list))
for (AdamThirdPartInfoVo r : list)
if (platform.equals(r.getPlatform())) return r;
return null;
}
@Override
public AdamUserMemberVo getUserMemberVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == adamUserMemberVo) {
adamUserMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
if (null != adamUserMemberVo) redisUtil.set(rk, adamUserMemberVo);
}
return adamUserMemberVo;
}
@Override
public AdamMemberSimpleVo getMemberSimpleVo() {
AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == simpleVo) {
List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
if (null != simpleVo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, simpleVo);
}
return simpleVo;
}
@Override
public boolean setEntersByUid(String uid, List<AdamEnters> list) {
return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list);
}
@Override
public void delEntersByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_ENTERS.concat(uid));
}
@Override
public List<AdamEnters> getEntersByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
List<AdamEnters> entersList = (List<AdamEnters>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(entersList)) {
entersList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamEnters.class, AdamEnters.class.getSimpleName());
if (!CollectionUtils.isEmpty(entersList)) redisUtil.set(rk, entersList);
}
return entersList;
}
@Override
public AdamEnters getEntersByUidEntersId(String uid, String entersId) {
List<AdamEnters> entersList = this.getEntersByUid(uid);
if (!CollectionUtils.isEmpty(entersList))
for (AdamEnters r : entersList)
if (entersId.equals(r.getEntersId())) return r;
return null;
}
@Override
public boolean setAddressesByUid(String uid, List<AdamAddresses> list) {
return redisUtil.set(AdamRedisConst.INFO_ADDRESSES.concat(uid), list);
}
@Override
public void delAddressesByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_ADDRESSES.concat(uid));
}
@Override
public List<AdamAddresses> getAddressesByUid(String uid) {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
List<AdamAddresses> list = (List<AdamAddresses>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(list)) {
list = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamAddresses.class, AdamAddresses.class.getSimpleName());
if (!CollectionUtils.isEmpty(list)) redisUtil.set(rk, list);
}
return list;
}
@Override
public AdamAddresses getAddressesByUidAddressesId(String uid, String addressesId) {
List<AdamAddresses> list = this.getAddressesByUid(uid);
if (!CollectionUtils.isEmpty(list))
for (AdamAddresses r : list)
if (addressesId.equals(r.getAddressesId())) return r;
return null;
}
}
......@@ -53,7 +53,7 @@ public class AdamRealNameServiceImpl extends ServiceImpl<AdamRealNameMapper, Ada
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) {
mongoTemplate.insert(Collections.singletonList(realName), AdamRealInfoVo.class.getSimpleName());
mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
List<Object> paramList = Arrays.asList(
realName.getRealNameId(),
......
......@@ -31,27 +31,27 @@ public class AdamThirdPartyServiceImpl extends ServiceImpl<AdamThirdPartyMapper,
@Autowired
RedisUtil redisUtil;
@Override
public List<AdamThirdPartInfoVo> queryByUid(String uid) {
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.hget(AdamRedisConst.INFO_THIRD_PARTY, uid);
if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamThirdPartInfoVo.class);
// @Override
// public List<AdamThirdPartInfoVo> queryByUid(String uid) {
// List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.hget(AdamRedisConst.INFO_THIRD_PARTY, uid);
// if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
// thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamThirdPartInfoVo.class);
//
// if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.hset(AdamRedisConst.INFO_THIRD_PARTY, uid, thirdPartInfoVos);
// }
// return thirdPartInfoVos;
// }
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.hset(AdamRedisConst.INFO_THIRD_PARTY, uid, thirdPartInfoVos);
}
return thirdPartInfoVos;
}
public AdamThirdPartInfoVo queryByUidAndPlatform(String uid, String platform) {
List<AdamThirdPartInfoVo> voList = this.queryByUid(uid);
if (!CollectionUtils.isEmpty(voList)) {
for (AdamThirdPartInfoVo vo : voList) {
if (platform.equals(vo.getPlatform())) {
return vo;
}
}
}
return null;
}
// public AdamThirdPartInfoVo queryByUidAndPlatform(String uid, String platform) {
// List<AdamThirdPartInfoVo> voList = this.queryByUid(uid);
// if (!CollectionUtils.isEmpty(voList)) {
// for (AdamThirdPartInfoVo vo : voList) {
// if (platform.equals(vo.getPlatform())) {
// return vo;
// }
// }
// }
// return null;
// }
}
......@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamUserInfo;
import com.liquidnet.service.adam.mapper.AdamUserInfoMapper;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
......@@ -44,7 +45,7 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
IAdamRdmService adamRdmService;
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
......@@ -71,7 +72,7 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get(userInfoVo.getIsComplete() == 0 ? "adam_user_info.add" : "adam_user_info.edit", paramList.toArray()));
redisUtil.hset(AdamRedisConst.INFO_USER, userInfoVo.getUid(), userInfoVo);
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
}
@Override
......@@ -86,9 +87,10 @@ public class AdamUserInfoServiceImpl extends ServiceImpl<AdamUserInfoMapper, Ada
);
AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
redisUtil.hdel(AdamRedisConst.INFO_IDENTITY_MOBILE, beforeUserInfoVo.getMobile());
redisUtil.hset(AdamRedisConst.INFO_IDENTITY_MOBILE, beforeUserInfoVo.getMobile(), uid);
adamRdmService.delUidByMobile(beforeUserInfoVo.getMobile());
adamRdmService.setUidByMobile(beforeUserInfoVo.getMobile(), uid);
beforeUserInfoVo.setMobile(mobile);
redisUtil.hset(AdamRedisConst.INFO_USER, uid, beforeUserInfoVo);
adamRdmService.setUserInfoVoByUid(uid, beforeUserInfoVo);
}
}
......@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
......@@ -61,16 +60,16 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
}
}
@Override
public AdamUserMemberVo getUserMemberInfo(String uid) {
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_USER, uid);
if (null == adamUserMemberVo) {
adamUserMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
if (null != adamUserMemberVo) redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, uid, adamUserMemberVo);
}
return adamUserMemberVo;
}
// @Override
// public AdamUserMemberVo getUserMemberInfo(String uid) {
// AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_USER, uid);
// if (null == adamUserMemberVo) {
// adamUserMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
//
// if (null != adamUserMemberVo) redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, uid, adamUserMemberVo);
// }
// return adamUserMemberVo;
// }
@Override
public boolean getOneFromRepertory(String memberId) {
......
......@@ -78,7 +78,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
amv.setPriceVoList(AdamMemberVo.setMemberPrice(adamMemberPrices));
// 添加数据到 Mongo
mongoTemplate.insert(Collections.singletonList(amv), AdamMemberVo.class.getSimpleName());
mongoTemplate.insert(amv, AdamMemberVo.class.getSimpleName());
// todo 放入MQ
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_member.add", (new AdamMemberVo()).getMqList(adamMember).toArray()));
......
......@@ -11,11 +11,6 @@
<artifactId>liquidnet-service-executor-main</artifactId>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-sequence</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
......
package com.liquidnet.service.executor.main.handler;
import com.alibaba.fastjson.JSON;
import com.liquidnet.service.api.sequence.feign.FeignSequenceClient;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
......@@ -20,20 +19,20 @@ import org.springframework.stereotype.Component;
@Component
public class ExecutorMainDemoHandler {
private static final Logger log = LoggerFactory.getLogger(ExecutorMainDemoHandler.class);
@Autowired
private FeignSequenceClient feignSequenceClient;
@XxlJob(value = "sev-sequence:mainDemoJobHandler")
public ReturnT<String> mainDemoJobHandler(String param) {
log.info("liquidnet.mainDemoJobHandler");
Long test = feignSequenceClient.nextId();
log.info("test : " + test);
Long[] tests = feignSequenceClient.nextId(2);
log.info("tests: " + JSON.toJSONString(tests));
Long nextIncrId = feignSequenceClient.nextIncrId("SEQ_WL_N01_1784");
log.info("incrid:" + nextIncrId);
return ReturnT.SUCCESS;
}
// @Autowired
// private FeignSequenceClient feignSequenceClient;
//
// @XxlJob(value = "sev-sequence:mainDemoJobHandler")
// public ReturnT<String> mainDemoJobHandler(String param) {
// log.info("liquidnet.mainDemoJobHandler");
// Long test = feignSequenceClient.nextId();
// log.info("test : " + test);
// Long[] tests = feignSequenceClient.nextId(2);
// log.info("tests: " + JSON.toJSONString(tests));
// Long nextIncrId = feignSequenceClient.nextIncrId("SEQ_WL_N01_1784");
// log.info("incrid:" + nextIncrId);
// return ReturnT.SUCCESS;
// }
// @XxlJob(value = "sev-recon:accountCheckTask")
// public ReturnT<String> accountCheckTask(String param) {
......
package com.liquidnet.service.kylin.controller;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinStationCheckOrderVo;
import com.liquidnet.service.kylin.dto.vo.KylinStationPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.*;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService;
import com.liquidnet.service.kylin.utils.DataUtils;
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.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.web.bind.annotation.*;
import java.util.Collections;
import java.util.List;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.*;
@Api(tags = "验票")
@Slf4j
@RestController
@RequestMapping("station")
public class KylinStationController {
@Autowired
Environment environment;
@Autowired
JwtValidator jwtValidator;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
DataUtils dataUtils;
@ApiOperation(value = "手机号密码登录")
@ApiImplicitParams({
......@@ -30,9 +58,7 @@ public class KylinStationController {
public ResponseDto<String> login(@RequestParam String mobile, @RequestParam String passwd) {
log.info("mobile:{},passwd:{}", mobile, passwd);
return ResponseDto.success("token........");
return this.loginVerification(mobile, passwd, true);
}
@ApiOperation(value = "手机号验证码登录")
......@@ -44,9 +70,25 @@ public class KylinStationController {
public ResponseDto<String> loginBySms(@RequestParam String mobile, @RequestParam String code) {
log.info("mobile:{},code:{}", mobile, code);
return this.loginVerification(mobile, code, false);
}
@ApiOperation(value = "登出")
@PostMapping("out")
public ResponseDto<String> out() {
String checkUserId = CurrentUtil.getCurrentUid();
String token = CurrentUtil.getToken();
String ssoKeyUidM5Token = jwtValidator.getSsoRedisKey().concat(CurrentUtil.getCurrentUid()).concat(
DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8))
);
return ResponseDto.success("token.........");
log.info("###logout:checkUserId:{}\nssoKey:{}\ntoken:{}", checkUserId, ssoKeyUidM5Token, token);
redisUtil.set(ssoKeyUidM5Token, false);
return ResponseDto.success();
}
/* ------------------------------------------------------------------ */
......@@ -56,12 +98,56 @@ public class KylinStationController {
@ApiImplicitParam(type = "body", required = true, dataType = "String", name = "mod", value = "模块[recent-近期的,down-已下载,over-历史]", allowableValues = "recent,down,over"),
})
@GetMapping("performances/{mod}")
public ResponseDto<KylinStationPerformanceVo> performances(@PathVariable String mod) {
public ResponseDto<List<KylinStationPerformanceVo>> performances(@PathVariable String mod) {
List<KylinStationPerformanceVo> voList = new ArrayList<>();
log.info("mod:{}", mod);
switch (mod) {
case "recent":
KylinCheckUserPerformanceVo checkUserRelationVo = dataUtils.getCheckUserRelationVo(CurrentUtil.getCurrentUid());
if (null != checkUserRelationVo) {
List<CheckPerformanceRelationParam> relationParams = checkUserRelationVo.getRelationParams();
if (!CollectionUtils.isEmpty(relationParams)) {
relationParams.forEach(r -> {
KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(r.getPerformanceId());
KylinStationPerformanceVo vo = KylinStationPerformanceVo.getNew().copy(performanceVo);
return ResponseDto.success(KylinStationPerformanceVo.getNew());
vo.setCanDownTime(r.getCanDownTime());
// TODO: 2021/5/30 票种数据统计
KylinStationTicketVo ticketVo = KylinStationTicketVo.getNew();
ticketVo.setTicketsId("1");
ticketVo.setType("1");
ticketVo.setTitle("测试数据");
ticketVo.setPrice(BigDecimal.TEN);
ticketVo.setUseStart("2021-05-30");
ticketVo.setUseEnd("2021-06-02");
ticketVo.setNumber(100);
ticketVo.setPriceSum(ticketVo.getPrice().multiply(BigDecimal.valueOf(ticketVo.getNumber())));
ticketVo.setCheckedNum(0);
ticketVo.setRemainderNum(ticketVo.getNumber() - ticketVo.getCheckedNum());
vo.setTicketVoList(Arrays.asList(ticketVo, ticketVo));
voList.add(vo);
});
}
}
break;
case "down":
break;
case "over":
break;
default:
break;
}
return ResponseDto.success(voList);
}
@ApiOperation(value = "下载验票数据")
......@@ -90,8 +176,67 @@ public class KylinStationController {
/* ------------------------------------------------------------------ */
private String loginProcess() {
private ResponseDto<String> loginVerification(String mobile, String identity, boolean isPasswd) {
KylinCheckUserVo checkUserVo = mongoTemplate.findOne(Query.query(Criteria.where("mobile").is(mobile)),
KylinCheckUserVo.class, KylinCheckUserVo.class.getSimpleName());
if (null == checkUserVo) {
return ResponseDto.failure(ErrorMapping.get("20601"));
}
if (isPasswd) {// 校验密码
if (checkUserVo.getPwd().equals(DigestUtils.md5DigestAsHex(identity.getBytes()))) {
return this.loginAuthentication(checkUserVo);
}
return ResponseDto.failure(ErrorMapping.get("20602"));
} else {// 校验验证码
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
if ("111111".equals(identity)) {
return this.loginAuthentication(checkUserVo);
}
return ResponseDto.failure(ErrorMapping.get("20002"));
}
try {
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
paramsMap.add("mobile", mobile);
paramsMap.add("code", identity);
LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
headersMap.add("token", null);
// TODO: 2021/5/12
String respStr = HttpUtil.get("https://service.zhengzai.tv/smsValidation", paramsMap, headersMap);
log.info("###PHP.API.RESP:{}", respStr);
Map respMap = JsonUtils.fromJson(respStr, Map.class);
if (StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
return this.loginAuthentication(checkUserVo);
}
return ResponseDto.failure(ErrorMapping.get("20002"));
} catch (Exception e) {
log.error("验证码验证异常[mobile:{},code:{}]", mobile, identity, e);
return ResponseDto.failure(ErrorMapping.get("20002"));
}
}
}
private ResponseDto<String> loginAuthentication(KylinCheckUserVo checkUserVo) {
String uid = checkUserVo.getCheckUserId();
String ssoKeyUid = jwtValidator.getSsoRedisKey().concat(uid);
Map<String, Object> claimsMap = new HashMap<>();
claimsMap.put("uid", uid);
claimsMap.put("mobile", checkUserVo.getMobile());
claimsMap.put("nickname", checkUserVo.getName());
String token = jwtValidator.create(claimsMap);
String ssoKeyUidM5Token = ssoKeyUid.concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
redisUtil.set(ssoKeyUidM5Token, true, jwtValidator.getExpireTtl() * 60);
return null;
return ResponseDto.success(token);
}
}
......@@ -31,3 +31,9 @@
#APP JDM
20201=
# 专业版APP
20601=账号不存在
20602=密码错误
\ No newline at end of file
......@@ -5,6 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.core.env.Environment;
......@@ -16,7 +17,9 @@ import java.util.Arrays;
@Slf4j
@EnableZuulProxy
@EnableFeignClients(basePackages = {"com.liquidnet"})
@SpringBootApplication(scanBasePackages = {"com.liquidnet"})
@SpringBootApplication(scanBasePackages = {"com.liquidnet"},
exclude = {DataSourceAutoConfiguration.class}
)
public class SupportZuulApplication implements CommandLineRunner {
@Autowired
private Environment environment;
......
......@@ -27,10 +27,14 @@ import java.util.Map;
@Slf4j
@Component
public class GlobalAuthFilter extends ZuulFilter {
@Value("#{'${global.include.url}'.split(', ')}")
private List<String> includeUrls;
@Value("#{'${global.include.url-pattern}'.split(', ')}")
private List<String> includeUrlPatterns;
@Value("#{'${global.exclude.url}'.split(', ')}")
private List<String> excludeUrl;
private List<String> excludeUrls;
@Value("#{'${global.exclude.url-pattern}'.split(', ')}")
private List<String> excludeUrlPattern;
private List<String> excludeUrlPatterns;
private static final String CONTENT_TYPE = "application/json;charset=utf-8";
private static final String AUTHORIZATION = "authorization";
private static final String TOKEN_STATUS = "token_status";
......@@ -79,11 +83,21 @@ public class GlobalAuthFilter extends ZuulFilter {
String requestURI = ctxRequest.getRequestURI();
if (excludeUrl.contains(requestURI)) {
if (excludeUrls.contains(requestURI)) {
return false;
}
for (String urlPattern : excludeUrlPattern) {
return !PathMatchUtil.isPathMatch(urlPattern, requestURI);
for (String urlPattern : excludeUrlPatterns) {
if (PathMatchUtil.isPathMatch(urlPattern, requestURI)) {
return false;
}
}
if (includeUrls.contains(requestURI)) {
return true;
}
for (String urlPattern : includeUrlPatterns) {
if (PathMatchUtil.isPathMatch(urlPattern, requestURI)) {
return true;
}
}
return true;
}
......@@ -107,12 +121,13 @@ public class GlobalAuthFilter extends ZuulFilter {
if (StringUtils.isEmpty(uid)) {
respHandler(ctx, zuulRequestHeaders.get(TOKEN_STATUS));
} else {
String ssoKey = jwtValidator.getSsoRedisKey().concat(uid)
.concat(DigestUtils.md5DigestAsHex(uToken.getBytes(StandardCharsets.UTF_8)));
String ssoKeyUidM5Token = jwtValidator.getSsoRedisKey().concat(uid).concat(
DigestUtils.md5DigestAsHex(uToken.getBytes(StandardCharsets.UTF_8))
);
if (redisUtil.hasKey(ssoKey)) {// 是否存在SSO
if (redisUtil.hasKey(ssoKeyUidM5Token)) {// 是否存在SSO
if ((boolean) redisUtil.get(ssoKey)) {// 是否在线
if ((boolean) redisUtil.get(ssoKeyUidM5Token)) {// 是否在线
ctx.setSendZuulResponse(true);
} else {
......
package com.liquidnet.support.zuul.filter;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamLoginInfoVo;
import com.liquidnet.service.feign.adam.api.FeignAdamLoginClient;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
public class GlobalLoginFilter extends ZuulFilter {
@Value("#{'${global.login.url}'.split(', ')}")
private List<String> loginUrl;
@Autowired
FeignAdamLoginClient feignAdamLoginClient;
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
return loginUrl.contains(ctx.getRequest().getRequestURI());
}
@Override
public Object run() {
RequestContext requestContext = RequestContext.getCurrentContext();
HttpServletRequest servletRequest = requestContext.getRequest();
// String token = servletRequest.getHeader("authorization");
// if (StringUtils.isNotBlank(token)) {
// requestContext.addZuulResponseHeader("authorization", token);
// }
ResponseDto<AdamLoginInfoVo> responseDto = null;
switch (servletRequest.getRequestURI()) {
case "/adam/login/sms":
responseDto = feignAdamLoginClient.loginBySms(servletRequest.getParameter("mobile"), servletRequest.getParameter("code"));
break;
case "/adam/login/mobile":
responseDto = feignAdamLoginClient.loginByMobile(servletRequest.getParameter("accessToken"));
break;
case "/adam/login/tpa":
String body = null;
try {
body = servletRequest.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
} catch (IOException e) {
log.error("reader request body exception", e);
}
responseDto = feignAdamLoginClient.loginByTpa(JsonUtils.fromJson(body, AdamThirdPartParam.class));
break;
default:
log.warn("###无效的登录链接:{}", servletRequest.getRequestURI());
break;
}
log.debug("login request result:{}", JsonUtils.toJson(responseDto));
return null;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment