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

Commit 583cb2f3 authored by 张国柄's avatar 张国柄

fix:会员兑换码逻辑调整;

parent 543f0cd9
package com.liquidnet.service.adam.dto; package com.liquidnet.service.adam.dto;
import com.liquidnet.commons.lang.constant.LnsRegex;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.Max; import javax.validation.constraints.*;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
@ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码入参") @ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码入参")
...@@ -22,6 +20,9 @@ public class AdamMemberOrderCodeParam implements Serializable { ...@@ -22,6 +20,9 @@ public class AdamMemberOrderCodeParam implements Serializable {
@ApiModelProperty(position = 11, required = true, value = "兑换码", example = "0") @ApiModelProperty(position = 11, required = true, value = "兑换码", example = "0")
@NotBlank @NotBlank
private String memberCode; private String memberCode;
@ApiModelProperty(position = 12, required = true, value = "生日", example = "2021-05-27")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
private String birthday;
@ApiModelProperty(position = 12, value = "支付终端[app,wap,js,applet]", example = "js") @ApiModelProperty(position = 12, value = "支付终端[app,wap,js,applet]", example = "js")
private String deviceFrom; private String deviceFrom;
......
package com.liquidnet.service.adam.dto; package com.liquidnet.service.adam.dto;
import com.liquidnet.commons.lang.constant.LnsRegex;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -29,24 +30,27 @@ public class AdamMemberOrderParam implements Serializable { ...@@ -29,24 +30,27 @@ public class AdamMemberOrderParam implements Serializable {
@ApiModelProperty(position = 14, required = true, value = "会员价格ID") @ApiModelProperty(position = 14, required = true, value = "会员价格ID")
@NotBlank @NotBlank
private String memberPriceId; private String memberPriceId;
@ApiModelProperty(position = 15, required = true, value = "支付终端", allowableValues = "app,wap,js,applet") @ApiModelProperty(position = 15, required = true, value = "用户生日", example = "2021-05-27")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
private String birthday;
@ApiModelProperty(position = 16, required = true, value = "支付终端", allowableValues = "app,wap,js,applet")
@NotBlank @NotBlank
private String deviceFrom; private String deviceFrom;
@ApiModelProperty(position = 16, required = true, value = "支付方式", allowableValues = "alipay,wepay") @ApiModelProperty(position = 17, required = true, value = "支付方式", allowableValues = "alipay,wepay")
@NotBlank @NotBlank
private String payType; private String payType;
@ApiModelProperty(position = 17, required = false, value = "苹果支付使用") @ApiModelProperty(position = 18, required = false, value = "苹果支付使用")
private String productId; private String productId;
@ApiModelProperty(position = 18, required = false, value = "姓名", example = "王武") @ApiModelProperty(position = 19, required = false, value = "姓名", example = "王武")
private String name; private String name;
@ApiModelProperty(position = 19, required = false, value = "身份证件号", example = "111111111111111111") @ApiModelProperty(position = 20, required = false, value = "身份证件号", example = "111111111111111111")
private String idCard; private String idCard;
@ApiModelProperty(position = 20, required = false, value = "微信支付使用")
private String authCode;
@ApiModelProperty(position = 21, required = false, value = "微信支付使用") @ApiModelProperty(position = 21, required = false, value = "微信支付使用")
private String authCode;
@ApiModelProperty(position = 22, required = false, value = "微信支付使用")
private String openId; private String openId;
@ApiModelProperty(position = 22, required = true, value = "未支付/取消支付跳转URL") @ApiModelProperty(position = 23, required = true, value = "未支付/取消支付跳转URL")
private String showUrl; private String showUrl;
@ApiModelProperty(position = 23, required = true, value = "支付成功跳转URL") @ApiModelProperty(position = 24, required = true, value = "支付成功跳转URL")
private String returnUrl; private String returnUrl;
} }
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -34,8 +36,6 @@ public class AdamMemberCodeVo implements Serializable, Cloneable { ...@@ -34,8 +36,6 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
private String useUid; private String useUid;
@ApiModelProperty(position = 11, value = "使用时间") @ApiModelProperty(position = 11, value = "使用时间")
private String useAt; private String useAt;
@ApiModelProperty(position = 12, value = "会员码id")
private String memberCodeId;
private String createdAt; private String createdAt;
private String updatedAt; private String updatedAt;
...@@ -46,8 +46,25 @@ public class AdamMemberCodeVo implements Serializable, Cloneable { ...@@ -46,8 +46,25 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
try { try {
return (AdamMemberCodeVo) obj.clone(); return (AdamMemberCodeVo) obj.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace(); return new AdamMemberCodeVo();
} }
return new AdamMemberCodeVo(); }
public AdamMemberCodeVo copy(AdamMemberCode source) {
this.setCode(source.getCode());
this.setMemberId(source.getMemberId());
this.setMemberPriceId(source.getMemberPriceId());
this.setType(source.getType());
this.setMemberNo(source.getMemberNo());
this.setState(source.getState());
this.setBuyOrderNo(source.getBuyOrderNo());
this.setBuyUid(source.getBuyUid());
this.setBuyAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getBuyAt()));
this.setUseOrderNo(source.getUseOrderNo());
this.setUseUid(source.getUseUid());
this.setUseAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getUseAt()));
this.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getCreatedAt()));
this.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getUpdatedAt()));
return this;
} }
} }
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel(value = "AdamMemberOrderSimpleVo", description = "会员订单列表信息")
@Data
public class AdamMemberOrderSimpleVo implements Serializable {
private static final long serialVersionUID = 3978877550469933116L;
@ApiModelProperty(position = 10, value = "订单号")
private String orderNo;
@ApiModelProperty(position = 11, value = "订单状态:0-未支付,1-已支付,2-已关闭,3-超时付,4-退款中,5-已退款")
private Integer state;
@ApiModelProperty(position = 12, value = "创建时间")
private String createdAt;
@ApiModelProperty(position = 13, value = "会员类型名称")
private String memberName;
@ApiModelProperty(position = 14, value = "购买方式:0-购买会员,1-购买会员码,2-会员码兑换,3-礼包码兑换")
private Integer mode;
@ApiModelProperty(position = 16, value = "价格")
private BigDecimal price;
@ApiModelProperty(position = 17, value = "实付价格")
private BigDecimal pricePaid;
}
...@@ -6,8 +6,6 @@ import lombok.Data; ...@@ -6,8 +6,6 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@ApiModel(value = "AdamMemberOrderVo", description = "订单详情展示") @ApiModel(value = "AdamMemberOrderVo", description = "订单详情展示")
@Data @Data
...@@ -27,34 +25,36 @@ public class AdamMemberOrderVo implements Serializable, Cloneable { ...@@ -27,34 +25,36 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
private String memberPriceId; private String memberPriceId;
@ApiModelProperty(position = 6, value = "购买天数") @ApiModelProperty(position = 6, value = "购买天数")
private Integer days; private Integer days;
@ApiModelProperty(position = 7, value = "订单状态:0-未支付,1-已支付,2-已关闭,5-已退款") @ApiModelProperty(position = 7, value = "订单状态:0-未支付,1-已支付,2-已关闭,3-超时付,4-退款中,5-已退款")
private Integer state; private Integer state;
@ApiModelProperty(position = 8, value = "会员号") @ApiModelProperty(position = 8, value = "会员号")
private String memberNo; private String memberNo;
@ApiModelProperty(position = 9, value = "支付终端", allowableValues = "app,wap,js,applet") @ApiModelProperty(position = 9, value = "会员生日[yyyy-MM-dd]")
private String birthday;
@ApiModelProperty(position = 10, value = "支付终端", allowableValues = "app,wap,js,applet")
private String deviceFrom; private String deviceFrom;
@ApiModelProperty(position = 10, value = "支付方式", allowableValues = "alipay,wepay") @ApiModelProperty(position = 11, value = "支付方式", allowableValues = "alipay,wepay")
private String payType; private String payType;
@ApiModelProperty(position = 11, value = "支付单号") @ApiModelProperty(position = 12, value = "支付单号")
private String payNo; private String payNo;
@ApiModelProperty(position = 12, value = "支付时间") @ApiModelProperty(position = 13, value = "支付时间")
private String paymentAt; private String paymentAt;
@ApiModelProperty(position = 13, value = "创建时间")
private String createdAt;
@ApiModelProperty(position = 14, value = "创建时间") @ApiModelProperty(position = 14, value = "创建时间")
private String createdAt;
@ApiModelProperty(position = 15, value = "创建时间")
private String updatedAt; private String updatedAt;
@ApiModelProperty(position = 15, value = "价格") @ApiModelProperty(position = 16, value = "价格")
private BigDecimal price; private BigDecimal price;
@ApiModelProperty(position = 16, value = "实付价格") @ApiModelProperty(position = 17, value = "实付价格")
private BigDecimal pricePaid; private BigDecimal pricePaid;
@ApiModelProperty(position = 17, value = "客户端IP") @ApiModelProperty(position = 18, value = "客户端IP")
private String clientIp; private String clientIp;
@ApiModelProperty(position = 18, value = "客户端来源") @ApiModelProperty(position = 19, value = "客户端来源")
private String source; private String source;
@ApiModelProperty(position = 19, value = "客户端版本") @ApiModelProperty(position = 20, value = "客户端版本")
private String version; private String version;
@ApiModelProperty(position = 20, value = "兑换码") @ApiModelProperty(position = 21, value = "兑换码")
private String memberCode; private String memberCode;
public static final AdamMemberOrderVo obj = new AdamMemberOrderVo(); public static final AdamMemberOrderVo obj = new AdamMemberOrderVo();
...@@ -63,8 +63,7 @@ public class AdamMemberOrderVo implements Serializable, Cloneable { ...@@ -63,8 +63,7 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
try { try {
return (AdamMemberOrderVo) obj.clone(); return (AdamMemberOrderVo) obj.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace(); return new AdamMemberOrderVo();
} }
return new AdamMemberOrderVo();
} }
} }
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam; import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult; import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderSimpleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo; import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder; import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
...@@ -36,9 +38,12 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> { ...@@ -36,9 +38,12 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
ResponseDto<AdamMemberOrderResult> exchangeMemberCode(AdamMemberOrderCodeParam param); ResponseDto<AdamMemberOrderResult> exchangeMemberCode(AdamMemberOrderCodeParam param);
/** /**
* 获取订单列表 * 查取会员订单列表
*
* @param uid * @param uid
* @param pageNo
* @param pageSize
* @return * @return
*/ */
List<AdamMemberOrderVo> getMemberOrderList(String uid); PageInfo<AdamMemberOrderSimpleVo> queryPage(String uid, int pageNo, int pageSize);
} }
...@@ -89,6 +89,10 @@ public interface IAdamRdmService { ...@@ -89,6 +89,10 @@ public interface IAdamRdmService {
Object getMemberMaxNoByMemberId(String memberId); Object getMemberMaxNoByMemberId(String memberId);
boolean setMemberCodeVoByCode(String memberCode, AdamMemberCodeVo vo);
AdamMemberCodeVo getMemberCodeVoByCode(String memberCode);
boolean setTagsForSex(List<AdamTagVo> voList); boolean setTagsForSex(List<AdamTagVo> voList);
List<AdamTagVo> getTagsForSex(); List<AdamTagVo> getTagsForSex();
...@@ -96,8 +100,4 @@ public interface IAdamRdmService { ...@@ -96,8 +100,4 @@ public interface IAdamRdmService {
boolean setTagsForMusic(List<AdamTagParentVo> voList); boolean setTagsForMusic(List<AdamTagParentVo> voList);
List<AdamTagParentVo> getTagsForMusic(); List<AdamTagParentVo> getTagsForMusic();
boolean setMemberCodeVoByCode(String memberCode, AdamMemberCodeVo vo);
AdamMemberCodeVo getMemberCodeVoByCode(String memberCode);
} }
...@@ -62,6 +62,10 @@ public class AdamMemberOrder implements Serializable { ...@@ -62,6 +62,10 @@ public class AdamMemberOrder implements Serializable {
* 会员编号 * 会员编号
*/ */
private String memberNo; private String memberNo;
/**
* 会员生日[yyyy-MM-dd]
*/
private String birthday;
/** /**
* 支付终端:app,wap,js,applet * 支付终端:app,wap,js,applet
*/ */
......
...@@ -256,13 +256,14 @@ create table adam_member_order ...@@ -256,13 +256,14 @@ create table adam_member_order
member_name varchar(64), member_name varchar(64),
member_id varchar(255) comment '会员id', member_id varchar(255) comment '会员id',
member_price_id varchar(255) comment '会员价格id', member_price_id varchar(255) comment '会员价格id',
days int default 0 comment '购买天数', days int default 0 comment '购买天数',
state tinyint comment '订单状态', state tinyint comment '订单状态',
member_no varchar(20) comment '会员号', member_no varchar(20) comment '会员号',
birthday varchar(20) default null comment '用户生日[yyyy-MM-dd]',
device_from varchar(20) comment '支付终端:app,wap,js,applet', device_from varchar(20) comment '支付终端:app,wap,js,applet',
pay_type varchar(20) comment '支付方式:alipay,wepay,vipcode,giftcode', pay_type varchar(20) comment '支付方式:alipay,wepay,vipcode,giftcode',
pay_no varchar(64) comment '支付订单', pay_no varchar(64) comment '支付订单',
payment_at datetime default null comment '支付时间', payment_at datetime default null comment '支付时间',
created_at datetime, created_at datetime,
updated_at datetime, updated_at datetime,
client_ip varchar(50), client_ip varchar(50),
......
package com.liquidnet.service.adam.controller; package com.liquidnet.service.adam.controller;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil; import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamMemberConst;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam; import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
...@@ -30,7 +30,6 @@ import org.springframework.web.bind.annotation.*; ...@@ -30,7 +30,6 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List;
@ApiSupport(order = 10031) @ApiSupport(order = 10031)
@Api(tags = "购买会员") @Api(tags = "购买会员")
...@@ -106,7 +105,7 @@ public class AdamMemberOrderController { ...@@ -106,7 +105,7 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "会员支付回调") @ApiOperation(value = "会员支付回调")
@PostMapping("callback") @PostMapping("callback")
public String paymentNotifyCallBack(@ModelAttribute AdamMemberOrderCallbackParam parameter){ public String paymentNotifyCallBack(@ModelAttribute AdamMemberOrderCallbackParam parameter) {
log.debug("/member/callback.parameter:{}", JsonUtils.toJson(parameter)); log.debug("/member/callback.parameter:{}", JsonUtils.toJson(parameter));
if (1 != parameter.getStatus() || if (1 != parameter.getStatus() ||
!parameter.getType().equals("VIP") || !parameter.getType().equals("VIP") ||
...@@ -160,10 +159,10 @@ public class AdamMemberOrderController { ...@@ -160,10 +159,10 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
@ApiOperation(value = "会员订单列表") @ApiOperation(value = "会员订单列表")
@GetMapping("list") @GetMapping("list")
public ResponseDto<List<AdamMemberOrderVo>> getMemberOrderList() { public ResponseDto<PageInfo<AdamMemberOrderSimpleVo>> list(@RequestParam(defaultValue = "1", required = false) int pageNo,
String currentUid = CurrentUtil.getCurrentUid(); @RequestParam(defaultValue = "5", required = false) int pageSize) {
List<AdamMemberOrderVo> memberOrderList = adamMemberOrderService.getMemberOrderList(currentUid); // List<AdamMemberOrderVo> memberOrderList = adamMemberOrderService.getMemberOrderList(currentUid);
return ResponseDto.success(memberOrderList); return ResponseDto.success(adamMemberOrderService.queryPage(CurrentUtil.getCurrentUid(), pageNo, pageSize));
} }
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
......
...@@ -28,7 +28,7 @@ public class AdamMemberAdminController { ...@@ -28,7 +28,7 @@ public class AdamMemberAdminController {
IAdamMemberCodeAdminService adamMemberCodeAdminService; IAdamMemberCodeAdminService adamMemberCodeAdminService;
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "添加会员") @ApiOperation(value = "添加会员类型")
@PostMapping("add") @PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamMemberParam parameter) { public ResponseDto<Object> add(@RequestBody AdamMemberParam parameter) {
AdamMember adamMember = new AdamMember(); AdamMember adamMember = new AdamMember();
...@@ -45,7 +45,7 @@ public class AdamMemberAdminController { ...@@ -45,7 +45,7 @@ public class AdamMemberAdminController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "生成兑换码") @ApiOperation(value = "生成兑换码")
@PostMapping("gen_code") @PostMapping("gen_code")
public ResponseDto<Object> genMemberCode(@RequestBody AdamMemberCodeParam parameter) { public ResponseDto<String> genMemberCode(@RequestBody AdamMemberCodeParam parameter) {
return ResponseDto.success(adamMemberCodeAdminService.createGiftCode(parameter)); return ResponseDto.success(adamMemberCodeAdminService.createGiftCode(parameter));
} }
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamMemberConst;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam; import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
...@@ -28,6 +26,8 @@ import org.bson.Document; ...@@ -28,6 +26,8 @@ import org.bson.Document;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
...@@ -59,37 +59,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -59,37 +59,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
@Autowired @Autowired
RabbitTemplate rabbitTemplate; RabbitTemplate rabbitTemplate;
@Autowired @Autowired
RedisUtil redisUtil;
@Autowired
IAdamMemberService adamMemberService; IAdamMemberService adamMemberService;
@Override
public List<AdamMemberOrderVo> getMemberOrderList(String uid) {
String redisKey = AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid);
List<AdamMemberOrderVo> voList = new ArrayList<>();
LinkedHashSet<String> hkeys = (LinkedHashSet<String>) redisUtil.hkeys(redisKey);
if (hkeys.size() > 0) {
Iterator<String> iterator = hkeys.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
AdamMemberOrderVo tempOrderVo = (AdamMemberOrderVo) redisUtil.hget(redisKey, key);
if (null == tempOrderVo) {
tempOrderVo = mongoTemplate.findOne(Query.query(Criteria.where("orderNo").is(key)), AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName());
}
if (null != tempOrderVo) {
voList.add(tempOrderVo);
}
}
} else {
voList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid)), AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName());
for (int i = 0; i < voList.size(); i++) {
AdamMemberOrderVo vo = voList.get(i);
redisUtil.hset(redisKey, vo.getOrderNo(), vo);
}
}
return voList;
}
@Override @Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) { public ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) {
...@@ -113,6 +84,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -113,6 +84,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
memberOrderVo.setCreatedAt(createdAt); memberOrderVo.setCreatedAt(createdAt);
memberOrderVo.setMemberName(memberVo.getName()); memberOrderVo.setMemberName(memberVo.getName());
memberOrderVo.setMode(param.getMode()); memberOrderVo.setMode(param.getMode());
memberOrderVo.setBirthday(param.getBirthday());
memberOrderVo.setDeviceFrom(param.getDeviceFrom()); memberOrderVo.setDeviceFrom(param.getDeviceFrom());
memberOrderVo.setPayType(param.getPayType()); memberOrderVo.setPayType(param.getPayType());
memberOrderVo.setState(0);// 0-待支付 memberOrderVo.setState(0);// 0-待支付
...@@ -299,9 +271,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -299,9 +271,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
updateMemberOrderObjs.add(new Object[]{ updateMemberOrderObjs.add(new Object[]{
handleMemberOrderVo.getOrderNo(), handleMemberOrderVo.getUid(), handleMemberOrderVo.getMode(), handleMemberOrderVo.getPrice(), handleMemberOrderVo.getOrderNo(), handleMemberOrderVo.getUid(), handleMemberOrderVo.getMode(), handleMemberOrderVo.getPrice(),
handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(), handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(),
handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getBirthday(),
handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentAt(), handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentAt(),
handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion() handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
}); });
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL, rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.gets(toMqSqls, operationObjs, updateMemberOrderObjs)); SqlMapping.gets(toMqSqls, operationObjs, updateMemberOrderObjs));
...@@ -339,6 +311,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -339,6 +311,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberOrderVo.setDays(memberPriceVo.getDays()); initMemberOrderVo.setDays(memberPriceVo.getDays());
initMemberOrderVo.setState(1);// 0-待支付,1-已支付 initMemberOrderVo.setState(1);// 0-待支付,1-已支付
initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo()); initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo());
initMemberOrderVo.setBirthday(param.getBirthday());
initMemberOrderVo.setDeviceFrom(param.getDeviceFrom()); initMemberOrderVo.setDeviceFrom(param.getDeviceFrom());
initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode"); initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode");
initMemberOrderVo.setPayNo(memberCodeVo.getCode()); initMemberOrderVo.setPayNo(memberCodeVo.getCode());
...@@ -386,9 +359,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -386,9 +359,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberOrderObjs.add(new Object[]{ initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(), initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(), initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(),
initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getBirthday(),
initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(), initMemberOrderVo.getCreatedAt(), initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(),
initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion() initMemberOrderVo.getCreatedAt(), initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
}); });
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName()); mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user_member.add")); toMqSqls.add(SqlMapping.get("adam_user_member.add"));
...@@ -406,4 +379,26 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -406,4 +379,26 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
result.setOrderNo(initMemberOrderVo.getOrderNo()); result.setOrderNo(initMemberOrderVo.getOrderNo());
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@Override
public PageInfo<AdamMemberOrderSimpleVo> queryPage(String uid, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid));
long count = mongoTemplate.count(query, AdamMemberOrderVo.class.getSimpleName());
PageInfo<AdamMemberOrderSimpleVo> pageInfo = null;
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
List<AdamMemberOrderSimpleVo> voList = mongoTemplate.find(
query, AdamMemberOrderSimpleVo.class, AdamMemberOrderVo.class.getSimpleName()
);
pageInfo = PageInfo.of(voList);
pageInfo.setTotal(count);
} else {
pageInfo = new PageInfo<>();
}
return pageInfo;
}
} }
...@@ -358,6 +358,25 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -358,6 +358,25 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
return redisUtil.get(AdamRedisConst.INCR_MEMBER_NO.concat(memberId)); return redisUtil.get(AdamRedisConst.INCR_MEMBER_NO.concat(memberId));
} }
@Override
public boolean setMemberCodeVoByCode(String memberCode, AdamMemberCodeVo vo) {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
@Override
public AdamMemberCodeVo getMemberCodeVoByCode(String memberCode) {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null == vo) {
vo = mongoTemplate.findOne(
Query.query(Criteria.where("code").is(memberCode)),
AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
);
if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
return vo;
}
@Override @Override
public boolean setTagsForSex(List<AdamTagVo> voList) { public boolean setTagsForSex(List<AdamTagVo> voList) {
return redisUtil.set(AdamRedisConst.INFO_TAGS_SEX, voList); return redisUtil.set(AdamRedisConst.INFO_TAGS_SEX, voList);
...@@ -377,23 +396,4 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -377,23 +396,4 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
public List<AdamTagParentVo> getTagsForMusic() { public List<AdamTagParentVo> getTagsForMusic() {
return (List<AdamTagParentVo>) redisUtil.get(AdamRedisConst.INFO_TAGS_MUSIC); return (List<AdamTagParentVo>) redisUtil.get(AdamRedisConst.INFO_TAGS_MUSIC);
} }
@Override
public boolean setMemberCodeVoByCode(String memberCode, AdamMemberCodeVo vo) {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
@Override
public AdamMemberCodeVo getMemberCodeVoByCode(String memberCode) {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null == vo) {
vo = mongoTemplate.findOne(
Query.query(Criteria.where("code").is(memberCode)),
AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
);
if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
return vo;
}
} }
package com.liquidnet.service.adam.service.impl.admin; package com.liquidnet.service.adam.service.impl.admin;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.dto.AdamMemberCodeParam; import com.liquidnet.service.adam.dto.AdamMemberCodeParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo; import com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo;
import com.liquidnet.service.adam.entity.AdamMemberCode; import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper; import com.liquidnet.service.adam.mapper.AdamMemberCodeMapper;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService; import com.liquidnet.service.adam.service.admin.IAdamMemberCodeAdminService;
import com.liquidnet.service.adam.util.MemberUtil; import com.liquidnet.service.adam.util.MemberUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@Slf4j @Slf4j
@Service @Service
public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService { public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMapper, AdamMemberCode> implements IAdamMemberCodeAdminService {
@Autowired @Autowired
AdamMemberCodeMapper adamMemberCodeMapper; AdamMemberCodeMapper adamMemberCodeMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
MongoConverter mongoConverter; IAdamUserMemberService adamUserMemberService;
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Override @Override
public String createGiftCode(AdamMemberCodeParam param) { public String createGiftCode(AdamMemberCodeParam param) {
// 需要主动生成会员编号 // 需要主动生成会员编号
AdamMemberCode adamMemberCode = new AdamMemberCode(); String memberNo = adamUserMemberService.getNextMemberNo(param.getMemberId());
adamMemberCode.setType(param.getType());
adamMemberCode.setCode(MemberUtil.freeCode()); if (StringUtils.isEmpty(memberNo)) return "";
adamMemberCode.setMemberId(param.getMemberId());
adamMemberCode.setMemberPriceId(param.getMemberPriceId()); AdamMemberCode initMemberCode = new AdamMemberCode();
adamMemberCode.setState(0); initMemberCode.setCode(MemberUtil.freeCode());
initMemberCode.setType(param.getType());
adamMemberCodeMapper.insert(adamMemberCode); initMemberCode.setMemberId(param.getMemberId());
initMemberCode.setMemberPriceId(param.getMemberPriceId());
// mongo initMemberCode.setMemberNo(memberNo);
AdamMemberCodeVo vo = new AdamMemberCodeVo(); initMemberCode.setState(0);// 0-未使用,1-已使用,2-不可用
BeanUtils.copyProperties(adamMemberCode, vo);
vo.setCreatedAt(DateUtil.format(adamMemberCode.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss)); adamMemberCodeMapper.insert(initMemberCode);
vo.setUpdatedAt(DateUtil.format(adamMemberCode.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
mongoTemplate.insert(vo, AdamMemberCodeVo.class.getSimpleName()); mongoTemplate.insert(AdamMemberCodeVo.getNew().copy(initMemberCode), AdamMemberCodeVo.class.getSimpleName());
return adamMemberCode.getCode(); return initMemberCode.getCode();
} }
} }
...@@ -32,7 +32,7 @@ adam_member_code.add=INSERT INTO adam_member_code (code, `type`, member_id, memb ...@@ -32,7 +32,7 @@ adam_member_code.add=INSERT INTO adam_member_code (code, `type`, member_id, memb
adam_member_code.exchange=UPDATE adam_member_code SET `state`=?, updated_at=?, use_order_no=?, use_uid=?, use_at=? WHERE code=? adam_member_code.exchange=UPDATE adam_member_code SET `state`=?, updated_at=?, use_order_no=?, use_uid=?, use_at=? WHERE code=?
# ---------------------------------------------------- # ----------------------------------------------------
adam_member_order.add=INSERT INTO adam_member_order (order_no, `uid`, `mode`, price, price_paid, member_name, member_id, member_price_id, `days`, `state`, member_no, device_from, pay_type, pay_no, payment_at, created_at, client_ip, `source`, version) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) adam_member_order.add=INSERT INTO adam_member_order (order_no, `uid`, `mode`, price, price_paid, member_name, member_id, member_price_id, `days`, `state`, member_no, birthday, device_from, pay_type, pay_no, payment_at, created_at, client_ip, `source`, version) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
adam_member_order.update=UPDATE adam_member_order SET `state`=?, member_no=?, payment_at=?, updated_at=? WHERE order_no=? adam_member_order.update=UPDATE adam_member_order SET `state`=?, member_no=?, payment_at=?, updated_at=? WHERE order_no=?
# ---------------------------------------------------- # ----------------------------------------------------
......
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