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

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

Merge remote-tracking branch 'origin/dev' into dev

parents a76b88ac 92e6f59b
...@@ -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,23 @@ package com.liquidnet.service.adam.controller; ...@@ -2,19 +2,23 @@ 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.AdamMemberOrderCallbackResult;
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 +48,10 @@ public class AdamMemberOrderController { ...@@ -44,7 +48,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 +59,33 @@ public class AdamMemberOrderController { ...@@ -52,4 +59,33 @@ 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);
}
@ApiOperationSupport(order = 4)
@ApiOperation(value = "会员支付回调")
@PostMapping("/member/order/callback")
public ResponseDto<Object> memberOrderCallBack(AdamMemberOrderCallbackResult result){
boolean b = adamMemberOrderService.memberNotifyCallBack(result);
if (b) {
return ResponseDto.success();
} else {
return ResponseDto.failure();
}
}
} }
...@@ -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,12 +334,12 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -237,12 +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);
AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(orderVo.getUid()); AdamUserMemberVo userMemberInfo = adamUserMemberService.getUserMemberInfo(orderVo.getUid());
if (null == userMemberInfo) { // 创建会员 if (null == userMemberInfo) { // 创建会员
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId()); cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
...@@ -250,7 +347,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -250,7 +347,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 +358,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -261,7 +358,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 +371,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -274,7 +371,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 +391,32 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -294,27 +391,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 +439,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -337,7 +439,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);
} }
} }
...@@ -7,7 +7,7 @@ public class KylinRedisConst { ...@@ -7,7 +7,7 @@ public class KylinRedisConst {
public static final String PERFORMANCES_INVENTORY = "kylin:performances_inventory:ticket:"; public static final String PERFORMANCES_INVENTORY = "kylin:performances_inventory:ticket:";
public static final String SURPLUS_GENERAL = "surplusGeneral"; public static final String SURPLUS_GENERAL = "surplusGeneral";
public static final String SURPLUS_EXCHANGE = "surplusExchange"; public static final String SURPLUS_EXCHANGE = "surplusExchange";
public static final String TICKET = "kylin:ticket:id"; public static final String TICKET = "kylin:ticket:info";
public static final String TIMES = "kylin:times:id"; public static final String TIMES = "kylin:times:id";
public static final String BANNERS = "kylin:banners"; public static final String BANNERS = "kylin:banners";
} }
...@@ -28,6 +28,9 @@ public class PerformanceStep2Param implements Serializable { ...@@ -28,6 +28,9 @@ public class PerformanceStep2Param implements Serializable {
@NotNull(message = "不能为空") @NotNull(message = "不能为空")
private Integer isSubmit; private Integer isSubmit;
@ApiModelProperty(hidden = true)
private Integer auditStatus;
@ApiModelProperty(value = "场次数据",hidden = true) @ApiModelProperty(value = "场次数据",hidden = true)
private List<TicketTimesTicketCreatePartnerVo> ticketTimes; private List<TicketTimesTicketCreatePartnerVo> ticketTimes;
} }
...@@ -55,8 +55,8 @@ public class PerformanceVo { ...@@ -55,8 +55,8 @@ public class PerformanceVo {
private String roadShowId; private String roadShowId;
// OSS // OSS
// @ApiModelProperty(value = "演出详情") @ApiModelProperty(value = "演出详情")
// private String details; private String details;
// OSS // OSS
@ApiModelProperty(value = "购票须知") @ApiModelProperty(value = "购票须知")
private String noticeImage; private String noticeImage;
...@@ -94,6 +94,8 @@ public class PerformanceVo { ...@@ -94,6 +94,8 @@ public class PerformanceVo {
this.timeStart = performance.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.timeStart = performance.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.timeEnd = performance.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.timeEnd = performance.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.type = performance.getType(); this.type = performance.getType();
this.details =performance.getDetails();
this.noticeImage = performance.getNoticeImage();
} }
public void setTimePriceVipAndLack(int isLackRegister, int isMember, int isExclusive, BigDecimal price, LocalDateTime stopSellTime, LocalDateTime sellTime,int isAdvance,int isDiscount) { public void setTimePriceVipAndLack(int isLackRegister, int isMember, int isExclusive, BigDecimal price, LocalDateTime stopSellTime, LocalDateTime sellTime,int isAdvance,int isDiscount) {
......
...@@ -76,6 +76,8 @@ public class TicketVo { ...@@ -76,6 +76,8 @@ public class TicketVo {
private Integer isExclusive; private Integer isExclusive;
@ApiModelProperty(value = "是否会员") @ApiModelProperty(value = "是否会员")
private Integer isMember; private Integer isMember;
@ApiModelProperty(value = "会员购买状态")
private Integer isMemberStatus;
@ApiModelProperty(value = "是否分销") @ApiModelProperty(value = "是否分销")
private Integer isAgent; private Integer isAgent;
...@@ -93,7 +95,11 @@ public class TicketVo { ...@@ -93,7 +95,11 @@ public class TicketVo {
this.timeStart = ticket.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.timeStart = ticket.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.timeEnd = ticket.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.timeEnd = ticket.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.memberTimeStart = ticket.getTimeStart().plusMinutes(-ticket.getAdvanceMinuteMember()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.memberTimeStart = ticket.getTimeStart().plusMinutes(-ticket.getAdvanceMinuteMember()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
if(ticket.getTimeEndExpress()!=null) {
this.timeEndExpress = ticket.getTimeEndExpress().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.timeEndExpress = ticket.getTimeEndExpress().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}else{
this.timeEndExpress=null;
}
this.useStart = ticket.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.useStart = ticket.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.useEnd = ticket.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); this.useEnd = ticket.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.saleRemindMinute = ticket.getSaleRemindMinute(); this.saleRemindMinute = ticket.getSaleRemindMinute();
...@@ -101,6 +107,7 @@ public class TicketVo { ...@@ -101,6 +107,7 @@ public class TicketVo {
public void setTicketStatus(KylinTicketStatus ticketStatus) { public void setTicketStatus(KylinTicketStatus ticketStatus) {
this.isMember = ticketStatus.getIsMember(); this.isMember = ticketStatus.getIsMember();
this.isAgent = ticketStatus.getIsAgent();
this.isExclusive = ticketStatus.getIsExclusive(); this.isExclusive = ticketStatus.getIsExclusive();
this.isTrueName = ticketStatus.getIsTrueName(); this.isTrueName = ticketStatus.getIsTrueName();
this.expressType = ticketStatus.getExpressType(); this.expressType = ticketStatus.getExpressType();
......
...@@ -49,11 +49,11 @@ public class PerformanceIgnoreVo { ...@@ -49,11 +49,11 @@ public class PerformanceIgnoreVo {
private String roadShowId; private String roadShowId;
// OSS // OSS
// @ApiModelProperty(value = "演出详情") @ApiModelProperty(value = "演出详情")
// private String details; private String details;
// OSS // OSS
// @ApiModelProperty(value = "购票须知") @ApiModelProperty(value = "购票须知")
// private String noticeImage; private String noticeImage;
@ApiModelProperty(value = "推荐顺序 0为不推荐") @ApiModelProperty(value = "推荐顺序 0为不推荐")
private Integer isRecommend; private Integer isRecommend;
......
...@@ -26,6 +26,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -26,6 +26,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 获取演出详情 * 获取演出详情
*
* @param performancesId 演出id * @param performancesId 演出id
* @return PerformanceMisVo * @return PerformanceMisVo
*/ */
...@@ -33,15 +34,17 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -33,15 +34,17 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 演出审核 * 演出审核
*
* @param performancesId 演出id * @param performancesId 演出id
* @param status 审核状态 3通过 4拒绝 * @param status 审核状态 3通过 4拒绝
* @param rejectTxt 拒绝理由 如果 status == 4 必填 * @param rejectTxt 拒绝理由 如果 status == 4 必填
* @return boolean * @return boolean
*/ */
boolean performanceAudit(String performancesId,int status ,String rejectTxt); boolean performanceAudit(String performancesId, int status, String rejectTxt);
/** /**
* 获取 演出列表 (全量) * 获取 演出列表 (全量)
*
* @param performanceAdminListParam 列表搜索参数 * @param performanceAdminListParam 列表搜索参数
* @return 分页 sql 数据 * @return 分页 sql 数据
*/ */
...@@ -49,6 +52,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -49,6 +52,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 根据巡演id 查询演出列表 简易 * 根据巡演id 查询演出列表 简易
*
* @param roadShowId 巡演id * @param roadShowId 巡演id
* @return 20个 sql 数据 * @return 20个 sql 数据
*/ */
...@@ -56,6 +60,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -56,6 +60,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 根据演出状态 查询演出列表 简易 * 根据演出状态 查询演出列表 简易
*
* @param status 演出状态 * @param status 演出状态
* @return 20个 sql 数据 * @return 20个 sql 数据
*/ */
...@@ -63,14 +68,16 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -63,14 +68,16 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 修改演出的巡演关联 * 修改演出的巡演关联
*
* @param performancesId 演出id * @param performancesId 演出id
* @param roadShowId 巡演id * @param roadShowId 巡演id
* @return boolean * @return boolean
*/ */
boolean changeRoadShowId(String performancesId,String roadShowId); boolean changeRoadShowId(String performancesId, String roadShowId);
/** /**
* 设置 演出推荐 关联 * 设置 演出推荐 关联
*
* @param performancesId 相关参数 * @param performancesId 相关参数
* @return boolean * @return boolean
*/ */
...@@ -78,12 +85,14 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -78,12 +85,14 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 查询 推荐演出列表 * 查询 推荐演出列表
*
* @return 分页 sql 数据 * @return 分页 sql 数据
*/ */
PageInfo<PerformanceRecommendAdminDao> listRecommend(); PageInfo<PerformanceRecommendAdminDao> listRecommend();
/** /**
* 获取 演出会员信息(包含场次票) * 获取 演出会员信息(包含场次票)
*
* @param performanceId 演出id * @param performanceId 演出id
* @return sql 数据 * @return sql 数据
*/ */
...@@ -91,6 +100,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -91,6 +100,7 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 修改 演出会员信息(包含场次票) * 修改 演出会员信息(包含场次票)
*
* @param performanceMemberAuditParam 相关参数 * @param performanceMemberAuditParam 相关参数
* @return boolean * @return boolean
*/ */
...@@ -98,32 +108,44 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc ...@@ -98,32 +108,44 @@ public interface IKylinPerformancesAdminService extends IService<KylinPerformanc
/** /**
* 列表 待审核 演出会员信息 * 列表 待审核 演出会员信息
*
* @param title 标题 * @param title 标题
* @return 演出名称 id * @return 演出名称 id
*/ */
PageInfo<PerformanceTitleDao> performanceMemberList(String title,int page,int size); PageInfo<PerformanceTitleDao> performanceMemberList(String title, int page, int size);
/** /**
* 详情 待审核 演出会员信息 * 详情 待审核 演出会员信息
*
* @param performanceId 演出id * @param performanceId 演出id
* @param status 状态 * @param status 状态
* @return sql 数据 * @return sql 数据
*/ */
PerformanceMemberAuditDao performanceMemberAuditInfo(String performanceId,int status); PerformanceMemberAuditDao performanceMemberAuditInfo(String performanceId, int status);
//审核 会员信息 //审核 会员信息
/** /**
* 审核演出会员相关信息 * 审核演出会员相关信息
*
* @param performanceId 演出id * @param performanceId 演出id
* @return boolean * @return boolean
*/ */
boolean performanceMemberAudit(String performanceId,int status,String rejectTxt); boolean performanceMemberAudit(String performanceId, int status, String rejectTxt);
/** /**
* 列表 演出会员审核记录 * 列表 演出会员审核记录
*
* @param performanceId 演出id * @param performanceId 演出id
* @return 分页 vo 数据 * @return 分页 vo 数据
*/ */
PageInfo<PerformanceMemberAuditParam> performanceAuditHistory(String performanceId); PageInfo<PerformanceMemberAuditParam> performanceAuditHistory(String performanceId);
/**
* 修改 当前票种是否关联分销
* @param ticketId 票务id
* @param status 0 否 1 是
* @return
*/
boolean changeTicketAgent(String ticketId, Integer status);
} }
...@@ -134,6 +134,11 @@ public class KylinTicketStatus implements Serializable { ...@@ -134,6 +134,11 @@ public class KylinTicketStatus implements Serializable {
*/ */
private Integer isMember; private Integer isMember;
/**
* 是否关联代理 0不是 1是
*/
private Integer isAgent;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -298,6 +298,7 @@ CREATE TABLE `kylin_ticket_status` ...@@ -298,6 +298,7 @@ CREATE TABLE `kylin_ticket_status`
`is_transfer` tinyint NOT NULL DEFAULT 0 COMMENT '是否开启转赠 0关闭 1开启', `is_transfer` tinyint NOT NULL DEFAULT 0 COMMENT '是否开启转赠 0关闭 1开启',
`is_exclusive` tinyint NOT NULL DEFAULT 0 COMMENT '是否会员专属 0不是 1是', `is_exclusive` tinyint NOT NULL DEFAULT 0 COMMENT '是否会员专属 0不是 1是',
`is_member` tinyint NOT NULL DEFAULT 0 COMMENT '是否关联会员 0不是 1是', `is_member` tinyint NOT NULL DEFAULT 0 COMMENT '是否关联会员 0不是 1是',
`is_agent` tinyint NOT NULL DEFAULT 0 COMMENT '是否关联代理 0不是 1是',
`created_at` datetime NULL DEFAULT NULL COMMENT '创建时间', `created_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间', `updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
KEY `kylin_ticket_status_uid_index` (`ticket_status_id`), KEY `kylin_ticket_status_uid_index` (`ticket_status_id`),
......
...@@ -37,11 +37,6 @@ ...@@ -37,11 +37,6 @@
<artifactId>spring-boot-starter-data-mongodb</artifactId> <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -30,7 +30,7 @@ import java.util.List; ...@@ -30,7 +30,7 @@ import java.util.List;
* @author liquidnet * @author liquidnet
* @since 2021-05-05 * @since 2021-05-05
*/ */
@Api(tags = "后端-演出",position = 2001) @Api(tags = "后端-演出", position = 2001)
@RestController @RestController
@RequestMapping("admin/performance") @RequestMapping("admin/performance")
public class KylinPerformancesAdminController { public class KylinPerformancesAdminController {
...@@ -39,7 +39,7 @@ public class KylinPerformancesAdminController { ...@@ -39,7 +39,7 @@ public class KylinPerformancesAdminController {
private KylinPerformancesAdminServiceImpl performancesAdminService; private KylinPerformancesAdminServiceImpl performancesAdminService;
@PostMapping(value = "list") @PostMapping(value = "list")
@ApiOperation(value = "获取列表",position = 1) @ApiOperation(value = "获取列表", position = 1)
@ApiResponse(response = PerformanceAdminListDao.class, code = 200, message = "接口返回对象参数") @ApiResponse(response = PerformanceAdminListDao.class, code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<PerformanceAdminListDao>> getList(@RequestBody @Valid PerformanceAdminListParam performanceAdminListParam) { public ResponseDto<PageInfo<PerformanceAdminListDao>> getList(@RequestBody @Valid PerformanceAdminListParam performanceAdminListParam) {
PageInfo<PerformanceAdminListDao> result = null; PageInfo<PerformanceAdminListDao> result = null;
...@@ -52,7 +52,7 @@ public class KylinPerformancesAdminController { ...@@ -52,7 +52,7 @@ public class KylinPerformancesAdminController {
} }
@GetMapping(value = "details") @GetMapping(value = "details")
@ApiOperation(value = "获取演出详情",position = 2) @ApiOperation(value = "获取演出详情", position = 2)
@ApiResponse(response = PerformanceMisVo.class, code = 200, message = "接口返回对象参数") @ApiResponse(response = PerformanceMisVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<PerformanceMisVo> performanceDetails(@RequestParam("performancesId") String performancesId) { public ResponseDto<PerformanceMisVo> performanceDetails(@RequestParam("performancesId") String performancesId) {
PerformanceMisVo result = null; PerformanceMisVo result = null;
...@@ -65,7 +65,7 @@ public class KylinPerformancesAdminController { ...@@ -65,7 +65,7 @@ public class KylinPerformancesAdminController {
} }
@PostMapping(value = "audit") @PostMapping(value = "audit")
@ApiOperation(value = "演出审核",position = 3) @ApiOperation(value = "演出审核", position = 3)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> performanceAudit(@RequestParam("performancesId") String performancesId, @RequestParam("status") int status, @RequestParam(value = "rejectTxt", required = false) String rejectTxt) { public ResponseDto<String> performanceAudit(@RequestParam("performancesId") String performancesId, @RequestParam("status") int status, @RequestParam(value = "rejectTxt", required = false) String rejectTxt) {
boolean result = performancesAdminService.performanceAudit(performancesId, status, rejectTxt); boolean result = performancesAdminService.performanceAudit(performancesId, status, rejectTxt);
...@@ -77,7 +77,7 @@ public class KylinPerformancesAdminController { ...@@ -77,7 +77,7 @@ public class KylinPerformancesAdminController {
} }
@GetMapping(value = "list/roadshow") @GetMapping(value = "list/roadshow")
@ApiOperation(value = "列表根据巡演id",position = 4) @ApiOperation(value = "列表根据巡演id", position = 4)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<PerformanceTitleDao>> getListByRoadShowId(@RequestParam("roadShowId") String roadShowId) { public ResponseDto<List<PerformanceTitleDao>> getListByRoadShowId(@RequestParam("roadShowId") String roadShowId) {
List<PerformanceTitleDao> result = performancesAdminService.getListByRoadShowId(roadShowId); List<PerformanceTitleDao> result = performancesAdminService.getListByRoadShowId(roadShowId);
...@@ -89,7 +89,7 @@ public class KylinPerformancesAdminController { ...@@ -89,7 +89,7 @@ public class KylinPerformancesAdminController {
} }
@GetMapping(value = "list/status") @GetMapping(value = "list/status")
@ApiOperation(value = "列表根据演出状态",position = 5) @ApiOperation(value = "列表根据演出状态", position = 5)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<PerformanceTitleDao>> getListByStatus(@RequestParam("status") String status) { public ResponseDto<List<PerformanceTitleDao>> getListByStatus(@RequestParam("status") String status) {
List<PerformanceTitleDao> result = performancesAdminService.getListByStatus(status); List<PerformanceTitleDao> result = performancesAdminService.getListByStatus(status);
...@@ -101,7 +101,7 @@ public class KylinPerformancesAdminController { ...@@ -101,7 +101,7 @@ public class KylinPerformancesAdminController {
} }
@GetMapping(value = "roadShow/relation") @GetMapping(value = "roadShow/relation")
@ApiOperation(value = "修改演出巡演关联",position = 6) @ApiOperation(value = "修改演出巡演关联", position = 6)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> changeRoadShowId(@RequestParam("performanceId") String performanceId, @RequestParam("roadShowId") String roadShowId) { public ResponseDto<String> changeRoadShowId(@RequestParam("performanceId") String performanceId, @RequestParam("roadShowId") String roadShowId) {
boolean result = performancesAdminService.changeRoadShowId(performanceId, roadShowId); boolean result = performancesAdminService.changeRoadShowId(performanceId, roadShowId);
...@@ -112,8 +112,8 @@ public class KylinPerformancesAdminController { ...@@ -112,8 +112,8 @@ public class KylinPerformancesAdminController {
} }
} }
@PutMapping(value = "performance/recommend") @PutMapping(value = "recommend")
@ApiOperation(value = "演出推荐编辑",position = 7) @ApiOperation(value = "演出推荐编辑", position = 7)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> setRecommend(@RequestBody @Valid List<PerformanceRecommendAdminParam> performanceRecommendAdminParam) { public ResponseDto<String> setRecommend(@RequestBody @Valid List<PerformanceRecommendAdminParam> performanceRecommendAdminParam) {
boolean result = performancesAdminService.setRecommend(performanceRecommendAdminParam); boolean result = performancesAdminService.setRecommend(performanceRecommendAdminParam);
...@@ -124,8 +124,8 @@ public class KylinPerformancesAdminController { ...@@ -124,8 +124,8 @@ public class KylinPerformancesAdminController {
} }
} }
@GetMapping(value = "performance/recommend/list") @GetMapping(value = "recommend/list")
@ApiOperation(value = "演出推荐列表",position = 8) @ApiOperation(value = "演出推荐列表", position = 8)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<PerformanceRecommendAdminDao>> listRecommend() { public ResponseDto<PageInfo<PerformanceRecommendAdminDao>> listRecommend() {
PageInfo<PerformanceRecommendAdminDao> result = performancesAdminService.listRecommend(); PageInfo<PerformanceRecommendAdminDao> result = performancesAdminService.listRecommend();
...@@ -136,8 +136,8 @@ public class KylinPerformancesAdminController { ...@@ -136,8 +136,8 @@ public class KylinPerformancesAdminController {
} }
} }
@GetMapping(value = "performance/member/details") @GetMapping(value = "member/details")
@ApiOperation(value = "演出会员信息",position = 9) @ApiOperation(value = "演出会员信息", position = 9)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PerformanceMemberAuditDao> performanceMemberInfo(@RequestParam("performanceId") @NotNull String performanceId) { public ResponseDto<PerformanceMemberAuditDao> performanceMemberInfo(@RequestParam("performanceId") @NotNull String performanceId) {
PerformanceMemberAuditDao result = performancesAdminService.performanceMemberInfo(performanceId); PerformanceMemberAuditDao result = performancesAdminService.performanceMemberInfo(performanceId);
...@@ -148,8 +148,8 @@ public class KylinPerformancesAdminController { ...@@ -148,8 +148,8 @@ public class KylinPerformancesAdminController {
} }
} }
@PutMapping(value = "performance/member/change") @PutMapping(value = "member/change")
@ApiOperation(value = "修改演出会员数据",position = 10) @ApiOperation(value = "修改演出会员数据", position = 10)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> performanceMemberChange(@RequestBody PerformanceMemberAuditParam performanceMemberAuditParam) { public ResponseDto<String> performanceMemberChange(@RequestBody PerformanceMemberAuditParam performanceMemberAuditParam) {
boolean result = performancesAdminService.performanceMemberChange(performanceMemberAuditParam); boolean result = performancesAdminService.performanceMemberChange(performanceMemberAuditParam);
...@@ -160,8 +160,8 @@ public class KylinPerformancesAdminController { ...@@ -160,8 +160,8 @@ public class KylinPerformancesAdminController {
} }
} }
@GetMapping(value = "performance/member/list") @GetMapping(value = "member/list")
@ApiOperation(value = "待审核会员演出列表",position = 11) @ApiOperation(value = "待审核会员演出列表", position = 11)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<PerformanceTitleDao>> performanceMemberList(@RequestParam("title") @NotNull String title, public ResponseDto<PageInfo<PerformanceTitleDao>> performanceMemberList(@RequestParam("title") @NotNull String title,
@RequestParam("page") @NotNull int page, @RequestParam("page") @NotNull int page,
...@@ -174,8 +174,8 @@ public class KylinPerformancesAdminController { ...@@ -174,8 +174,8 @@ public class KylinPerformancesAdminController {
} }
} }
@GetMapping(value = "performance/member/details/audit") @GetMapping(value = "member/details/audit")
@ApiOperation(value = "演出会员信息(根据status 1待审核 2已拒绝 3已通过)",position = 12) @ApiOperation(value = "演出会员信息(根据status 1待审核 2已拒绝 3已通过)", position = 12)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PerformanceMemberAuditDao> performanceMemberAuditInfo(@RequestParam("performanceId") @NotNull String performanceId, public ResponseDto<PerformanceMemberAuditDao> performanceMemberAuditInfo(@RequestParam("performanceId") @NotNull String performanceId,
@RequestParam(value = "status") @NotNull int status) { @RequestParam(value = "status") @NotNull int status) {
...@@ -187,8 +187,8 @@ public class KylinPerformancesAdminController { ...@@ -187,8 +187,8 @@ public class KylinPerformancesAdminController {
} }
} }
@PostMapping(value = "performance/member/audit") @PostMapping(value = "member/audit")
@ApiOperation(value = "审核演出会员信息",position = 13) @ApiOperation(value = "审核演出会员信息", position = 13)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> performanceMemberAudit(@RequestParam("performanceId") @NotNull String performanceId, public ResponseDto<String> performanceMemberAudit(@RequestParam("performanceId") @NotNull String performanceId,
@RequestParam("status") @NotNull int status, @RequestParam("status") @NotNull int status,
...@@ -201,7 +201,7 @@ public class KylinPerformancesAdminController { ...@@ -201,7 +201,7 @@ public class KylinPerformancesAdminController {
} }
} }
@PostMapping(value = "performance/member/history") @PostMapping(value = "member/history")
@ApiOperation(value = "会员审核记录") @ApiOperation(value = "会员审核记录")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<PerformanceMemberAuditParam>> performanceAuditHistory(@RequestParam("performanceId") @NotNull String performanceId) { public ResponseDto<PageInfo<PerformanceMemberAuditParam>> performanceAuditHistory(@RequestParam("performanceId") @NotNull String performanceId) {
...@@ -212,4 +212,16 @@ public class KylinPerformancesAdminController { ...@@ -212,4 +212,16 @@ public class KylinPerformancesAdminController {
return ResponseDto.failure("操作失败"); return ResponseDto.failure("操作失败");
} }
} }
@PostMapping(value = "ticket/agent")
@ApiOperation(value = "修改票分销状态")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> changeTicketAgent(@RequestParam("ticketId") @NotNull String ticketId, @RequestParam("status") @NotNull Integer status) {
boolean result = performancesAdminService.changeTicketAgent(ticketId, status);
if (result) {
return ResponseDto.success("修改完成");
} else {
return ResponseDto.failure("操作失败");
}
}
} }
...@@ -109,9 +109,8 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -109,9 +109,8 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
query.addCriteria(Criteria.where("timeEnd").gte(nowTimeStr)); query.addCriteria(Criteria.where("timeEnd").gte(nowTimeStr));
// 要查询的字段 // 要查询的字段
/*Document fieldsObject = new Document(); // query.fields().include();//包含该字段
Query query = new BasicQuery(queryObject, fieldsObject); // query.fields().exclude();//不包含该字段
fieldsObject.put("performancesId", true);*/
// 查询总数 // 查询总数
long count = mongoTemplate.count(query, PerformanceVo.class, PerformanceVo.class.getSimpleName()); long count = mongoTemplate.count(query, PerformanceVo.class, PerformanceVo.class.getSimpleName());
...@@ -284,6 +283,25 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -284,6 +283,25 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
ticket.setStatus(6); ticket.setStatus(6);
} }
} }
// 会员状态
Integer isMemberStatus = 0;
if (1 == ticket.getIsMember()) { // 有会员
String memberTimeStart = ticket.getMemberTimeStart();
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime memberTimeStartL = LocalDateTime.parse(memberTimeStart, df);
LocalDateTime nowTimeTicket = LocalDateTime.now();
String nowTimeTicketStr = nowTimeTicket.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime nowTimeTicketStrL = LocalDateTime.parse(nowTimeTicketStr, df);
if (memberTimeStartL.isBefore(nowTimeTicketStrL)) { // 可以购买
isMemberStatus = 1;
} else { // 还没到会员购买时间
isMemberStatus = 0;
}
} else {
isMemberStatus = 0;
}
ticket.setIsMemberStatus(isMemberStatus);
} }
partner.setTicketList(ticketList); partner.setTicketList(ticketList);
......
...@@ -23,6 +23,7 @@ import com.mongodb.BasicDBObject; ...@@ -23,6 +23,7 @@ import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.client.model.ReturnDocument;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.pool2.BaseObject;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
...@@ -163,7 +164,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -163,7 +164,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
performanceVoTask.performanceVoStatus(performancesId); performanceVoTask.performanceVoStatus(performancesId);
} }
} }
redisUtil.hdel(KylinRedisConst.PERFORMANCES,performancesId);
} else if (status == 4) { } else if (status == 4) {
log.info(" PERFORMANCE 演出审核 拒绝"); log.info(" PERFORMANCE 演出审核 拒绝");
auditStatus = 2; auditStatus = 2;
...@@ -251,6 +252,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -251,6 +252,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
Query.query(Criteria.where("performancesId").is(performancesId)).getQueryObject(), Query.query(Criteria.where("performancesId").is(performancesId)).getQueryObject(),
object object
); );
redisUtil.hdel(KylinRedisConst.PERFORMANCES,performancesId);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
return false; return false;
...@@ -443,7 +445,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -443,7 +445,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
} }
performanceVoTask.performanceVoStatus(performanceId); performanceVoTask.performanceVoStatus(performanceId);
redisUtil.hdel(KylinRedisConst.PERFORMANCES ,performanceId);
HashMap<String, Object> map2 = new HashMap<>(); HashMap<String, Object> map2 = new HashMap<>();
map2.put("status", 3); map2.put("status", 3);
map2.put("updatedAt", updatedAt); map2.put("updatedAt", updatedAt);
...@@ -495,4 +497,33 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -495,4 +497,33 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
return pageInfoTmp; return pageInfoTmp;
} }
@Override
public boolean changeTicketAgent(String ticketId, Integer status) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
if (status != 0 && status != 1) {
return false;
}
//修改 mysql
KylinTicketStatus ticketStatus = new KylinTicketStatus();
ticketStatus.setUpdatedAt(updatedAt);
ticketStatus.setIsAgent(status);
ticketStatusMapper.update(ticketStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketId));
//修改 mongo
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("isAgent", status);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(TicketVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketId)).getQueryObject(),
object);
redisUtil.hdel(KylinRedisConst.TICKET , ticketId);
return true;
} catch (Exception e) {
return false;
}
}
} }
...@@ -377,8 +377,8 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -377,8 +377,8 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketItem.getTicketsId())); KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketItem.getTicketsId()));
int changeGeneral = ticketStatus.getTotalGeneral() - ticketItem.getTotalGeneral(); int changeGeneral = ticketStatus.getTotalGeneral() - ticketItem.getTotalGeneral();
int changeExchange = ticketStatus.getTotalGeneral() - ticketItem.getTotalExchange(); int changeExchange = ticketStatus.getTotalGeneral() - ticketItem.getTotalExchange();
redisUtil.hincr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketItem.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL, changeGeneral); dataUtils.changeSurplusGeneral(ticketItem.getTicketsId(),changeGeneral);
redisUtil.hincr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketItem.getTicketsId(), KylinRedisConst.SURPLUS_EXCHANGE, changeExchange); dataUtils.changeSurplusExchange(ticketItem.getTicketsId(),changeExchange);
} }
//修改 mysql 库存 //修改 mysql 库存
KylinTicketStatus inventory = new KylinTicketStatus(); KylinTicketStatus inventory = new KylinTicketStatus();
...@@ -418,7 +418,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -418,7 +418,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
@Override @Override
public ResponseDto<PerformanceStep2Param> getStep2(String performancesId) { public ResponseDto<PerformanceStep2Param> getStep2(String performancesId) {
PerformanceStep2Param performanceCreatePartnerVo = null;
PerformancePartnerVo data = mongoTemplate.findOne( PerformancePartnerVo data = mongoTemplate.findOne(
Query.query(Criteria.where("performancesId").is(performancesId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName() Query.query(Criteria.where("performancesId").is(performancesId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName()
); );
...@@ -439,9 +438,9 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -439,9 +438,9 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
PerformanceStep2Param performanceStep2Param = new PerformanceStep2Param(); PerformanceStep2Param performanceStep2Param = new PerformanceStep2Param();
BeanUtils.copyProperties(data, performanceStep2Param); BeanUtils.copyProperties(data, performanceStep2Param);
performanceStep2Param.setTicketTimes(ticketTimesTicketCreatePartnerVoList); performanceStep2Param.setTicketTimes(ticketTimesTicketCreatePartnerVoList);
performanceCreatePartnerVo = performanceStep2Param; // performanceStep2Param.setAuditStatus();
log.info(" PERFORMANCE 演出第二步 获取"); log.info(" PERFORMANCE 演出第二步 获取");
return ResponseDto.success(performanceCreatePartnerVo); return ResponseDto.success(performanceStep2Param);
} }
@Override @Override
...@@ -522,22 +521,10 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -522,22 +521,10 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
); );
} }
//票种 库存redis TODO 库存可能会丢 //票种 库存redis
TicketInventoryDto ticketInventoryDto = new TicketInventoryDto();
if (!redisUtil.hHasKey(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL)) { if (!redisUtil.hHasKey(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL)) {
ticketInventoryDto.setSurplusExchange(ticketStatus.getSurplusExchange()); dataUtils.setSurplusGeneral(ticketVo.getTicketsId(),ticketStatus.getTotalGeneral());
ticketInventoryDto.setSurplusGeneral(ticketStatus.getTotalGeneral()); dataUtils.setSurplusExchange(ticketVo.getTicketsId(),ticketStatus.getSurplusExchange());
ticketInventoryDto.setTicketsId(ticketVo.getTicketsId());
redisUtil.hset(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL, ticketInventoryDto.getSurplusGeneral());
redisUtil.hset(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_EXCHANGE, ticketInventoryDto.getSurplusExchange());
} else {
int surplusGeneral = (int) redisUtil.hget(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL);
int surplusExchange = (int) redisUtil.hget(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_EXCHANGE);
ticketInventoryDto.setSurplusExchange(ticketStatus.getSurplusExchange() - surplusGeneral);
ticketInventoryDto.setSurplusGeneral(ticketStatus.getTotalGeneral() - surplusExchange);
ticketInventoryDto.setTicketsId(ticketVo.getTicketsId());
redisUtil.hset(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL, ticketInventoryDto.getSurplusGeneral());
redisUtil.hset(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVo.getTicketsId(), KylinRedisConst.SURPLUS_EXCHANGE, ticketInventoryDto.getSurplusExchange());
} }
if (ticketVo.getIsMember() == 1) { if (ticketVo.getIsMember() == 1) {
......
...@@ -326,17 +326,24 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp ...@@ -326,17 +326,24 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId)); ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
// mongo 操作 // mongo 操作
KylinTicketStatus ticketStatusMongo = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId).between("status", 1, 10).ne("status", 7)); KylinTicketStatus ticketStatusMySql = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId).between("status", 1, 10).ne("status", 7));
KylinTicketRelations ticketRelation = ticketRelationsMapper.selectOne(new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", ticketsId)); KylinTicketRelations ticketRelation = ticketRelationsMapper.selectOne(new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", ticketsId));
KylinTickets tickets = ticketsMapper.selectOne( KylinTickets tickets = ticketsMapper.selectOne(
new UpdateWrapper<KylinTickets>().eq("tickets_id", ticketsId new UpdateWrapper<KylinTickets>().eq("tickets_id", ticketsId)
) );
HashMap<String,Object> map = new HashMap<>();
map.put("status",6);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(TicketPartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
object
); );
TicketVo ticketVo = new TicketVo(); TicketVo ticketVo = new TicketVo();
ticketVo.setTimeId(ticketRelation.getTimesId()); ticketVo.setTimeId(ticketRelation.getTimesId());
ticketVo.setTicket(tickets); ticketVo.setTicket(tickets);
ticketVo.setTicketStatus(ticketStatusMongo); ticketVo.setTicketStatus(ticketStatusMySql);
boolean ticketExists = boolean ticketExists =
mongoTemplate.exists(Query.query(Criteria.where("ticketsId").is(ticketVo.getTicketsId())), TicketVo.class, TicketVo.class.getSimpleName()); mongoTemplate.exists(Query.query(Criteria.where("ticketsId").is(ticketVo.getTicketsId())), TicketVo.class, TicketVo.class.getSimpleName());
...@@ -366,6 +373,15 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp ...@@ -366,6 +373,15 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
changeStatus.setStatus(7); changeStatus.setStatus(7);
ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId)); ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
// mongo 操作 // mongo 操作
HashMap<String,Object> map = new HashMap<>();
map.put("status",7);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(TicketPartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
object
);
TicketVo ticketVoItem = mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), TicketVo.class, TicketVo.class.getSimpleName()); TicketVo ticketVoItem = mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), TicketVo.class, TicketVo.class.getSimpleName());
TicketIgnoreVo ticketIgnoreVo = new TicketIgnoreVo(); TicketIgnoreVo ticketIgnoreVo = new TicketIgnoreVo();
BeanUtils.copyProperties(ticketVoItem, ticketIgnoreVo); BeanUtils.copyProperties(ticketVoItem, ticketIgnoreVo);
......
...@@ -15,6 +15,7 @@ import com.liquidnet.service.kylin.entity.*; ...@@ -15,6 +15,7 @@ import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketTimesPartnerServiceImpl; import com.liquidnet.service.kylin.service.impl.partner.KylinTicketTimesPartnerServiceImpl;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketsPartnerServiceImpl; import com.liquidnet.service.kylin.service.impl.partner.KylinTicketsPartnerServiceImpl;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.client.model.ReturnDocument;
...@@ -48,6 +49,9 @@ public class PerformanceVoTask { ...@@ -48,6 +49,9 @@ public class PerformanceVoTask {
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired
private DataUtils dataUtils;
@Autowired @Autowired
private KylinPerformancesMapper performancesMapper; private KylinPerformancesMapper performancesMapper;
...@@ -148,7 +152,7 @@ public class PerformanceVoTask { ...@@ -148,7 +152,7 @@ public class PerformanceVoTask {
status10Count += 1; status10Count += 1;
} else { } else {
//库存判断 //库存判断
int surplusGeneral = (int) redisUtil.hget(KylinRedisConst.PERFORMANCES_INVENTORY + ticketVoItem.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL); int surplusGeneral = dataUtils.getSurplusGeneral(ticketVoItem.getTicketsId());
if (surplusGeneral > 0) { if (surplusGeneral > 0) {
status = 6; status = 6;
...@@ -312,11 +316,11 @@ public class PerformanceVoTask { ...@@ -312,11 +316,11 @@ public class PerformanceVoTask {
performanceRelations.setCreatedAt(performances.getCreatedAt()); performanceRelations.setCreatedAt(performances.getCreatedAt());
performanceRelations.setUpdatedAt(updatedAt); performanceRelations.setUpdatedAt(updatedAt);
performancesMapper.delete(new UpdateWrapper<KylinPerformances>().eq("performances_id",performances.getPerformancesId())); performancesMapper.delete(new UpdateWrapper<KylinPerformances>().eq("performances_id", performances.getPerformancesId()));
performancesMapper.insert(performances); performancesMapper.insert(performances);
performanceStatusMapper.delete(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id",performanceStatus.getPerformanceId())); performanceStatusMapper.delete(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performanceStatus.getPerformanceId()));
performanceStatusMapper.insert(performanceStatus); performanceStatusMapper.insert(performanceStatus);
performanceRelationsMapper.delete(new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id",performanceRelations.getPerformanceId())); performanceRelationsMapper.delete(new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id", performanceRelations.getPerformanceId()));
performanceRelationsMapper.insert(performanceRelations); performanceRelationsMapper.insert(performanceRelations);
...@@ -340,9 +344,9 @@ public class PerformanceVoTask { ...@@ -340,9 +344,9 @@ public class PerformanceVoTask {
ticketTimeRelation.setCreatedAt(ticketTimes.getCreatedAt()); ticketTimeRelation.setCreatedAt(ticketTimes.getCreatedAt());
ticketTimeRelation.setUpdatedAt(updatedAt); ticketTimeRelation.setUpdatedAt(updatedAt);
ticketTimesMapper.delete(new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id",ticketTimes.getTicketTimesId())); ticketTimesMapper.delete(new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", ticketTimes.getTicketTimesId()));
ticketTimesMapper.insert(ticketTimes); ticketTimesMapper.insert(ticketTimes);
ticketTimeRelationMapper.delete(new UpdateWrapper<KylinTicketTimeRelation>().eq("ticket_time_relation_id",ticketTimeRelation.getTimesId())); ticketTimeRelationMapper.delete(new UpdateWrapper<KylinTicketTimeRelation>().eq("ticket_time_relation_id", ticketTimeRelation.getTimesId()));
ticketTimeRelationMapper.insert(ticketTimeRelation); ticketTimeRelationMapper.insert(ticketTimeRelation);
//修改票 //修改票
...@@ -397,11 +401,11 @@ public class PerformanceVoTask { ...@@ -397,11 +401,11 @@ public class PerformanceVoTask {
ticketRelations.setCreatedAt(tickets.getCreatedAt()); ticketRelations.setCreatedAt(tickets.getCreatedAt());
ticketRelations.setUpdatedAt(updatedAt); ticketRelations.setUpdatedAt(updatedAt);
ticketsMapper.delete(new UpdateWrapper<KylinTickets>().eq("tickets_id",tickets.getTicketsId())); ticketsMapper.delete(new UpdateWrapper<KylinTickets>().eq("tickets_id", tickets.getTicketsId()));
ticketsMapper.insert(tickets); ticketsMapper.insert(tickets);
ticketStatusMapper.delete(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id",ticketStatus.getTicketId())); ticketStatusMapper.delete(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketStatus.getTicketId()));
ticketStatusMapper.insert(ticketStatus); ticketStatusMapper.insert(ticketStatus);
ticketRelationsMapper.delete(new UpdateWrapper<KylinTicketRelations>().eq("ticket_id",ticketRelations.getTicketId())); ticketRelationsMapper.delete(new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", ticketRelations.getTicketId()));
ticketRelationsMapper.insert(ticketRelations); ticketRelationsMapper.insert(ticketRelations);
} }
} }
...@@ -418,7 +422,7 @@ public class PerformanceVoTask { ...@@ -418,7 +422,7 @@ public class PerformanceVoTask {
* @param performanceUpdateMisVo * @param performanceUpdateMisVo
* @param updatedAt * @param updatedAt
*/ */
public void updatePerformanceMySql(String performancesId, HashMap<String, Object> map, PerformanceMisVo performanceUpdateMisVo, LocalDateTime updatedAt,Integer auditStatus) { public void updatePerformanceMySql(String performancesId, HashMap<String, Object> map, PerformanceMisVo performanceUpdateMisVo, LocalDateTime updatedAt, Integer auditStatus) {
try { try {
//创建演出 //创建演出
KylinPerformances performances = new KylinPerformances(); KylinPerformances performances = new KylinPerformances();
...@@ -471,27 +475,45 @@ public class PerformanceVoTask { ...@@ -471,27 +475,45 @@ public class PerformanceVoTask {
ticketTimeRelation.setCreatedAt(null); ticketTimeRelation.setCreatedAt(null);
ticketTimeRelation.setUpdatedAt(updatedAt); ticketTimeRelation.setUpdatedAt(updatedAt);
if (ticketTimeItem.getStatus() == -1) {
ticketTimes.setStatus(1);
ticketTimesMapper.insert(ticketTimes);
ticketTimeRelationMapper.insert(ticketTimeRelation);
TicketTimesVo ticketTimesVo = new TicketTimesVo();
ticketTimesVo.setTicketTimes(ticketTimes);
ticketTimesVo.setPerformanceId(ticketTimeRelation.getPerformanceId());
ticketTimesVo.setTimeId(ticketTimeRelation.getTimesId());
// HashMap<String ,Object> map2 = new HashMap<>();
// map2.put("status",1);
// BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(map2));
// mongoTemplate.getCollection(TicketTimesPartnerVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("ticketTimesId").is(ticketTimes.getTicketTimesId())).getQueryObject(),
// obj
// );
boolean ticketTimesExists =
mongoTemplate.exists(Query.query(Criteria.where("ticketTimesId").is(ticketTimesVo.getTicketTimesId())), TicketTimesVo.class, TicketTimesVo.class.getSimpleName());
if (!ticketTimesExists) {
mongoTemplate.insert(
ticketTimesVo, TicketTimesVo.class.getSimpleName()
);
}
} else {
ticketTimesMapper.update(ticketTimes, new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", ticketTimes.getTicketTimesId())); ticketTimesMapper.update(ticketTimes, new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", ticketTimes.getTicketTimesId()));
ticketTimeRelationMapper.update(ticketTimeRelation, new UpdateWrapper<KylinTicketTimeRelation>().eq("ticket_time_id", ticketTimes.getTicketTimesId())); ticketTimeRelationMapper.update(ticketTimeRelation, new UpdateWrapper<KylinTicketTimeRelation>().eq("times_id", ticketTimes.getTicketTimesId()));
}
//修改票 //修改票
for (TicketPartnerVo ticketItem : ticketsPartnerService.getTicketMongoList(ticketTimeItem.getTicketTimesId())) { for (TicketPartnerVo ticketItem : ticketsPartnerService.getTicketMongoList(ticketTimeItem.getTicketTimesId())) {
TicketPartnerVo ticketPartnerVo; TicketPartnerVo ticketPartnerVo;
if (ticketItem.getStatus() != 7) {
BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document docTicket = mongoTemplate.getCollection(TicketPartnerVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketsId").is(ticketItem.getTicketsId())).getQueryObject(),
objectTicketVo,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
ticketPartnerVo = JsonUtils.fromJson(docTicket.toJson(), TicketPartnerVo.class);
} else {
ticketPartnerVo = mongoTemplate.findOne( ticketPartnerVo = mongoTemplate.findOne(
Query.query(Criteria.where("ticketsId").is(ticketItem.getTicketsId())), Query.query(Criteria.where("ticketsId").is(ticketItem.getTicketsId())),
TicketPartnerVo.class, TicketPartnerVo.class,
TicketPartnerVo.class.getSimpleName() TicketPartnerVo.class.getSimpleName()
); );
}
//创建演出 //创建演出
KylinTickets tickets = new KylinTickets(); KylinTickets tickets = new KylinTickets();
...@@ -506,41 +528,87 @@ public class PerformanceVoTask { ...@@ -506,41 +528,87 @@ public class PerformanceVoTask {
tickets.setPriceDiscount(new BigDecimal("0.00")); tickets.setPriceDiscount(new BigDecimal("0.00"));
tickets.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeStart()))); tickets.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeStart())));
tickets.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeEnd()))); tickets.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeEnd())));
if (ticketItem.getIsExpress() == 1) {
tickets.setTimeEndExpress(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeEndExpress()))); tickets.setTimeEndExpress(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getTimeEndExpress())));
}
tickets.setUseStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getUseStart()))); tickets.setUseStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getUseStart())));
tickets.setUseEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getUseEnd()))); tickets.setUseEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getUseEnd())));
tickets.setSaleRemindMinute(60); tickets.setSaleRemindMinute(60);
tickets.setCreatedAt(null);
tickets.setUpdatedAt(updatedAt); tickets.setUpdatedAt(updatedAt);
ticketStatus.setTicketStatusId(IDGenerator.nextSnowId().toString()); ticketStatus.setTicketStatusId(IDGenerator.nextSnowId().toString());
ticketStatus.setTicketId(tickets.getTicketsId()); ticketStatus.setTicketId(tickets.getTicketsId());
ticketStatus.setCounts(null);
ticketStatus.setIsMember(null);
ticketStatus.setStatusExchange(7); ticketStatus.setStatusExchange(7);
if (ticketItem.getIsShowCode() == 1) {
ticketStatus.setQrCodeShowTime(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getQrCodeShowTime()))); ticketStatus.setQrCodeShowTime(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getQrCodeShowTime())));
}
ticketRelations.setUpdatedAt(updatedAt);
ticketRelations.setTicketRelationsId(IDGenerator.nextSnowId().toString());
ticketRelations.setTicketId(tickets.getTicketsId());
ticketRelations.setUpdatedAt(updatedAt);
if (ticketItem.getStatus() == -2) {
// ticketStatus.setLimitCount(null);
// ticketStatus.setTotalGeneral(null);
// ticketStatus.setTotalExchange(null);
// tickets.setTimeStart(null);
// tickets.setTimeEnd(null);
tickets.setAdvanceMinuteMember(5);
ticketStatus.setIsMember(1);
ticketRelations.setCreatedAt(LocalDateTime.now());
tickets.setCreatedAt(LocalDateTime.now());
ticketsMapper.insert(tickets);
ticketStatus.setStatus(9);
ticketStatusMapper.insert(ticketStatus);
ticketRelationsMapper.insert(ticketRelations);
TicketVo ticketVo = new TicketVo();
ticketVo.setTimeId(ticketRelations.getTimesId());
ticketVo.setTicket(tickets);
ticketVo.setTicketStatus(ticketStatus);
dataUtils.setSurplusExchange(ticketVo.getTicketsId(), ticketStatus.getSurplusExchange());
dataUtils.setSurplusGeneral(ticketVo.getTicketsId(), ticketStatus.getSurplusGeneral());
BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(TicketPartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketItem.getTicketsId())).getQueryObject(),
objectTicketVo
);
boolean ticketExists =
mongoTemplate.exists(Query.query(Criteria.where("ticketsId").is(ticketVo.getTicketsId())), TicketVo.class, TicketVo.class.getSimpleName());
if (!ticketExists) {
mongoTemplate.insert(
ticketVo, TicketVo.class.getSimpleName()
);
}
} else {
//不改动数据 价格 限购 购票时间 //不改动数据 价格 限购 购票时间
ticketStatus.setLimitCount(null); ticketStatus.setLimitCount(null);
ticketStatus.setTotalGeneral(null); ticketStatus.setTotalGeneral(null);
ticketStatus.setTotalExchange(null); ticketStatus.setTotalExchange(null);
tickets.setTimeStart(null); tickets.setTimeStart(null);
tickets.setTimeEnd(null); tickets.setTimeEnd(null);
ticketStatus.setCounts(null);
ticketRelations.setCreatedAt(null); ticketStatus.setIsMember(null);
ticketRelations.setUpdatedAt(updatedAt);
ticketRelations.setTicketRelationsId(IDGenerator.nextSnowId().toString());
ticketRelations.setTicketId(tickets.getTicketsId());
ticketRelations.setCreatedAt(null); ticketRelations.setCreatedAt(null);
ticketRelations.setUpdatedAt(updatedAt); tickets.setCreatedAt(null);
ticketsMapper.update(tickets, new UpdateWrapper<KylinTickets>().eq("tickets_id", tickets.getTicketsId())); ticketsMapper.update(tickets, new UpdateWrapper<KylinTickets>().eq("tickets_id", tickets.getTicketsId()));
ticketStatusMapper.update(ticketStatus, new UpdateWrapper<KylinTicketStatus>().eq("tickets_id", tickets.getTicketsId())); ticketStatusMapper.update(ticketStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", tickets.getTicketsId()));
ticketRelationsMapper.update(ticketRelations, new UpdateWrapper<KylinTicketRelations>().eq("tickets_id", tickets.getTicketsId())); ticketRelationsMapper.update(ticketRelations, new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", tickets.getTicketsId()));
}
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
} }
} }
......
package com.liquidnet.service.kylin.utils; package com.liquidnet.service.kylin.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.entity.KylinBuyNotice; import com.liquidnet.service.kylin.entity.KylinBuyNotice;
import com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper; import com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -15,9 +17,80 @@ public class DataUtils { ...@@ -15,9 +17,80 @@ public class DataUtils {
@Autowired @Autowired
private KylinBuyNoticeMapper buyNoticeMapper; private KylinBuyNoticeMapper buyNoticeMapper;
public String getBuyNoticeJsonString(List<String> buyNoticeIds){ @Autowired
List<KylinBuyNotice> data = buyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().in("buy_notice_id",buyNoticeIds)); private RedisUtil redisUtil;
/**
* 根据 购票须知 id 获取 购票须知文案
*
* @param buyNoticeIds 购票须知 数组
* @return 购票须知 json串
*/
public String getBuyNoticeJsonString(List<String> buyNoticeIds) {
List<KylinBuyNotice> data = buyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().in("buy_notice_id", buyNoticeIds));
return JsonUtils.toJson(data); return JsonUtils.toJson(data);
} }
/**
* 初始化普通库存
*
* @param ticketId 票id
* @param totalGeneral 普通库存
*/
public void setSurplusGeneral(String ticketId, int totalGeneral) {
redisUtil.hset(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_GENERAL, totalGeneral);
}
/**
* 获取普通剩余库存
*
* @param ticketId 票id
* @return 普通剩余库存
*/
public int getSurplusGeneral(String ticketId) {
return (int) redisUtil.hget(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_GENERAL);
}
/**
* 修改普通库存 并 返回修改后的数量
*
* @param ticketId 票id
* @param surplusGeneral 普通库存
* @return 普通剩余库存
*/
public int changeSurplusGeneral(String ticketId, int surplusGeneral) {
return (int) redisUtil.hincr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_GENERAL, surplusGeneral);
}
/**
* 初始化兑换库存
*
* @param ticketId 票id
* @param totalExchange 兑换库存
*/
public void setSurplusExchange(String ticketId, int totalExchange) {
redisUtil.hset(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_EXCHANGE, totalExchange);
}
/**
* 获取兑换剩余库存
*
* @param ticketId 票id
* @return 兑换剩余库存
*/
public int getSurplusExchange(String ticketId) {
return (int) redisUtil.hget(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_EXCHANGE);
}
/**
* 变更兑换库存 并 返回 修改后的数量
*
* @param ticketId 票id
* @param surplusExchange 普通库存
* @return 兑换剩余库存
*/
public int changeSurplusExchange(String ticketId, int surplusExchange) {
return (int) redisUtil.hincr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId, KylinRedisConst.SURPLUS_GENERAL, surplusExchange);
}
} }
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