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

Commit 6469c3c4 authored by Tice's avatar Tice

Merge branch 'dev_merchant' into dev_merchant_tice

# Conflicts:
#	liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/MQConst.java
#	liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/sqlmap.properties
parents f9aad4ce e100b832
...@@ -26,6 +26,8 @@ public class KylinRedisConst { ...@@ -26,6 +26,8 @@ public class KylinRedisConst {
public static final String ORDER_REFUND_BY_ORDER_ID = "kylin:order:refund:orderId:"; public static final String ORDER_REFUND_BY_ORDER_ID = "kylin:order:refund:orderId:";
public static final String ORDER_REFUND = "kylin:order:refund:orderRefundsId:"; public static final String ORDER_REFUND = "kylin:order:refund:orderRefundsId:";
public static final String BUY_NOTICE = "kylin:buyNotice";//购票须知
public static final String ORDER_TRANSFER = "kylin:order:transfer:uid:"; public static final String ORDER_TRANSFER = "kylin:order:transfer:uid:";
//订单导入失败key //订单导入失败key
public static final String ORDER_IMPORT_FAIL = "kylin:order:import:fail:"; public static final String ORDER_IMPORT_FAIL = "kylin:order:import:fail:";
......
...@@ -89,9 +89,13 @@ public class KylinTicketVo { ...@@ -89,9 +89,13 @@ public class KylinTicketVo {
private String qrCodeShowTime; private String qrCodeShowTime;
@ApiModelProperty(value = "会员提前分钟") @ApiModelProperty(value = "会员提前分钟")
private Integer advanceMinuteMember; private Integer advanceMinuteMember;
@ApiModelProperty(value = "总库存")
private Integer totalGeneral;
@ApiModelProperty(value = "总兑换库存")
private Integer totalExchange;
public void setTicket(KylinTickets ticket) { public void setTicket(KylinTickets ticket) {
this.mid=ticket.getMid(); this.mid = ticket.getMid();
this.ticketsId = ticket.getTicketsId(); this.ticketsId = ticket.getTicketsId();
this.title = ticket.getTitle(); this.title = ticket.getTitle();
this.type = ticket.getType(); this.type = ticket.getType();
...@@ -134,7 +138,8 @@ public class KylinTicketVo { ...@@ -134,7 +138,8 @@ public class KylinTicketVo {
this.sysDamai = ticketStatus.getSyncDamai(); this.sysDamai = ticketStatus.getSyncDamai();
this.isShowCode = ticketStatus.getIsShowCode(); this.isShowCode = ticketStatus.getIsShowCode();
this.qrCodeShowTime = DateUtil.Formatter.yyyyMMddHHmmss.format(ticketStatus.getQrCodeShowTime()); this.qrCodeShowTime = DateUtil.Formatter.yyyyMMddHHmmss.format(ticketStatus.getQrCodeShowTime());
this.totalGeneral = ticketStatus.getTotalGeneral();
this.totalExchange = ticketStatus.getTotalExchange();
} }
} }
...@@ -120,6 +120,8 @@ public class KylinPerformanceVo { ...@@ -120,6 +120,8 @@ public class KylinPerformanceVo {
private Integer isRefundVoucher; private Integer isRefundVoucher;
private Integer isRefundExpress; private Integer isRefundExpress;
private Integer auditStatus;
public void setPerformance(KylinPerformances performance) { public void setPerformance(KylinPerformances performance) {
this.mid = performance.getMid(); this.mid = performance.getMid();
this.performancesId = performance.getPerformancesId(); this.performancesId = performance.getPerformancesId();
...@@ -175,6 +177,7 @@ public class KylinPerformanceVo { ...@@ -175,6 +177,7 @@ public class KylinPerformanceVo {
this.isRefundPoundage = performanceStatus.getIsRefundPoundage(); this.isRefundPoundage = performanceStatus.getIsRefundPoundage();
this.isRefundVoucher = performanceStatus.getIsRefundVoucher(); this.isRefundVoucher = performanceStatus.getIsRefundVoucher();
this.isRefundExpress = performanceStatus.getIsRefundExpress(); this.isRefundExpress = performanceStatus.getIsRefundExpress();
this.auditStatus = 0;
} }
public void setPerformanceRelations(KylinPerformanceRelations performanceRelations) { public void setPerformanceRelations(KylinPerformanceRelations performanceRelations) {
......
...@@ -45,7 +45,7 @@ public interface IKylinTicketTimesPartnerService { ...@@ -45,7 +45,7 @@ public interface IKylinTicketTimesPartnerService {
* @param ticketTimesId 场次id * @param ticketTimesId 场次id
* @return boolean * @return boolean
*/ */
ResponseDto<String> deleteTimes(String ticketTimesId); ResponseDto<String> deleteTimes(String ticketTimesId,String performanceId);
/** /**
* 修改场次信息 * 修改场次信息
......
...@@ -51,7 +51,7 @@ public interface IKylinTicketsPartnerService { ...@@ -51,7 +51,7 @@ public interface IKylinTicketsPartnerService {
* @param ticketsId 票id * @param ticketsId 票id
* @return boolean * @return boolean
*/ */
ResponseDto<String> deleteTicket(String ticketsId); ResponseDto<String> deleteTicket(String ticketsId,String performanceId);
/** /**
* 复制票 * 复制票
......
...@@ -75,7 +75,7 @@ public class MQConst { ...@@ -75,7 +75,7 @@ public class MQConst {
public enum SweetQueue { public enum SweetQueue {
ARTISTS_RELATION("sweet:stream:rk.artists.relation", "group.artists.relation", "用户-关系"), ARTISTS_RELATION("sweet:stream:rk.artists.relation", "group.artists.relation", "用户-关系"),
ARTISTS_RELATION_MDSK("sweet:stream:rk.artists.mdsk.relation", "group.artists.mdsk.relation", "用户-关系"), ARTISTS_RELATION_MDSK("sweet:stream:rk.artists.mdsk.relation", "group.artists.mdsk.relation", "用户-关系"),
LUCK_DRAW("sweet:stream:rk.luckDraw", "group.luckDraw", "用户-抽奖"), LUCK_DRAW("sweet:stream:rk.luckDraw", "group.luckDraw", "用户-抽奖"),
ANSWERINSERT_DRAW("sweet:stream:rk.answerInsert", "group.answerInsert", "答案"), ANSWERINSERT_DRAW("sweet:stream:rk.answerInsert", "group.answerInsert", "答案"),
...@@ -144,7 +144,15 @@ public class MQConst { ...@@ -144,7 +144,15 @@ public class MQConst {
// SQL_MERCHANT_FIELD("merchant:stream:rk.sql.field", "group.sql.field", "场地相关") // SQL_MERCHANT_FIELD("merchant:stream:rk.sql.field", "group.sql.field", "场地相关")
// SQL_MERCHANT_SPONSOR("merchant:stream:rk.sql.sponsor", "group.sql.sponsor", "主办相关") // SQL_MERCHANT_SPONSOR("merchant:stream:rk.sql.sponsor", "group.sql.sponsor", "主办相关")
SQL_MERCHANT_FIELD("kylin:stream:rk.performance.lack", "group.performance.lack", "场地相关"), SQL_MERCHANT_FIELD("kylin:stream:rk.performance.lack", "group.performance.lack", "场地相关"),
SQL_MERCHANT_SPONSOR("kylin:stream:rk.performance.lack", "group.performance.lack", "场地相关") SQL_MERCHANT_SPONSOR("kylin:stream:rk.performance.lack", "group.performance.lack", "主办相关"),
SQL_MERCHANT_TICKET_UPDATE("merchant:stream:rk.ticket", "group.ticket", "票种相关"),
SQL_MERCHANT_PERFORMANCE_UPDATE("merchant:stream:rk.performance", "group.performance", "演出相关"),
SQL_MERCHANT_STEP2("merchant:stream:rk.performance.step2", "group.performance.step2", "修改演出第二部"),
SQL_MERCHANT_LINE("merchant:stream:rk.any.line", "group.any.line", "上下线相关"),
SQL_MERCHANT_PERFORMANCE_INSERT("merchant:stream:rk.performance.insert", "group.performance.insert", "创建演出"),
; ;
private final String key; private final String key;
......
package com.liquidnet.service.merchant.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService;
import com.liquidnet.service.merchant.util.InnerUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
/**
* <p>
* 购票须知表 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-18
*/
@Api(tags = "第三方-购票须知", position = 1004)
@RestController
@RequestMapping("partner/buyNotice")
public class KylinBuyNoticeParnterController {
@Autowired
private IKylinBuyNoticePartnerService buyNoticePartnerService;
@Autowired
InnerUtils innerUtils;
@GetMapping(value = "")
@ApiOperation(value = "购票须知列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<KylinBuyNoticeVo>> getBuyNotice() {
PageInfo<KylinBuyNoticeVo> result = buyNoticePartnerService.getBuyNotice();
if (null == result) {
return ResponseDto.failure("查询失败");
} else {
return ResponseDto.success(result.getList());
}
}
@GetMapping(value = "string")
@ApiOperation(value = "购票须知列表String", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> getBuyNoticeJsonString(@RequestParam("buyNoticeId") String buyNoticeId) {
return ResponseDto.success(innerUtils.getBuyNoticeJsonString(Arrays.asList(buyNoticeId.split(","))));
}
}
package com.liquidnet.service.merchant.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.CreateTicketTimesParam;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* <p>
* 场次 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Api(tags = "第三方-场次",position = 1002)
@RestController
@RequestMapping("partner/times")
@Validated
public class KylinTicketTimesPartnerController {
@Autowired
private IKylinTicketTimesPartnerService ticketTimesPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "创建场次",position = 1)
@ApiResponse(response = KylinTicketTimesPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketTimesPartnerVo> createTimesSummary(@RequestBody @Valid CreateTicketTimesParam createTicketTimesParam) {
return ticketTimesPartnerService.createTimesSummary(createTicketTimesParam);
}
@DeleteMapping(value = "")
@ApiOperation(value = "删除场次",position = 2)
@ApiResponse(response = KylinTicketTimesPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<String> deleteTimes(@RequestParam("ticketTimesId") @NotNull(message = "场次ID不能为空") String ticketTimesId,
@RequestParam("performanceId") @NotNull(message = "演出ID不能为空") String performanceId) {
return ticketTimesPartnerService.deleteTimes(ticketTimesId,performanceId);
}
@PutMapping(value = "")
@ApiOperation(value = "修改场次",position = 3)
@ApiResponse(response = KylinTicketTimesPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketTimesPartnerVo> changeTimes(@RequestBody @Valid CreateTicketTimesParam createTicketTimesParam) {
return ticketTimesPartnerService.changeTimes(createTicketTimesParam);
}
@GetMapping(value = "/details")
@ApiOperation(value = "获取场次详情",position = 4)
@ApiResponse(response = KylinTicketTimesPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketTimesPartnerVo> getTimesMongo(@RequestParam("ticketTimesId") @NotNull(message = "场次ID不能为空") String ticketTimesId) {
KylinTicketTimesPartnerVo result = null;
result = ticketTimesPartnerService.getTimesMongo(ticketTimesId);
if (null == result) {
return ResponseDto.failure("查询场次信息失败");
} else {
return ResponseDto.success(result);
}
}
}
package com.liquidnet.service.merchant.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.TicketCreateParam;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* <p>
* 票 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Api(tags = "第三方-票",position = 1003)
@RestController
@RequestMapping("partner/ticket")
@Validated
public class KylinTicketsPartnerController {
@Autowired
private IKylinTicketsPartnerService ticketsPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "创建票务",position = 1 )
@ApiResponse(response = KylinTicketPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketPartnerVo> createTicketSummary(@RequestBody @Valid TicketCreateParam ticketCreateParam) {
return ticketsPartnerService.createTicketSummary(ticketCreateParam);
}
@PutMapping(value = "")
@ApiOperation(value = "修改票务",position = 2)
@ApiResponse(response = KylinTicketPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketPartnerVo> updateTicket(@RequestBody @Valid TicketCreateParam ticketCreateParam) {
return ticketsPartnerService.updateTicket(ticketCreateParam);
}
@DeleteMapping(value = "")
@ApiOperation(value = "删除票务",position = 3)
@ApiResponse( code = 200, message = "接口返回对象参数")
public ResponseDto<String> deleteTicket(@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId,
@RequestParam("performanceId") @NotNull(message = "演出ID不能为空") String performanceId) {
return ticketsPartnerService.deleteTicket(ticketsId,performanceId);
}
@PostMapping(value = "/copy")
@ApiOperation(value = "复制票务",position = 4)
@ApiResponse(response = KylinTicketPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketPartnerVo> copyTicket(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId,
@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId) {
return ticketsPartnerService.copyTicket(performancesId,ticketsId);
}
@GetMapping(value = "/details")
@ApiOperation(value = "获取票务详情",position = 5)
@ApiResponse(response = KylinTicketPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketPartnerVo> getTicketsMongo(@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId) {
KylinTicketPartnerVo result = null;
result = ticketsPartnerService.getTicketsMongo(ticketsId);
if (null == result) {
return ResponseDto.failure("查询票务信息失败");
} else {
return ResponseDto.success(result);
}
}
@PostMapping(value = "/onLine")
@ApiOperation(value = "票上线",position = 6)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> onLine(@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId,
@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return ticketsPartnerService.onLine(ticketsId,performancesId);
}
@PostMapping(value = "/outLine")
@ApiOperation(value = "票下线",position = 7)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> outLine(@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId,
@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return ticketsPartnerService.outLine(ticketsId,performancesId);
}
}
package com.liquidnet.service.merchant.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api(tags = "第三方-演出",position = 1001)
@RestController
@RequestMapping("partner/performance")
@Validated
public class PerformancePartnerController {
@Autowired
private IKylinPerformancesPartnerService performancesPartnerService;
@PostMapping(value = "list")
@ApiOperation(value = "演出列表",position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<PerformancePartnerListDao>> getList(@RequestBody @Valid PerformancePartnerListParam performancePartnerListParam) {
return performancesPartnerService.getList(performancePartnerListParam);
}
@PostMapping(value = "copy")
@ApiOperation(value = "复制演出",position = 6)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Map<String, String>> copyPerformance(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
String result = performancesPartnerService.copyPerformance(performancesId);
if (null == result) {
return ResponseDto.failure("复制失败");
} else {
Map<String, String> map = new HashMap<>();
map.put("performancesId", result);
return ResponseDto.success(map);
}
}
@GetMapping(value = "step1")
@ApiOperation(value = "获取演出第一步数据",position = 3)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PerformancePartnerVo> getStep1(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return performancesPartnerService.getStep1(performancesId);
}
@PostMapping(value = "step1")
@ApiOperation(value = "操作演出第一步",position = 2)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Map<String, String>> Step1(@RequestBody @Valid PerformanceStep1Param performanceStep1Param) {
String result = performancesPartnerService.step1(performanceStep1Param);
if (result.isEmpty()) {
return ResponseDto.failure("操作失败");
} else if (result.equals("不可修改")) {
return ResponseDto.failure(result);
} else {
Map<String, String> map = new HashMap<>();
map.put("performancesId", result);
return ResponseDto.success(map);
}
}
@PostMapping(value = "step2")
@ApiOperation(value = "操作演出第二步",position = 4)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> step2(@RequestBody @Valid PerformanceStep2Param performanceStep2Param) {
return performancesPartnerService.step2(performanceStep2Param);
}
@GetMapping(value = "step2")
@ApiOperation(value = "获取演出第二步数据",position = 5)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PerformanceStep2Param> getStep2(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return performancesPartnerService.getStep2(performancesId);
}
@PostMapping(value = "online")
@ApiOperation(value = "演出上线",position = 7)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> onLinePerformance(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return performancesPartnerService.onLinePerformance(performancesId);
}
@PostMapping(value = "outline")
@ApiOperation(value = "演出下线",position = 8)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> outLinePerformance(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return performancesPartnerService.outLinePerformance(performancesId);
}
@PostMapping(value = "withdraw")
@ApiOperation(value = "演出撤回",position = 9)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> withdraw(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
return performancesPartnerService.withdraw(performancesId);
}
@GetMapping(value = "orderStatistical")
@ApiOperation(value = "演出订单统计",position = 9)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<PerformanceOrderStatisticalVo>> performanceOrderStatisticalList(@RequestParam("performancesId") @NotNull(message = "演出ID不能为空") String performancesId) {
List<PerformanceOrderStatisticalVo> list =performancesPartnerService.getPerformanceOrderStatisticalList(performancesId);
return ResponseDto.success(list);
}
}
package com.liquidnet.service.merchant.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.entity.KylinBuyNotice;
import com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper;
import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService;
import com.liquidnet.service.merchant.util.RedisMerchantUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 购票须知表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-18
*/
@Service
public class KylinBuyNoticePartnerServiceImpl implements IKylinBuyNoticePartnerService {
@Autowired
RedisMerchantUtils merchantUtils;
@Override
public PageInfo<KylinBuyNoticeVo> getBuyNotice() {
List<KylinBuyNoticeVo> buyNoticeList = merchantUtils.getBuyNotice();
PageInfo<KylinBuyNoticeVo> pageInfoTmp = new PageInfo(buyNoticeList);
return pageInfoTmp;
}
}
package com.liquidnet.service.merchant.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerListParam;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.param.PerformanceStep1Param;
import com.liquidnet.service.kylin.dto.param.PerformanceStep2Param;
import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
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.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.*;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.partner.IKylinPerformancesPartnerService;
import com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService;
import com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService;
import com.liquidnet.service.merchant.util.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
* 演出 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-05
*/
@Service
@Slf4j
public class KylinPerformancesPartnerServiceImpl implements IKylinPerformancesPartnerService {
@Autowired
RedisMerchantUtils redisMerchantUtils;
@Autowired
MongoMerchantUtils mongoMerchantUtils;
@Autowired
PerformanceUtils performanceUtils;
@Autowired
QueueUtil queueUtil;
@Autowired
InnerUtils innerUtils;
@Autowired
IKylinTicketsPartnerService ticketsPartnerService;
@Autowired
IKylinTicketTimesPartnerService ticketTimesPartnerService;
@Override
public String step1(PerformanceStep1Param step1Param) {
String result;
// 无 performancesId 则 创建
if (null == step1Param.getPerformancesId()) {
result = createStep1(step1Param);
} else { // 获取 create 数据 status = 0 或 无数据 创建
PerformancePartnerVo createParam = mongoMerchantUtils.getPerformancePartnerVo(step1Param.getPerformancesId());
if (createParam == null) {
result = createStep1(step1Param);
log.info(UserPathDto.setPartnerData(step1Param.getMerchantId(), "createStep1", step1Param, result));
} else {// 修改
result = updateStep1(step1Param);
log.info(UserPathDto.setPartnerData(step1Param.getMerchantId(), "updateStep1", step1Param, result));
}
}
return result;
}
@Override
public String createStep1(PerformanceStep1Param step1Param) {
// 获取 主键id
String performanceId = IDGenerator.nextSnowId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
try {
step1Param.setPerformancesId(performanceId);
PerformancePartnerVo performancePartnerVo = PerformancePartnerVo.getNew();
BeanUtils.copyProperties(step1Param, performancePartnerVo);
performancePartnerVo.setIsTrueName(0);
performancePartnerVo.setLimitCount(0);
performancePartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setIsSubmit(0);
performancePartnerVo.setStatus(0);
performancePartnerVo.setStatusSell(1);
performancePartnerVo.setAuditStatus(-1);
performancePartnerVo.setRoadShowId("0");
performancePartnerVo.setProjectId("0");
performancePartnerVo.setIsShow(1);
performancePartnerVo.setFieldName(redisMerchantUtils.getFieldVo(step1Param.getFieldId()).getName());
performancePartnerVo.setNoticeImage(innerUtils.getBuyNoticeJsonString(step1Param.getNoticeIds()));
mongoMerchantUtils.insertPerformancePartnerVo(performancePartnerVo);
return performanceId;
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData(step1Param.getMerchantId(), "createStep1", step1Param, e));
return null;
}
}
@Override
public String updateStep1(PerformanceStep1Param step1Param) {
// 获取 当前时间 -> 创建时间
LocalDateTime timeNow = LocalDateTime.now();
String performanceId = step1Param.getPerformancesId();
try {
PerformancePartnerVo data = mongoMerchantUtils.getPerformancePartnerVo(performanceId);
if (data == null || data.getAuditStatus() == null || data.getAuditStatus() == 0) {
return "不可修改";
}
step1Param.setPerformancesId(performanceId);
PerformancePartnerVo performancePartnerVo = PerformancePartnerVo.getNew();
BeanUtils.copyProperties(step1Param, performancePartnerVo);
performancePartnerVo.setPerformancesId(performanceId);
performancePartnerVo.setCreatedAt(timeNow.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setUpdatedAt(timeNow.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setIsSubmit(0);
performancePartnerVo.setStatus(0);
performancePartnerVo.setNoticeImage(innerUtils.getBuyNoticeJsonString(step1Param.getNoticeIds()));
performancePartnerVo.setFieldName(redisMerchantUtils.getFieldVo(step1Param.getFieldId()).getName());
if (data != null) { // 有修改记录
performancePartnerVo.setIsTrueName(data.getIsTrueName());
performancePartnerVo.setLimitCount(data.getLimitCount());
performancePartnerVo.setStatusSell(data.getStatusSell());
performancePartnerVo.setRoadShowId(data.getRoadShowId());
performancePartnerVo.setProjectId(data.getProjectId());
mongoMerchantUtils.updatePerformancePartnerVoById(performancePartnerVo);
} else { // 无修改记录
KylinPerformanceVo vo = redisMerchantUtils.getPerformanceVo(performanceId);
performancePartnerVo.setIsTrueName(vo.getIsTrueName());
performancePartnerVo.setLimitCount(vo.getLimitCount());
performancePartnerVo.setStatusSell(vo.getStatusSell());
performancePartnerVo.setRoadShowId(vo.getRoadShowId());
performancePartnerVo.setProjectId(vo.getProjectId());
mongoMerchantUtils.insertPerformancePartnerVo(performancePartnerVo);
}
return performanceId;
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData(step1Param.getMerchantId(), "updateStep1", step1Param, e));
return null;
}
}
@Override
public ResponseDto<PerformancePartnerVo> getStep1(String performancesId) {
PerformancePartnerVo data = mongoMerchantUtils.getPerformancePartnerVo(performancesId);
KylinPerformanceVo vo = redisMerchantUtils.getPerformanceVo(performancesId);
if (data == null) {
return ResponseDto.failure(ErrorMapping.get(20104));
}
if (null != vo) {
data.setStatus(vo.getAppStatus());
}
log.info(UserPathDto.setPartnerData("0", "getStep1", "performancesId=" + performancesId, data));
return ResponseDto.success(data);
}
@Override
public ResponseDto<String> step2(PerformanceStep2Param step2Param) {
ResponseDto<String> result = null;
// 无 performancesId 则 创建
if (!step2Param.getPerformancesId().isEmpty()) { // 获取 create 数据 status = 0 或 无数据 创建
KylinPerformanceVo vo = redisMerchantUtils.getPerformanceVo(step2Param.getPerformancesId());
if (vo == null || vo.getAppStatus() == 0 || vo.getAppStatus() == 4) {
result = createStep2(step2Param);
log.info(UserPathDto.setPartnerData("0", "createStep2", step2Param, result));
} else if (vo.getAppStatus() == 1 || vo.getAppStatus() == 3 || vo.getAppStatus() == 6 || vo.getAppStatus() == 7 || vo.getAppStatus() == 8 || vo.getAppStatus() == 9) {// 修改
result = updateStep2(step2Param);
log.info(UserPathDto.setPartnerData("0", "updateStep2(step2Param", step2Param, result));
} else if (vo.getAppStatus() == 10) {
result = ResponseDto.failure("演出已结束不可修改");
}
}
return result;
}
@Override
public ResponseDto<String> createStep2(PerformanceStep2Param step2Param) {
try {
// 获取 主键id
String performanceId = step2Param.getPerformancesId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
boolean isExistsSubmit = mongoMerchantUtils.isExistsSubmitPerformancePartner(performanceId);
// if (isExistsSubmit) {
// return ResponseDto.failure(ErrorMapping.get(20112));
// }
//演出修改数据
PerformancePartnerVo performancePartnerVo = PerformancePartnerVo.getNew();
performancePartnerVo.setPerformancesId(performanceId);
performancePartnerVo.setIsTrueName(step2Param.getIsTrueName());
performancePartnerVo.setLimitCount(step2Param.getLimitCount());
performancePartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setIsSubmit(step2Param.getIsSubmit());
performancePartnerVo.setStatusSell(1);
// 获取第一步数据
if (step2Param.getIsSubmit() == 1) { // 提交
performancePartnerVo.setStatus(1);
performancePartnerVo.setIsCreateSave(0);
performancePartnerVo.setAuditStatus(0);
mongoMerchantUtils.updatePerformancePartnerVoById(performancePartnerVo);
//提交 票
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVoList = ticketTimesPartnerService.getTimesMongoList(performanceId);
for (KylinTicketTimesPartnerVo ticketTimes : kylinTicketTimesPartnerVoList) {
boolean boolResult = ticketsPartnerService.submitTicketByTimes(ticketTimes.getTicketTimesId(), null);
if (boolResult) {
return ResponseDto.failure(ErrorMapping.get(20114));
}
}
if (kylinTicketTimesPartnerVoList.size() <= 0) {
return ResponseDto.failure(ErrorMapping.get(20113));
} else {
KylinPerformanceMisVo kylinPerformanceMisVo = performanceUtils.getPerformanceMisVo(performanceId);
LocalDateTime now = LocalDateTime.now();
HashMap<String, Object> mapSql = CollectionUtil.mapStringObject();
mapSql.put("isCreateSave", 0);
mapSql.put("rejectTxt", "");
mapSql.put("status", 1);
mapSql.put("updatedAt", createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceUtils.createPerformanceMySql(performanceId, mapSql, kylinPerformanceMisVo, createdAt);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_TICKET_UPDATE.getKey(),
SqlMapping.get("kylin_performances.auditTime",
now, performanceId, now, now
));
}
return ResponseDto.success("操作成功");
} else { //保存
performancePartnerVo.setStatus(0);
performancePartnerVo.setIsCreateSave(1);
performancePartnerVo.setAuditStatus(-1);
mongoMerchantUtils.updatePerformancePartnerVoById(performancePartnerVo);
return ResponseDto.success("保存成功");
}
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "createStep2", step2Param, e));
return ResponseDto.failure(ErrorMapping.get(20115));
}
}
@Override
public ResponseDto<String> updateStep2(PerformanceStep2Param step2Param) {
try {
// 获取 主键id
String performanceId = step2Param.getPerformancesId();
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("kylin_performance.updateStep2"));
sqls.add(SqlMapping.get("kylin_performance_status.updateStep2"));
sqls.add(SqlMapping.get("kylin_ticket.updateStep2"));
sqls.add(SqlMapping.get("kylin_ticket_status.updateStep2"));
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlsDataB = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlsDataC = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlsDataD = CollectionUtil.linkedListObjectArr();
LocalDateTime now = LocalDateTime.now();
// 获取 当前时间 -> 创建时间
boolean isExistsSubmit = mongoMerchantUtils.isExistsSubmitPerformancePartner(performanceId);
if (isExistsSubmit) {
return ResponseDto.failure(ErrorMapping.get(20112));
}
//演出修改数据
PerformancePartnerVo performancePartnerVo = PerformancePartnerVo.getNew();
performancePartnerVo.setPerformancesId(performanceId);
performancePartnerVo.setIsTrueName(step2Param.getIsTrueName());
performancePartnerVo.setLimitCount(step2Param.getLimitCount());
performancePartnerVo.setCreatedAt(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setUpdatedAt(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setIsSubmit(step2Param.getIsSubmit());
// 获取第一步数据
if (step2Param.getIsSubmit() == 1) { // 提交
if (performanceUtils.judgeIsAudit(performanceId)) {
performancePartnerVo.setAuditStatus(0);
performancePartnerVo.setStatus(1);
} else {
performancePartnerVo.setAuditStatus(1);
performancePartnerVo.setStatus(9);
}
mongoMerchantUtils.updatePerformancePartnerVoById(performancePartnerVo);
//提交 票
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVoList = ticketTimesPartnerService.getTimesMongoList(performanceId);
for (KylinTicketTimesPartnerVo ticketTimes : kylinTicketTimesPartnerVoList) {
boolean boolResult = ticketsPartnerService.submitTicketByTimes(ticketTimes.getTicketTimesId(), performancePartnerVo.getStatus());
if (boolResult) {
return ResponseDto.failure(ErrorMapping.get(20114));
}
}
if (kylinTicketTimesPartnerVoList.size() <= 0) {
return ResponseDto.failure(ErrorMapping.get(20113));
} else {
KylinPerformanceMisVo kylinPerformanceMisVo = performanceUtils.getPerformanceMisVo(performanceId);
HashMap<String, Object> mapSql = CollectionUtil.mapStringObject();
mapSql.put("rejectTxt", "");
mapSql.put("status", performancePartnerVo.getStatus());
mapSql.put("updatedAt", now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
sqlsDataA.add(new Object[]{
now, kylinPerformanceMisVo.getNoticeImage(), performanceId
});
sqlsDataB.add(new Object[]{
performancePartnerVo.getAuditStatus(), step2Param.getIsTrueName(), step2Param.getLimitCount(), performanceId
});
redisMerchantUtils.setPerformanceIsTrueName(performanceId, step2Param.getIsTrueName());
//提示:票种价格、售票时间、票种购票限制 直接生效 (演出购票限制,购票须知 演出是否实名 票种缺货登记 票种是否电子票 票种是否快递票 票种最低购买张数 票种是否显示二维码)
List<TicketTimesTicketCreatePartnerVo> timeList = kylinPerformanceMisVo.getTicketTimes();
for (TicketTimesTicketCreatePartnerVo timesItem : timeList) {
List<KylinTicketPartnerVo> ticketList = timesItem.getTicket();
for (KylinTicketPartnerVo ticketItem : ticketList) {
//修改 redis库存
if (redisMerchantUtils.hasKey(KylinRedisConst.PERFORMANCES_INVENTORY + ticketItem.getTicketsId() + ":" + KylinRedisConst.SURPLUS_GENERAL)) {
KylinPerformanceVo vo = redisMerchantUtils.getPerformanceVo(performanceId);
KylinTicketTimesVo ticketTimesData = null;
KylinTicketVo ticketData = null;
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
for (int y = 0; y < ticketTimesData.getTicketList().size(); y++) {
KylinTicketVo ticketStatus = ticketTimesData.getTicketList().get(y);
if (ticketStatus.getTicketsId().equals(ticketItem.getTicketsId())) {
ticketData = ticketStatus;
break;
}
break;
}
}
int changeGeneral = ticketItem.getTotalGeneral() - ticketData.getTotalGeneral();
int changeExchange = ticketItem.getTotalExchange() - ticketData.getTotalExchange();
redisMerchantUtils.changeSurplusGeneral(ticketItem.getTicketsId(), changeGeneral);
redisMerchantUtils.changeSurplusExchange(ticketItem.getTicketsId(), changeExchange);
}
//修改 mysql 售卖时间
sqlsDataC.add(new Object[]{
DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeEnd()), DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeStart()),
DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeEndExpress()), kylinPerformanceMisVo.getPayCountdownMinute(),
ticketItem.getPrice(), ticketItem.getTicketsId()
});
//修改 mysql 购票限购、库存
sqlsDataD.add(new Object[]{
ticketItem.getTotalExchange(), ticketItem.getTotalGeneral(), kylinPerformanceMisVo.getIsTrueName(),
ticketItem.getLimitCount(), ticketItem.getIsLackRegister(), ticketItem.getIsExpress(),
ticketItem.getIsElectronic(), ticketItem.getCounts(), ticketItem.getIsShowCode(),
DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getQrCodeShowTime()), ticketItem.getTicketsId()
});
}
}
String sqlData = SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_STEP2.getKey(),
sqlData);
performanceUtils.performanceVoStatus(performanceId);
}
return ResponseDto.success("操作完成");
} else { //保存
performancePartnerVo.setStatus(0);
performancePartnerVo.setAuditStatus(-1);
mongoMerchantUtils.updatePerformancePartnerVoById(performancePartnerVo);
return ResponseDto.success("保存成功");
}
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "updateStep2", step2Param, e));
return ResponseDto.failure(ErrorMapping.get(20115));
}
}
@Override
public ResponseDto<PerformanceStep2Param> getStep2(String performancesId) {
PerformancePartnerVo data = mongoMerchantUtils.getPerformancePartnerVo(performancesId);
if (data == null) {
return ResponseDto.failure(ErrorMapping.get(20104));
}
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVos = ticketTimesPartnerService.getTimesMongoList(performancesId);
List<TicketTimesTicketCreatePartnerVo> ticketTimesTicketCreatePartnerVoList = new ArrayList();
for (KylinTicketTimesPartnerVo ticketTimes : kylinTicketTimesPartnerVos) {
TicketTimesTicketCreatePartnerVo ticketTimesTicketCreatePartnerVo = TicketTimesTicketCreatePartnerVo.getNew();
BeanUtils.copyProperties(ticketTimes, ticketTimesTicketCreatePartnerVo);
List<KylinTicketPartnerVo> kylinTicketPartnerVos = ticketsPartnerService.getTicketMongoList(ticketTimes.getTicketTimesId());
ticketTimesTicketCreatePartnerVo.setTicket(kylinTicketPartnerVos);
ticketTimesTicketCreatePartnerVoList.add(ticketTimesTicketCreatePartnerVo);
}
PerformanceStep2Param performanceStep2Param = PerformanceStep2Param.getNew();
BeanUtils.copyProperties(data, performanceStep2Param);
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performancesId);
if (null != vo) {
performanceStep2Param.setStatus(vo.getAppStatus());
} else {
performanceStep2Param.setStatus(-1);
}
performanceStep2Param.setTicketTimes(ticketTimesTicketCreatePartnerVoList);
log.info(UserPathDto.setPartnerData("0", "getStep2", "performancesId=" + performancesId, performanceStep2Param));
return ResponseDto.success(performanceStep2Param);
}
@Override
public ResponseDto<String> onLinePerformance(String performancesId) {
try {
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("kylin_performances_status.onLine"));
sqls.add(SqlMapping.get("kylin_ticket_status.onLine"));
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlsDataB = CollectionUtil.linkedListObjectArr();
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performancesId);
if (!(vo.getAppStatus() == 3 || vo.getAppStatus() == 7)) {
return ResponseDto.failure(ErrorMapping.get(20110));
}
// mysql
LocalDateTime updatedAt = LocalDateTime.now();
sqlsDataA.add(new Object[]{
6, updatedAt, performancesId
});
//场次
List<KylinTicketTimesVo> ticketTimeVo = vo.getTicketTimeList();
for (KylinTicketTimesVo ticketTimeItem : ticketTimeVo) {
//票
List<KylinTicketVo> ticketVo = ticketTimeItem.getTicketList();
for (KylinTicketVo ticketItem : ticketVo) {
sqlsDataB.add(new Object[]{
9, updatedAt, ticketItem.getTicketsId()
});
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setTicketsId(ticketItem.getTicketsId());
ticketPartnerVo.setStatus(9);
ticketPartnerVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
mongoMerchantUtils.updateSubmitTicketVoById(ticketPartnerVo);
}
}
String sqlData = SqlMapping.gets(sqls, sqlsDataA, sqlsDataB);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_LINE.getKey(),
sqlData);
// 判断状态
performanceUtils.performanceVoStatus(performancesId);
log.info(UserPathDto.setPartnerData("0", "onLinePerformance", "performancesId=" + performancesId, "上线成功"));
return ResponseDto.success("上线成功");
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "onLinePerformance", "performancesId=" + performancesId, e));
return ResponseDto.failure(ErrorMapping.get(20108));
}
}
@Override
public ResponseDto<String> outLinePerformance(String performancesId) {
try {
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performancesId);
if (vo.getAppStatus() >= 3 && vo.getAppStatus() != 4 && vo.getAppStatus() != 7) {//未提审||被拒绝 && performanceStatusData.getStatus() != 10
LocalDateTime updatedAt = LocalDateTime.now();
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_LINE.getKey(),
SqlMapping.get("kylin_performances_status.outLine",
7, updatedAt, performancesId
));
performanceUtils.performanceVoStatus(performancesId);
log.info(UserPathDto.setPartnerData("0", "outLinePerformance", "performancesId=" + performancesId, "下线成功"));
return ResponseDto.success("下线成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20111));
}
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "outLinePerformance", "outLinePerformance=" + performancesId, e));
return ResponseDto.failure(ErrorMapping.get(20109));
}
}
@Override
public String copyPerformance(String performancesId) {
try {
PerformancePartnerVo performancePartnerVo = mongoMerchantUtils.getPerformancePartnerVo(performancesId);
//复制演出
performancePartnerVo.setPerformancesId(IDGenerator.nextSnowId());
performancePartnerVo.setStatus(0);
performancePartnerVo.setAuditStatus(-1);
performancePartnerVo.setIsCreateSave(1);
mongoMerchantUtils.insertPerformancePartnerVo(performancePartnerVo);
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVos = mongoMerchantUtils.getTicketTimesPartnerVoList(performancesId);
for (KylinTicketTimesPartnerVo timeItem : kylinTicketTimesPartnerVos) {
//复制场次
String timesId = timeItem.getTicketTimesId();
timeItem.setTicketTimesId(IDGenerator.nextSnowId());
timeItem.setPerformancesId(performancePartnerVo.getPerformancesId());
mongoMerchantUtils.insertTicketTimesPartnerVo(timeItem);
List<KylinTicketPartnerVo> kylinTicketPartnerVos = mongoMerchantUtils.getTicketPartnerVoList(timesId);
for (KylinTicketPartnerVo ticketItem : kylinTicketPartnerVos) {
//复制票
ticketItem.setStatus(0);
ticketItem.setTimesId(timeItem.getTicketTimesId());
ticketItem.setTicketsId(IDGenerator.nextSnowId());
mongoMerchantUtils.insertTicketPartnerVo(ticketItem);
}
}
log.info(UserPathDto.setPartnerData("0", "copyPerformance", "performancesId=" + performancesId, performancePartnerVo.getPerformancesId()));
return performancePartnerVo.getPerformancesId();
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "copyPerformance", "performancesId=" + performancesId, e));
return null;
}
}
@Override
public ResponseDto<PageInfo<PerformancePartnerListDao>> getList(PerformancePartnerListParam performancePartnerListParam) {
int status = performancePartnerListParam.getStatus();
int page = performancePartnerListParam.getPage() - 1;
int size = performancePartnerListParam.getSize();
PageInfo<PerformancePartnerListDao> pageInfoTmp;
if (status == 0) {//未发布演出
// 排序 分页
Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "createdAt"));
//条件
Criteria criteria = Criteria.where("status").is(status).and("isCreateSave").is(1).and("merchantId").is(performancePartnerListParam.getMerchantId());
if (!performancePartnerListParam.getTitle().isEmpty()) {
criteria.and("title").regex(".*?\\" + performancePartnerListParam.getTitle());
}
Query query = Query.query(criteria);
// 查询总数
long count = mongoMerchantUtils.getPerformancePartnerCount(query);
List<PerformancePartnerVo> performancePartnerVo = mongoMerchantUtils.getPerformancePartnerList(query);
query.with(pageable);
//处理Vo
List<KylinPerformancePartnerListVo> voList = new ArrayList<>();
for (PerformancePartnerVo item : performancePartnerVo) {
KylinPerformancePartnerListVo voData = KylinPerformancePartnerListVo.getNew();
voData.setStatus0Data(item);
voList.add(voData);
}
pageInfoTmp = new PageInfo(voList);
pageInfoTmp.setTotal(count);
} else {//演出列表
try {
PageHelper.startPage(performancePartnerListParam.getPage(), performancePartnerListParam.getSize());
//TODO 待做
// List<PerformancePartnerListDao> voList = performancesMapper.partnerPerformanceList(BeanUtil.convertBeanToMap(performancePartnerListParam));
// for (int i = 0; i < voList.size(); i++) {
// PerformancePartnerListDao vo = voList.get(i);
// if (vo.getStatus() >= 6 && vo.getStatus() != 7) {
// if (DateUtil.compareStrDay(vo.getTimeSell(), DateUtil.getNowTime()) > 0) {//未开始
// vo.setStatus(9);
// } else if (DateUtil.compareStrDay(vo.getTimeStop(), DateUtil.getNowTime()) < 0) {//已结束
// vo.setStatus(10);
// } else {
// vo.setStatus(6);
// }
// }
// }
pageInfoTmp = new PageInfo(null);
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20104));
}
}
return ResponseDto.success(pageInfoTmp);
}
@Override
public ResponseDto<String> withdraw(String performancesId) {
try {
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performancesId);
if (vo != null && vo.getAuditStatus() == 0) {
PerformancePartnerVo performancePartnerVo = PerformancePartnerVo.getNew();
performancePartnerVo.setPerformancesId(performancesId);
if (vo.getAppStatus() >= 3) {//通过审核
performancePartnerVo.setAuditStatus(1);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_PERFORMANCE_UPDATE.getKey(),
SqlMapping.get("kylin_performances_status.withdraw",
1, performancesId
));
} else if (vo.getAppStatus() == 4 || vo.getAppStatus() == 1) {//未通过审核
performancePartnerVo.setAuditStatus(-1);
performancePartnerVo.setStatus(0);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_PERFORMANCE_UPDATE.getKey(),
SqlMapping.get("kylin_performances_status.withdraw2",
-1, 0, performancesId
));
} else {
performancePartnerVo.setAuditStatus(2);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_PERFORMANCE_UPDATE.getKey(),
SqlMapping.get("kylin_performances_status.withdraw",
2, performancesId
));
}
mongoMerchantUtils.updatePerformancePartnerVoById(performancePartnerVo);
log.info(UserPathDto.setPartnerData("0", "withdraw", "performancesId=" + performancesId, "撤回成功"));
return ResponseDto.success("撤回成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20116));
}
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "withdraw", performancesId, e));
return ResponseDto.failure(ErrorMapping.get(20117));
}
}
@Override
public List<PerformanceOrderStatisticalVo> getPerformanceOrderStatisticalList(String performancesId) {
// PerformanceOrderStatisticalDao countBean = PerformanceOrderStatisticalDao.getNew();
// countBean.setTitle("总计:");
//
// List<PerformanceOrderStatisticalVo> voList = new ArrayList<>();
// List<PerformanceOrderStatisticalDao> dtoList = performancesMapper.getPerformanceOrderStatisticalList(performancesId);
// dtoList.forEach(dto -> {
// PerformanceOrderStatisticalVo vo = PerformanceOrderStatisticalVo.getNew();
// BeanUtil.copy(dto, vo);
// voList.add(vo);
//
// countBean.setTotalGeneral(countBean.getTotalGeneral().add(dto.getTotalGeneral()));
// countBean.setSaleGeneral(countBean.getSaleGeneral().add(dto.getSaleGeneral()));
// countBean.setSurplusGeneral(countBean.getSurplusGeneral().add(dto.getSurplusGeneral()));
// countBean.setTotalSalePrice(countBean.getTotalSalePrice().add(dto.getTotalSalePrice()));
// countBean.setTotalExchange(countBean.getTotalExchange().add(dto.getTotalExchange()));
// countBean.setTotalRefundGeneral(countBean.getTotalRefundGeneral().add(dto.getTotalRefundGeneral()));
// countBean.setTotalRefundPrice(countBean.getTotalRefundPrice().add(dto.getTotalRefundPrice()));
// countBean.setTotalMemberNumber(countBean.getTotalMemberNumber().add(dto.getTotalMemberNumber()));
// countBean.setTotalPayingNumber(countBean.getTotalPayingNumber().add(dto.getTotalPayingNumber()));
// countBean.setTotalBuyUsers(dto.getTotalBuyUsers());
// });
// PerformanceOrderStatisticalVo vo = PerformanceOrderStatisticalVo.getNew();
// BeanUtil.copy(countBean, vo);
// voList.add(vo);
return null;
}
}
package com.liquidnet.service.merchant.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.kylin.dto.param.CreateTicketTimesParam;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.mapper.KylinTicketTimesMapper;
import com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService;
import com.liquidnet.service.merchant.util.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
* <p>
* 场次 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
@Slf4j
public class KylinTicketTimesPartnerServiceImpl implements IKylinTicketTimesPartnerService {
@Autowired
RedisMerchantUtils redisMerchantUtils;
@Autowired
MongoMerchantUtils mongoMerchantUtils;
@Autowired
PerformanceUtils performanceUtils;
@Autowired
QueueUtil queueUtil;
@Override
public ResponseDto<KylinTicketTimesPartnerVo> createTimesSummary(CreateTicketTimesParam createTicketTimesParam) {
ResponseDto<KylinTicketTimesPartnerVo> ticketTimesPartnerVo;
//获取演出状态
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(createTicketTimesParam.getPerformancesId());
if (null == vo) {
ticketTimesPartnerVo = createTimes(createTicketTimesParam);
log.info(UserPathDto.setPartnerData("0", "createTimes", createTicketTimesParam, ticketTimesPartnerVo));
} else if (vo.getAuditStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get(20101));
} else if (vo.getAppStatus() >= 3 && vo.getAppStatus() != 4) {//未被拒绝 且 通过审核的演出
ticketTimesPartnerVo = addNewTimes(createTicketTimesParam);
log.info(UserPathDto.setPartnerData("0", "addNewTimes", createTicketTimesParam, ticketTimesPartnerVo));
} else {
ticketTimesPartnerVo = createTimes(createTicketTimesParam);
log.info(UserPathDto.setPartnerData("0", "createTimes", createTicketTimesParam, ticketTimesPartnerVo));
}
return ticketTimesPartnerVo;
}
@Override
public ResponseDto<KylinTicketTimesPartnerVo> createTimes(CreateTicketTimesParam createTicketTimesParam) {
try {
// 获取 主键id
String ticketTimesId = IDGenerator.nextSnowId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
// 标题
String title = "";
String useStart;
String useEnd;
if (createTicketTimesParam.getType() == 1) {
useStart = createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
useEnd = createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
title = useStart;
} else {
useStart = createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
useEnd = createTicketTimesParam.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
title = useStart + "-" + useEnd;
}
// mongo 操作
KylinTicketTimesPartnerVo kylinTicketTimesPartnerVo = KylinTicketTimesPartnerVo.getNew();
kylinTicketTimesPartnerVo.setTicketTimesId(ticketTimesId);
kylinTicketTimesPartnerVo.setUseStart(createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
if (createTicketTimesParam.getType() == 2) {
kylinTicketTimesPartnerVo.setUseEnd(createTicketTimesParam.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
} else {
kylinTicketTimesPartnerVo.setUseEnd(createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
kylinTicketTimesPartnerVo.setStatus(1);
kylinTicketTimesPartnerVo.setTitle(title);
kylinTicketTimesPartnerVo.setPerformancesId(createTicketTimesParam.getPerformancesId());
kylinTicketTimesPartnerVo.setType(createTicketTimesParam.getType());
kylinTicketTimesPartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
mongoMerchantUtils.insertTicketTimesPartnerVo(kylinTicketTimesPartnerVo);
return ResponseDto.success(kylinTicketTimesPartnerVo);
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "createTimes", createTicketTimesParam, e));
return ResponseDto.failure(ErrorMapping.get(20105));
}
}
@Override
public ResponseDto<KylinTicketTimesPartnerVo> addNewTimes(CreateTicketTimesParam createTicketTimesParam) {
try {
// 获取 主键id
String ticketTimesId = IDGenerator.nextSnowId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
// 标题
String title = "";
String useStart = createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
String useEnd = createTicketTimesParam.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
if (createTicketTimesParam.getType() == 1) {
if (!useStart.split(" ")[0].equals(useEnd.split(" ")[0])) {
return ResponseDto.failure(ErrorMapping.get(20118));
}
title = useStart;
} else {
title = useStart + "-" + useEnd;
}
// mongo 操作
KylinTicketTimesPartnerVo kylinTicketTimesPartnerVo = KylinTicketTimesPartnerVo.getNew();
kylinTicketTimesPartnerVo.setTicketTimesId(ticketTimesId);
kylinTicketTimesPartnerVo.setUseStart(createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketTimesPartnerVo.setUseEnd(createTicketTimesParam.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketTimesPartnerVo.setStatus(-1);
kylinTicketTimesPartnerVo.setTitle(title);
kylinTicketTimesPartnerVo.setPerformancesId(createTicketTimesParam.getPerformancesId());
kylinTicketTimesPartnerVo.setType(createTicketTimesParam.getType());
kylinTicketTimesPartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
mongoMerchantUtils.insertTicketTimesPartnerVo(kylinTicketTimesPartnerVo);
return ResponseDto.success(kylinTicketTimesPartnerVo);
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "addNewTimes", createTicketTimesParam, e));
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<String> deleteTimes(String ticketTimesId, String performanceId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketTimesPartnerVo data = mongoMerchantUtils.getTicketTimesPartnerVo(ticketTimesId);
if (data.getStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get(20106));
}
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performanceId);
KylinTicketTimesVo ticketTimesData = null;
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
ticketTimesData = vo.getTicketTimeList().get(x);
if (ticketTimesData.getTimeId().equals(ticketTimesId)) {
break;
}
}
if (ticketTimesData != null) {
if (vo.getAuditStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
if (vo.getAppStatus() == 0 || vo.getAppStatus() == 4) {//未提审||被拒绝
KylinTicketTimesPartnerVo ticketTimesPartnerVo = KylinTicketTimesPartnerVo.getNew();
ticketTimesPartnerVo.setTicketTimesId(ticketTimesId);
ticketTimesPartnerVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketTimesPartnerVo.setStatus(0);
mongoMerchantUtils.insertTicketTimesPartnerVo(ticketTimesPartnerVo);
log.info(UserPathDto.setPartnerData("0", "deleteTimes", "ticketTimesId=" + ticketTimesId, "删除成功"));
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20106));
}
} else {
mongoMerchantUtils.delTicketTimesPartnerVo(ticketTimesId);
return ResponseDto.success();
}
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "deleteTimes", "ticketTimesId=" + ticketTimesId, e));
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
@Override
public ResponseDto<KylinTicketTimesPartnerVo> changeTimes(CreateTicketTimesParam createTicketTimesParam) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
String title = "";
if (createTicketTimesParam.getType() == 1) {
title = createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
} else {
title = createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")) + "-" + createTicketTimesParam.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
}
createTicketTimesParam.setTitle(title);
// mongo 操作
KylinTicketTimesPartnerVo kylinTicketTimesPartnerVo = KylinTicketTimesPartnerVo.getNew();
BeanUtils.copyProperties(createTicketTimesParam, kylinTicketTimesPartnerVo);
kylinTicketTimesPartnerVo.setTicketTimesId(createTicketTimesParam.getTicketTimesId());
kylinTicketTimesPartnerVo.setTicketTimesId(createTicketTimesParam.getTicketTimesId());
kylinTicketTimesPartnerVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketTimesPartnerVo.setUseStart(createTicketTimesParam.getUseStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketTimesPartnerVo.setUseEnd(createTicketTimesParam.getUseEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketTimesPartnerVo.setStatus(null);
mongoMerchantUtils.updateTicketTimesPartnerVo(kylinTicketTimesPartnerVo);
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setTicketsId(createTicketTimesParam.getTicketTimesId());
ticketPartnerVo.setUseEnd(kylinTicketTimesPartnerVo.getUseEnd());
ticketPartnerVo.setUseStart(kylinTicketTimesPartnerVo.getUseStart());
mongoMerchantUtils.updateTicketPartnerVo(ticketPartnerVo);
log.info(UserPathDto.setPartnerData("0", "changeTimes", createTicketTimesParam, "SUCCESS"));
//JsonUtils.fromJson(doc.toJson(), KylinTicketTimesPartnerVo.class)
return ResponseDto.success(null);
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "changeTimes", createTicketTimesParam, e));
return ResponseDto.failure(ErrorMapping.get(20103));
}
}
@Override
public List<KylinTicketTimesPartnerVo> getTimesMongoList(String performancesId) {
return mongoMerchantUtils.getTimesMongoList(performancesId);
}
@Override
public KylinTicketTimesPartnerVo getTimesMongo(String timesId) {
return mongoMerchantUtils.getTimesMongo(timesId);
}
}
package com.liquidnet.service.merchant.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.param.TicketCreateParam;
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.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService;
import com.liquidnet.service.merchant.util.*;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
* 票 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
@Slf4j
public class KylinTicketsPartnerServiceImpl implements IKylinTicketsPartnerService {
@Autowired
RedisMerchantUtils redisMerchantUtils;
@Autowired
MongoMerchantUtils mongoMerchantUtils;
@Autowired
PerformanceUtils performanceUtils;
@Autowired
QueueUtil queueUtil;
@Override
public ResponseDto<KylinTicketPartnerVo> createTicketSummary(TicketCreateParam ticketCreateParam) {
ResponseDto<KylinTicketPartnerVo> ticketPartnerVo;
//获取演出状态
KylinTicketTimesPartnerVo timesPartnerVo = mongoMerchantUtils.getTicketTimesPartnerVo(ticketCreateParam.getTimesId());
if (null != timesPartnerVo) {
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(timesPartnerVo.getPerformancesId());
if (null == vo) {
ticketPartnerVo = createTicket(ticketCreateParam);
log.info(UserPathDto.setPartnerData("0", "createTicket", ticketCreateParam, ticketPartnerVo));
} else if (vo.getAppStatus() >= 3 && vo.getAppStatus() != 4) {//未被拒绝 且 通过审核的演出
ticketPartnerVo = addNewTicket(ticketCreateParam);
log.info(UserPathDto.setPartnerData("0", "addNewTicket", ticketCreateParam, ticketPartnerVo));
} else {
ticketPartnerVo = createTicket(ticketCreateParam);
log.info(UserPathDto.setPartnerData("0", "createTicket", ticketCreateParam, ticketPartnerVo));
}
} else {
ticketPartnerVo = createTicket(ticketCreateParam);
log.info(UserPathDto.setPartnerData("0", "createTicket", ticketCreateParam, ticketPartnerVo));
}
return ticketPartnerVo;
}
@Override
public ResponseDto<KylinTicketPartnerVo> createTicket(TicketCreateParam ticketCreateParam) {
try {
// 获取 主键id
String ticketsId = IDGenerator.nextSnowId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
ticketCreateParam.setTicketsId(ticketsId);
// mongo 操作
KylinTicketPartnerVo kylinTicketPartnerVo = KylinTicketPartnerVo.getNew();
BeanUtils.copyProperties(ticketCreateParam, kylinTicketPartnerVo);
kylinTicketPartnerVo.setTicketsId(ticketsId);
kylinTicketPartnerVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(createdAt));
kylinTicketPartnerVo.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmss.format(ticketCreateParam.getTimeStart()));
kylinTicketPartnerVo.setTimeEnd(ticketCreateParam.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
KylinTicketTimesPartnerVo kylinTicketTimesPartnerVo = mongoMerchantUtils.getTicketTimesPartnerVo(ticketCreateParam.getTimesId());
kylinTicketPartnerVo.setUseStart(kylinTicketTimesPartnerVo.getUseStart());
kylinTicketPartnerVo.setUseEnd(kylinTicketTimesPartnerVo.getUseEnd());
kylinTicketPartnerVo.setType(kylinTicketTimesPartnerVo.getType());
kylinTicketPartnerVo.setStatus(0);
kylinTicketPartnerVo.setDefault();
if (ticketCreateParam.getIsExpress() == 1) {
kylinTicketPartnerVo.setDescribeExpress(ticketCreateParam.getDescribeExpress() == null ? "" : ticketCreateParam.getDescribeExpress());
} else {
kylinTicketPartnerVo.setDescribeExpress("");
}
if (ticketCreateParam.getIsElectronic() == 1) {
kylinTicketPartnerVo.setDescribeElectronic(ticketCreateParam.getDescribeElectronic() == null ? "" : ticketCreateParam.getDescribeElectronic());
} else {
kylinTicketPartnerVo.setDescribeElectronic("");
}
if (ticketCreateParam.getIsExpress() == 1) {
kylinTicketPartnerVo.setTimeEndExpress(ticketCreateParam.getTimeEndExpress().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
if (ticketCreateParam.getIsShowCode() == 1) {
kylinTicketPartnerVo.setQrCodeShowTime(ticketCreateParam.getQrCodeShowTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
mongoMerchantUtils.insertTicketPartnerVo(kylinTicketPartnerVo);
return ResponseDto.success(kylinTicketPartnerVo);
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "createTicket", ticketCreateParam, e));
return ResponseDto.failure(ErrorMapping.get(20105));
}
}
@Override
public ResponseDto<KylinTicketPartnerVo> addNewTicket(TicketCreateParam ticketCreateParam) {
try {
// 获取 主键id
String ticketsId = IDGenerator.nextSnowId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
ticketCreateParam.setTicketsId(ticketsId);
// mongo 操作
KylinTicketPartnerVo kylinTicketPartnerVo = KylinTicketPartnerVo.getNew();
BeanUtils.copyProperties(ticketCreateParam, kylinTicketPartnerVo);
kylinTicketPartnerVo.setTicketsId(ticketsId);
kylinTicketPartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTimeStart(ticketCreateParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTimeEnd(ticketCreateParam.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
KylinTicketTimesPartnerVo kylinTicketTimesPartnerVo = mongoMerchantUtils.getTicketTimesPartnerVo(ticketCreateParam.getTimesId());
kylinTicketPartnerVo.setUseStart(kylinTicketTimesPartnerVo.getUseStart());
kylinTicketPartnerVo.setUseEnd(kylinTicketTimesPartnerVo.getUseEnd());
kylinTicketPartnerVo.setType(kylinTicketTimesPartnerVo.getType());
if (ticketCreateParam.getIsExpress() == 1) {
kylinTicketPartnerVo.setDescribeExpress(ticketCreateParam.getDescribeExpress() == null ? "" : ticketCreateParam.getDescribeExpress());
} else {
kylinTicketPartnerVo.setDescribeExpress("");
}
if (ticketCreateParam.getIsElectronic() == 1) {
kylinTicketPartnerVo.setDescribeElectronic(ticketCreateParam.getDescribeElectronic() == null ? "" : ticketCreateParam.getDescribeElectronic());
} else {
kylinTicketPartnerVo.setDescribeElectronic("");
}
kylinTicketPartnerVo.setStatus(-2);
kylinTicketPartnerVo.setDefault();
if (ticketCreateParam.getIsExpress() == 1) {
kylinTicketPartnerVo.setTimeEndExpress(ticketCreateParam.getTimeEndExpress().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
if (ticketCreateParam.getIsShowCode() == 1) {
kylinTicketPartnerVo.setQrCodeShowTime(ticketCreateParam.getQrCodeShowTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
mongoMerchantUtils.insertTicketPartnerVo(kylinTicketPartnerVo);
return ResponseDto.success(kylinTicketPartnerVo);
} catch (Exception e) {
log.info(UserPathDto.setPartnerData("0", "addNewTicket", ticketCreateParam, e));
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<KylinTicketPartnerVo> updateTicket(TicketCreateParam ticketCreateParam) {
try {
KylinTicketTimesPartnerVo ticketTimeRelation = mongoMerchantUtils.getTicketTimesPartnerVo(ticketCreateParam.getTimesId());
PerformancePartnerVo data = mongoMerchantUtils.getPerformancePartnerVo(ticketTimeRelation.getPerformancesId());
if (data == null || data.getAuditStatus() == null || data.getAuditStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get("20112"));
}
String ticketId = ticketCreateParam.getTicketsId();
LocalDateTime updatedAt = LocalDateTime.now();
// mongo 操作
KylinTicketPartnerVo kylinTicketPartnerVo = KylinTicketPartnerVo.getNew();
BeanUtils.copyProperties(ticketCreateParam, kylinTicketPartnerVo);
kylinTicketPartnerVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTimeStart(ticketCreateParam.getTimeStart().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTimeEnd(ticketCreateParam.getTimeEnd().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTimesId(null);
kylinTicketPartnerVo.setStatus(null);
if (ticketCreateParam.getIsExpress() == 1) {
kylinTicketPartnerVo.setDescribeExpress(ticketCreateParam.getDescribeExpress() == null ? "" : ticketCreateParam.getDescribeExpress());
}
if (ticketCreateParam.getIsElectronic() == 1) {
kylinTicketPartnerVo.setDescribeElectronic(ticketCreateParam.getDescribeElectronic() == null ? "" : ticketCreateParam.getDescribeElectronic());
}
kylinTicketPartnerVo.setDefault();
if (ticketCreateParam.getIsExpress() == 1) {
kylinTicketPartnerVo.setTimeEndExpress(ticketCreateParam.getTimeEndExpress().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
if (ticketCreateParam.getIsShowCode() == 1) {
kylinTicketPartnerVo.setQrCodeShowTime(ticketCreateParam.getQrCodeShowTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
mongoMerchantUtils.updateTicketPartnerVo(kylinTicketPartnerVo);
// KylinTicketPartnerVo kylinTicketPartnerVoData = JsonUtils.fromJson(doc.toJson(), KylinTicketPartnerVo.class);
log.info(UserPathDto.setPartnerData("0", "updateTicket", ticketCreateParam, "SUCCESS"));
return ResponseDto.success(null);
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "updateTicket", ticketCreateParam, e));
return ResponseDto.failure(ErrorMapping.get(20103));
}
}
@Override
public ResponseDto<String> deleteTicket(String ticketsId, String performanceId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performanceId);
KylinTicketTimesVo ticketTimesData;
KylinTicketVo ticketData = null;
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
ticketTimesData = vo.getTicketTimeList().get(x);
for (int y = 0; y < ticketTimesData.getTicketList().size(); y++) {
KylinTicketVo ticketItem = ticketTimesData.getTicketList().get(y);
if (ticketItem.getTicketsId().equals(ticketsId)) {
ticketData = ticketItem;
break;
}
}
break;
}
if (ticketData == null) {
mongoMerchantUtils.deleteTicketPartnerVo(ticketsId);
return ResponseDto.success("删除成功");
}
PerformancePartnerVo data = mongoMerchantUtils.getPerformancePartnerVo(performanceId);
if (data == null || data.getAuditStatus() == null || data.getAuditStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get("20106"));
}
if (vo.getAppStatus() == 0 || vo.getAppStatus() == 4) {//未提审||被拒绝
// mongo 操作
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
ticketPartnerVo.setStatus(-1);
mongoMerchantUtils.updateTicketPartnerVo(ticketPartnerVo);
log.info(UserPathDto.setPartnerData("0", "deleteTicket", "ticketsId=" + ticketsId, "删除成功"));
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20106));
}
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "deleteTicket", "ticketsId=" + ticketsId, e));
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
@Override
public ResponseDto<KylinTicketPartnerVo> copyTicket(String performanceId, String ticketsId) {
try {
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
PerformancePartnerVo performancePartnerVo = mongoMerchantUtils.getPerformancePartnerVo(performanceId);
if (performancePartnerVo.getAuditStatus() == 0 || performancePartnerVo.getAuditStatus() == 1) {
return ResponseDto.failure(ErrorMapping.get(20107));
}
KylinTicketPartnerVo kylinTicketPartnerVo = mongoMerchantUtils.getTicketPartnerVo(ticketsId);
kylinTicketPartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTicketsId(IDGenerator.nextSnowId());
KylinTicketPartnerVo data = mongoMerchantUtils.insertTicketPartnerVo(kylinTicketPartnerVo);
log.info(UserPathDto.setPartnerData("0", "deleteTicket", "performanceId=" + performanceId + ",ticketsId=" + ticketsId, kylinTicketPartnerVo));
return ResponseDto.success(kylinTicketPartnerVo);
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "deleteTicket", "performanceId=" + performanceId + ",ticketsId=" + ticketsId, e));
return ResponseDto.failure(ErrorMapping.get(20107));
}
}
@Override
public boolean submitTicketByTimes(String timesId, Integer status) {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setTimesId(timesId);
if (null == status) {
ticketPartnerVo.setStatus(1);
} else {
ticketPartnerVo.setStatus(status);
}
ticketPartnerVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
mongoMerchantUtils.submitTicketByTimes(ticketPartnerVo);
long count = mongoMerchantUtils.getCountTicketPartnerByTimes(timesId);
return count <= 0;
}
@Override
public List<KylinTicketPartnerVo> getTicketMongoList(String timesId) {
return mongoMerchantUtils.getTicketMongoList(timesId);
}
@Override
public KylinTicketPartnerVo getTicketsMongo(String ticketsId) {
return mongoMerchantUtils.getTicketsMongo(ticketsId);
}
@Override
public ResponseDto<String> onLine(String ticketsId, String performancesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performancesId);
KylinTicketTimesVo ticketTimesData;
KylinTicketVo ticketData = null;
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
ticketTimesData = vo.getTicketTimeList().get(x);
for (int y = 0; y < ticketTimesData.getTicketList().size(); y++) {
KylinTicketVo ticketItem = ticketTimesData.getTicketList().get(y);
if (ticketItem.getTicketsId().equals(ticketsId)) {
ticketData = ticketItem;
break;
}
}
break;
}
if (ticketData != null && ticketData.getStatus() >= 3 && ticketData.getStatus() != 4 && ticketData.getStatus() != 6) {//未提审||被拒绝
//mysql
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_TICKET_UPDATE.getKey(),
SqlMapping.get("kylin_ticket_status.update_status",
9, updatedAt, ticketsId, updatedAt, updatedAt
));
//mongo
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setTicketsId(ticketsId);
ticketPartnerVo.setStatus(9);
mongoMerchantUtils.updateTicketPartnerVo(ticketPartnerVo);
performanceUtils.performanceVoStatus(performancesId);
log.info(UserPathDto.setPartnerData("0", "onLine", "performancesId=" + performancesId + ",ticketsId=" + ticketsId, "上线成功"));
return ResponseDto.success("上线成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20110));
}
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "onLine", "performancesId=" + performancesId + ",ticketsId=" + ticketsId, "上线失败"));
return ResponseDto.failure(ErrorMapping.get(20108));
}
}
@Override
public ResponseDto<String> outLine(String ticketsId, String performancesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinPerformanceVo vo = mongoMerchantUtils.getPerformanceVo(performancesId);
KylinTicketTimesVo ticketTimesData;
KylinTicketVo ticketData = null;
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
ticketTimesData = vo.getTicketTimeList().get(x);
for (int y = 0; y < ticketTimesData.getTicketList().size(); y++) {
KylinTicketVo ticketItem = ticketTimesData.getTicketList().get(y);
if (ticketItem.getTicketsId().equals(ticketsId)) {
ticketData = ticketItem;
break;
}
}
break;
}
if (ticketData != null && ticketData.getStatus() >= 3 && ticketData.getStatus() != 4 && ticketData.getStatus() != 7) {//未提审||被拒绝
//mysql
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_TICKET_UPDATE.getKey(),
SqlMapping.get("kylin_ticket_status.update_status",
7, updatedAt, ticketsId, updatedAt, updatedAt
));
// mongo 操作
KylinTicketPartnerVo ticketPartnerVo = KylinTicketPartnerVo.getNew();
ticketPartnerVo.setTicketsId(ticketsId);
ticketPartnerVo.setStatus(7);
mongoMerchantUtils.updateTicketPartnerVo(ticketPartnerVo);
performanceUtils.performanceVoStatus(performancesId);
log.info(UserPathDto.setPartnerData("0", "outLine", "performancesId=" + performancesId + ",ticketsId=" + ticketsId, "下线成功"));
return ResponseDto.success("下线成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20111));
}
} catch (Exception e) {
e.printStackTrace();
log.info(UserPathDto.setPartnerData("0", "outLine", "performancesId=" + performancesId + ",ticketsId=" + ticketsId, "下线失败"));
return ResponseDto.failure(ErrorMapping.get(20109));
}
}
}
package com.liquidnet.service.merchant.util; package com.liquidnet.service.merchant.util;
import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap;
import java.util.List;
@Component @Component
public class InnerUtils { public class InnerUtils {
// @Value("${liquidnet.service.platform.url}")
private String platform="http://127.0.0.1:9003";
public List<KylinBuyNoticeVo> getBuyNotice() {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String resultData = HttpUtil.get(platform + "/platform/partner/buyNotice", null, header);
ResponseDto<List<KylinBuyNoticeVo>> innerReturnVo = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<List<KylinBuyNoticeVo>>>() {
});
return innerReturnVo.getData();
}
// public AdamUserInfoSimpleVo getUserInfo() throws Exception { public String getBuyNoticeJsonString(List<String> buyNoticeId) {
// MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
// header.add("Accept", "application/json;charset=UTF-8"); header.add("Accept", "application/json;charset=UTF-8");
// header.add("Authorization", "Bearer " + CurrentUtil.getToken()); String resultData = HttpUtil.get(platform + "/platform/partner/buyNotice/string?buyNoticeId="+ StringUtils.join(buyNoticeId,","), null, header);
// String resultData = HttpUtil.post(adamUrl + "/adam/user/gif/mobile", null, header); ResponseDto<String> innerReturnVo = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<String>>() {
// ResponseDto<AdamUserInfoSimpleVo> innerReturnVo = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<AdamUserInfoSimpleVo>>() { });
// }); return innerReturnVo.getData();
// return innerReturnVo.getData(); }
// }
} }
package com.liquidnet.service.merchant.util; package com.liquidnet.service.merchant.util;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
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.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.mapper.*; import com.mongodb.BasicDBObject;
import org.springframework.beans.BeanUtils; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.util.HashMap;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Component @Component
public class MongoMerchantUtils { public class MongoMerchantUtils {
// @Autowired @Autowired
// private KylinPerformancesMapper performancesMapper; private MongoTemplate mongoTemplate;
// @Autowired @Autowired
// private KylinPerformanceStatusMapper performanceStatusMapper; private MongoConverter mongoConverter;
// @Autowired
// private KylinPerformanceRelationsMapper performanceRelationsMapper;
// @Autowired public PerformancePartnerVo getPerformancePartnerVo(String performanceId) {
// private KylinTicketTimesMapper ticketTimesMapper; return mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
// @Autowired }
// private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
// @Autowired public long getPerformancePartnerCount(Query query) {
// private KylinTicketsMapper ticketsMapper; return mongoTemplate.count(query, PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
// @Autowired }
// private KylinTicketStatusMapper ticketStatusMapper;
// @Autowired public List<PerformancePartnerVo> getPerformancePartnerList(Query query) {
// private KylinTicketRelationsMapper ticketRelationsMapper; return mongoTemplate.find(query, PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
// @Autowired }
// private RedisUtil redisUtil;
// @Autowired public PerformancePartnerVo insertPerformancePartnerVo(PerformancePartnerVo data) {
// private DataUtils dataUtils; return mongoTemplate.insert(data, PerformancePartnerVo.class.getSimpleName());
// }
// public KylinPerformanceVo combinePerformanceVoData(String performancesId) {
// try { public KylinTicketTimesPartnerVo insertTicketTimesPartnerVo(KylinTicketTimesPartnerVo data) {
// KylinPerformanceVo voData = new KylinPerformanceVo(); return mongoTemplate.insert(data, KylinTicketTimesPartnerVo.class.getSimpleName());
// }
// //演出数据
// KylinPerformances p1 = performancesMapper.selectOne(new UpdateWrapper<KylinPerformances>().eq("performances_id", performancesId)); public KylinTicketTimesPartnerVo getTicketTimesPartnerVo(String ticketTimesId) {
// KylinPerformanceStatus p2 = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId)); return mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketTimesId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
// KylinPerformanceRelations p3 = performanceRelationsMapper.selectOne(new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id", performancesId)); }
// //场地相关数据
// KylinFields fields = new KylinFields(); public List<KylinTicketTimesPartnerVo> getTicketTimesPartnerVoList(String performancesId) {
// String cityName = (String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name"); return mongoTemplate.find(Query.query(Criteria.where("performancesId").is(performancesId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
// fields.setCityId(Integer.parseInt((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_id"))); }
// fields.setLatitude((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "latitude"));
// fields.setLongitude((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "longitude")); public void updateTicketTimesPartnerVo(KylinTicketTimesPartnerVo data) {
// fields.setCityName((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name")); Query query = Query.query(Criteria.where("ticketTimesId").is(data.getTicketTimesId()));
// fields.setName((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "name")); BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(data));
// mongoTemplate.getCollection(KylinTicketTimesPartnerVo.class.getSimpleName()).updateOne(
// //相关状态时间初始变量 query.getQueryObject(),
// LocalDateTime stopSellTime = null; objectTicketVo
// LocalDateTime sellTime = null; );
// LocalDateTime sellMemberTime = null; }
//
// int isLackRegister = 0; public Object delTicketTimesPartnerVo(String ticketTimesId) {
// int isMember = 0; return mongoTemplate.remove(Query.query(Criteria.where("ticketTimesId").is(ticketTimesId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
// int isExclusive = 0; }
// int isAdvance = 0;
// int isDiscount = 0; public KylinTicketPartnerVo insertTicketPartnerVo(KylinTicketPartnerVo data) {
// int payCountdownMinute = 15; return mongoTemplate.insert(data, KylinTicketPartnerVo.class.getSimpleName());
// BigDecimal price = new BigDecimal("0.00"); }
//
// //场次数据 public void updateTicketPartnerVo(KylinTicketPartnerVo data) {
// List<KylinTicketTimeRelation> tt3 = ticketTimeRelationMapper.selectList(new UpdateWrapper<KylinTicketTimeRelation>().eq("performance_id", performancesId)); Query query = Query.query(Criteria.where("ticketsId").is(data.getTicketsId()));
// List<KylinTicketTimesVo> timeList = new ArrayList<>(); BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(data));
// for (int x = 0; x < tt3.size(); x++) { mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateOne(
// KylinTicketTimeRelation times = tt3.get(x); query.getQueryObject(),
// KylinTicketTimes tt1 = ticketTimesMapper.selectOne(new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", times.getTimesId())); objectTicketVo
// );
// //票种数据 }
// List<KylinTicketRelations> t3 = ticketRelationsMapper.selectList(new UpdateWrapper<KylinTicketRelations>().eq("times_id", times.getTimesId()));
// List<KylinTicketVo> ticketList = new ArrayList<>(); public void submitTicketByTimes(KylinTicketPartnerVo data) {
// for (int y = 0; y < t3.size(); y++) { Query query = Query.query(Criteria.where("timesId").is(data.getTimesId()).and("status").nin(-2, 7));
// KylinTicketRelations ticket = t3.get(y); BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(data));
// KylinTickets t1 = ticketsMapper.selectOne(new UpdateWrapper<KylinTickets>().eq("tickets_id", ticket.getTicketId())); mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateOne(
// KylinTicketStatus t2 = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticket.getTicketId())); query.getQueryObject(),
//// if(t2.getStatus()==7){ objectTicketVo
//// continue; );
//// } }
// KylinTicketVo kylinTicketVo = new KylinTicketVo();
// kylinTicketVo.setTimeId(ticket.getTimesId()); public long getCountTicketPartnerByTimes(String timesId) {
// kylinTicketVo.setTicket(t1); return mongoTemplate.count((Query.query(Criteria.where("timesId").is(timesId))), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
// kylinTicketVo.setTicketStatus(t2); }
// ticketList.add(kylinTicketVo);
// public List<KylinTicketPartnerVo> getTicketMongoList(String timesId) {
//// //票种 库存redis return mongoTemplate.find(Query.query(Criteria.where("timesId").is(timesId).and("status").ne(-1))
//// if (!redisUtil.hHasKey(KylinRedisConst.PERFORMANCES_INVENTORY + kylinTicketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL)) { .with(Sort.by(Sort.Direction.ASC, "createdAt")),
//// dataUtils.setSurplusGeneral(kylinTicketVo.getTicketsId(), t2.getTotalGeneral()); KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
//// dataUtils.setSurplusExchange(kylinTicketVo.getTicketsId(), t2.getSurplusExchange()); }
//// }
// public KylinTicketPartnerVo getTicketsMongo(String ticketsId) {
// if (kylinTicketVo.getIsMember() == 1) { return mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
// if (kylinTicketVo.getMemberPrice().compareTo(kylinTicketVo.getPrice()) != 0) { }
// isDiscount = 1;
// } public KylinTicketPartnerVo getTicketPartnerVo(String ticketsId) {
// return mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
// if (DateUtil.compareStrDay(DateUtil.getNowTime(), kylinTicketVo.getMemberTimeStart()) < 0) { }
// isAdvance = 1;
// } public List<KylinTicketPartnerVo> getTicketPartnerVoList(String timesId) {
// if (kylinTicketVo.getIsMember() == 1) { return mongoTemplate.find(Query.query(Criteria.where("timesId").is(timesId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
// isMember = 1; }
// }
// if (kylinTicketVo.getIsExclusive() == 1) { public void updatePerformancePartnerVoById(PerformancePartnerVo data) {
// isExclusive = 1; Query query = Query.query(Criteria.where("performancesId").is(data.getPerformancesId()));
// } BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(data));
// mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
// if (isAdvance == 0 && isDiscount == 0 && isExclusive == 0) { query.getQueryObject(),
// isMember = 0; objectTicketVo
// } );
// } }
// if (kylinTicketVo.getIsLackRegister() == 1) {
// isLackRegister = 1; public void updateSubmitTicketVoById(KylinTicketPartnerVo data) {
// } Query query = Query.query(Criteria.where("ticketsId").is(data.getTicketsId()).and("status").in(3, 6, 8, 9, 10));
// payCountdownMinute = t1.getPayCountdownMinute(); BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(data));
// if (price.compareTo(new BigDecimal("0.00")) == 0) { mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateOne(
// price = kylinTicketVo.getPrice(); query.getQueryObject(),
// } else { objectTicketVo
// if (kylinTicketVo.getPrice().compareTo(price) < 0) { );
// price = kylinTicketVo.getPrice(); }
// }
// } public void deleteTicketPartnerVo(String ticketsId) {
// if ((stopSellTime == null || stopSellTime.isBefore(t1.getTimeEnd())) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) { mongoTemplate.remove(Query.query(Criteria.where("ticketsId").is(ticketsId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
// stopSellTime = t1.getTimeEnd(); }
// }
// if ((sellMemberTime == null || sellMemberTime.isAfter(t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()))) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) { public boolean isExistsSubmitPerformancePartner(String performanceId) {
// sellMemberTime = t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()); return mongoTemplate.exists(Query.query(Criteria.where("performancesId").is(performanceId).and("auditStatus").is(0)),
// } PerformancePartnerVo.class,
// if ((sellTime == null || sellTime.isAfter(t1.getTimeStart())) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) { PerformancePartnerVo.class.getSimpleName());
// sellTime = t1.getTimeStart(); }
// }
// } public boolean isExistsAddTicket(String timesId) {
// return mongoTemplate.exists(Query.query(Criteria.where("status").is(-2).and("timesId").is(timesId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
//// if(ticketList.size()>0) { }
// KylinTicketTimesVo kylinTicketTimesVo = new KylinTicketTimesVo();
// kylinTicketTimesVo.setTicketTimes(tt1); public boolean isExistsAddTime(String performanceId) {
// kylinTicketTimesVo.setPerformanceId(times.getPerformanceId()); return mongoTemplate.exists(Query.query(Criteria.where("status").is(-1).and("performancesId").is(performanceId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
// kylinTicketTimesVo.setTimeId(times.getTimesId()); }
// kylinTicketTimesVo.setTicketList(ticketList);
// timeList.add(kylinTicketTimesVo); public List<KylinTicketTimesPartnerVo> getTimesMongoList(String performanceId) {
//// } return mongoTemplate.find(Query.query(Criteria.where("performancesId").is(performanceId)).with(Sort.by(Sort.Direction.ASC, "createdAt")),
// } KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
// }
// voData.setPerformance(p1);
// voData.setPerformanceStatus(p2); public KylinTicketTimesPartnerVo getTimesMongo(String timesId) {
// voData.setPerformanceRelations(p3); return mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(timesId).and("status")), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
// voData.setFieldsData(fields, cityName); }
// if (stopSellTime == null) {
// stopSellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00"); public KylinPerformanceVo insertPerformanceVo(KylinPerformanceVo data) {
// } return mongoTemplate.insert(data, KylinPerformanceVo.class.getSimpleName());
// if (sellTime == null) { }
// sellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
// } public Object delPerformanceVo(String performanceId) {
// if (sellMemberTime == null) { return mongoTemplate.remove(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// sellMemberTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00"); }
// }
// public KylinPerformanceVo getPerformanceVo(String performanceId) {
// voData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellMemberTime, sellTime, isAdvance, isDiscount, payCountdownMinute); return mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// voData.setTicketTimeList(timeList); }
// voData.setAppStatus(p2.getStatus());
// return voData; public List<KylinPerformanceVo> getPerformanceVoOnlineList() {
// } catch (Exception e) { return mongoTemplate.find(Query.query(Criteria.where("appStatus").in(6, 8, 9)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// e.printStackTrace(); }
// return null;
// } public Document getObjectTicketVo(HashMap<String, Object> map, String ticketsId) {
// } BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
// Document docTicket = mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).findOneAndUpdate(
// /** Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
// * @param userId 用户id objectTicketVo,
// * @param type 1新增 2修改 new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// * @param orderId 订单id [需要新增或者修改的订单id] );
// */ return docTicket;
// public Boolean resetOrderListVo(String userId, Integer type, String orderId, KylinOrderTicketVo dataSingle) { }
// List<KylinOrderListVo> vo = new ArrayList<>();
// List<KylinOrderListVo> redisVo = new ArrayList();
// KylinOrderListVo voItem = new KylinOrderListVo();
// 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;
// }
// }
} }
package com.liquidnet.service.merchant.util;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
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.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.TicketTimesTicketCreatePartnerVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService;
import com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@Component
@Slf4j
public class PerformanceUtils {
@Autowired
private RedisMerchantUtils redisMerchantUtils;
@Autowired
private MongoMerchantUtils mongoMerchantUtils;
@Autowired
QueueUtil queueUtil;
@Autowired
PerformanceUtils performanceUtils;
@Autowired
private IKylinTicketTimesPartnerService ticketTimesPartnerService;
@Autowired
private IKylinTicketsPartnerService ticketsPartnerService;
/**
* 根据票状态判断 演出状态 票状态
*
* @param performanceSingleId
*/
public void performanceVoStatus(String performanceSingleId) {
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("kylin_ticket_status.VoStatus"));
sqls.add(SqlMapping.get("kylin_performance_status.VoStatus"));
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlsDataB = CollectionUtil.linkedListObjectArr();
LocalDateTime timeNow = LocalDateTime.now();
List<String> performanceIdList = new ArrayList<>();
if (performanceSingleId == null) {
List<KylinPerformanceVo> list = mongoMerchantUtils.getPerformanceVoOnlineList();
for (KylinPerformanceVo item : list) {
performanceIdList.add(item.getPerformancesId());
}
} else {
performanceIdList.add(performanceSingleId);
}
for (String performancesId : performanceIdList) {
KylinPerformanceVo vo = combinePerformanceVoData(performancesId);
//场次
List<KylinTicketTimesVo> timesData = vo.getTicketTimeList();
if (timesData.size() == 0) {
continue;
}
int ticketCount = 0; //总循环次数
int status9Count = 0; //未开售次数
int status8Count = 0; //售罄次数
int status10Count = 0; //已结束次数
//演出数据
int appStatus = 6;
for (KylinTicketTimesVo kylinTicketTimesVoItem : timesData) {
//票
List<KylinTicketVo> kylinTicketVoList = kylinTicketTimesVoItem.getTicketList();
ticketCount += kylinTicketVoList.size();
for (KylinTicketVo kylinTicketVoItem : kylinTicketVoList) {
//时间判断
LocalDateTime timeStart = DateUtil.Formatter.yyyyMMddHHmmss.parse(kylinTicketVoItem.getMemberTimeStart());
LocalDateTime timeEnd = DateUtil.Formatter.yyyyMMddHHmmss.parse(kylinTicketVoItem.getTimeEnd());
int surplusGeneral = -1;
int status = 0;
if (timeStart.isAfter(timeNow)) {
//未开始
status = 9;
status9Count += 1;
} else if (timeEnd.isBefore(timeNow)) {
//结束
status = 10;
status10Count += 1;
} else {
//库存判断
surplusGeneral = redisMerchantUtils.getSurplusGeneral(kylinTicketVoItem.getTicketsId());
if (surplusGeneral > 0) {
status = 6;
} else {
status = 8;
status8Count += 1;
}
}
if (kylinTicketVoItem.getStatus() == 7) {
status = 7;
}
//修改票状态
KylinTicketStatus changeStatus = new KylinTicketStatus();
changeStatus.setStatus(status);
if (surplusGeneral != -1) {
changeStatus.setSurplusGeneral(surplusGeneral);
}
sqlsDataA.add(new Object[]{
changeStatus.getStatus(), changeStatus.getSurplusGeneral(), kylinTicketVoItem.getTicketsId()
});
kylinTicketVoItem.setStatus(status);
//演出状态
if (status == 6) {//单一票 可购买 则为可购买
appStatus = 6;
} else if (ticketCount == status10Count) {//全票结束 为结束
appStatus = 10;
} else if (ticketCount == status8Count) {//全票售罄为售罄
appStatus = 8;
} else if (ticketCount == status9Count) {//全票未开始 为未开始
appStatus = 9;
}
}
}
if (vo.getAppStatus() <= 4) {
appStatus = vo.getAppStatus();
}
if (vo.getAppStatus() == 7) {
appStatus = 7;
}
//修改演出状态
sqlsDataB.add(new Object[]{
appStatus, performancesId
});
String sqlData = SqlMapping.gets(sqls, sqlsDataA, sqlsDataB);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_PERFORMANCE_UPDATE.getKey(),
sqlData);
vo.setAppStatus(appStatus);
redisMerchantUtils.updatePerformanceMongo(performancesId, vo);
}
}
/**
* 生成 PerformanceCreatePartnerVo(用于审核第一次提交数据)
*
* @param performancesId
* @return
*/
public KylinPerformanceMisVo getPerformanceMisVo(String performancesId) {
try {
PerformancePartnerVo performanceData = mongoMerchantUtils.getPerformancePartnerVo(performancesId);
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVos = ticketTimesPartnerService.getTimesMongoList(performancesId);
List<TicketTimesTicketCreatePartnerVo> ticketTimesTicketCreatePartnerVoList = new ArrayList<TicketTimesTicketCreatePartnerVo>();
ArrayList<BigDecimal> floatList = new ArrayList<>();
ArrayList<String> StringList = new ArrayList<>();
for (KylinTicketTimesPartnerVo ticketTimes : kylinTicketTimesPartnerVos) {
TicketTimesTicketCreatePartnerVo ticketTimesTicketCreatePartnerVo = new TicketTimesTicketCreatePartnerVo();
BeanUtils.copyProperties(ticketTimes, ticketTimesTicketCreatePartnerVo);
List<KylinTicketPartnerVo> kylinTicketPartnerVos = ticketsPartnerService.getTicketMongoList(ticketTimes.getTicketTimesId());
ticketTimesTicketCreatePartnerVo.setTicket(kylinTicketPartnerVos);
ticketTimesTicketCreatePartnerVoList.add(ticketTimesTicketCreatePartnerVo);
for (KylinTicketPartnerVo kylinTicketPartnerVoItem : kylinTicketPartnerVos) {
floatList.add(kylinTicketPartnerVoItem.getPrice());
StringList.add(kylinTicketPartnerVoItem.getTimeEnd());
}
}
KylinPerformanceMisVo kylinPerformanceMisVo = new KylinPerformanceMisVo();
BeanUtils.copyProperties(performanceData, kylinPerformanceMisVo);
floatList.sort(Comparator.naturalOrder());
StringList.sort(Comparator.naturalOrder());
kylinPerformanceMisVo.setDetails(performanceData.getDetails());
kylinPerformanceMisVo.setPrice(floatList.get(0) + "起");
kylinPerformanceMisVo.setStopSellTime(StringList.get(0));
kylinPerformanceMisVo.setTicketTimes(ticketTimesTicketCreatePartnerVoList);
kylinPerformanceMisVo.setIsDistribution(0);
kylinPerformanceMisVo.setSyncAgent(0);
kylinPerformanceMisVo.setAuditStatus(0);
return kylinPerformanceMisVo;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 插入数据库
*
* @param performancesId
* @param map
* @param kylinPerformanceMisVo
* @param updatedAt
*/
public void createPerformanceMySql(String performancesId, HashMap<String, Object> map, KylinPerformanceMisVo kylinPerformanceMisVo, LocalDateTime updatedAt) {
try {
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("kylin_performances.del"));
sqls.add(SqlMapping.get("kylin_performance_status.del"));
sqls.add(SqlMapping.get("kylin_performance_relations.del"));
sqls.add(SqlMapping.get("kylin_performances.insert"));
sqls.add(SqlMapping.get("kylin_performance_status.insert"));
sqls.add(SqlMapping.get("kylin_performance_relations.insert"));
sqls.add(SqlMapping.get("kylin_ticket_times.del"));
sqls.add(SqlMapping.get("kylin_ticket_time_relation.del"));
sqls.add(SqlMapping.get("kylin_ticket_times.insert"));
sqls.add(SqlMapping.get("kylin_ticket_time_relation.insert"));
sqls.add(SqlMapping.get("kylin_tickets.del"));
sqls.add(SqlMapping.get("kylin_ticket_status.del"));
sqls.add(SqlMapping.get("kylin_ticket_relations.del"));
sqls.add(SqlMapping.get("kylin_tickets.insert"));
sqls.add(SqlMapping.get("kylin_ticket_status.insert"));
sqls.add(SqlMapping.get("kylin_ticket_relations.insert"));
LinkedList<Object[]> del1 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del2 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del3 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del4 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del5 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del6 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del7 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> del8 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert1 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert2 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert3 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert4 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert5 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert6 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert7 = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> insert8 = CollectionUtil.linkedListObjectArr();
//创建演出
KylinPerformances performances = new KylinPerformances();
BeanUtils.copyProperties(kylinPerformanceMisVo, performances);
KylinPerformanceStatus performanceStatus = new KylinPerformanceStatus();
BeanUtils.copyProperties(kylinPerformanceMisVo, performanceStatus);
KylinPerformanceRelations performanceRelations = new KylinPerformanceRelations();
BeanUtils.copyProperties(kylinPerformanceMisVo, performanceRelations);
performances.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getCreatedAt())));
performances.setTimeStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getTimeStart())));
performances.setTimeEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(kylinPerformanceMisVo.getTimeEnd())));
MerchantFieldsVo fieldsVo = redisMerchantUtils.getFieldVo(performanceRelations.getFieldId());
performances.setCityName(fieldsVo.getCityName());
performances.setCityId(Integer.parseInt(fieldsVo.getCityId()));
performances.setUpdatedAt(updatedAt);
performanceStatus.setPerformanceId(performances.getPerformancesId());
performanceStatus.setPerformanceStatusId(IDGenerator.nextSnowId());
performanceStatus.setCreatedAt(performances.getCreatedAt());
performanceStatus.setAuditStatus(0);
performanceStatus.setUpdatedAt(updatedAt);
performanceStatus.setLimitCountMember(1);
performanceRelations.setPerformanceId(performances.getPerformancesId());
performanceRelations.setPerformanceRelationsId(IDGenerator.nextSnowId());
performanceRelations.setCreatedAt(performances.getCreatedAt());
performanceRelations.setUpdatedAt(updatedAt);
del1.add(new Object[]{performances.getPerformancesId()});
Object[] obj_array1 = BeanUtil.convertBeanToMap(performances).values().toArray();
insert1.add(obj_array1);
log.debug("performance:"+obj_array1);
del2.add(new Object[]{performances.getPerformancesId()});
Object[] obj_array2 = BeanUtil.convertBeanToMap(performanceStatus).values().toArray();
insert2.add(obj_array2);
log.debug("performanceStatus:"+obj_array2);
del3.add(new Object[]{performances.getPerformancesId()});
Object[] obj_array3 = BeanUtil.convertBeanToMap(performanceRelations).values().toArray();
insert3.add(obj_array3);
//场次数据
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVos = ticketTimesPartnerService.getTimesMongoList(performancesId);
for (KylinTicketTimesPartnerVo ticketTimeItem : kylinTicketTimesPartnerVos) {
//创建场次
KylinTicketTimes ticketTimes = new KylinTicketTimes();
BeanUtils.copyProperties(ticketTimeItem, ticketTimes);
KylinTicketTimeRelation ticketTimeRelation = new KylinTicketTimeRelation();
BeanUtils.copyProperties(ticketTimeItem, ticketTimeRelation);
ticketTimes.setUseStart(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getUseStart())));
ticketTimes.setUseEnd(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getUseEnd())));
ticketTimes.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketTimeItem.getCreatedAt())));
ticketTimes.setUpdatedAt(updatedAt);
ticketTimeRelation.setPerformanceId(performancesId);
ticketTimeRelation.setTicketTimeRelationId(IDGenerator.nextSnowId());
ticketTimeRelation.setTimesId(ticketTimes.getTicketTimesId());
ticketTimeRelation.setCreatedAt(ticketTimes.getCreatedAt());
ticketTimeRelation.setUpdatedAt(updatedAt);
del4.add(new Object[]{ticketTimes.getTicketTimesId()});
Object[] obj_array4 = BeanUtil.convertBeanToMap(ticketTimes).values().toArray();
insert4.add(obj_array4);
del5.add(new Object[]{ticketTimes.getTicketTimesId()});
Object[] obj_array5 = BeanUtil.convertBeanToMap(ticketTimeRelation).values().toArray();
insert5.add(obj_array5);
//修改票
for (KylinTicketPartnerVo ticketItem : ticketsPartnerService.getTicketMongoList(ticketTimeItem.getTicketTimesId())) {
Document docTicket = mongoMerchantUtils.getObjectTicketVo(map, ticketItem.getTicketsId());
KylinTicketPartnerVo kylinTicketPartnerVo = JsonUtils.fromJson(docTicket.toJson(), KylinTicketPartnerVo.class);
//创建演出
KylinTickets tickets = new KylinTickets();
BeanUtils.copyProperties(kylinTicketPartnerVo, tickets);
KylinTicketStatus ticketStatus = new KylinTicketStatus();
BeanUtils.copyProperties(kylinTicketPartnerVo, ticketStatus);
KylinTicketRelations ticketRelations = new KylinTicketRelations();
BeanUtils.copyProperties(kylinTicketPartnerVo, ticketRelations);
tickets.setPayCountdownMinute(kylinPerformanceMisVo.getPayCountdownMinute());
tickets.setPriceExpress(new BigDecimal("0.00"));
tickets.setPriceDiscountMember(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.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.setDescribeExpress(ticketItem.getDescribeExpress());
}
if (ticketItem.getIsElectronic() == 1) {
tickets.setDescribeElectronic(ticketItem.getDescribeElectronic());
}
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.setSaleRemindMinute(60);
tickets.setCreatedAt(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getCreatedAt())));
tickets.setUpdatedAt(updatedAt);
ticketStatus.setTicketStatusId(IDGenerator.nextSnowId().toString());
ticketStatus.setTicketId(tickets.getTicketsId());
ticketStatus.setIsMember(1);
ticketStatus.setIsExclusive(0);
ticketStatus.setIsTrueName(performanceStatus.getIsTrueName());
ticketStatus.setMemberLimitCount(1);
ticketStatus.setStatusExchange(7);
if (ticketItem.getIsShowCode() == 1) {
ticketStatus.setQrCodeShowTime(DateUtil.asLocalDateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ticketItem.getQrCodeShowTime())));
}
ticketRelations.setCreatedAt(tickets.getCreatedAt());
ticketRelations.setUpdatedAt(updatedAt);
ticketRelations.setTicketRelationsId(IDGenerator.nextSnowId());
ticketRelations.setTicketId(tickets.getTicketsId());
ticketRelations.setCreatedAt(tickets.getCreatedAt());
ticketRelations.setUpdatedAt(updatedAt);
del6.add(new Object[]{tickets.getTicketsId()});
Object[] obj_array6 = BeanUtil.convertBeanToMap(tickets).values().toArray();
insert6.add(obj_array6);
del7.add(new Object[]{tickets.getTicketsId()});
Object[] obj_array7 = BeanUtil.convertBeanToMap(ticketStatus).values().toArray();
insert7.add(obj_array7);
del8.add(new Object[]{tickets.getTicketsId()});
Object[] obj_array8 = BeanUtil.convertBeanToMap(ticketRelations).values().toArray();
insert8.add(obj_array8);
redisMerchantUtils.setSurplusExchange(tickets.getTicketsId(), ticketStatus.getSurplusExchange());
redisMerchantUtils.setSurplusGeneral(tickets.getTicketsId(), ticketStatus.getSurplusGeneral());
}
}
//TODO 待做
String sqlData = SqlMapping.gets(sqls,
del1, del2, del3, del4, del5, del6, del7, del8,
insert1, insert2, insert3, insert4, insert5, insert6, insert7, insert8);
queueUtil.sendMsgByRedis(MQConst.MerchantQueue.SQL_MERCHANT_PERFORMANCE_INSERT.getKey(),
sqlData);
} catch (Exception e) {
e.printStackTrace();
}
}
// 判断是否需要审核
public boolean judgeIsAudit(String performanceId) {
KylinPerformanceMisVo misVo = getPerformanceMisVo(performanceId);
KylinPerformanceVo mongoVo = combinePerformanceVoData(performanceId);
if (!misVo.getTitle().equals(mongoVo.getTitle())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TITLE");
return true;
}
if (!misVo.getImgPoster().equals(mongoVo.getImgPoster())) {
log.info("performanceId = " + performanceId + " NEED CHANGE IMGPOSTER");
return true;
} else if (!misVo.getType().equals(mongoVo.getType())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TYPE");
return true;
} else if (!misVo.getTimeStart().equals(mongoVo.getTimeStart())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TIMESTART");
return true;
} else if (!misVo.getTimeEnd().equals(mongoVo.getTimeEnd())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TIMEEND");
return true;
} else if (!misVo.getFieldId().equals(mongoVo.getFieldId())) {
log.info("performanceId = " + performanceId + " NEED CHANGE FIELDID");
return true;
} else if (!misVo.getNotice().equals(mongoVo.getNotice())) {
log.info("performanceId = " + performanceId + " NEED CHANGE NOTICE");
return true;
} else if (!misVo.getDetails().replace("'", "").equals(mongoVo.getDetails().replace("'", ""))) {
log.info("performanceId = " + performanceId + " NEED CHANGE DETAILS");
return true;
} else if (!misVo.getApprovalUrl().equals(mongoVo.getApprovalUrl())) {
log.info("performanceId = " + performanceId + " NEED CHANGE APPROVALURL");
return true;
} else if (!misVo.getPayCountdownMinute().equals(mongoVo.getPayCountdownMinute())) {
log.info("performanceId = " + performanceId + " NEED CHANGE PAYCOUTDOWN");
return true;
}
boolean exists = mongoMerchantUtils.isExistsAddTime(performanceId);
if (exists) {
log.info("performanceId = " + performanceId + " NEED CHANGE NEW TIMES");
return true;
}
for (int i = 0; i < misVo.getTicketTimes().size(); i++) {
TicketTimesTicketCreatePartnerVo times = misVo.getTicketTimes().get(i);
KylinTicketTimesVo timesVo = mongoVo.getTicketTimeList().get(i);
if (!times.getUseStart().equals(timesVo.getUseStart())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TIMES USE_START");
return true;
}
if (!times.getUseEnd().equals(timesVo.getUseEnd())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TIMES USE_END");
return true;
}
boolean exists2 = mongoMerchantUtils.isExistsAddTicket(times.getTicketTimesId());
if (exists2) {
log.info("performanceId = " + performanceId + " NEED CHANGE NEW TICKET");
return true;
}
for (KylinTicketPartnerVo ticketPartnerVo : times.getTicket()) {
for (KylinTicketVo ticketVo : timesVo.getTicketList()) {
if (ticketVo.getTicketsId().equals(ticketPartnerVo.getTicketsId())) {
if (!ticketVo.getTitle().equals(ticketPartnerVo.getTitle())) {
log.info("performanceId = " + performanceId + " ticketId = " + ticketVo.getTicketsId() + " NEED CHANGE TICKET TITLE");
return true;
} else if (!ticketVo.getDescribeElectronic().equals(ticketPartnerVo.getDescribeElectronic())) {
log.info("performanceId = " + performanceId + " ticketId = " + ticketVo.getTicketsId() + " NEED CHANGE TICKET DESCRIBEELECTRONIC");
return true;
} else if (!ticketVo.getDescribeExpress().equals(ticketPartnerVo.getDescribeExpress())) {
log.info("performanceId = " + performanceId + " ticketId = " + ticketVo.getTicketsId() + " NEED CHANGE TICKET DESCRIBEELEXPRESS");
return true;
}
if (!ticketVo.getDescribes().equals(ticketPartnerVo.getDescribes())) {
log.info("performanceId = " + performanceId + " NEED CHANGE TICKET DESCRIBES");
return true;
}
break;
}
}
}
}
return false;
}
public KylinPerformanceVo combinePerformanceVoData(String performancesId) {
try {
//演出数据
KylinPerformanceVo vo = redisMerchantUtils.getPerformanceVo(performancesId);
//场地相关数据
KylinFields fields = new KylinFields();
MerchantFieldsVo fieldsVo = redisMerchantUtils.getFieldVo(vo.getFieldId());
fields.setCityId(Integer.parseInt(fieldsVo.getCityId()));
fields.setLatitude(fieldsVo.getLatitude());
fields.setLongitude(fieldsVo.getLongitude());
fields.setCityName(fieldsVo.getCityName());
fields.setName(fieldsVo.getName());
//相关状态时间初始变量
LocalDateTime stopSellTime = null;
LocalDateTime sellTime = null;
LocalDateTime sellMemberTime = null;
int isLackRegister = 0;
int isMember = 0;
int isExclusive = 0;
int isAdvance = 0;
int isDiscount = 0;
int payCountdownMinute = 15;
BigDecimal price = new BigDecimal("0.00");
//场次数据
List<KylinTicketTimesVo> timeList = vo.getTicketTimeList();
for (int x = 0; x < timeList.size(); x++) {
KylinTicketTimesVo times = timeList.get(x);
//票种数据
List<KylinTicketVo> ticketList = times.getTicketList();
for (int y = 0; y < ticketList.size(); y++) {
KylinTicketVo ticket = ticketList.get(y);
if (ticket.getIsMember() == 1) {
if (ticket.getMemberPrice().compareTo(ticket.getPrice()) != 0) {
isDiscount = 1;
}
if (DateUtil.compareStrDay(DateUtil.getNowTime(), ticket.getMemberTimeStart()) < 0) {
isAdvance = 1;
}
if (ticket.getIsMember() == 1) {
isMember = 1;
}
if (ticket.getIsExclusive() == 1) {
isExclusive = 1;
}
if (isAdvance == 0 && isDiscount == 0 && isExclusive == 0) {
isMember = 0;
}
}
if (ticket.getIsLackRegister() == 1) {
isLackRegister = 1;
}
payCountdownMinute = vo.getPayCountdownMinute();
if (price.compareTo(new BigDecimal("0.00")) == 0) {
price = ticket.getPrice();
} else {
if (ticket.getPrice().compareTo(price) < 0) {
price = ticket.getPrice();
}
}
LocalDateTime tTimeEnd = LocalDateTime.parse(ticket.getTimeEnd(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime tTimeStart = LocalDateTime.parse(ticket.getTimeStart(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
if ((stopSellTime == null || stopSellTime.isBefore(tTimeEnd)) && (ticket.getStatus() >= 6 && ticket.getStatus() != 7)) {
stopSellTime = tTimeEnd;
}
if ((sellMemberTime == null || sellMemberTime.isAfter(tTimeStart.plusMinutes(-ticket.getAdvanceMinuteMember()))) && (ticket.getStatus() >= 6 && ticket.getStatus() != 7)) {
sellMemberTime = tTimeStart.plusMinutes(-ticket.getAdvanceMinuteMember());
}
if ((sellTime == null || sellTime.isAfter(tTimeStart)) && (ticket.getStatus() >= 6 && ticket.getStatus() != 7)) {
sellTime = tTimeStart;
}
}
}
vo.setFieldsData(fields, fields.getCityName());
if (stopSellTime == null) {
stopSellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
if (sellTime == null) {
sellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
if (sellMemberTime == null) {
sellMemberTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
vo.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellMemberTime, sellTime, isAdvance, isDiscount, payCountdownMinute);
vo.setTicketTimeList(timeList);
return vo;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
package com.liquidnet.service.merchant.util; package com.liquidnet.service.merchant.util;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
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.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.kylin.entity.KylinBuyNotice; import com.liquidnet.service.merchant.service.MerchantRdmService;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import com.liquidnet.service.kylin.mapper.KylinBuyNoticeMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; import java.util.List;
@Component @Component
public class RedisMerchantUtils { public class RedisMerchantUtils {
// @Autowired @Autowired
// private KylinBuyNoticeMapper buyNoticeMapper; private RedisUtil redisUtil;
// @Autowired @Autowired
// private RedisUtil redisUtil; private MongoMerchantUtils mongoMerchantUtils;
// @Autowired @Autowired
// private MongoVoUtils mongoVoUtils; private InnerUtils innerUtils;
// @Autowired
// /** MerchantRdmService rdmService;
// * 根据 购票须知 id 获取 购票须知文案 @Autowired
// * PerformanceUtils performanceUtils;
// * @param buyNoticeIds 购票须知 数组
// * @return 购票须知 json串
// */ // 获取购票须知
// public String getBuyNoticeJsonString(List<String> buyNoticeIds) { public List<KylinBuyNoticeVo> getBuyNotice() {
// List<KylinBuyNotice> data = buyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().in("buy_notice_id", buyNoticeIds)); Object obj = redisUtil.get(KylinRedisConst.BUY_NOTICE);
// return JsonUtils.toJson(data); if (obj != null) {
// } return (List<KylinBuyNoticeVo>) obj;
// } else {
// public List<KylinBuyNotice> getBuyNotice() { return innerUtils.getBuyNotice();
// Object obj = redisUtil.get(KylinRedisConst.BUY_NOTICE); }
// if (obj != null) { }
// return (List<KylinBuyNotice>) obj;
// } else { //判断key是否存在
// //TODO 降级 public boolean hasKey(String key) {
// return null; return redisUtil.hasKey(key);
// } }
// }
// //获取场地redis
// /** public MerchantFieldsVo getFieldVo(String fieldId) {
// * 初始化普通库存 return rdmService.getFieldsVoByFieldId(fieldId);
// * }
// * @param ticketId 票id
// * @param totalGeneral 普通库存 /**
// */ * 根据演出id 获取 演出vo 详情
// public void setSurplusGeneral(String ticketId, int totalGeneral) { *
// redisUtil.set(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, totalGeneral); * @param performanceId
// } * @return
// */
// /** public KylinPerformanceVo getPerformanceVo(String performanceId) {
// * 获取普通剩余库存 Object obj = redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId);
// * if (obj != null) {
// * @param ticketId 票id return (KylinPerformanceVo) obj;
// * @return 普通剩余库存 } else {
// */ KylinPerformanceVo performanceData = mongoMerchantUtils.getPerformanceVo(performanceId);
// public int getSurplusGeneral(String ticketId) { redisUtil.set(KylinRedisConst.PERFORMANCES + performanceId, performanceData);
// return (int) redisUtil.get(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL); return performanceData;
// } }
// }
// /**
// * 修改普通库存 并 返回修改后的数量
// * /**
// * @param ticketId 票id * 初始化普通库存
// * @param surplusGeneral 普通库存 *
// * @return 普通剩余库存 * @param ticketId 票id
// */ * @param totalGeneral 普通库存
// public int changeSurplusGeneral(String ticketId, int surplusGeneral) { */
// if (surplusGeneral > 0) { public void setSurplusGeneral(String ticketId, int totalGeneral) {
// return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, surplusGeneral); redisUtil.set(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, totalGeneral);
// } else { }
// return (int) redisUtil.decr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, Math.abs(surplusGeneral));
// } /**
// } * 获取普通剩余库存
// *
// /** * @param ticketId 票id
// * 判断 当前库存是否售罄 * @return 普通剩余库存
// * */
// * @param ticketId 票id public int getSurplusGeneral(String ticketId) {
// * @return boolean return (int) redisUtil.get(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL);
// */ }
// public boolean ticketIsSoldOut(String ticketId) {
// if (0 >= getSurplusGeneral(ticketId)) { /**
// return true; * 修改普通库存 并 返回修改后的数量
// } else { *
// return false; * @param ticketId 票id
// } * @param surplusGeneral 普通库存
// } * @return 普通剩余库存
// */
// /** public int changeSurplusGeneral(String ticketId, int surplusGeneral) {
// * 初始化兑换库存 if (surplusGeneral > 0) {
// * return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, surplusGeneral);
// * @param ticketId 票id } else {
// * @param totalExchange 兑换库存 return (int) redisUtil.decr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, Math.abs(surplusGeneral));
// */ }
// public void setSurplusExchange(String ticketId, int totalExchange) { }
// redisUtil.set(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, totalExchange);
// } /**
// * 初始化兑换库存
// /** *
// * 获取兑换剩余库存 * @param ticketId 票id
// * * @param totalExchange 兑换库存
// * @param ticketId 票id */
// * @return 兑换剩余库存 public void setSurplusExchange(String ticketId, int totalExchange) {
// */ redisUtil.set(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, totalExchange);
// public int getSurplusExchange(String ticketId) { }
// return (int) redisUtil.get(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE);
// } /**
// * 变更兑换库存 并 返回 修改后的数量
// /** *
// * 变更兑换库存 并 返回 修改后的数量 * @param ticketId 票id
// * * @param surplusExchange 普通库存
// * @param ticketId 票id * @return 兑换剩余库存
// * @param surplusExchange 普通库存 */
// * @return 兑换剩余库存 public int changeSurplusExchange(String ticketId, int surplusExchange) {
// */ if (surplusExchange > 0) {
// public int changeSurplusExchange(String ticketId, int surplusExchange) { return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, surplusExchange);
// if (surplusExchange > 0) { } else {
// return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, surplusExchange); return (int) redisUtil.decr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, Math.abs(surplusExchange));
// } else { }
// return (int) redisUtil.decr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, Math.abs(surplusExchange)); }
// }
// } /**
// * 演出是否实名
// public void setOrderList(String userId, List<KylinOrderListVo> vo) { *
// redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo); * @param performanceId
// } * @param isTrueName
// */
// public List<KylinOrderListVo> getOrderList(String userId) { public void setPerformanceIsTrueName(String performanceId, int isTrueName) {
// Object obj = redisUtil.get(KylinRedisConst.ORDER_LIST + userId); redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId, isTrueName);
// if (obj != null) { }
// return (List<KylinOrderListVo>) obj;
// } else {
// List<KylinOrderListVo> voList = mongoTemplate.find(Query.query(Criteria.where("userId").is(userId)) public void updatePerformanceMongo(String performanceIds, KylinPerformanceVo paramVo) {
// .with(Sort.by(Sort.Direction.DESC, "createdAt")).limit(40), //查询 mysql 数据
// KylinOrderListVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinPerformanceVo vo;
// for (KylinOrderListVo item : voList) { if (null == paramVo) {
// item.setStatus(item.getStatus()); vo = performanceUtils.combinePerformanceVoData(performanceIds);
// } } else {
// redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList); vo = paramVo;
// return voList; }
// } if (vo != null) {
// } try {
// //删除 mongo数据
// /** mongoMerchantUtils.delPerformanceVo(performanceIds);
// * 演出是否实名 } catch (Exception e) {
// * e.printStackTrace();
// * @param performanceId }
// * @param isTrueName try {
// */ //新增 mongo数据
// public void setPerformanceIsTrueName(String performanceId, int isTrueName) { mongoMerchantUtils.insertPerformanceVo(vo);
// redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId, isTrueName); } catch (Exception e) {
// } e.printStackTrace();
// }
// /** try {
// * 根据订单id 获取 订单vo 详情 //删除redis
// * redisUtil.del(KylinRedisConst.PERFORMANCES + performanceIds);
// * @param orderId // 大龙相关 演出列表
// * @return redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_CITYNAME + vo.getCityName());
// */ redisUtil.del(KylinRedisConst.PERFORMANCES_ROADLIST + vo.getRoadShowId());
// public KylinOrderTicketVo getOrderTicketVo(String orderId) { redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_SYSTEM_RECOMMEND);
// Object obj = redisUtil.get(KylinRedisConst.ORDER + orderId); redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_RECOMMEND);
// if (obj != null) { redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_NOTICE);
// return (KylinOrderTicketVo) obj; redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_EXCLUSIVE);
// } else { } catch (Exception e) {
// KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); e.printStackTrace();
// List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName()); }
// ticketData.setEntitiesVoList(kylinOrderTicketEntitiesVoList); } else {
// redisUtil.set(KylinRedisConst.ORDER + orderId, ticketData); }
// return ticketData; }
// }
// }
//
// /**
// * 删除订单redis
// *
// * @param orderId
// */
// public void delOrderTicketRedis(String orderId) {
// redisUtil.del(KylinRedisConst.ORDER + orderId);
// }
//
//
// /**
// * 删除 验票账号 redis
// *
// * @param checkUserId
// */
// public void delCheckUserRedis(String checkUserId) {
// redisUtil.del(KylinRedisConst.CHECK_USER + checkUserId);
// }
//
//
// /**
// * 删除 验票账号关系 vo
// *
// * @param checkUserId
// */
// public void delCheckUserRelationRedis(String checkUserId) {
// redisUtil.del(KylinRedisConst.CHECK_USER_RELATION + checkUserId);
// }
//
//
// public void updatePerformanceMongo(String performanceIds, KylinPerformanceVo paramVo) {
// //查询 mysql 数据
// KylinPerformanceVo vo;
// if (null == paramVo) {
// vo = mongoVoUtils.combinePerformanceVoData(performanceIds);
// } else {
// vo = paramVo;
// }
// if (vo != null) {
// try {
// //删除 mongo数据
// mongoTemplate.remove(Query.query(Criteria.where("performancesId").is(performanceIds)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// } catch (Exception e) {
// e.printStackTrace();
// }
// try {
// //新增 mongo数据
// mongoTemplate.insert(vo, KylinPerformanceVo.class.getSimpleName());
// } catch (Exception e) {
// e.printStackTrace();
// }
// try {
// //删除redis
// redisUtil.del(KylinRedisConst.PERFORMANCES + performanceIds);
// // 大龙相关 演出列表
// redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_CITYNAME + vo.getCityName());
// redisUtil.del(KylinRedisConst.PERFORMANCES_ROADLIST + vo.getRoadShowId());
// redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_SYSTEM_RECOMMEND);
// redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_RECOMMEND);
// redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_NOTICE);
// redisUtil.del(KylinRedisConst.PERFORMANCES_LIST_EXCLUSIVE);
// } catch (Exception e) {
// e.printStackTrace();
// }
// } else {
// }
// }
//
// /**
// * @param performanceId 演出id
// * @param ticketId 票种id
// * @param buyCount 购买数量 大于 0 增加 小于 0 减少 对应 支付 退款表
// */
// public void changeBuyInfo(String userId, String idCard, String performanceId, String ticketId, int buyCount) {
// String redisKey;
//
// int isTrueName = getPerformanceIsTrueName(performanceId);
//
// if (0 == isTrueName) {
// redisKey = KylinRedisConst.USERID_BUY_INFO + userId;
// } else {
// redisKey = KylinRedisConst.IDCARD_BUY_INFO + idCard;
// }
//
// String performanceIdKey = redisKey + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId;
// String ticketIdKey = redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId;
//
// if (buyCount > 0) {
// redisUtil.incr(ticketIdKey, buyCount);
// redisUtil.incr(performanceIdKey, buyCount);
// } else {
// redisUtil.decr(ticketIdKey, Math.abs(buyCount));
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// }
// }
//
//
// // 获取 用户维度 演出购买数量
// 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;
// }
// }
//
// /**
// * 删除订单redis
// *
// * @param orderEntitiesId
// */
// public void delOrderTicketEntitiesRedis(String orderEntitiesId) {
// redisUtil.del(KylinRedisConst.ORDER_ENTITIES + orderEntitiesId);
// }
//
// /**
// * 根据演出id 获取 演出vo 详情
// *
// * @param performanceId
// * @return
// */
// public KylinPerformanceVo getPerformanceVo(String performanceId) {
// Object obj = redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId);
// if (obj != null) {
// return (KylinPerformanceVo) obj;
// } else {
// KylinPerformanceVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// redisUtil.set(KylinRedisConst.PERFORMANCES + performanceId, performanceData);
// return performanceData;
// }
// }
//
// /**
// * 演出是否实名
// *
// * @param performanceId
// */
// public int getPerformanceIsTrueName(String performanceId) {
// Object obj = redisUtil.get(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId);
// if (obj != null) {
// return (int) obj;
// } else {
// int isTrueName = getPerformanceVo(performanceId).getIsTrueName();
// redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId, isTrueName);
// return isTrueName;
// }
// }
//
//
// public void delOrderRefundVo(String orderRefundsId) {
// redisUtil.del(KylinRedisConst.ORDER_REFUND + orderRefundsId);
// }
//
// public void delOrderRefundVoByOrderId(String orderId) {
// redisUtil.del(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId);
// }
//
// /**
// * 演出订单快递信息
// *
// * @param orderId
// * @param kylinOrderExpressVo
// */
// public void setOrderExpressInfo(String orderId, KylinOrderExpressVo kylinOrderExpressVo) {
// String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
// redisUtil.set(redisKey, kylinOrderExpressVo);
// }
//
// /**
// * 演出订单快递路由
// */
// public LinkedList<KylinOrderExpressRouteVo> getOrderExpressRoute(String orderTicketsId) { // 获取
// String redisKey = KylinRedisConst.ORDER_ROUTE_INFO.concat(orderTicketsId);
// return (LinkedList<KylinOrderExpressRouteVo>) redisUtil.get(redisKey);
// }
//
// public void setOrderExpressRoute(String orderTicketsId, LinkedList<KylinOrderExpressRouteVo> routeList) {
// String redisKey = KylinRedisConst.ORDER_ROUTE_INFO.concat(orderTicketsId);
// redisUtil.set(redisKey, routeList);
// }
//
// // 获取订单券的使用情况
// public ArrayList<KylinOrderCoupons> getOrderCoupon(String orderId) {
// String redisKey = KylinRedisConst.ORDER_COUPON.concat(orderId);
// Object obj = redisUtil.get(redisKey);
// if (obj == null) {
// return ObjectUtil.getKylinOrderCouponsArrayList();
// } else {
// return (ArrayList<KylinOrderCoupons>) obj;
// }
// }
} }
...@@ -6,10 +6,10 @@ liquidnet: ...@@ -6,10 +6,10 @@ liquidnet:
username: user username: user
password: user123 password: user123
eureka: eureka:
#host: 172.17.207.177:7001 host: 172.17.207.177:7001
instance: # instance:
prefer-ip-address: true # prefer-ip-address: true
host: eureka-test-0.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-1.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-2.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka # host: eureka-test-0.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-1.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-2.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka
# end-test-这里是配置信息基本值 # end-test-这里是配置信息基本值
......
# --------------------------------------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------------------------------------
merchant_fields.update_claim_status=UPDATE merchant_fields SET claim_status = ?, updated_at = ? WHERE field_id = ? merchant_fields.update_claim_status=UPDATE merchant_fields SET claim_status = ?, updated_at = ? WHERE field_id = ?
merchant_fields.update_is_check=UPDATE merchant_fields SET is_check = ?, updated_at = ? WHERE field_id = ? merchant_fields.update_is_check=UPDATE merchant_fields SET is_check = ?, updated_at = ? WHERE field_id = ?
# --------------------------------------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------------------------------------
merchant_field_applies.insert=INSERT INTO merchant_field_applies (field_apply_id, apply_status, apply_type, reject, uid, field_id, name, logo, background, description, built_date, province_id, province_name, city_id, city_name, district_id, district_name, address, longitude, latitude, contact_name, contact_email, company_name, license_code, license_img, legal_name, legal_identity, legal_identity_obverse, legal_identity_reverse, created_at) VALUE (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) merchant_field_applies.insert=INSERT INTO merchant_field_applies (field_apply_id, apply_status, apply_type, reject, uid, field_id, name, logo, background, description, built_date, province_id, province_name, city_id, city_name, district_id, district_name, address, longitude, latitude, contact_name, contact_email, company_name, license_code, license_img, legal_name, legal_identity, legal_identity_obverse, legal_identity_reverse, created_at) VALUE (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
# --------------------------------------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------------------------------------
merchant_field_checkers.insert=INSERT INTO merchant_field_checkers (field_checker_id, field_id, uid, mobile, name, cuid, created_at) VALUE (?, ?, ?, ?, ?, ?, ?) merchant_field_checkers.insert=INSERT INTO merchant_field_checkers (field_checker_id, field_id, uid, mobile, name, cuid, created_at) VALUE (?, ?, ?, ?, ?, ?, ?)
merchant_field_checkers.update=UPDATE merchant_field_checkers SET cuid = ?, updated_at = ?, delete_at = ? WHERE field_checker_id = ? merchant_field_checkers.update=UPDATE merchant_field_checkers SET cuid = ?, updated_at = ?, delete_at = ? WHERE field_checker_id = ?
# --------------------------------------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------------------------------------
merchant_sponsor_applies.insert=INSERT INTO merchant_sponsor_applies (sponsor_apply_id, apply_status, apply_type, reject, uid, name, logo, background, description, contact_name, contact_identity, contact_identity_obverse, contact_identity_reverse, contact_email, company_name, license_code, license_img, legal_name, legal_identity, legal_identity_obverse, legal_identity_reverse, created_at) VALUE (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) merchant_sponsor_applies.insert=INSERT INTO merchant_sponsor_applies (sponsor_apply_id, apply_status, apply_type, reject, uid, name, logo, background, description, contact_name, contact_identity, contact_identity_obverse, contact_identity_reverse, contact_email, company_name, license_code, license_img, legal_name, legal_identity, legal_identity_obverse, legal_identity_reverse, created_at) VALUE (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
\ No newline at end of file
# ---- 演出修改 ----
kylin_performances.auditTime=UPDATE kylin_performances SET audit_time = ? WHERE performances_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_performances_status.withdraw=UPDATE kylin_performance_status SET audit_status = ? WHERE performance_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_performances_status.withdraw2=UPDATE kylin_performance_status SET audit_status = ? AND status = ? WHERE performance_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_performances_status.outLine=UPDATE kylin_performance_status SET status = ? AND updated_at = ? WHERE performance_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_performances_status.onLine=UPDATE kylin_performance_status SET status = ? AND updated_at = ? WHERE performance_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ---- 票种状态修改 ----
kylin_ticket_status.update_status=UPDATE kylin_ticket_status SET status = ?, updated_at = ? WHERE ticket_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_ticket_status.onLine=UPDATE kylin_ticket_status SET status = ?, updated_at = ? WHERE ticket_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ---- 演出第二步骤操作 ----
kylin_performance.updateStep2=UPDATE kylin_performances SET audit_time = ? , notice_image = ? WHERE performances_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_performance_status.updateStep2=UPDATE kylin_performance_status SET audit_status = ? , is_true_name = ? , limit_count = ? WHERE performance_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_ticket.updateStep2=UPDATE kylin_tickets SET time_end = ? , time_start = ? ,time_end_express = ? ,pay_countdown_minute = ? WHERE tickets_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_ticket_status.updateStep2=UPDATE kylin_ticket_status SET WHERE ticket_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ---- VoStatus ----
kylin_ticket_status.VoStatus=UPDATE kylin_ticket_status SET status = ?, surplus_general = ? WHERE ticket_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
kylin_performance_status.VoStatus=UPDATE kylin_performance_status SET status = ? WHERE performance_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ---- createPerformanceMySql ----
kylin_performances.del=DELETE FROM kylin_performances WHERE performances_id = ?
kylin_performance_status.del=DELETE FROM kylin_performance_status WHERE performance_id = ?
kylin_performance_relations.del=DELETE FROM kylin_performance_relations WHERE performance_id = ?
kylin_performances.insert=DELETE FROM kylin_performances WHERE performances_id = ?
kylin_performance_status.insert=DELETE FROM kylin_performance_status WHERE performance_id = ?
kylin_performance_relations.insert=DELETE FROM kylin_performance_relations WHERE performance_id = ?
kylin_ticket_times.del=DELETE FROM kylin_ticket_times WHERE ticket_times_id = ?
kylin_ticket_time_relation.del=DELETE FROM kylin_ticket_time_relation WHERE times_id = ?
kylin_ticket_times.insert=DELETE FROM kylin_ticket_times WHERE ticket_times_id = ?
kylin_ticket_time_relation.insert=DELETE FROM kylin_ticket_time_relation WHERE times_id = ?
kylin_tickets.del=DELETE FROM kylin_tickets WHERE tickets_id = ?
kylin_ticket_status.del=DELETE FROM kylin_ticket_status WHERE ticket_id = ?
kylin_ticket_relations.del=DELETE FROM kylin_ticket_relations WHERE ticket_id = ?
kylin_tickets.insert=DELETE FROM kylin_tickets WHERE tickets_id = ?
kylin_ticket_status.insert=DELETE FROM kylin_ticket_status WHERE ticket_id = ?
kylin_ticket_relations.insert=DELETE FROM kylin_ticket_relations WHERE ticket_id = ?
...@@ -5,14 +5,18 @@ import com.github.pagehelper.PageInfo; ...@@ -5,14 +5,18 @@ import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService; import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService;
import com.liquidnet.service.platform.utils.DataUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* <p> * <p>
* 购票须知表 前端控制器 * 购票须知表 前端控制器
...@@ -21,24 +25,33 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,24 +25,33 @@ import org.springframework.web.bind.annotation.RestController;
* @author liquidnet * @author liquidnet
* @since 2021-05-18 * @since 2021-05-18
*/ */
@Api(tags = "第三方-购票须知",position = 1004) @Api(tags = "第三方-购票须知", position = 1004)
@RestController @RestController
@RequestMapping("partner/buyNotice") @RequestMapping("partner/buyNotice")
public class KylinBuyNoticeParnterController { public class KylinBuyNoticeParnterController {
@Autowired @Autowired
private IKylinBuyNoticePartnerService buyNoticePartnerService; private IKylinBuyNoticePartnerService buyNoticePartnerService;
@Autowired
private DataUtils dataUtils;
@GetMapping(value = "") @GetMapping(value = "")
@ApiOperation(value = "购票须知列表",position = 1) @ApiOperation(value = "购票须知列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<KylinBuyNoticeVo>> getBuyNotice() { public ResponseDto<List<KylinBuyNoticeVo>> getBuyNotice() {
PageInfo<KylinBuyNoticeVo> result = buyNoticePartnerService.getBuyNotice(); PageInfo<KylinBuyNoticeVo> result = buyNoticePartnerService.getBuyNotice();
if (null == result) { if (null == result) {
return ResponseDto.failure("查询失败"); return ResponseDto.failure("查询失败");
} else { } else {
return ResponseDto.success(result); return ResponseDto.success(result.getList());
} }
} }
@GetMapping(value = "string")
@ApiOperation(value = "购票须知列表String", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> getBuyNoticeJsonString(@RequestParam("buyNoticeId") String buyNoticeId) {
return ResponseDto.success(dataUtils.getBuyNoticeJsonString(buyNoticeId.split(",")));
}
} }
...@@ -42,8 +42,9 @@ public class KylinTicketTimesPartnerController { ...@@ -42,8 +42,9 @@ public class KylinTicketTimesPartnerController {
@DeleteMapping(value = "") @DeleteMapping(value = "")
@ApiOperation(value = "删除场次",position = 2) @ApiOperation(value = "删除场次",position = 2)
@ApiResponse(response = KylinTicketTimesPartnerVo.class, code = 200, message = "接口返回对象参数") @ApiResponse(response = KylinTicketTimesPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<String> deleteTimes(@RequestParam("ticketTimesId") @NotNull(message = "场次ID不能为空") String ticketTimesId) { public ResponseDto<String> deleteTimes(@RequestParam("ticketTimesId") @NotNull(message = "场次ID不能为空") String ticketTimesId,
return ticketTimesPartnerService.deleteTimes(ticketTimesId); @RequestParam("performanceId") @NotNull(message = "演出ID不能为空") String performanceId) {
return ticketTimesPartnerService.deleteTimes(ticketTimesId,performanceId);
} }
@PutMapping(value = "") @PutMapping(value = "")
......
...@@ -49,8 +49,9 @@ public class KylinTicketsPartnerController { ...@@ -49,8 +49,9 @@ public class KylinTicketsPartnerController {
@DeleteMapping(value = "") @DeleteMapping(value = "")
@ApiOperation(value = "删除票务",position = 3) @ApiOperation(value = "删除票务",position = 3)
@ApiResponse( code = 200, message = "接口返回对象参数") @ApiResponse( code = 200, message = "接口返回对象参数")
public ResponseDto<String> deleteTicket(@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId) { public ResponseDto<String> deleteTicket(@RequestParam("ticketsId") @NotNull(message = "票务ID不能为空") String ticketsId,
return ticketsPartnerService.deleteTicket(ticketsId); @RequestParam("performanceId") @NotNull(message = "演出ID不能为空") String performanceId) {
return ticketsPartnerService.deleteTicket(ticketsId,performanceId);
} }
@PostMapping(value = "/copy") @PostMapping(value = "/copy")
......
...@@ -8,6 +8,7 @@ import com.liquidnet.common.cache.redis.util.RedisUtil; ...@@ -8,6 +8,7 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.UserPathDto; import com.liquidnet.service.base.UserPathDto;
...@@ -143,7 +144,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -143,7 +144,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
performancePartnerVo.setProjectId("0"); performancePartnerVo.setProjectId("0");
performancePartnerVo.setIsShow(1); performancePartnerVo.setIsShow(1);
performancePartnerVo.setFieldName((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + performancePartnerVo.getFieldId(), "name")); performancePartnerVo.setFieldName((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + performancePartnerVo.getFieldId(), "name"));
performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds())); performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds().toArray(new String[step1Param.getNoticeIds().size()])));
mongoTemplate.insert( mongoTemplate.insert(
performancePartnerVo, PerformancePartnerVo.class.getSimpleName() performancePartnerVo, PerformancePartnerVo.class.getSimpleName()
...@@ -175,9 +176,9 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor ...@@ -175,9 +176,9 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
performancePartnerVo.setUpdatedAt(timeNow.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); performancePartnerVo.setUpdatedAt(timeNow.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performancePartnerVo.setIsSubmit(0); performancePartnerVo.setIsSubmit(0);
performancePartnerVo.setStatus(0); performancePartnerVo.setStatus(0);
performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds())); performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds().toArray(new String[step1Param.getNoticeIds().size()])));
performancePartnerVo.setFieldName((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + performancePartnerVo.getFieldId(), "name")); performancePartnerVo.setFieldName((String) redisUtil.getDB15RedisHGet(KylinRedisConst.FIELDS + ":" + performancePartnerVo.getFieldId(), "name"));
performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds())); performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds().toArray(new String[step1Param.getNoticeIds().size()])));
if (data != null) { // 有修改记录 if (data != null) { // 有修改记录
performancePartnerVo.setIsTrueName(data.getIsTrueName()); performancePartnerVo.setIsTrueName(data.getIsTrueName());
performancePartnerVo.setLimitCount(data.getLimitCount()); performancePartnerVo.setLimitCount(data.getLimitCount());
......
...@@ -170,7 +170,7 @@ public class KylinTicketTimesPartnerServiceImpl extends ServiceImpl<KylinTicketT ...@@ -170,7 +170,7 @@ public class KylinTicketTimesPartnerServiceImpl extends ServiceImpl<KylinTicketT
} }
@Override @Override
public ResponseDto<String> deleteTimes(String ticketTimesId) { public ResponseDto<String> deleteTimes(String ticketTimesId,String performanceId) {
try { try {
LocalDateTime updatedAt = LocalDateTime.now(); LocalDateTime updatedAt = LocalDateTime.now();
......
...@@ -259,7 +259,7 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp ...@@ -259,7 +259,7 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
} }
@Override @Override
public ResponseDto<String> deleteTicket(String ticketsId) { public ResponseDto<String> deleteTicket(String ticketsId,String performanceId) {
try { try {
LocalDateTime updatedAt = LocalDateTime.now(); LocalDateTime updatedAt = LocalDateTime.now();
......
...@@ -49,7 +49,7 @@ public class DataUtils { ...@@ -49,7 +49,7 @@ public class DataUtils {
* @param buyNoticeIds 购票须知 数组 * @param buyNoticeIds 购票须知 数组
* @return 购票须知 json串 * @return 购票须知 json串
*/ */
public String getBuyNoticeJsonString(List<String> buyNoticeIds) { public String getBuyNoticeJsonString(String[] buyNoticeIds) {
List<KylinBuyNotice> data = buyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().in("buy_notice_id", buyNoticeIds)); List<KylinBuyNotice> data = buyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().in("buy_notice_id", buyNoticeIds));
return JsonUtils.toJson(data); return JsonUtils.toJson(data);
} }
......
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