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

Commit 56016f55 authored by 胡佳晨's avatar 胡佳晨

提交 导入 初步测试

parent 8df400b3
......@@ -12,11 +12,15 @@ public class OrderOutLineVo {
@Excel(name = "身份证",cellType = Excel.ColumnType.STRING)
private String enterIdCode;
@Excel(name = "购票数量",cellType = Excel.ColumnType.NUMERIC)
private String number;
private Integer number;
@Excel(name = "票种名称",cellType = Excel.ColumnType.STRING)
private String ticketTitle;
@Excel(name = "票种适用时间",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd")
private String useTime;
@Excel(name = "票种类型(电子票)",cellType = Excel.ColumnType.STRING)
@Excel(name = "票种适用开始时间",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd")
private String useStart;
@Excel(name = "票种适用结束时间",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd")
private String useEnd;
@Excel(name = "票种类型(电子票,快递票)",cellType = Excel.ColumnType.STRING)
private String ticketType;
@Excel(name = "快递票地址",cellType = Excel.ColumnType.STRING)
private String address;
}
......@@ -5,20 +5,36 @@ import com.liquidnet.client.admin.common.exception.BusinessException;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IImportService;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils;
import com.liquidnet.client.admin.zhengzai.kylin.utils.OrderUtils;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
@Service
public class ImportServiceImpl implements IImportService {
......@@ -27,6 +43,12 @@ public class ImportServiceImpl implements IImportService {
IKylinPerformancesAdminService kylinPerformancesService;
@Value("${liquidnet.service.adam.url}")
private String adamUrl;
@Autowired
private DataUtils dataUtils;
@Autowired
private OrderUtils orderUtils;
@Autowired
private MongoTemplate mongoTemplate;
/**
* 导入订单数据
......@@ -41,61 +63,98 @@ public class ImportServiceImpl implements IImportService {
StringBuilder failureMsg = new StringBuilder();
for (OrderOutLineVo orderOutLineVo : orderOutLineVoList) {
//获取演出维度数据
KylinPerformanceMisVo misVo = kylinPerformancesService.performanceDetails(performancesId);
//获取账号维度数据
String enterMobile = orderOutLineVo.getEnterMobile();
String enterIdCode = orderOutLineVo.getEnterIdCode();
String enterName = orderOutLineVo.getEnterName();
String number = orderOutLineVo.getNumber();
Integer number = orderOutLineVo.getNumber();
String address = orderOutLineVo.getAddress();
MultiValueMap<String, String> params = new LinkedMultiValueMap();
params.add("mobile", orderOutLineVo.getEnterMobile());
params.add("mobile", enterMobile);
String returnData = HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params);
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData,new TypeReference<ResponseDto<AdamUserInfoVo>>() {}).getData();
String uid =adamUserInfoVo.getUid();
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<AdamUserInfoVo>>() {
}).getData();
String uid = adamUserInfoVo.getUid();
Boolean isMember;
if(adamUserInfoVo.getStageMarker().equals("10") || adamUserInfoVo.getStageMarker().equals("11")){
if (adamUserInfoVo.getStageMarker().equals("10") || adamUserInfoVo.getStageMarker().equals("11")) {
isMember = true;
}else{
} else {
isMember = false;
}
Boolean isTrueName;
Boolean isStudent;
//找到对应票种和场次
String ticketTitle = orderOutLineVo.getTicketTitle();
String useTime = orderOutLineVo.getUseTime();
String ticketType ;
if(orderOutLineVo.getTicketType().equals("电子票")){
ticketType="electronic";
String startTime = orderOutLineVo.getUseStart();
String endTime = orderOutLineVo.getUseEnd();
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(performancesId);
KylinTicketTimesVo ticketTimesData = null;
KylinTicketVo ticketData = null;
for (int x = 0; x < performanceData.getTicketTimeList().size(); x++) {
KylinTicketTimesVo timeItem = performanceData.getTicketTimeList().get(x);
if (timeItem.getUseStart().equals(startTime) && timeItem.getUseEnd().equals(endTime)) {
ticketTimesData = timeItem;
for (int y = 0; y < ticketTimesData.getTicketList().size(); y++) {
KylinTicketVo ticketItem = ticketTimesData.getTicketList().get(y);
if (ticketItem.getTitle().equals(ticketTitle)) {
ticketData = ticketItem;
break;
}
}
break;
}
}
// 获取限购 实名
int ticketLimit = ticketData.getLimitCount();//普通票种限购
int ticketMemberLimit = ticketData.getLimitCountMember();//会员票种限购
int performanceLimit = performanceData.getLimitCount();//普通演出限购
int performanceMemberLimit = performanceData.getLimitCountMember();//会员演出限购
int isTrueName = ticketData.getIsTrueName();//是否演出实名
Integer isStudent = ticketData.getIsStudent();
String ticketType = "";
if (orderOutLineVo.getTicketType().contains("电子")) {
ticketType = "electronic";
} else if (orderOutLineVo.getTicketType().contains("快递")) {
ticketType = "express";
}
//快递票判断
if (ticketType.equals("express")) {
if (address.isEmpty()) {
return "快递票未填写收货地址";
}
}
//实名判断
if (isTrueName == 1 && (enterIdCode.isEmpty() || enterName.isEmpty())) {
return "实名票未填写入场人";
}
//学生票 判断
if (isTrueName == 1) {
if (isStudent == 1) {
int age = IDCard.getAgeByIdCard(enterIdCode);
if (age > 25) {
return "年龄不符合";//年龄超了
}
}
}
//限购判断 如果实名 则身份证维度限购 如果不实名则数量限购
if (isTrueName == 1) {
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, enterIdCode, performancesId, ticketData.getTicketsId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, 1, 1, 0, isTrueName);
if (!res1.equals("")) {
return res1;//乱七八糟异常
}
} else {
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, "", performancesId, ticketData.getTicketsId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, number, number, 0, isTrueName);
if (!res1.equals("")) {
return res1;//乱七八糟异常
}
}
try {
order(number, ticketType.equals("express") ? 1 : 0, uid, isMember, performanceData, ticketTimesData, ticketData, enterMobile, enterName, enterIdCode, address);
successNum++;
} catch (Exception e) {
e.printStackTrace();
failureNum++;
}
// else if(orderOutLineVo.getTicketType().equals("快递票")){
// ticketType="express";
// }
// try {
// // 验证是否存在这个用户
// OrderOutLineVo u = studentMapper.selectStudentByName(student.getStudentName());
// if (StringUtils.isNull(u)) {
// student.setStudentName(student.getStudentName());
// this.insertStudent(student);
// successNum++;
// successMsg.append("<br/>" + successNum + "学校信息" + student.getStudentName() + " 导入成功");
// } else if (updateSupport) {
// student.setUpdateBy(operName);
// this.updateStudent(student);
// successNum++;
// successMsg.append("<br/>" + successNum + "学校信息 " + student.getStudentName() + " 更新成功");
// } else {
// failureNum++;
// failureMsg.append("<br/>" + failureNum + "学校信息" + student.getStudentName() + " 已存在");
// }
// } catch (Exception e) {
// failureNum++;
// String msg = "<br/>" + failureNum + "学校信息" + student.getStudentName() + " 导入失败:";
// failureMsg.append(msg + e.getMessage());
// log.error(msg, e);
// }
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
......@@ -105,4 +164,179 @@ public class ImportServiceImpl implements IImportService {
}
return successMsg.toString();
}
private void order(Integer number, Integer IsExpress, String uid, boolean isMember,
KylinPerformanceVo performanceData, KylinTicketTimesVo ticketTimesVo, KylinTicketVo ticketData,
String enterMobile, String enterName, String enterIdCode, String address) throws Exception {
String source = "OUTLINE";
String version = "OUTLINE";
LocalDateTime now = LocalDateTime.now();
//生成订单 order_ticket
KylinOrderTickets orderTickets = KylinOrderTickets.getNew();
String orderTicketId = IDGenerator.nextSnowId();
orderTickets.setOrderTicketsId(orderTicketId);
orderTickets.setUserId(uid);
Map token = CurrentUtil.getTokenClaims();
orderTickets.setUserName(StringUtils.defaultString(((String) token.get("nickname")), ""));
orderTickets.setUserMobile(StringUtils.defaultString(((String) token.get("mobile")), ""));
orderTickets.setPerformanceTitle(performanceData.getTitle());
orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId));
orderTickets.setPayCode("OUTLINE");
orderTickets.setQrCode(IDGenerator.ticketQrCode(orderTickets.getOrderTicketsId()));
orderTickets.setOrderType(source);
orderTickets.setOrderVersion(version);
orderTickets.setNumber(number);
orderTickets.setPrice(ticketData.getPrice());
orderTickets.setPriceMember(ticketData.getMemberPrice());
if (isMember) {
orderTickets.setPriceTotal(ticketData.getMemberPrice().multiply(BigDecimal.valueOf(number)).add(IsExpress == 1 ? ticketData.getPriceExpress() : BigDecimal.valueOf(0)));
} else {
orderTickets.setPriceTotal(ticketData.getPrice().multiply(BigDecimal.valueOf(number)).add(IsExpress == 1 ? ticketData.getPriceExpress() : BigDecimal.valueOf(0)));
}
orderTickets.setPriceActual(orderTickets.getPriceTotal());
orderTickets.setPriceVoucher(BigDecimal.valueOf(0.0));
orderTickets.setPriceExpress(IsExpress == 1 ? ticketData.getPriceExpress() : BigDecimal.valueOf(0));
orderTickets.setPriceRefund(BigDecimal.valueOf(0.0));
orderTickets.setRefundNumber(0);
orderTickets.setPayType("OUTLINE");
orderTickets.setPaymentType("OUTLINE");
orderTickets.setPaymentId("OUTLINE");
orderTickets.setTimePay(DateUtil.getNowTime());
if (IsExpress == 1) {
orderTickets.setExpressContacts(enterName);
orderTickets.setExpressAddress(address);
orderTickets.setExpressPhone(enterMobile);
orderTickets.setCity("");
orderTickets.setProvince("");
orderTickets.setCounty("");
orderTickets.setGetTicketType("express");
} else {
orderTickets.setExpressContacts("");
orderTickets.setExpressAddress("");
orderTickets.setExpressPhone("");
orderTickets.setCity("");
orderTickets.setProvince("");
orderTickets.setCounty("");
orderTickets.setGetTicketType("electronic");
}
orderTickets.setCouponType("no");
orderTickets.setGetTicketDescribe("");
orderTickets.setPayCountdownMinute(performanceData.getPayCountdownMinute());
orderTickets.setCreatedAt(now);
orderTickets.setUpdatedAt(null);
//生成订单 order_ticket_status
KylinOrderTicketStatus orderTicketStatus = KylinOrderTicketStatus.getNew();
String orderTicketStatusId = IDGenerator.nextSnowId();
orderTicketStatus.setOrderTicketStatusId(orderTicketStatusId);
orderTicketStatus.setOrderId(orderTicketId);
orderTicketStatus.setExpressType(2);
orderTicketStatus.setTransferStatus(KylinTableStatusConst.ORDER_TRANSFER_STATUS0);
orderTicketStatus.setStatus(KylinTableStatusConst.ORDER_STATUS1);
orderTicketStatus.setIsStudent(ticketData.getIsStudent());
orderTicketStatus.setPayStatus(KylinTableStatusConst.ORDER_PAY_STATUS1);
orderTicketStatus.setCreatedAt(now);
orderTicketStatus.setUpdatedAt(null);
//生成订单 order_ticket_relation
KylinOrderTicketRelations orderTicketRelations = KylinOrderTicketRelations.getNew();
String orderTicketRelationId = IDGenerator.nextSnowId();
orderTicketRelations.setOrderTicketRelationsId(orderTicketRelationId);
orderTicketRelations.setOrderId(orderTicketId);
orderTicketRelations.setTransferId("");
orderTicketRelations.setLiveId("");
orderTicketRelations.setAgentId("0");
orderTicketRelations.setIsMember(isMember ? 1 : 0);
orderTicketRelations.setPerformanceId(performanceData.getPerformancesId());
orderTicketRelations.setTimeId(ticketTimesVo.getTimeId());
orderTicketRelations.setTicketId(ticketData.getTicketsId());
orderTicketRelations.setCreatedAt(now);
orderTicketRelations.setUpdatedAt(null);
//生成票
KylinOrderTicketEntities orderTicketEntities = KylinOrderTicketEntities.getNew();
if (performanceData.getIsTrueName() == 1) {
String orderTicketEntitiesId = IDGenerator.nextSnowId();
orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId);
orderTicketEntities.setOrderId(orderTicketId);
orderTicketEntities.setUserId(uid);
orderTicketEntities.setTicketId(ticketData.getTicketsId());
orderTicketEntities.setPerformanceId(performanceData.getPerformancesId());
orderTicketEntities.setTimeId(ticketTimesVo.getTimeId());
orderTicketEntities.setEnterType(1);
orderTicketEntities.setEnterName(enterName);
orderTicketEntities.setEnterMobile(enterMobile);
orderTicketEntities.setEnterIdCode(enterIdCode);
orderTicketEntities.setStatus(KylinTableStatusConst.ENTITIES_STATUS0);
orderTicketEntities.setSysDamai(ticketData.getSysDamai());
orderTicketEntities.setCheckClient("");
orderTicketEntities.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT1);
orderTicketEntities.setRefundPrice(BigDecimal.valueOf(0.0));
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(now);
orderTicketEntities.setUpdatedAt(null);
// 生成vo
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = KylinOrderTicketEntitiesVo.getNew();
BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo);
orderTicketEntitiesVo.setPerformanceTitle(performanceData.getTitle());
orderTicketEntitiesVo.setTicketTitle(ticketData.getTitle());
orderTicketEntitiesVo.setUseStart(ticketData.getUseStart());
orderTicketEntitiesVo.setUseEnd(ticketData.getUseEnd());
orderTicketEntitiesVo.setCreatedAt(orderTicketEntities.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderTicketEntitiesVo.setUpdatedAt(null);
orderTicketEntitiesVo.setChangeDate(orderTicketEntities.getCreatedAt());
mongoTemplate.insert(orderTicketEntitiesVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
dataUtils.changeBuyInfo(orderTicketEntitiesVo.getUserId(), orderTicketEntitiesVo.getEnterIdCode(), orderTicketEntitiesVo.getPerformanceId(), orderTicketEntitiesVo.getTicketId(), 1);
} else {
String orderTicketEntitiesId = IDGenerator.nextSnowId();
orderTicketEntities.setOrderTicketEntitiesId(orderTicketEntitiesId);
orderTicketEntities.setOrderId(orderTicketId);
orderTicketEntities.setUserId(uid);
orderTicketEntities.setTicketId(ticketData.getTicketsId());
orderTicketEntities.setPerformanceId(performanceData.getPerformancesId());
orderTicketEntities.setTimeId(ticketTimesVo.getTimeId());
orderTicketEntities.setEnterType(0);
orderTicketEntities.setEnterName("");
orderTicketEntities.setEnterMobile("");
orderTicketEntities.setEnterIdCode("");
orderTicketEntities.setStatus(KylinTableStatusConst.ENTITIES_STATUS0);
orderTicketEntities.setSysDamai(ticketData.getSysDamai());
orderTicketEntities.setCheckClient("");
orderTicketEntities.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT1);
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(now);
orderTicketEntities.setUpdatedAt(null);
// 生成vo
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = KylinOrderTicketEntitiesVo.getNew();
BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo);
orderTicketEntitiesVo.setPerformanceTitle(performanceData.getTitle());
orderTicketEntitiesVo.setTicketTitle(ticketData.getTitle());
orderTicketEntitiesVo.setUseStart(ticketData.getUseStart());
orderTicketEntitiesVo.setUseEnd(ticketData.getUseEnd());
orderTicketEntitiesVo.setCreatedAt(orderTicketEntities.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderTicketEntitiesVo.setUpdatedAt(null);
orderTicketEntitiesVo.setChangeDate(orderTicketEntities.getCreatedAt());
mongoTemplate.insert(orderTicketEntitiesVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
dataUtils.changeBuyInfo(orderTicketEntitiesVo.getUserId(), orderTicketEntitiesVo.getEnterIdCode(), orderTicketEntitiesVo.getPerformanceId(), orderTicketEntitiesVo.getTicketId(), 1);
}
// 生成vo
KylinOrderTicketVo orderTicketVo = KylinOrderTicketVo.getNew();
orderTicketVo.setOrderTicket(orderTickets);
orderTicketVo.setOrderTicketStatus(orderTicketStatus);
orderTicketVo.setOrderTicketRelation(orderTicketRelations);
orderTicketVo.setPerformanceImg(performanceData.getImgPoster());
orderTicketVo.setTicketTitle(ticketData.getTitle());
orderTicketVo.setUseStart(ticketData.getUseStart());
orderTicketVo.setTimeStart(performanceData.getTimeStart());
orderTicketVo.setOverdueAt(orderTickets.getCreatedAt().plusMinutes(performanceData.getPayCountdownMinute()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderTicketVo.setCreatedAt(orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderTicketVo.setChangeDate(orderTickets.getCreatedAt());
mongoTemplate.insert(orderTicketVo, KylinOrderTicketVo.class.getSimpleName());
orderUtils.resetOrderListVo(uid, 1, orderTicketVo.getOrderTicketsId(), orderTicketVo);
}
}
......@@ -352,4 +352,40 @@ public class DataUtils {
}
return ret;
}
// 获取 用户维度 演出购买数量
public int getUserPBuyCount(String userId, String performanceId) {
try {
return (int) redisUtil.get(KylinRedisConst.USERID_BUY_INFO + userId + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId);
} catch (Exception e) {
return 0;
}
}
// 获取 用户维度 票种购买数量
public int getUserTBuyCount(String userId, String ticketId) {
try {
return (int) redisUtil.get(KylinRedisConst.USERID_BUY_INFO + userId + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId);
} catch (Exception e) {
return 0;
}
}
// 获取 证件维度 演出购买数量
public int getIdCardPBuyCount(String idCard, String performanceId) {
try {
return (int) redisUtil.get(KylinRedisConst.IDCARD_BUY_INFO + idCard + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId);
} catch (Exception e) {
return 0;
}
}
// 获取 证件维度 票种购买数量
public int getIdCardTBuyCount(String idCard, String ticketId) {
try {
return (int) redisUtil.get(KylinRedisConst.IDCARD_BUY_INFO + idCard + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId);
} catch (Exception e) {
return 0;
}
}
}
package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class OrderUtils {
@Autowired
private DataUtils dataUtils;
public String judgeOrderLimit(
int type,
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceLimitCount,
int performanceMemberLimitCount,
int ticketLimitCount,
int ticketMemberLimitCount,
int performanceBuyCount,
int ticketBuyCount,
int memberType,
int isTrueName
) {
Integer[] integers;
if (101 == type) {
integers = festivalOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
} else {
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
}
return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1], isTrueName);
}
public Integer[] roadShowOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
Integer[] array = new Integer[2];
array[0] = performanceBuyCount;
array[1] = ticketBuyCount;
return array;
}
public Integer[] festivalOrderLimit(
String userId,
String idCard,
String performanceId,
String ticketId,
int performanceBuyCount,
int ticketBuyCount,
int isTrueName
) {
if (1 == isTrueName) {//实名
performanceBuyCount += dataUtils.getIdCardPBuyCount(idCard, performanceId);
ticketBuyCount += dataUtils.getIdCardTBuyCount(idCard, ticketId);
} else {//非实名
performanceBuyCount += dataUtils.getUserPBuyCount(userId, performanceId);
ticketBuyCount += dataUtils.getUserTBuyCount(userId, ticketId);
}
Integer[] array = new Integer[2];
array[0] = performanceBuyCount;
array[1] = ticketBuyCount;
return array;
}
public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount, int isTrueName) {
if (memberType == 1 || memberType == 2) {
if (performanceBuyCount > performanceMemberLimitCount && performanceMemberLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "本场") + "演出限购" + performanceMemberLimitCount + "张,已超出";//超过演出维度购买量
}
if (ticketBuyCount > ticketMemberLimitCount && ticketMemberLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "该") + "票种限购" + ticketMemberLimitCount + "张,已超出";//超过票维度购买量
}
} else {//非会员区间
if (performanceBuyCount > performanceLimitCount && performanceLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "本场") + "演出限购" + performanceLimitCount + "张,已超出";//超过演出维度购买量
}
if (ticketBuyCount > ticketLimitCount && ticketLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "该") + "票种限购" + ticketLimitCount + "张,已超出";//超过票维度购买量
}
}
return "";
}
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) {
List<KylinOrderListVo> vo = new ArrayList();
List<KylinOrderListVo> redisVo = new ArrayList();
KylinOrderListVo voItem = KylinOrderListVo.getNew();
KylinOrderTicketVo data;
if (dataSingle == null) {
data = dataUtils.getOrderTicketVo(orderId);
} else {
data = dataSingle;
}
BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = dataUtils.getOrderList(userId);
if (type == 1) {
redisVo.add(voItem);
if (redisData.size() > 0) {
if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
redisData.remove(0);
}
}
}
redisVo.addAll(redisData);
switch (type) {
case 1:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (i == 0) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
if (redisVo.size() == 0) {
vo.add(voItem);
}
dataUtils.setOrderList(userId, vo);
return true;
case 2:
for (int i = 0; i < redisVo.size(); i++) {
if (i == 40) {
break;
}
if (redisVo.get(i).getOrderTicketsId().equals(orderId)) {
vo.add(voItem);
} else {
vo.add(redisVo.get(i));
}
}
dataUtils.setOrderList(userId, vo);
return true;
default:
return false;
}
}
}
......@@ -755,7 +755,9 @@ public final class RedisUtil {
public static void main(String[] args) {
String[] keys = {
"adam:identity:mobile:18518013286"
"kylin:order:id:302624032735805444241994",
"kylin:order:id:302739844787937288909968",
"kylin:order:id:302739847197122562214368"
};
for (String key : keys) {
long value = key.hashCode();
......
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