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

Commit baa6da69 authored by 胡佳晨's avatar 胡佳晨

暂时提交代码

parent 562be6d4
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.service.goblin.entity.AdamUserBusiAcct;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "AdamUserBizAcctVo", description = "用户业务账号信息")
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class GoblinUserBizAcctVo implements Serializable, Cloneable {
private static final long serialVersionUID = 7428532456309328881L;
@ApiModelProperty(position = 11, value = "业务码[NFT_ZX-至信数字藏品账号]")
private String bizCode;
@ApiModelProperty(position = 12, value = "业务账号状态[1-已开通]")
private Integer state;
@ApiModelProperty(position = 13, value = "业务账号ID")
private String uuid;
private static final GoblinUserBizAcctVo obj = new GoblinUserBizAcctVo();
public static GoblinUserBizAcctVo getNew() {
try {
return (GoblinUserBizAcctVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinUserBizAcctVo();
}
}
public GoblinUserBizAcctVo copy(AdamUserBusiAcct source) {
if (null == source) return this;
this.setBizCode(source.getBusi());
this.setUuid(source.getUuid());
this.setState(source.getState());
return this;
}
}
package com.liquidnet.service.goblin.service;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinPayOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserBizAcctVo;
public interface IGoblinNftUserService {
ResponseDto<GoblinUserBizAcctVo> openNftAccount(String uid, String bizCode, String name, String idCard,String mobile);
}
package com.liquidnet.service.adam.entity; package com.liquidnet.service.goblin.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
......
package com.liquidnet.service.goblin.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDCardUtil;
import com.liquidnet.service.adam.dto.vo.AdamUserBizAcctVo;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinUserBizAcctVo;
import com.liquidnet.service.goblin.service.IGoblinNftUserService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
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.web.bind.annotation.*;
import javax.validation.constraints.Pattern;
@Api(tags = "NFT:账号相关")
@Slf4j
@RestController
@RequestMapping("user")
public class GoblinNFTUserController {
@Autowired
IGoblinNftUserService goblinNftUserService;
@Autowired
GoblinRedisUtils goblinRedisUtils;
@ApiOperationSupport(order = 11)
@ApiOperation(value = "业务账号开通")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "bizCode", value = "业务码[NFT_ZX]", allowableValues = "NFT_ZX"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "name", value = "姓名"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "idCard", value = "身份证号"),
})
@PostMapping(value = "open/account")
public ResponseDto<GoblinUserBizAcctVo> openAccount(@Pattern(regexp = "\\b(NFT_ZX)\\b", message = "业务码无效")
@RequestParam String bizCode,
@RequestParam(required = false) String name,
@RequestParam(required = false) String idCard) {
if (!java.util.regex.Pattern.matches(LnsRegex.Valid.CN_HANZI, name)) {
return ResponseDto.failure(ErrorMapping.get("10103"));
}
if (!java.util.regex.Pattern.matches(LnsRegex.Valid.CN_ID_CARD_REF, idCard)) {
return ResponseDto.failure(ErrorMapping.get("10104"));
}
if (IDCardUtil.getAge(idCard) < 18) {
return ResponseDto.failure(ErrorMapping.get("10100"));
}
String currentUid = CurrentUtil.getCurrentUid();
String mobile = (String) CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_MOBILE);
try {
ResponseDto<GoblinUserBizAcctVo> vo = goblinNftUserService.openNftAccount(currentUid, bizCode, name, idCard, mobile);
goblinRedisUtils.setNftNumAccount(currentUid);
return vo;
} catch (Exception e) {
if (e instanceof LiquidnetServiceException) {
LiquidnetServiceException lsEx = (LiquidnetServiceException) e;
return ResponseDto.failure(lsEx.getCode(), lsEx.getMessage());
}
return ResponseDto.failure(ErrorMapping.get("10113"));
}
}
@ApiOperationSupport(order = 11)
@ApiOperation(value = "业务账号是否开通")
@GetMapping(value = "open/account")
public ResponseDto<Boolean> openAccount() {
return ResponseDto.success(goblinRedisUtils.getNftNumAccount(CurrentUtil.getCurrentUid()));
}
}
package com.liquidnet.service.goblin.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDCardUtil;
import com.liquidnet.service.adam.constant.AdamEnum;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserBizAcctVo;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.vo.GoblinUserBizAcctVo;
import com.liquidnet.service.goblin.service.IGoblinNftUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
@Slf4j
@Service
public class GoblinNftUserServiceImpl implements IGoblinNftUserService {
@Override
public ResponseDto<GoblinUserBizAcctVo> openNftAccount(String uid, String bizCode, String name, String idCard, String mobile) {
// List<AdamUserBizAcctVo> userBizAcctVoList = adamRdmService.getBizAcctVosByUid(uid);
// if (!CollectionUtils.isEmpty(userBizAcctVoList)) {
// Optional<AdamUserBizAcctVo> optional = userBizAcctVoList.stream().filter(r -> r.getBizCode().equals(bizCode)).findAny();
// if (optional.isPresent()) return ResponseDto.success(optional.get());
// }
//
// if (AdamEnum.BizAcct.NFT_ZX.name().equals(bizCode)) {
// boolean inputNameIdCardInvalidFlg = StringUtils.isBlank(name) || name.contains("*") || StringUtils.isBlank(idCard) || idCard.contains("*");
// AdamRealInfoVo realInfoVo = adamRdmService.getRealInfoVoByUidPlain(uid);
// if (null != realInfoVo) {// 账号已实名
// if (realInfoVo.getNode() == 2) {// 二要素认证的
// if (inputNameIdCardInvalidFlg) {
// name = realInfoVo.getName();
// idCard = realInfoVo.getIdCard();
//
// if (IDCardUtil.getAge(idCard) < 18) {
// return ResponseDto.failure(ErrorMapping.get("10100"));
// }
// }
// adamUserService.identityForUpsert(uid, name, idCard, mobile, true);
// } else {// 三要素认证的
// name = realInfoVo.getName();
// idCard = realInfoVo.getIdCard();
// }
// } else {// 账号未实名
// if (inputNameIdCardInvalidFlg) {
// return ResponseDto.failure(ErrorMapping.get("10101"));
// }
// adamUserService.identityForUpsert(uid, name, idCard, mobile, false);
// }
//
// ResponseDto<AdamUserBizAcctVo> responseDto = this.openAccountForNftZXin(uid, name, idCard, mobile);
// if (responseDto.isSuccess()) {
// AdamUserBizAcctVo userBizAcctVo = responseDto.getData();
// adamRdmService.addBizAcctVoByUid(uid, userBizAcctVoList, userBizAcctVo);
//
//// LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
//// toMqSqls.add(SqlMapping.get("adam_user_busi_acct.add"));
//// LinkedList<Object[]> initUserBusiAcctObjs = CollectionUtil.linkedListObjectArr();
//// initUserBusiAcctObjs.add(new Object[]{
//// uid, AdamEnum.BizAcct.NFT_ZX.name(), userBizAcctVo.getUuid(), null, null, 1, LocalDateTime.now()
//// });
// queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
// SqlMapping.get("adam_user_busi_acct.add", uid, AdamEnum.BizAcct.NFT_ZX.name(), userBizAcctVo.getUuid(), null, null, 1, LocalDateTime.now())
// );
//
// try {
// LinkedMultiValueMap<String, String> paramsMap = CollectionUtil.linkedMultiValueMapStringString();
// paramsMap.add("userId", uid);
// HttpUtil.post(serviceGoblinUrl + "/goblin/rsc/nft/sync/acc", paramsMap);
// } catch (Exception e) {
// log.error("Ex.开通业务账号:同步Goblin缓存异常[UID={},URL={}],ex:{}", uid, serviceGoblinUrl, e.getMessage());
// }
// }
// return responseDto;
// }
// log.warn("#开通业务账号:无效的业务码[UID={},bizCode={}]", bizCode, uid);
return ResponseDto.failure();
}
}
...@@ -1627,6 +1627,16 @@ public class GoblinRedisUtils { ...@@ -1627,6 +1627,16 @@ public class GoblinRedisUtils {
redisUtil.set(redisKey, 1); redisUtil.set(redisKey, 1);
} }
public boolean getNftNumAccount(String userId) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_NUM_ACCOUNT.concat(userId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return false;
} else {
return true;
}
}
/** /**
* private int skuType 商品类型[0-常规|1-数字藏品] * private int skuType 商品类型[0-常规|1-数字藏品]
* private String status 审核状态[0-初始编辑|1-审核中|2-审核不通过|3-审核通过]; * private String status 审核状态[0-初始编辑|1-审核中|2-审核不通过|3-审核通过];
......
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