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

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

+API后台生成兑换码;

parent fb8d85a7
......@@ -10,11 +10,11 @@ import java.io.Serializable;
@Data
public class AdamMemberCodeParam implements Serializable {
private static final long serialVersionUID = -7273522103593077617L;
@ApiModelProperty(position = 1, required = false, value = "会员类型ID")
@ApiModelProperty(position = 1, required = true, value = "会员类型ID", example = "67647671736885249")
private String memberId;
@ApiModelProperty(position = 2, required = false, value = "会员价格ID")
@ApiModelProperty(position = 2, required = true, value = "会员价格ID", example = "69153548142796800")
private String memberPriceId;
@ApiModelProperty(position = 3, required = true, value = "类型:0-用户购买兑换码,1-后台生成兑换码", example = "0")
@ApiModelProperty(position = 3, required = true, value = "类型:0-用户购买兑换码,1-后台生成兑换码", example = "1")
private Integer type;
@ApiModelProperty(position = 4, required = false, value = "用户ID", example = "1")
private String buyUid;
......
......@@ -5,18 +5,17 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码")
@Data
public class AdamMemberOrderCodeParam implements Serializable {
private static final long serialVersionUID = 1298109732452201034L;
@ApiModelProperty(position = 10, required = true, value = "类型:2-会员码,3-礼包码", example = "2")
@ApiModelProperty(position = 10, required = true, value = "类型:2-会员码,3-礼包码", example = "3")
private Integer type;
@ApiModelProperty(position = 11, required = true, value = "兑换码", example = "0")
private String memberCode;
@ApiModelProperty(position = 12, required = true, value = "生日", example = "0")
private LocalDateTime birthday;
@ApiModelProperty(position = 12, required = true, value = "生日", example = "2021-05-27")
private String birthday;
@ApiModelProperty(position = 13, required = false, value = "姓名")
private String name;
@ApiModelProperty(position = 14, required = false, value = "身份证件号")
......
......@@ -14,7 +14,7 @@ public class AdamMemberOrderParam implements Serializable {
private static final long serialVersionUID = 3219448286221952517L;
@ApiModelProperty(position = 10, required = true, value = "会员ID[50]", example = "62960077673504768")
private String memberId;
@ApiModelProperty(position = 11, required = true, value = "购买方式:0-购买会员,1-购买会员码,2-使用会员码", example = "0")
@ApiModelProperty(position = 11, required = true, value = "购买方式:0-购买会员,1-购买会员码", example = "0")
private Integer mode;
@ApiModelProperty(position = 12, required = true, value = "应付金额", example = "0")
private BigDecimal price;
......
......@@ -14,58 +14,30 @@ import java.io.Serializable;
@Data
public class AdamMemberCodeVo implements Serializable, Cloneable {
private static final long serialVersionUID = 5258094625450569125L;
@ApiModelProperty(position = 0, value = "会员码")
private String code;
@ApiModelProperty(position = 1, value = "会员类型id")
private String memberId;
@ApiModelProperty(position = 2, value = "会员价格id")
private String memberPriceId;
@ApiModelProperty(position = 3, value = "会员码类型0购买1后台生成")
private String type;
@ApiModelProperty(position = 4, value = "会员编号")
private String memberNo;
@ApiModelProperty(position = 5, value = "会员状态0-未使用 1-已使用 2-不可用")
private Integer state;
/**
* 购买会员码订单号
*/
@ApiModelProperty(position = 6, value = "购买会员码的订单编号")
private String buyOrderNo;
/**
* 购买会员码的用户id
*/
@ApiModelProperty(position = 7, value = "购买会员码的用户id")
private String buyUid;
/**
* 购买时间
*/
@ApiModelProperty(position = 8, value = "购买时间")
private String buyAt;
/**
* 使用会员码的订单号
*/
@ApiModelProperty(position = 9, value = "使用会员码的订单编号")
private String useOrderNo;
/**
* 使用会员码的用户ID
*/
@ApiModelProperty(position = 10, value = "使用会员码的用户id")
private String useUid;
/**
* 使用时间
*/
@ApiModelProperty(position = 11, value = "使用时间")
private String useAt;
/**
* 会员码id
*/
@ApiModelProperty(position = 12, value = "会员码id")
private String memberCodeId;
......@@ -82,26 +54,4 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
}
return new AdamMemberCodeVo();
}
/**
* 整合数据,适合插入数据库的数据(购买码)
* @param param
* @param state 0-购买 1-生成
* @return
*/
@JsonIgnore
public AdamMemberCode setCodeParam(AdamMemberCodeParam param, int state) {
int type = 0;
String memberNo = "";
String code = MemberUtil.getMemberCode(type);
AdamMemberCode adamMemberCode = new AdamMemberCode();
adamMemberCode.setType(type);
adamMemberCode.setCode(code);
adamMemberCode.setMemberId(param.getMemberId());
adamMemberCode.setMemberPriceId(param.getMemberPriceId());
adamMemberCode.setState(state);
adamMemberCode.setMemberNo(memberNo);
return adamMemberCode;
}
}
......@@ -19,7 +19,15 @@ public class MemberUtil {
return false;
}
public static String getMemberCode(Integer type) {
public static String buyCode() {
return genMemberCode(0);
}
public static String freeCode() {
return genMemberCode(1);
}
public static String genMemberCode(Integer type) {
String code = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Random rand = new Random();
String word = String.valueOf(code.charAt(rand.nextInt(code.length())));
......
......@@ -17,19 +17,12 @@ public class AdamRedisConst {
public static final String INFO_ADDRESSES = ADAM.concat(":list:addresses:");
public static final String INFO_MEMBERS = ADAM.concat(":list:members");
public static final String INFO_MEMBERS_INFO = ADAM.concat(":list:members:info:");
public static final String INFO_MEMBERS_PRICE_INFO = ADAM.concat(":list:members:price:info:");
public static final String INFO_MEMBERS_CODE_INFO = ADAM.concat(":list:members:code:info:");
public static final String MEMBER_MEMBER_NO_MAX_KEY = ADAM.concat(":members:member_no_max:");
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:";
......
......@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.controller.admin;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.entity.AdamMember;
......@@ -10,7 +12,6 @@ import com.liquidnet.service.adam.service.admin.IAdamMemberAdminService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -21,12 +22,10 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/admin/member")
public class AdamMemberAdminController {
@Autowired
IAdamMemberAdminService adamMemberService;
@Autowired
AmqpTemplate amqpTemplate;
IAdamMemberCodeAdminService adamMemberCodeAdminService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加会员")
......@@ -43,4 +42,13 @@ public class AdamMemberAdminController {
return ResponseDto.success();
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "生成兑换码")
@PostMapping("gen_code")
public ResponseDto<Object> genMemberCode(@RequestBody AdamMemberCodeParam parameter) {
adamMemberCodeAdminService.createGiftCode(parameter);
return ResponseDto.success();
}
}
......@@ -9,6 +9,7 @@ import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.service.IAdamMemberCodeService;
import com.liquidnet.service.adam.util.MemberUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
......@@ -38,7 +39,15 @@ public class AdamMemberCodeServiceImpl extends ServiceImpl<AdamMemberCodeMapper,
@Override
public void add(AdamMemberCodeParam param) {
AdamMemberCode adamMemberCode = (new AdamMemberCodeVo()).setCodeParam(param, 1);
AdamMemberCode adamMemberCode = new AdamMemberCode();
adamMemberCode.setType(param.getType());
adamMemberCode.setCode(MemberUtil.buyCode());
adamMemberCode.setMemberId(param.getMemberId());
adamMemberCode.setMemberPriceId(param.getMemberPriceId());
adamMemberCode.setState(1);// 1-生成
// mysql
adamMemberCodeMapper.insert(adamMemberCode);
......
......@@ -212,8 +212,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
if (null != userMemberVo) {
return false;
}
AdamMemberCodeVo memberCodeVo = mongoTemplate.findOne(Query.query(Criteria.where("memberCode").is(code)), AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName());
if (memberCodeVo.getState() != AdamMemberConst.STATUS_UNPAID) {
AdamMemberCodeVo memberCodeVo = mongoTemplate.findOne(Query.query(Criteria.where("code").is(code)), AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName());
if (!memberCodeVo.getState().equals(AdamMemberConst.STATUS_UNPAID)) {
return false;
}
......@@ -239,7 +239,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setCreatedAt(currentDateTime);
orderVo.setDays(priceVo.getDays());
orderVo.setBirthday(DateUtil.format(param.getBirthday(), DateUtil.Formatter.yyyyMMddHHmmss));
orderVo.setBirthday(param.getBirthday());
orderVo.setPayNo(memberCodeVo.getCode());
orderVo.setPrice(BigDecimal.valueOf(0));
......@@ -370,7 +370,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
createMemberUser.setExpiryAt(expiryAtStr);
// todo vip card code 记录 自动创建并使用
codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime);
codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), currentDateTime);
codeVo.setState(1);
codeVo.setUseUid(orderVo.getUid());
codeVo.setUseOrderNo(orderVo.getMemberCode());
......@@ -410,7 +410,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
}
if (AdamMemberConst.SUB_TYPE_BUY_VIP_CODE.equals(orderVo.getMode())) { // 购买会员码
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime);
codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), currentDateTime);
codeVo.setState(0);
codeVo.setMemberNo(cardNumber);
......@@ -458,11 +458,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
*
* @param orderVo 会员订单
* @param orderCode 订单号
* @param type 会员码类型
* @param currentDateTime 创建时间
* @return AdamMemberCodeVo
*/
private AdamMemberCodeVo getAdamMemberCodeVo(AdamMemberOrderVo orderVo, String orderCode, int type, String currentDateTime) {
private AdamMemberCodeVo getAdamMemberCodeVo(AdamMemberOrderVo orderVo, String orderCode, String currentDateTime) {
AdamMemberCodeVo codeVo = new AdamMemberCodeVo();
codeVo.setMemberId(orderVo.getMemberId());
codeVo.setMemberPriceId(orderVo.getMemberPriceId());
......@@ -470,7 +469,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
codeVo.setBuyOrderNo(orderCode);
codeVo.setType(AdamMemberConst.TYPE_BUY);
codeVo.setMemberNo(orderVo.getMemberNo());
codeVo.setCode(MemberUtil.getMemberCode(type));
codeVo.setCode(MemberUtil.buyCode());
codeVo.setCreatedAt(currentDateTime);
codeVo.setUpdatedAt(currentDateTime);
return codeVo;
......
......@@ -3,12 +3,12 @@ package com.liquidnet.service.adam.service.impl.admin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService;
import com.liquidnet.service.adam.util.MemberUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
......@@ -17,10 +17,6 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Service
public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService {
......@@ -37,9 +33,15 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
RedisUtil redisUtil;
@Override
public void createGiftCode(AdamMemberCodeParam param) {
public String createGiftCode(AdamMemberCodeParam param) {
// 需要主动生成会员编号
AdamMemberCode adamMemberCode = (new AdamMemberCodeVo()).setCodeParam(param, 0);
AdamMemberCode adamMemberCode = new AdamMemberCode();
adamMemberCode.setType(param.getType());
adamMemberCode.setCode(MemberUtil.buyCode());
adamMemberCode.setMemberId(param.getMemberId());
adamMemberCode.setMemberPriceId(param.getMemberPriceId());
adamMemberCode.setState(0);
adamMemberCodeMapper.insert(adamMemberCode);
// mongo
......@@ -48,5 +50,7 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
vo.setCreatedAt(DateUtil.format(adamMemberCode.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
vo.setUpdatedAt(DateUtil.format(adamMemberCode.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName());
return adamMemberCode.getCode();
}
}
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