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

Commit c7329e50 authored by wangyifan's avatar wangyifan

Merge branch 'dev_fudai_v2' into container

parents b8f2f3da bae54a48
package com.liquidnet.service.kylin.constant;
import lombok.Getter;
@Getter
public enum LuckyBagStatusEnum {
// 兑换码显示类型
CODE_SHOW_TYPE_CODE(1, "兑换码"),
CODE_SHOW_TYPE_QR_CODE(2, "二维码"),
// 解锁状态
UNLOCK_STATUS_NOT_UNLOCKED(0, "未解锁"),
UNLOCK_STATUS_UNLOCKED(1, "已解锁"),
// 可用状态
AVAILABLE_STATUS_UNAVAILABLE(0, "不可用"),
AVAILABLE_STATUS_AVAILABLE(1, "可用"),
AVAILABLE_STATUS_RECEIVED(2, "已领取");
private final Integer value;
private final String desc;
LuckyBagStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
}
......@@ -15,17 +15,14 @@ import java.time.LocalDateTime;
@ApiModel(value = "福袋兑换码详情VO")
public class KylinLuckyBagCodeDetailVo {
@ApiModelProperty(value = "兑换码")
private String code;
@ApiModelProperty(value = "用户ID")
private String uid;
@ApiModelProperty(value = "福袋ID")
private String luckyBagId;
@ApiModelProperty(value = "关联订单ID")
private String orderId;
@ApiModelProperty(value = "福袋名称")
private String luckyBagName;
@ApiModelProperty(value = "兑换码")
private String code;
@ApiModelProperty(value = "状态 0:不可用 1:可用 2:已领取")
private int state;
......@@ -41,4 +38,45 @@ public class KylinLuckyBagCodeDetailVo {
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "领取人信息")
private UserInfo userInfo;
@ApiModelProperty(value = "关联订单订单")
private OrderInfo orderInfo;
@ApiModel(value = "用户信息")
@Data
public static class UserInfo {
@ApiModelProperty(value = "用户ID")
private String uid;
@ApiModelProperty(value = "用户昵称")
private String userName;
@ApiModelProperty(value = "用户手机号")
private String userMobile;
}
@ApiModel(value = "订单信息")
@Data
public static class OrderInfo {
@ApiModelProperty(value = "订单ID")
private String orderId;
@ApiModelProperty(position = 15, value = "订单号")
private String orderCode;
@ApiModelProperty(value = "演出名称")
private String performanceTitle;
@ApiModelProperty(value = "票种名称")
private String ticketTitle;
@ApiModelProperty(value = "数量")
private Integer number;
@ApiModelProperty(value = "订单生成时间")
private String createdAt;
@ApiModelProperty(value = "适用时间")
private String useStart;
}
}
......@@ -4,21 +4,10 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "福袋Scope VO")
public class KylinLuckyBagScopeVo {
@ApiModelProperty(value = "认证Token")
private String authToken;
@ApiModelProperty(value = "福袋信息列表")
private List<KylinLuckyBagInfo> kylinLuckyBagInfoList;
@Data
@ApiModel(value = "福袋信息")
public static class KylinLuckyBagInfo{
@ApiModelProperty(value = "福袋ID")
private String luckyBagId;
......@@ -28,8 +17,10 @@ public class KylinLuckyBagScopeVo {
@ApiModelProperty(value = "福袋描述")
private String introduction;
@ApiModelProperty(value = "关联演出ID")
private String performanceId;
@ApiModelProperty(value = "关联演出名称")
private String performanceName;
}
}
......@@ -8,7 +8,6 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@Data
......@@ -53,15 +52,26 @@ public class KylinLuckyBagVo implements Serializable {
private String introduction;
@ApiModelProperty(value = "兑换码显示状态 1:兑换码 2:二维码")
private int codeShowType;
private Integer codeShowType;
@ApiModelProperty(value = "状态 0:未解锁 1:已解锁")
private int status;
private Integer status;
@ApiModelProperty(value = "兑换码")
private Set<String> rewardCodeList;
private List<RewardCodeVo> rewardCodeVoList;
}
@Data
@ApiModel(value = "兑换码VO")
public static class RewardCodeVo {
@ApiModelProperty(value = "状态 0:不可用 1:可用 2:已领取")
private Integer useStatus;
@ApiModelProperty(value = "兑换码")
private String code;
}
public static KylinLuckyBagVo of(List<LuckyBagVo> luckyBagVoList,
LuckyBagActivityVo luckyBagActivityVo){
KylinLuckyBagVo kylinLuckyBagVo = new KylinLuckyBagVo();
......
......@@ -8,11 +8,36 @@ import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo;
import java.util.List;
public interface IKylinLuckyBagService {
/**
* 根据订单ID获取福袋
* @param orderId
* @return
*/
KylinLuckyBagVo getLuckyBagByOrderId(String orderId);
List<KylinLuckyBagScopeVo> getLuckyBagListScope(String mobile, String performanceId);
/**
* 获取福袋验码列表
* @param mobile
* @return
*/
List<KylinLuckyBagScopeVo> getLuckyBagListScope(String mobile);
KylinLuckyBagCodeDetailVo getCodeDetail(String code, String luckyBagId);
/**
* 获取福袋详情
*
* @param authMobile
* @param code
* @param luckyBagId
* @return
*/
ResponseDto<KylinLuckyBagCodeDetailVo> getCodeDetail(String authMobile, String code, String luckyBagId);
ResponseDto<Boolean> consumeCode(String code, String luckyBagId);
/**
* 验码
* @param authMobile
* @param code
* @param luckyBagId
* @return
*/
ResponseDto<Boolean> consumeCode(String authMobile, String code, String luckyBagId);
}
......@@ -47,6 +47,10 @@ public class KylinLuckyBag implements Serializable, Cloneable{
*/
private String performanceId;
/**
* 所属演出名称
*/
private String performanceName;
/**
* 所属场次ID
......
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinLuckyBagScope implements Serializable, Cloneable{
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 手机号
*/
private String mobile;
/**
* 福袋ID
*/
private String luckyBagId;
/**
* 昵称
*/
private String nickName;
/**
* 真实姓名
*/
private String realName;
/**
* 身份证号码
*/
private String idCard;
/**
* 状态: 1-可用, 0-不可用
*/
private Integer state;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.entity.KylinLuckyBagScope;
public interface KylinLuckyBagScopeMapper extends BaseMapper<KylinLuckyBagScope> {
}
......@@ -32,25 +32,25 @@ public class KylinLuckyBagController {
return ResponseDto.success(luckyBagService.getLuckyBagByOrderId(orderId));
}
@GetMapping("/scope")
@ApiOperation("获取验码福袋列表")
public ResponseDto<List<KylinLuckyBagScopeVo>> getLuckyBagListScope(@RequestParam(value = "mobile") String mobile,
@RequestParam(value = "performanceId", required = false) String performanceId){
return ResponseDto.success(luckyBagService.getLuckyBagListScope(mobile, performanceId));
public ResponseDto<List<KylinLuckyBagScopeVo>> getLuckyBagListScope(@RequestParam(value = "mobile") String mobile){
return ResponseDto.success(luckyBagService.getLuckyBagListScope(mobile));
}
@ApiOperation("兑换码详情")
@GetMapping("/code/detail")
public ResponseDto<KylinLuckyBagCodeDetailVo> getCodeDetail(@RequestParam(value = "code") String code,
public ResponseDto<KylinLuckyBagCodeDetailVo> getCodeDetail(@RequestParam(value = "mobile") String mobile,
@RequestParam(value = "code") String code,
@RequestParam(value = "luckyBagId") String luckyBagId){
return ResponseDto.success(luckyBagService.getCodeDetail(code, luckyBagId));
return luckyBagService.getCodeDetail(mobile, code, luckyBagId);
}
@GetMapping("/code/consume")
@ApiOperation("兑换码核销")
public ResponseDto<Boolean> consumeCode(@RequestParam(value = "code") String code,
public ResponseDto<Boolean> consumeCode(@RequestParam(value = "mobile") String mobile,
@RequestParam(value = "code") String code,
@RequestParam(value = "luckyBagId") String luckyBagId){
return luckyBagService.consumeCode(code, luckyBagId);
return luckyBagService.consumeCode(mobile, code, luckyBagId);
}
}
......@@ -6,18 +6,19 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.LuckyBagStatusEnum;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagCodeDetailVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagScopeVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.OrderDetailsVo;
import com.liquidnet.service.kylin.entity.KylinLuckyBag;
import com.liquidnet.service.kylin.entity.KylinLuckyBagActivity;
import com.liquidnet.service.kylin.entity.KylinRewardCode;
import com.liquidnet.service.kylin.entity.KylinRewardUser;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.KylinLuckyBagMapper;
import com.liquidnet.service.kylin.mapper.KylinLuckyBagScopeMapper;
import com.liquidnet.service.kylin.mapper.KylinRewardCodeMapper;
import com.liquidnet.service.kylin.mapper.KylinRewardUserMapper;
import com.liquidnet.service.kylin.service.IFeishuBotService;
......@@ -55,6 +56,10 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
private KylinRewardCodeMapper kylinRewardCodeMapper;
@Autowired
private KylinRewardUserMapper kylinRewardUserMapper;
@Autowired
private KylinLuckyBagScopeMapper kylinLuckyBagScopeMapper;
@Autowired
private KylinLuckyBagMapper kylinLuckyBagMapper;
@Override
......@@ -69,7 +74,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
}
log.info("[getLuckyBagByOrderId] 获取福袋详情, orderId: {}, uid: {}.", orderId, uid);
// 判断订单状态
if (vo.getOrderTicketVo().getStatus() != 1 || vo.getOrderTicketVo().getPayStatus() != 1) {
if (!vo.getOrderTicketVo().getStatus().equals(1) || !vo.getOrderTicketVo().getPayStatus().equals(1)) {
log.info("[getLuckyBagByOrderId] 该订单状态不满足权益要求, orderId: {}, uid: {}, status: {}, payStatus: {}.", orderId,
uid, vo.getOrderTicketVo().getStatus(), vo.getOrderTicketVo().getPayStatus());
return KylinLuckyBagVo.ofEmpty();
......@@ -90,37 +95,168 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
}
@Override
public List<KylinLuckyBagScopeVo> getLuckyBagListScope(String mobile) {
if (StringUtil.isBlank(mobile)) {
log.info("[getLuckyBagListScope] 手机号为空");
return Collections.emptyList();
}
LambdaQueryWrapper<KylinLuckyBagScope> queryWrapper = new QueryWrapper<KylinLuckyBagScope>()
.lambda()
.eq(KylinLuckyBagScope::getMobile, mobile)
.eq(KylinLuckyBagScope::getState, LuckyBagStatusEnum.AVAILABLE_STATUS_AVAILABLE.getValue());
List<KylinLuckyBagScope> kylinLuckyBagScopes = kylinLuckyBagScopeMapper.selectList(queryWrapper);
if (kylinLuckyBagScopes.isEmpty()) {
log.info("[getLuckyBagListScope] 验码福袋列表为空, mobile: {}.", mobile);
return Collections.emptyList();
}
// 查询福袋列表
List<KylinLuckyBag> luckyBagList = dataUtils.getKylinLuckyBagList();
if (luckyBagList.isEmpty()) {
log.info("[getLuckyBagListScope] 获取福袋列表为空.");
return Collections.emptyList();
}
// 该手机号可以核验的福袋ID列表
Set<String> collected = kylinLuckyBagScopes.stream()
.map(KylinLuckyBagScope::getLuckyBagId)
.collect(Collectors.toSet());
return luckyBagList.stream()
.filter(l -> collected.contains(l.getLuckyBagId()))
.map(l -> {
KylinLuckyBagScopeVo vo = new KylinLuckyBagScopeVo();
vo.setLuckyBagId(l.getLuckyBagId());
vo.setName(l.getName());
vo.setIntroduction(l.getIntroduction());
vo.setPerformanceId(l.getPerformanceId());
vo.setPerformanceName(l.getPerformanceName());
return vo;
})
.collect(Collectors.toList());
}
@Override
public ResponseDto<KylinLuckyBagCodeDetailVo> getCodeDetail(String authMobile, String code, String luckyBagId) {
if (!checkScopeByMobile(authMobile, luckyBagId)) {
log.info("暂无验码权限, mobile: {}, luckyBagId: {}.", authMobile, luckyBagId);
return ResponseDto.failure(ErrorMapping.get("20003"));
}
LambdaQueryWrapper<KylinRewardUser> queryWrapper = new QueryWrapper<KylinRewardUser>()
.lambda()
.eq(KylinRewardUser::getCode, code)
.eq(KylinRewardUser::getLuckyBagId, luckyBagId);
KylinRewardUser rewardUser = kylinRewardUserMapper.selectOne(queryWrapper);
if (rewardUser == null) {
log.error("兑换码或福袋不存在, code: {}, luckyBagId: {}.", code, luckyBagId);
return ResponseDto.failure(ErrorMapping.get("20800"));
}
OrderDetailsVo vo = orderTicketsService.orderDetails(rewardUser.getOrderId());
if (vo == null) {
log.error("订单详情为空, orderId: {}.", rewardUser.getOrderId());
iFeishuBotService.sendTextMessage("订单不存在, orderId: " + rewardUser.getOrderId());
return ResponseDto.failure(ErrorMapping.get("20801"));
}
return ResponseDto.success(buildCodeDetailVo(rewardUser, vo.getOrderTicketVo()));
}
@Override
public ResponseDto<Boolean> consumeCode(String code, String luckyBagId) {
public ResponseDto<Boolean> consumeCode(String authMobile, String code, String luckyBagId) {
if (!checkScopeByMobile(authMobile, luckyBagId)) {
log.info("暂无验码权限, mobile: {}, luckyBagId: {}.", authMobile, luckyBagId);
return ResponseDto.failure(ErrorMapping.get("20003"));
}
LambdaQueryWrapper<KylinRewardUser> queryWrapper = new QueryWrapper<KylinRewardUser>()
.lambda()
.eq(KylinRewardUser::getCode, code)
.eq(KylinRewardUser::getLuckyBagId, luckyBagId);
KylinRewardUser rewardUser = kylinRewardUserMapper.selectOne(queryWrapper);
if (rewardUser == null) {
log.error("code does not exist, code: {}, luckyBagId: {}.", code, luckyBagId);
return ResponseDto.failure("兑换码无效");
log.error("兑换码或福袋不存在, code: {}, luckyBagId: {}.", code, luckyBagId);
return ResponseDto.failure(ErrorMapping.get("20800"));
}
if (rewardUser.getState().equals(2)) {
log.info("code be used, code: {}, luckyBagId: {}.", code, luckyBagId);
return ResponseDto.failure("已被使用");
if (LuckyBagStatusEnum.AVAILABLE_STATUS_RECEIVED.getValue().equals(rewardUser.getState())) {
log.info("兑换码被使用, code: {}, luckyBagId: {}.", code, luckyBagId);
return ResponseDto.failure(ErrorMapping.get("20802"));
}
rewardUser.setState(2);
rewardUser.setState(LuckyBagStatusEnum.AVAILABLE_STATUS_RECEIVED.getValue());
rewardUser.setComment(authMobile);
rewardUser.setUpdatedAt(LocalDateTime.now());
int updateById = kylinRewardUserMapper.updateById(rewardUser);
log.info("update code result: {}.", updateById);
log.info("核销兑换码: {}.", updateById > 0);
return ResponseDto.success(updateById > 0);
}
@Override
public List<KylinLuckyBagScopeVo> getLuckyBagListScope(String mobile, String performanceId) {
return Collections.emptyList();
private KylinLuckyBagCodeDetailVo buildCodeDetailVo(KylinRewardUser rewardUser,
KylinOrderTicketVo orderTicketVo) {
KylinLuckyBagCodeDetailVo detailVo = new KylinLuckyBagCodeDetailVo();
detailVo.setLuckyBagId(rewardUser.getLuckyBagId());
KylinLuckyBag luckyBag = getLuckyBagById(rewardUser.getLuckyBagId());
if (luckyBag != null) {
detailVo.setLuckyBagName(luckyBag.getName());
}
detailVo.setCode(rewardUser.getCode());
detailVo.setState(rewardUser.getState());
detailVo.setCreatedAt(rewardUser.getCreatedAt());
detailVo.setUpdatedAt(rewardUser.getUpdatedAt());
detailVo.setUserInfo(getUserInfo(orderTicketVo));
detailVo.setOrderInfo(getOrderInfo(orderTicketVo));
return detailVo;
}
@Override
public KylinLuckyBagCodeDetailVo getCodeDetail(String code, String luckyBagId) {
/**
* 根据福袋ID获取福袋信息
*
* @param luckyBagId
* @return
*/
private KylinLuckyBag getLuckyBagById(String luckyBagId) {
LambdaQueryWrapper<KylinLuckyBag> wrapper = new QueryWrapper<KylinLuckyBag>().lambda()
.eq(KylinLuckyBag::getLuckyBagId, luckyBagId);
return kylinLuckyBagMapper.selectOne(wrapper);
}
/**
* 获取用户信息
*
* @param orderTicketVo
* @return
*/
private KylinLuckyBagCodeDetailVo.UserInfo getUserInfo(KylinOrderTicketVo orderTicketVo) {
if (orderTicketVo == null) {
return null;
}
KylinLuckyBagCodeDetailVo.UserInfo userInfo = new KylinLuckyBagCodeDetailVo.UserInfo();
userInfo.setUid(orderTicketVo.getUserId());
userInfo.setUserName(orderTicketVo.getUserName());
userInfo.setUserMobile(orderTicketVo.getUserMobile());
return userInfo;
}
/**
* 获取订单信息
*
* @param orderTicketVo
* @return
*/
private KylinLuckyBagCodeDetailVo.OrderInfo getOrderInfo(KylinOrderTicketVo orderTicketVo) {
if (orderTicketVo == null) {
return null;
}
KylinLuckyBagCodeDetailVo.OrderInfo orderInfo = new KylinLuckyBagCodeDetailVo.OrderInfo();
orderInfo.setOrderId(orderTicketVo.getOrderTicketsId());
orderInfo.setOrderCode(orderTicketVo.getOrderCode());
orderInfo.setPerformanceTitle(orderTicketVo.getPerformanceTitle());
orderInfo.setTicketTitle(orderTicketVo.getTicketTitle());
orderInfo.setNumber(orderTicketVo.getNumber());
orderInfo.setCreatedAt(orderTicketVo.getCreatedAt());
orderInfo.setUseStart(orderTicketVo.getUseStart());
return orderInfo;
}
/**
* 获取福袋列表
......@@ -166,13 +302,20 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
log.info("[getLuckyBagVos] 福袋[{}]已到发放时间,但未给用户分配兑换码, uid: {}, orderId: {}.", l.getName(), uid, orderId);
kylinRewardUserList = getRandomRewardCode(vo, l.getLuckyBagId());
}
Set<String> codeSet = kylinRewardUserList.stream().map(KylinRewardUser::getCode).collect(Collectors.toSet());
luckyBagVo.setRewardCodeList(codeSet);
luckyBagVo.setStatus(kylinRewardUserList.isEmpty() ? 0 : 1);
List<KylinLuckyBagVo.RewardCodeVo> codeVoList = kylinRewardUserList.stream().map(k -> {
KylinLuckyBagVo.RewardCodeVo rewardCodeVo = new KylinLuckyBagVo.RewardCodeVo();
rewardCodeVo.setUseStatus(k.getState());
rewardCodeVo.setCode(k.getCode());
return rewardCodeVo;
}).collect(Collectors.toList());
luckyBagVo.setRewardCodeVoList(codeVoList);
luckyBagVo.setStatus(kylinRewardUserList.isEmpty() ?
LuckyBagStatusEnum.UNLOCK_STATUS_NOT_UNLOCKED.getValue() : LuckyBagStatusEnum.UNLOCK_STATUS_UNLOCKED.getValue());
} else {
log.info("[getLuckyBagVos] 福袋[{}]未到发放时间.", l.getName());
luckyBagVo.setStatus(0);
luckyBagVo.setRewardCodeList(Collections.emptySet());
luckyBagVo.setStatus(LuckyBagStatusEnum.UNLOCK_STATUS_NOT_UNLOCKED.getValue());
luckyBagVo.setRewardCodeVoList(Collections.emptyList());
}
}
activityVos.add(luckyBagVo);
......@@ -209,7 +352,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
LambdaQueryWrapper<KylinRewardCode> lambdaQueryWrapper = new QueryWrapper<KylinRewardCode>().lambda()
.eq(KylinRewardCode::getLuckyBagId, luckyBagId)
.eq(KylinRewardCode::getState, 1)
.eq(KylinRewardCode::getState, LuckyBagStatusEnum.AVAILABLE_STATUS_AVAILABLE.getValue())
.last(true, " limit " + limitTotal);
//2. 搜索未分配的兑换码
List<KylinRewardCode> rewardCodes = kylinRewardCodeMapper.selectList(lambdaQueryWrapper);
......@@ -237,7 +380,8 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
int inserted = kylinRewardUserMapper.insert(rewardUser);
if (inserted > 0) {
// 将兑换码状态更新为已领取
int updateResult = kylinRewardCodeMapper.updateByMid(lockedRewardCode.getMid(), 0);
int updateResult = kylinRewardCodeMapper.updateByMid(lockedRewardCode.getMid(),
LuckyBagStatusEnum.AVAILABLE_STATUS_UNAVAILABLE.getValue());
if (updateResult <= 0) {
log.error("[getRandomRewardCode] 修改兑换码状态失败, luckyBagId: {}, orderId: {}, code: {}.",
luckyBagId, orderTicketVo.getOrderTicketsId(), lockedRewardCode.getCode());
......@@ -270,7 +414,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
user.setOrderId(orderId);
user.setOrderTicketEntitiesId(orderTicketEntitiesId);
user.setCode(code);
user.setState(1);
user.setState(LuckyBagStatusEnum.AVAILABLE_STATUS_AVAILABLE.getValue());
user.setCreatedAt(LocalDateTime.now());
// user.setUpdatedAt(LocalDateTime.now());
return user;
......@@ -297,4 +441,24 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
});
return activityVos;
}
/**
* 校验手机号是否有权限验码
*
* @param mobile
* @param luckyBagId
* @return
*/
private boolean checkScopeByMobile(String mobile, String luckyBagId) {
if (StringUtil.isBlank(mobile)) {
log.info("mobile is blank.");
return false;
}
LambdaQueryWrapper<KylinLuckyBagScope> queryWrapper = new QueryWrapper<KylinLuckyBagScope>().lambda()
.eq(KylinLuckyBagScope::getMobile, mobile)
.eq(KylinLuckyBagScope::getLuckyBagId, luckyBagId)
.eq(KylinLuckyBagScope::getState, LuckyBagStatusEnum.AVAILABLE_STATUS_AVAILABLE.getValue());
KylinLuckyBagScope kylinLuckyBagScope = kylinLuckyBagScopeMapper.selectOne(queryWrapper);
return kylinLuckyBagScope != null;
}
}
......@@ -13,6 +13,7 @@ import com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.constant.LuckyBagStatusEnum;
import com.liquidnet.service.kylin.dao.KylinTicketActive;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceSubscribeUpushVo;
......@@ -1624,7 +1625,7 @@ public class DataUtils {
// 从数据库查询 状态为可用的
LambdaQueryWrapper<KylinLuckyBagActivity> lambdaQueryWrapper = new QueryWrapper<KylinLuckyBagActivity>()
.lambda()
.eq(KylinLuckyBagActivity::getState, 1)
.eq(KylinLuckyBagActivity::getState, LuckyBagStatusEnum.AVAILABLE_STATUS_AVAILABLE.getValue())
.orderByDesc(KylinLuckyBagActivity::getSort);
List<KylinLuckyBagActivity> bagActivities = kylinLuckyBagActivityMapper.selectList(lambdaQueryWrapper);
setKylinLuckyBagActivityList(bagActivities);
......@@ -1656,7 +1657,7 @@ public class DataUtils {
// 从数据库查询 状态为可用的
LambdaQueryWrapper<KylinLuckyBag> lambdaQueryWrapper = new QueryWrapper<KylinLuckyBag>()
.lambda()
.eq(KylinLuckyBag::getState, 1);
.eq(KylinLuckyBag::getState, LuckyBagStatusEnum.AVAILABLE_STATUS_AVAILABLE.getValue());
List<KylinLuckyBag> bagActivities = kylinLuckyBagMapper.selectList(lambdaQueryWrapper);
setKylinLuckyBagList(bagActivities);
return bagActivities;
......@@ -1686,8 +1687,7 @@ public class DataUtils {
LambdaQueryWrapper<KylinRewardUser> lambdaQueryWrapper = new QueryWrapper<KylinRewardUser>().lambda()
.eq(KylinRewardUser::getUid, uid)
.eq(KylinRewardUser::getOrderId, orderId)
.eq(KylinRewardUser::getLuckyBagId, luckyBagId)
.eq(KylinRewardUser::getState, 1);
.eq(KylinRewardUser::getLuckyBagId, luckyBagId);
return kylinRewardUserMapper.selectList(lambdaQueryWrapper);
}
}
40001=登录信息有误
40002=账号已在另一台设备登录
40003=登录已过期
# ------------------------ 4开头错误码作系统保留
40001=\u767B\u5F55\u4FE1\u606F\u6709\u8BEF
40002=\u8D26\u53F7\u5DF2\u5728\u53E6\u4E00\u53F0\u8BBE\u5907\u767B\u5F55
40003=\u767B\u5F55\u5DF2\u8FC7\u671F
# ------------------------ 4\u5F00\u5934\u9519\u8BEF\u7801\u4F5C\u7CFB\u7EDF\u4FDD\u7559
#APP ERROR
20001=验证码发送失败
20002=验证码错误,请重新输入
20003=无权查看
20004=参数错误
20005=手机号获取失败,请更换登录方式
20006=第三方账号未注册
20007=数量错误
20008=无权购买
20009=非会员用户暂不可购买
20010=当前不可购买
20011=未开始售卖
20012=售卖已结束
20013=已超过快递票截止时间
20014=快递票未填写收货地址
20015=入场人数量错误
20016=库存不足
20017=年龄不符合
20018=下单失败
20019=申请失败
20020=当前状态不可撤回
20021=退款金额不能为0
20022=申请金额不得小于0
20023=请求频繁
20024=订单不存在
20025=订单已支付
20026=订单已关闭
20028=订单已失效
20027=您已支付请刷新再试
20029=未选择支付方式
20030=查看失败
20001=\u9A8C\u8BC1\u7801\u53D1\u9001\u5931\u8D25
20002=\u9A8C\u8BC1\u7801\u9519\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165
20003=\u65E0\u6743\u67E5\u770B
20004=\u53C2\u6570\u9519\u8BEF
20005=\u624B\u673A\u53F7\u83B7\u53D6\u5931\u8D25\uFF0C\u8BF7\u66F4\u6362\u767B\u5F55\u65B9\u5F0F
20006=\u7B2C\u4E09\u65B9\u8D26\u53F7\u672A\u6CE8\u518C
20007=\u6570\u91CF\u9519\u8BEF
20008=\u65E0\u6743\u8D2D\u4E70
20009=\u975E\u4F1A\u5458\u7528\u6237\u6682\u4E0D\u53EF\u8D2D\u4E70
20010=\u5F53\u524D\u4E0D\u53EF\u8D2D\u4E70
20011=\u672A\u5F00\u59CB\u552E\u5356
20012=\u552E\u5356\u5DF2\u7ED3\u675F
20013=\u5DF2\u8D85\u8FC7\u5FEB\u9012\u7968\u622A\u6B62\u65F6\u95F4
20014=\u5FEB\u9012\u7968\u672A\u586B\u5199\u6536\u8D27\u5730\u5740
20015=\u5165\u573A\u4EBA\u6570\u91CF\u9519\u8BEF
20016=\u5E93\u5B58\u4E0D\u8DB3
20017=\u5E74\u9F84\u4E0D\u7B26\u5408
20018=\u4E0B\u5355\u5931\u8D25
20019=\u7533\u8BF7\u5931\u8D25
20020=\u5F53\u524D\u72B6\u6001\u4E0D\u53EF\u64A4\u56DE
20021=\u9000\u6B3E\u91D1\u989D\u4E0D\u80FD\u4E3A0
20022=\u7533\u8BF7\u91D1\u989D\u4E0D\u5F97\u5C0F\u4E8E0
20023=\u8BF7\u6C42\u9891\u7E41
20024=\u8BA2\u5355\u4E0D\u5B58\u5728
20025=\u8BA2\u5355\u5DF2\u652F\u4ED8
20026=\u8BA2\u5355\u5DF2\u5173\u95ED
20028=\u8BA2\u5355\u5DF2\u5931\u6548
20027=\u60A8\u5DF2\u652F\u4ED8\u8BF7\u5237\u65B0\u518D\u8BD5
20029=\u672A\u9009\u62E9\u652F\u4ED8\u65B9\u5F0F
20030=\u67E5\u770B\u5931\u8D25
#APP JDM
20201=
# 专业版APP
20601=账号不存在
20602=密码错误
# \u4E13\u4E1A\u7248APP
20601=\u8D26\u53F7\u4E0D\u5B58\u5728
20602=\u5BC6\u7801\u9519\u8BEF
20603=
20604=
20605=
20606=当前账号无关联演出数据
20607=当前账号未关联当前演出
20608=当前演出还未开放下载
# 演出
20700=演出详情获取失败
20701=巡演获取失败
20702=获取演出场次票种失败
20703=获取支付前详情失败
20606=\u5F53\u524D\u8D26\u53F7\u65E0\u5173\u8054\u6F14\u51FA\u6570\u636E
20607=\u5F53\u524D\u8D26\u53F7\u672A\u5173\u8054\u5F53\u524D\u6F14\u51FA
20608=\u5F53\u524D\u6F14\u51FA\u8FD8\u672A\u5F00\u653E\u4E0B\u8F7D
# \u6F14\u51FA
20700=\u6F14\u51FA\u8BE6\u60C5\u83B7\u53D6\u5931\u8D25
20701=\u5DE1\u6F14\u83B7\u53D6\u5931\u8D25
20702=\u83B7\u53D6\u6F14\u51FA\u573A\u6B21\u7968\u79CD\u5931\u8D25
20703=\u83B7\u53D6\u652F\u4ED8\u524D\u8BE6\u60C5\u5931\u8D25
#\u798F\u888B
20800=\u5151\u6362\u7801\u65E0\u6548
20801=\u8BA2\u5355\u4E0D\u5B58\u5728
20802=\u5151\u6362\u7801\u5DF2\u88AB\u4F7F\u7528
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