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

Commit c93d8ddb authored by 洪全海's avatar 洪全海

Merge branch 'dev' of http://gitlab.zhengzai.tv/dongjingwei/liquidnet-bus-v1 into dev

# Conflicts:
#	liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamEntersServiceImpl.java
parent b77b468f
...@@ -5,15 +5,18 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,15 +5,18 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码") @ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码")
@Data @Data
public class AdamMemberOrderCodeParam implements Serializable { public class AdamMemberOrderCodeParam implements Serializable {
private static final long serialVersionUID = 5940725094369061032L; private static final long serialVersionUID = 5940725094369061032L;
@ApiModelProperty(position = 0, required = false, example = "0") @ApiModelProperty(position = 0, required = true, value = "类型2-会员码 3-礼包码", example = "2")
private String uid; private int type;
@ApiModelProperty(position = 1, required = true, example = "0") @ApiModelProperty(position = 1, required = true, example = "0")
private String memberCode; private String memberCode;
@ApiModelProperty(position = 2, required = true, example = "0")
private LocalDateTime birthday;
} }
...@@ -42,7 +42,7 @@ public class AdamMemberOrderVo implements Serializable { ...@@ -42,7 +42,7 @@ public class AdamMemberOrderVo implements Serializable {
private String createdAt; private String createdAt;
@ApiModelProperty(position = 14, value = "兑换码") @ApiModelProperty(position = 14, value = "兑换码")
private String memberCode; private String memberCode;
@ApiModelProperty(position = 15, value = "兑换码") @ApiModelProperty(position = 15, value = "价格")
private BigDecimal price; private BigDecimal price;
public static final AdamMemberOrderVo obj = new AdamMemberOrderVo(); public static final AdamMemberOrderVo obj = new AdamMemberOrderVo();
......
...@@ -8,6 +8,8 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderResult; ...@@ -8,6 +8,8 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
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 java.util.List;
/** /**
* 对客户端API接口 * 对客户端API接口
*/ */
...@@ -24,7 +26,14 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> { ...@@ -24,7 +26,14 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
* @param param * @param param
* @return * @return
*/ */
Object useMemberCode(AdamMemberOrderCodeParam param); boolean useMemberCode(AdamMemberOrderCodeParam param);
/**
* 获取订单列表
* @param uid
* @return
*/
List<AdamMemberOrderVo> getMemberOrderList(String uid);
/** /**
* 获取订单详情信息 * 获取订单详情信息
...@@ -32,7 +41,7 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> { ...@@ -32,7 +41,7 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
* @param orderNo 订单号 * @param orderNo 订单号
* @return * @return
*/ */
AdamMemberOrderVo getMemberOrderInfo(String orderNo); AdamMemberOrderVo getMemberOrderInfo(String uid,String orderNo);
/** /**
* 支付回调 * 支付回调
......
package com.liquidnet.service.adam.service.admin; package com.liquidnet.service.adam.service.admin;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice; import com.liquidnet.service.adam.entity.AdamMemberPrice;
import java.util.List; import java.util.List;
...@@ -10,7 +11,7 @@ public interface IAdamMemberPriceService extends IService<AdamMemberPrice> { ...@@ -10,7 +11,7 @@ public interface IAdamMemberPriceService extends IService<AdamMemberPrice> {
void add(AdamMemberPrice info); void add(AdamMemberPrice info);
AdamMemberPrice query(String memberPriceId); AdamMemberPriceVo query(String memberId, String memberPriceId);
boolean edit(AdamMemberPrice info); boolean edit(AdamMemberPrice info);
} }
...@@ -3,7 +3,7 @@ package com.liquidnet.service.adam.constant; ...@@ -3,7 +3,7 @@ package com.liquidnet.service.adam.constant;
/** /**
* 订单 * 订单
*/ */
public class AdamMemberOrderConst { public class AdamMemberConst {
// 订单状态 // 订单状态
public static final Integer STATUS_UNPAID = 0; // 待支付 public static final Integer STATUS_UNPAID = 0; // 待支付
public static final Integer STATUS_PAID = 1; // 已支付 public static final Integer STATUS_PAID = 1; // 已支付
...@@ -30,5 +30,13 @@ public class AdamMemberOrderConst { ...@@ -30,5 +30,13 @@ public class AdamMemberOrderConst {
public static final Integer STATE_VALID = 1; // 正常 public static final Integer STATE_VALID = 1; // 正常
public static final Integer STATE_EXPIRED = 2; // 已失效 public static final Integer STATE_EXPIRED = 2; // 已失效
// 会员码状态
public static final Integer STATUS_UNUSED = 0; // 未使用
public static final Integer STATUS_USED = 1; // 已使用
public static final Integer STATUS_INVALID = 2; // 已失效
public static final String VIP_CODE = "VIP_CODE";
public static final String GIFT_CODE = "GIFT_CODE";
} }
...@@ -2,19 +2,22 @@ package com.liquidnet.service.adam.controller; ...@@ -2,19 +2,22 @@ package com.liquidnet.service.adam.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
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.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder; import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.service.IAdamMemberOrderService; import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
@Api(tags = "购买会员") @Api(tags = "购买会员")
@Slf4j @Slf4j
...@@ -44,7 +47,10 @@ public class AdamMemberOrderController { ...@@ -44,7 +47,10 @@ public class AdamMemberOrderController {
@PostMapping("/use/memberCode") @PostMapping("/use/memberCode")
public ResponseDto<AdamMemberOrder> useMemberCode(AdamMemberOrderCodeParam param) { public ResponseDto<AdamMemberOrder> useMemberCode(AdamMemberOrderCodeParam param) {
try { try {
adamMemberOrderService.useMemberCode(param); boolean result = adamMemberOrderService.useMemberCode(param);
if (!result) {
return ResponseDto.failure("兑换失败");
}
return ResponseDto.success(); return ResponseDto.success();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -52,4 +58,21 @@ public class AdamMemberOrderController { ...@@ -52,4 +58,21 @@ public class AdamMemberOrderController {
} }
} }
@ApiOperationSupport(order = 2)
@ApiOperation(value = "会员订单列表")
@GetMapping("/member/order/list")
public ResponseDto<List<AdamMemberOrderVo>> getMemberOrderList() {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamMemberOrderVo> memberOrderList = adamMemberOrderService.getMemberOrderList(currentUid);
return ResponseDto.success(memberOrderList);
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "会员订单详情")
@GetMapping("/member/order/info/{orderNo}")
public ResponseDto<AdamMemberOrderVo> getMemberOrderList(@PathVariable String orderNo) {
String currentUid = CurrentUtil.getCurrentUid();
AdamMemberOrderVo memberOrderInfo = adamMemberOrderService.getMemberOrderInfo(currentUid, orderNo);
return ResponseDto.success(memberOrderInfo);
}
} }
...@@ -44,14 +44,10 @@ public class AdamMemberPriceController { ...@@ -44,14 +44,10 @@ public class AdamMemberPriceController {
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "会员价格详情") @ApiOperation(value = "会员价格详情")
@GetMapping("info/{memberPriceId}") @GetMapping("info/{memberId}/{memberPriceId}")
public ResponseDto<Object> query(@PathVariable(name = "memberPriceId") String memberPriceId){ public ResponseDto<AdamMemberPriceVo> query(@PathVariable(name = "memberId") String memberId, @PathVariable(name = "memberPriceId") String memberPriceId){
AdamMemberPrice adamMemberPrice = adamMemberPriceService.query(memberPriceId); AdamMemberPriceVo adamMemberPrice = adamMemberPriceService.query(memberId, memberPriceId);
AdamMemberPriceVo adamMemberPriceVo = new AdamMemberPriceVo(); return ResponseDto.success(adamMemberPrice);
BeanUtils.copyProperties(adamMemberPrice, adamMemberPriceVo);
adamMemberPriceVo.setCreatedAt(DateUtil.format(adamMemberPrice.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
adamMemberPriceVo.setUpdatedAt(DateUtil.format(adamMemberPrice.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
return ResponseDto.success(adamMemberPriceVo);
} }
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
......
...@@ -4,11 +4,8 @@ import com.alibaba.fastjson.JSON; ...@@ -4,11 +4,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
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.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.commons.lang.util.HttpUtil; import com.liquidnet.service.adam.constant.AdamMemberConst;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamMemberOrderConst;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackResult; import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackResult;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
...@@ -34,10 +31,7 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -34,10 +31,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
...@@ -64,6 +58,44 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -64,6 +58,44 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
@Autowired @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
public AdamMemberOrderVo getMemberOrderInfo(String uid, String orderNo) {
AdamMemberOrderVo orderVo = null;
orderVo = (AdamMemberOrderVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid), orderNo);
if (null == orderVo) {
orderVo = mongoTemplate.findOne(Query.query(Criteria.where("orderNo").is(orderNo)),
AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName());
}
return orderVo;
}
@Override @Override
public AdamMemberOrderResult buyMemberOrMemberCode(AdamMemberOrderParam param) throws Exception { public AdamMemberOrderResult buyMemberOrMemberCode(AdamMemberOrderParam param) throws Exception {
String memberId = param.getMemberId(); String memberId = param.getMemberId();
...@@ -114,7 +146,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -114,7 +146,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setMemberName(adamMemberVo.getName()); orderVo.setMemberName(adamMemberVo.getName());
orderVo.setMode(param.getMode()); orderVo.setMode(param.getMode());
orderVo.setPayChannel(param.getPayChannel()); orderVo.setPayChannel(param.getPayChannel());
orderVo.setState(AdamMemberOrderConst.STATUS_UNPAID); orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setUid(param.getUid()); orderVo.setUid(param.getUid());
orderVo.setPrice(param.getPrice()); orderVo.setPrice(param.getPrice());
...@@ -130,14 +162,14 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -130,14 +162,14 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 判断购买情况 // 判断购买情况
// 调取对应支付接口 // 调取对应支付接口
LinkedMultiValueMap<String, String> payParam = new LinkedMultiValueMap<>(); LinkedMultiValueMap<String, String> payParam = new LinkedMultiValueMap<>();
payParam.add("type", AdamMemberOrderConst.TYPE_VIP); payParam.add("type", AdamMemberConst.TYPE_VIP);
payParam.add("price", String.valueOf(priceVo.getPrice())); payParam.add("price", String.valueOf(priceVo.getPrice()));
payParam.add("name", orderVo.getMemberName()); payParam.add("name", orderVo.getMemberName());
payParam.add("order_code", orderVo.getOrderNo()); payParam.add("order_code", orderVo.getOrderNo());
payParam.add("client_ip", param.getClientIp()); payParam.add("client_ip", param.getClientIp());
payParam.add("notify_url", "回调地址"); payParam.add("notify_url", "回调地址");
payParam.add("create_date", createdAt); payParam.add("create_date", createdAt);
payParam.add("expire_time", AdamMemberOrderConst.TIME_LIMIT.toString()); payParam.add("expire_time", AdamMemberConst.TIME_LIMIT.toString());
if (null != param.getAuthCode()) { if (null != param.getAuthCode()) {
payParam.add("auth_code", param.getAuthCode()); payParam.add("auth_code", param.getAuthCode());
} }
...@@ -171,10 +203,80 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -171,10 +203,80 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
* @return * @return
*/ */
@Override @Override
public Object useMemberCode(AdamMemberOrderCodeParam param) { public boolean useMemberCode(AdamMemberOrderCodeParam param) {
String uid = param.getUid(); String uid = CurrentUtil.getCurrentUid();
String code = param.getMemberCode(); String code = param.getMemberCode();
return null; int type = param.getType();
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisUtil.get(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(uid));
if (null == userMemberVo) {
userMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
}
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) {
return false;
}
// 获取会员价格对应的天数
AdamMemberPriceVo priceVo = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberCodeVo.getMemberId()), memberCodeVo.getMemberPriceId());
if (null == priceVo) {
priceVo = mongoTemplate.findOne(Query.query(Criteria.where("memberPriceId").is(memberCodeVo.getMemberPriceId())), AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
}
if (null == priceVo) {
return false;
}
String currentDateTime = DateUtil.getNowTime();
AdamMemberOrderVo orderVo = new AdamMemberOrderVo();
orderVo.setMemberCode(code);
orderVo.setMemberNo(memberCodeVo.getMemberNo());
orderVo.setMemberId(IDGenerator.nextSnowId().toString());
orderVo.setMode(type);
orderVo.setMemberId(memberCodeVo.getMemberId());
orderVo.setMemberPriceId(memberCodeVo.getMemberPriceId());
orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setCreatedAt(currentDateTime);
orderVo.setDays(priceVo.getDays());
orderVo.setBirthday(DateUtil.format(param.getBirthday(), DateUtil.Formatter.yyyyMMddHHmmss));
if (AdamMemberConst.SUB_TYPE_USE_VIP_CODE == type) { //使用购买的会员码
orderVo.setPayChannel(AdamMemberConst.VIP_CODE);
} else if (AdamMemberConst.SUB_TYPE_USE_GIFT_CODE == type) { // 使用礼包码
orderVo.setPayChannel(AdamMemberConst.GIFT_CODE);
}
// 创建用户使用兑换码的订单
mongoTemplate.insert(orderVo);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid), orderVo.getOrderNo(), orderVo);
// 组装用户会员数据
AdamUserMemberVo memberVo = new AdamUserMemberVo();
memberVo.setMemberNo(orderVo.getMemberNo());
memberVo.setMemberId(orderVo.getMemberId());
memberVo.setState(AdamMemberConst.STATE_VALID);
memberVo.setUid(uid);
memberVo.setMemberUserId(IDGenerator.nextSnowId().toString());
memberVo.setCreatedAt(currentDateTime);
memberVo.setUpdatedAt(currentDateTime);
Date expiryAt = DateUtil.getBeforeDayEnd(Calendar.getInstance(), orderVo.getDays());
String expiryAtStr = DateUtil.format(expiryAt, DateUtil.Formatter.yyyyMMddHHmmss);
memberVo.setExpiryAt(expiryAtStr);
// 创建用户会员相关信息
mongoTemplate.insert(memberVo);
redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(uid), memberVo);
// 更新旧数据
memberCodeVo.setState(AdamMemberConst.STATUS_USED);
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(memberCodeVo)));
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(), object);
// todo MQ 统一通知队列插入数据库
return true;
} }
/** /**
...@@ -211,15 +313,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -211,15 +313,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
return result; return result;
} }
@Override
public AdamMemberOrderVo getMemberOrderInfo(String orderNo) {
return null;
}
@Override @Override
public boolean memberNotifyCallBack(AdamMemberOrderCallbackResult result) { public boolean memberNotifyCallBack(AdamMemberOrderCallbackResult result) {
if (1 != result.getStatus() || if (1 != result.getStatus() ||
result.getType() != AdamMemberOrderConst.TYPE_VIP || result.getType() != AdamMemberConst.TYPE_VIP ||
null == result.getOrderCode() || null == result.getOrderCode() ||
null == result.getCode()) { null == result.getCode()) {
return false; return false;
...@@ -227,7 +324,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -227,7 +324,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
AdamMemberOrderVo orderVo = mongoTemplate.findOne(Query.query(Criteria.where("orderNo").is(result.getOrderCode())), AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()); AdamMemberOrderVo orderVo = mongoTemplate.findOne(Query.query(Criteria.where("orderNo").is(result.getOrderCode())), AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName());
int state = orderVo.getState(); int state = orderVo.getState();
if (AdamMemberOrderConst.STATUS_PAID == state || AdamMemberOrderConst.STATUS_LATE == state) { if (AdamMemberConst.STATUS_PAID == state || AdamMemberConst.STATUS_LATE == state) {
// 订单已经处理过 // 订单已经处理过
return false; return false;
} }
...@@ -237,11 +334,12 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -237,11 +334,12 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
} }
String currentDateTime = DateUtil.getNowTime(); String currentDateTime = DateUtil.getNowTime();
// 获取购买天数 // 获取购买天数
AdamMemberPrice priceVo = adamMemberPriceService.query(orderVo.getMemberPriceId()); AdamMemberPriceVo priceVo = adamMemberPriceService.query(orderVo.getMemberId(), orderVo.getMemberPriceId());
String cardNumber = ""; String cardNumber = "";
AdamMemberCodeVo codeVo = null;
int day = priceVo.getDays(); int day = priceVo.getDays();
try { try {
if (AdamMemberOrderConst.SUB_TYPE_BUY_VIP == orderVo.getMode()) { // 购买会员 if (AdamMemberConst.SUB_TYPE_BUY_VIP == orderVo.getMode()) { // 购买会员
mongoTemplate.findOne(Query.query(Criteria.where("").is("")), null, null); mongoTemplate.findOne(Query.query(Criteria.where("").is("")), null, null);
AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(orderVo.getUid()); AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(orderVo.getUid());
if (null == userMemberInfo) { // 创建会员 if (null == userMemberInfo) { // 创建会员
...@@ -250,7 +348,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -250,7 +348,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
createMemberUser.setMemberUserId(IDGenerator.nextSnowId().toString()); createMemberUser.setMemberUserId(IDGenerator.nextSnowId().toString());
createMemberUser.setMemberId(orderVo.getMemberId()); createMemberUser.setMemberId(orderVo.getMemberId());
createMemberUser.setMemberNo(orderVo.getMemberNo()); createMemberUser.setMemberNo(orderVo.getMemberNo());
createMemberUser.setState(AdamMemberOrderConst.STATE_VALID); createMemberUser.setState(AdamMemberConst.STATE_VALID);
createMemberUser.setUid(orderVo.getUid()); createMemberUser.setUid(orderVo.getUid());
createMemberUser.setCreatedAt(currentDateTime); createMemberUser.setCreatedAt(currentDateTime);
createMemberUser.setUpdatedAt(currentDateTime); createMemberUser.setUpdatedAt(currentDateTime);
...@@ -261,7 +359,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -261,7 +359,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
createMemberUser.setExpiryAt(expiryAtStr); createMemberUser.setExpiryAt(expiryAtStr);
// todo vip card code 记录 自动创建并使用 // todo vip card code 记录 自动创建并使用
AdamMemberCodeVo codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime); codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime);
codeVo.setState(1); codeVo.setState(1);
codeVo.setUseUid(orderVo.getUid()); codeVo.setUseUid(orderVo.getUid());
codeVo.setUseOrderNo(orderVo.getMemberCode()); codeVo.setUseOrderNo(orderVo.getMemberCode());
...@@ -274,7 +372,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -274,7 +372,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(orderVo.getUid()), createMemberUser); redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(orderVo.getUid()), createMemberUser);
// 会员码使用记录 // 会员码使用记录
mongoTemplate.insert(codeVo); mongoTemplate.insert(codeVo);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getMemberCodeId(), codeVo); redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getBuyOrderNo(), codeVo);
// todo mq 发送数据到队列中 // todo mq 发送数据到队列中
} else { // 续费 } else { // 续费
...@@ -294,27 +392,32 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -294,27 +392,32 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(orderVo.getUid()), userMemberInfo); redisUtil.set(AdamRedisConst.INFO_MEMBERS_USER_INFO.concat(orderVo.getUid()), userMemberInfo);
} }
} }
if (AdamMemberOrderConst.SUB_TYPE_BUY_VIP_CODE == orderVo.getMode()) { // 购买会员码 if (AdamMemberConst.SUB_TYPE_BUY_VIP_CODE == orderVo.getMode()) { // 购买会员码
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId()); cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
AdamMemberCodeVo codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime); codeVo = this.getAdamMemberCodeVo(orderVo, result.getCode(), 0, currentDateTime);
codeVo.setState(0); codeVo.setState(0);
codeVo.setMemberNo(cardNumber); codeVo.setMemberNo(cardNumber);
mongoTemplate.insert(codeVo); mongoTemplate.insert(codeVo);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getMemberCodeId(), codeVo); redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getBuyOrderNo(), codeVo);
} }
// 更新订单信息 // 更新订单信息
orderVo.setPayChannel(result.getPaymentType()); orderVo.setPayChannel(result.getPaymentType());
orderVo.setPaymentAt(DateUtil.format(result.getPaymentAt(), DateUtil.Formatter.yyyyMMddHHmmss)); orderVo.setPaymentAt(DateUtil.format(result.getPaymentAt(), DateUtil.Formatter.yyyyMMddHHmmss));
orderVo.setState(AdamMemberOrderConst.STATUS_PAID); orderVo.setState(AdamMemberConst.STATUS_PAID);
orderVo.setPayNo(result.getCode()); orderVo.setPayNo(result.getCode());
orderVo.setMemberNo(cardNumber); // 回调中给会员卡号 or 下单时给 orderVo.setMemberNo(cardNumber);
if (null != codeVo) {
orderVo.setMemberCode(codeVo.getCode()); // 兑换码数据
}
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(orderVo))); BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(orderVo)));
mongoTemplate.getCollection(AdamMemberOrderVo.class.getSimpleName()) mongoTemplate.getCollection(AdamMemberOrderVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("orderNo").is(orderVo.getOrderNo())).getQueryObject(), object); .updateOne(Query.query(Criteria.where("orderNo").is(orderVo.getOrderNo())).getQueryObject(), object);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(orderVo.getUid()), orderVo.getOrderNo(), orderVo);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return false; return false;
...@@ -337,7 +440,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -337,7 +440,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
codeVo.setMemberPriceId(orderVo.getMemberPriceId()); codeVo.setMemberPriceId(orderVo.getMemberPriceId());
codeVo.setBuyAt(currentDateTime); codeVo.setBuyAt(currentDateTime);
codeVo.setBuyOrderNo(orderCode); codeVo.setBuyOrderNo(orderCode);
codeVo.setType(AdamMemberOrderConst.TYPE_BUY); codeVo.setType(AdamMemberConst.TYPE_BUY);
codeVo.setMemberNo(orderVo.getMemberNo()); codeVo.setMemberNo(orderVo.getMemberNo());
codeVo.setCode(MemberUtil.getMemberCode(type)); codeVo.setCode(MemberUtil.getMemberCode(type));
codeVo.setCreatedAt(currentDateTime); codeVo.setCreatedAt(currentDateTime);
......
...@@ -42,29 +42,19 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem ...@@ -42,29 +42,19 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
@Override @Override
public AdamMemberVo queryMemberInfo() { public AdamMemberVo queryMemberInfo() {
AdamMember firstMember = adamMemberMapper.getFirstMember();
String memberId = firstMember.getMemberId();
AdamMemberVo info = null; AdamMemberVo info = null;
List<AdamMemberVo> adamMemberVoList = mongoTemplate.findAll(AdamMemberVo.class);
if (adamMemberVoList.size() > 0){
info = adamMemberVoList.get(0);
}
List<AdamMemberPriceVo> memberPrice = new ArrayList<>(); List<AdamMemberPriceVo> memberPrice = new ArrayList<>();
info = (AdamMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId); Map<Object, Object> tempMemberPrice = redisUtil.hmget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat( info.getMemberId()));
Map<Object, Object> tempMemberPrice = redisUtil.hmget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId));
Iterator<Object> iterator = tempMemberPrice.keySet().iterator(); Iterator<Object> iterator = tempMemberPrice.keySet().iterator();
while(iterator.hasNext()){ while (iterator.hasNext()) {
AdamMemberPriceVo tempAmp = (AdamMemberPriceVo) tempMemberPrice.get(iterator.next()); AdamMemberPriceVo tempAmp = (AdamMemberPriceVo) tempMemberPrice.get(iterator.next());
memberPrice.add(tempAmp); memberPrice.add(tempAmp);
} }
if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("memberId").is(memberId)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName());
}
if (null == tempMemberPrice) {
memberPrice = mongoTemplate.find(Query.query(Criteria.where("memberId").is(memberId)),
AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
}
if (null != info && memberPrice.size() > 0) {
info.setAdamMemberPrice(memberPrice); info.setAdamMemberPrice(memberPrice);
}
return info; return info;
} }
......
...@@ -81,7 +81,7 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper, ...@@ -81,7 +81,7 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
@Override @Override
public boolean getOneFromRepertory(String memberId) { public boolean getOneFromRepertory(String memberId) {
AdamMemberVo adamMemberVo = (AdamMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId); AdamMemberVo adamMemberVo = (AdamMemberVo) redisUtil.get(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId));
if (null == adamMemberVo) { if (null == adamMemberVo) {
adamMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("memberId").is(memberId)), AdamMemberVo.class, AdamMemberVo.class.getSimpleName()); adamMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("memberId").is(memberId)), AdamMemberVo.class, AdamMemberVo.class.getSimpleName());
} }
......
...@@ -72,8 +72,12 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe ...@@ -72,8 +72,12 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
} }
@Override @Override
public AdamMemberPrice query(String memberPriceId) { public AdamMemberPriceVo query(String memberId, String memberPriceId) {
return adamMemberPriceMapper.misMemberPriceInfo(memberPriceId); AdamMemberPriceVo priceVo = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId), memberPriceId);
if (null == priceVo) {
priceVo = mongoTemplate.findOne(Query.query(Criteria.where("memberPriceId").is(memberPriceId)), AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
}
return priceVo;
} }
@Override @Override
......
...@@ -83,7 +83,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad ...@@ -83,7 +83,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL, // rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_member.add", (new AdamMemberVo()).getMqList(adamMember).toArray())); // SqlMapping.get("adam_member.add", (new AdamMemberVo()).getMqList(adamMember).toArray()));
// todo 同步redis // todo 同步redis
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMemberId()), info.getMemberId(), amv); redisUtil.set(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMemberId()), amv);
} }
@Override @Override
...@@ -94,6 +94,6 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad ...@@ -94,6 +94,6 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
.updateOne(Query.query(Criteria.where("mId").is(info.getMid())).getQueryObject(), object); .updateOne(Query.query(Criteria.where("mId").is(info.getMid())).getQueryObject(), object);
// todo 放入MQ // todo 放入MQ
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMid().toString()), info.getMid().toString(), info); redisUtil.set(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMid().toString()), info);
} }
} }
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