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

Commit 2aae3e85 authored by 胡佳晨's avatar 胡佳晨

impl 删除 mapper

parent 8561c903
...@@ -19,7 +19,6 @@ import java.util.Arrays; ...@@ -19,7 +19,6 @@ import java.util.Arrays;
@Slf4j @Slf4j
@EnableFeignClients @EnableFeignClients
@MapperScan(basePackages = "com.liquidnet.service.kylin.mapper")
@SpringBootApplication(scanBasePackages = {"com.liquidnet"}) @SpringBootApplication(scanBasePackages = {"com.liquidnet"})
public class ServiceKylinApplication implements CommandLineRunner { public class ServiceKylinApplication implements CommandLineRunner {
@Autowired @Autowired
......
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.service.impl.DataImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "数据迁移 (会重复)")
@RestController
@RequestMapping("data")
public class DataController {
@Autowired
private DataImpl data;
@PostMapping("performance")
@ApiOperation("演出数据迁移")
public ResponseDto<Boolean> performance() {
Boolean result = data.performance();
return ResponseDto.success(result);
}
@PostMapping("order")
@ApiOperation("订单数据迁移")
public ResponseDto<Boolean> order(String month) {
Boolean result = data.order(month);
return ResponseDto.success(result);
}
@PostMapping("roadShow")
@ApiOperation("巡演数据迁移")
public ResponseDto<Boolean> roadShow() {
Boolean result = data.roadShow();
return ResponseDto.success(result);
}
}
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo;
import com.liquidnet.service.kylin.service.impl.FieldsServiceImpl;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@Api
@RestController
@RequestMapping("kylin/user/fields")
public class FieldsController {
@Autowired
private FieldsServiceImpl fieldsService;
// @GetMapping(value = "details")
// @ApiOperation(value = "获取场地详情")
// @ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinFieldsVo> fieldDetails(@RequestParam(value = "fieldId", defaultValue = "59666659929161728") String fieldId) {
KylinFieldsVo result = null;
result = fieldsService.fieldDetails(fieldId);
if (null == result) {
return ResponseDto.failure("场地详情查询失败");
} else {
return ResponseDto.success(result);
}
}
// @GetMapping(value = "list")
// @ApiOperation(value = "获取场地列表")
// @ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<HashMap<String, Object>> fieldList(@RequestParam(value = "page", defaultValue = "1") int page,@RequestParam(value = "size", defaultValue = "10") int size,@RequestParam(value = "city_id", defaultValue = "1") int city_id) {
HashMap<String, Object> result = null;
result = fieldsService.fieldList(page-1,size,city_id);
if (null == result) {
return ResponseDto.failure("场地列表获取失败");
} else {
return ResponseDto.success(result);
}
}
}
...@@ -100,11 +100,14 @@ public class KylinOrderTicketsController { ...@@ -100,11 +100,14 @@ public class KylinOrderTicketsController {
@PostMapping("sendOrderRefunds") @PostMapping("sendOrderRefunds")
@ApiOperation("发起退款申请") @ApiOperation("发起退款申请")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Boolean> sendOrderRefund(@RequestParam(value = "orderId", required = true) @NotNull(message = "订单id不能为空") String orderId, public ResponseDto<HashMap<String,String>> sendOrderRefund(@RequestParam(value = "orderId", required = true) @NotNull(message = "订单id不能为空") String orderId,
@RequestParam(value = "orderTicketEntitiesId", required = true) @NotNull(message = "票单id不能为空") String orderTicketEntitiesId, @RequestParam(value = "orderTicketEntitiesId", required = true) @NotNull(message = "票单id不能为空") String orderTicketEntitiesId,
@RequestParam(value = "reason", required = true) @NotNull(message = "退款原因不能为空") String reason, @RequestParam(value = "reason", required = true) @NotNull(message = "退款原因不能为空") String reason,
@RequestParam(value = "picList", required = false) String picList) { @RequestParam(value = "picList", required = false) String picList) {
return orderTicketsService.sendOrderRefund(orderId, orderTicketEntitiesId, reason, picList); String orderRefundId = orderTicketsService.sendOrderRefund(orderId, orderTicketEntitiesId, reason, picList).getData();
HashMap<String,String> map = new HashMap<String,String>();
map.put("orderRefundsId",orderRefundId);
return ResponseDto.success(map);
} }
@GetMapping("orderRefundDetails") @GetMapping("orderRefundDetails")
...@@ -146,12 +149,4 @@ public class KylinOrderTicketsController { ...@@ -146,12 +149,4 @@ public class KylinOrderTicketsController {
map.put("unPayCount", unPayCount); map.put("unPayCount", unPayCount);
return ResponseDto.success(map); return ResponseDto.success(map);
} }
@PostMapping("checkOrderTime")
@ApiOperation("订单过期脚本")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Boolean> checkOrderTime() {
return ResponseDto.success(orderTicketsService.checkOrderTime(""));
}
} }
...@@ -211,12 +211,6 @@ public class KylinPerformancesController { ...@@ -211,12 +211,6 @@ public class KylinPerformancesController {
} }
} }
@PostMapping("/checkPerformanceTime")
@ApiOperation("演出脚本")
public ResponseDto<String> checkPerformanceTime(@RequestParam(value = "performancesId",required = false)String performancesId){
return ResponseDto.success(kylinPerformancesService.checkPerformanceTime(performancesId));
}
@PostMapping("lackRegister") @PostMapping("lackRegister")
@ApiOperation("缺票登记") @ApiOperation("缺票登记")
@ApiImplicitParams({ @ApiImplicitParams({
......
package com.liquidnet.service.kylin.controller.partner;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo;
import com.liquidnet.service.kylin.service.impl.partner.FieldsPartnerServiceImpl;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
@Api
@RestController
@RequestMapping("partner/fields")
public class FieldsPartnerController {
@Autowired
private FieldsPartnerServiceImpl fieldsPartnerService;
// @GetMapping(value = "details")
// @ApiOperation(value = "获取场地详情")
// @ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinFieldsVo> fieldDetails(@RequestParam(value = "fieldId", defaultValue = "59666659929161728") String fieldId) {
KylinFieldsVo result = null;
result = fieldsPartnerService.fieldDetails(fieldId);
if (null == result) {
return ResponseDto.failure("场地详情查询失败");
} else {
return ResponseDto.success(result);
}
}
// @GetMapping(value = "list")
// @ApiOperation(value = "获取场地列表")
// @ApiResponse(response = FieldsVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<HashMap<String, Object>> fieldList(@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "size", defaultValue = "10") int size, @RequestParam(value = "name", defaultValue = "") String name) {
HashMap<String, Object> result = null;
result = fieldsPartnerService.fieldList(page-1,size,name);
if (null == result) {
return ResponseDto.failure("场地列表获取失败");
} else {
return ResponseDto.success(result);
}
}
}
package com.liquidnet.service.kylin.controller.partner;
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.impl.partner.KylinBuyNoticePartnerServiceImpl;
import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService;
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.*;
/**
* <p>
* 购票须知表 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-18
*/
@Api(tags = "第三方-购票须知",position = 1004)
@RestController
@RequestMapping("partner/buyNotice")
public class KylinBuyNoticeParnterController {
@Autowired
private IKylinBuyNoticePartnerService buyNoticePartnerService;
@GetMapping(value = "")
@ApiOperation(value = "购票须知列表",position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<KylinBuyNoticeVo>> getBuyNotice() {
PageInfo<KylinBuyNoticeVo> result = buyNoticePartnerService.getBuyNotice();
if (null == result) {
return ResponseDto.failure("查询失败");
} else {
return ResponseDto.success(result);
}
}
}
package com.liquidnet.service.kylin.controller.partner;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.ChildDetailsDao;
import com.liquidnet.service.kylin.dao.ChildListDao;
import com.liquidnet.service.kylin.service.impl.partner.KylinCheckUserPartnerServiceImpl;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.hibernate.validator.constraints.Length;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* <p>
* 验票用户表 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Api(tags = "第三方-验票账号")
@RestController
@RequestMapping("partner/checkUser")
@Validated
public class KylinCheckUserPartnerController {
@Autowired
private IKylinCheckUserPartnerService checkUserPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "创建验票账号", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> create(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam("name") @NotNull String name,
@RequestParam("pwd") @NotNull String pwd,
@RequestParam("mobile") @NotNull @Length(max = 11) String mobile) {
return checkUserPartnerService.create(merchantId, name, pwd, mobile);
}
@DeleteMapping(value = "")
@ApiOperation(value = "删除验票账号", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> del(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam("checkUserId") @NotNull String checkUserId) {
return checkUserPartnerService.del(merchantId, checkUserId);
}
@PutMapping(value = "")
@ApiOperation(value = "修改验票账号", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> change(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam("checkUserId") @NotNull String checkUserId,
@RequestParam("name") @NotNull String name,
@RequestParam(value = "pwd",required = false) @NotNull String pwd,
@RequestParam("mobile") @Length(max = 11) String mobile) {
return checkUserPartnerService.change(merchantId, checkUserId, name, pwd, mobile);
}
@GetMapping(value = "list")
@ApiOperation(value = "验票账号列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<ChildListDao>> getCheckUserList(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam(value = "mobile" , required = false) @Length(max = 11) String mobile,
@RequestParam("page") @NotNull @Min(1) int page,
@RequestParam("size") @NotNull @Min(1)int size) {
PageInfo<ChildListDao> result = checkUserPartnerService.getCheckUserList(merchantId,mobile,page,size);
if (null == result) {
return ResponseDto.failure("查询失败");
} else {
return ResponseDto.success(result);
}
}
@GetMapping(value = "details")
@ApiOperation(value = "验票账号详情", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<ChildDetailsDao> details(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam("checkUserId") @NotNull String checkUserId) {
ResponseDto<ChildDetailsDao> result = checkUserPartnerService.details(merchantId,checkUserId);
if (null == result) {
return ResponseDto.failure("查询失败");
} else {
return result;
}
}
}
package com.liquidnet.service.kylin.controller.partner;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.ChildPerformanceDao;
import com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam;
import com.liquidnet.service.kylin.dto.param.CheckUserParam;
import com.liquidnet.service.kylin.mapper.KylinCheckUserPerformancesMapper;
import com.liquidnet.service.kylin.service.impl.partner.KylinCheckUserPerformancesPartnerServiceImpl;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketsPartnerServiceImpl;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService;
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.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 验票用户可看演出表 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Api(tags = "第三方-验票账号关联演出")
@RestController
@RequestMapping("partner/checkUser/performance")
@Validated
public class KylinCheckUserPerformancesPartnerController {
@Autowired
private IKylinCheckUserPerformancesPartnerService userPerformancesPartnerService;
@PostMapping(value = "")
@ApiOperation(value = "添加关联关系", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> setPerformance(@RequestBody @Valid CheckUserParam param) {
return userPerformancesPartnerService.setPerformance(param);
}
@DeleteMapping(value = "")
@ApiOperation(value = "删除关联关系", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> delPerformance(@RequestParam("performanceIds") @Size(min = 1) @NotNull List<String> performanceIds,
@RequestParam("checkUserId") String checkUserId) {
return userPerformancesPartnerService.delPerformance(performanceIds, checkUserId);
}
@GetMapping(value = "relation")
@ApiOperation(value = "关联演出列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam("checkUserId") @NotNull String checkUserId,
@RequestParam("page") @NotNull @Min(1) int page,
@RequestParam("size") @NotNull @Min(1)int size,
@RequestParam("name") String name) {
return userPerformancesPartnerService.childPerformanceList(merchantId, checkUserId, page, size,name);
}
@GetMapping(value = "unRelation")
@ApiOperation(value = "未关联演出列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(@RequestParam("merchantId") @NotNull String merchantId,
@RequestParam("checkUserId") @NotNull String checkUserId,
@RequestParam("page") @NotNull @Min(1) int page,
@RequestParam("size") @NotNull @Min(1) int size,
@RequestParam("name") String name) {
return userPerformancesPartnerService.unChildPerformanceList(merchantId, checkUserId, page, size,name);
}
}
package com.liquidnet.service.kylin.controller.partner;
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.impl.partner.KylinTicketTimesPartnerServiceImpl;
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 String ticketTimesId) {
return ticketTimesPartnerService.deleteTimes(ticketTimesId);
}
@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 String ticketTimesId) {
KylinTicketTimesPartnerVo result = null;
result = ticketTimesPartnerService.getTimesMongo(ticketTimesId);
if (null == result) {
return ResponseDto.failure("查询场次信息失败");
} else {
return ResponseDto.success(result);
}
}
}
package com.liquidnet.service.kylin.controller.partner;
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.impl.partner.KylinTicketsPartnerServiceImpl;
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 String ticketsId) {
return ticketsPartnerService.deleteTicket(ticketsId);
}
@PostMapping(value = "/copy")
@ApiOperation(value = "复制票务",position = 4)
@ApiResponse(response = KylinTicketPartnerVo.class, code = 200, message = "接口返回对象参数")
public ResponseDto<KylinTicketPartnerVo> copyTicket(@RequestParam("performancesId") @NotNull String performancesId,@RequestParam("ticketsId") @NotNull 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 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 String ticketsId,@RequestParam("performancesId") @NotNull 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 String ticketsId,@RequestParam("performancesId") @NotNull String performancesId) {
return ticketsPartnerService.outLine(ticketsId,performancesId);
}
}
package com.liquidnet.service.kylin.controller.partner;
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 com.liquidnet.service.kylin.utils.OtherUtils;
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 OtherUtils otherUtils;
@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 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 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 String performancesId) {
return performancesPartnerService.getStep2(performancesId);
}
@PostMapping(value = "online")
@ApiOperation(value = "演出上线",position = 7)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> onLinePerformance(@RequestParam("performancesId") @NotNull String performancesId) {
return performancesPartnerService.onLinePerformance(performancesId);
}
@PostMapping(value = "outline")
@ApiOperation(value = "演出下线",position = 8)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> outLinePerformance(@RequestParam("performancesId") @NotNull String performancesId) {
return performancesPartnerService.outLinePerformance(performancesId);
}
@PostMapping(value = "withdraw")
@ApiOperation(value = "演出撤回",position = 9)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> withdraw(@RequestParam("performancesId") @NotNull 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 String performancesId) {
List<PerformanceOrderStatisticalVo> list =performancesPartnerService.getPerformanceOrderStatisticalList(performancesId);
return ResponseDto.success(list);
}
}
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo; import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService; import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -27,7 +24,7 @@ import java.util.List; ...@@ -27,7 +24,7 @@ import java.util.List;
* @since 2021-05-02 * @since 2021-05-02
*/ */
@Service @Service
public class BannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService { public class BannersServiceImpl implements IKylinBannersService {
@Value("${liquidnet.al-oss.imgUrl}") @Value("${liquidnet.al-oss.imgUrl}")
private String imgUrl; private String imgUrl;
......
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
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.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.*;
import com.liquidnet.service.kylin.timerTask.PerformanceVoTask;
import com.liquidnet.service.kylin.utils.DataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.sql.*;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
@Service
public class DataImpl {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private KylinPerformancesMapper performancesMapper;
@Autowired
private KylinPerformanceStatusMapper performanceStatusMapper;
@Autowired
private KylinPerformanceRelationsMapper performanceRelationsMapper;
@Autowired
private KylinTicketTimesMapper ticketTimesMapper;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private KylinTicketsMapper ticketsMapper;
@Autowired
private KylinTicketStatusMapper ticketStatusMapper;
@Autowired
private KylinTicketRelationsMapper ticketRelationsMapper;
@Autowired
private PerformanceVoTask performanceVoTask;
@Autowired
private IKylinOrderTicketsService kylinOrderTicketsService;
@Autowired
private IKylinOrderTicketStatusService kylinOrderTicketStatusService;
@Autowired
private IKylinOrderTicketRelationsService kylinOrderTicketRelationsService;
@Autowired
private IKylinOrderTicketEntitiesService kylinOrderTicketEntitiesService;
@Autowired
private IKylinRoadShowsService kylinRoadShowsService;
@Autowired
private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
public boolean performance() {
try {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
PreparedStatement pstmt = null; //使用预编译语句
ResultSet rs = null; //获取的结果集
//演出实体类
KylinPerformances performances = new KylinPerformances();
KylinPerformanceRelations performanceRelations = new KylinPerformanceRelations();
KylinPerformanceStatus performanceStatus = new KylinPerformanceStatus();
//场次实体类
KylinTicketTimes ticketTimes = new KylinTicketTimes();
KylinTicketTimeRelation ticketTimeRelation = new KylinTicketTimeRelation();
//票实体类
KylinTickets tickets = new KylinTickets();
KylinTicketRelations ticketRelations = new KylinTicketRelations();
KylinTicketStatus ticketStatus = new KylinTicketStatus();
// 第三方Vo
PerformancePartnerVo performancePartnerVo = new PerformancePartnerVo();
KylinTicketTimesPartnerVo ticketTimesPartnerVo = new KylinTicketTimesPartnerVo();
KylinTicketPartnerVo ticketPartnerVo = new KylinTicketPartnerVo();
int count = 200;
int page = 0;
try {
Class.forName(driverClassName); //执行驱动
con = DriverManager.getConnection(url, username, password); //获取连接
String sqlAllCount = "select count(0) as 'allCount' from performances where status >= 3 and created_at > '2021-01-01 00:00:01'"; //设置的预编译语句格式
pstmt = con.prepareStatement(sqlAllCount);
ResultSet allCount = pstmt.executeQuery();
ArrayList<String> performanceIds = new ArrayList<>();
int allCountResult = 0;//共多少条
int rowCount = 0;//当前多少条
boolean isBreak = false;//是否终端循环
while (allCount.next()) {
allCountResult = allCount.getInt("allCount");
}
do {
String sql = "select * from performances where status >= 3 and created_at > '2021-01-01 00:00:01' limit " + count * page + " ," + count; //设置的预编译语句格式
pstmt = con.prepareStatement(sql);
ResultSet resultData = pstmt.executeQuery();
int performanceId = 0;
//演出数据
while (resultData.next()) {
performanceId = resultData.getInt("id");
// performances.setPerformancesId(IDGenerator.nextSnowId().toString());
performances.setPerformancesId(resultData.getInt("id") + "");
performanceIds.add(performances.getPerformancesId());
performances.setTitle(resultData.getString("title"));
performances.setType(resultData.getInt("type") == 1 ? 101 : 102);
if (resultData.getInt("road_show_id") > 0) {
performances.setType(103);
}
performances.setImgPoster(resultData.getString("img_poster"));
performances.setApprovalUrl(resultData.getString("approval_url"));
performances.setNotice(resultData.getString("notice"));
performances.setSponsorId(resultData.getString("sponsor_id"));
performances.setSponsorType(resultData.getString("sponsor_type"));
performances.setSponsor(resultData.getString("sponsor"));
performances.setContacts(resultData.getString("contacts"));
performances.setMobile(resultData.getString("mobile"));
performances.setDescribes(resultData.getString("describe"));
performances.setDetails(resultData.getString("detail"));
performances.setCityId(Integer.parseInt(resultData.getString("city_id")));
performances.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + resultData.getInt("field_id"), "city_name"));
performances.setNoticeImage("[{\"id\":1,\"sort\":1,\"message\":\"因演出票品非普通商品,其背后承载的文化服务具有时效性、稀缺性等特征,故不适用7天无理由退货政策。因“不可抗力”导致的演出取消或延期除外。\",\"title\":\"门票退换\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c45722882a13.png\"},{\"id\":7,\"sort\":2,\"message\":\"凭订单二维码或手机号兑票入场,二维码或手机号请勿泄露,以免影响入场。个人原因导致的信息泄露,主办方/平台方不承担任何责任。\",\"title\":\"电子票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png\"},{\"id\":3,\"sort\":3,\"message\":\"本场演出不设座位,均为站席观演。\",\"title\":\"仅设站席\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e93db0b9.png\"},{\"id\":12,\"sort\":4,\"message\":\"每场现场票数量由场地方决定,具体请到现场询问。\",\"title\":\"现场票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d07647eaa55f.png\"}]");
performances.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("time_start").toString()));
performances.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("time_end").toString()));
if (null != resultData.getString("audit_submit_time")) {
performances.setAuditTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(resultData.getString("audit_submit_time")));
}
performances.setRejectTxt(resultData.getString("reject_text"));
performances.setSort(resultData.getInt("sort"));
performances.setComment("");
performances.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("created_at").toString()));
if (null != resultData.getTimestamp("updated_at")) {
performances.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("updated_at").toString()));
}
//Status
performanceStatus.setPerformanceStatusId(IDGenerator.nextSnowId().toString());
performanceStatus.setPerformanceId(performances.getPerformancesId());
performanceStatus.setIsShow(resultData.getInt("show"));
performanceStatus.setStatus(resultData.getInt("status"));
performanceStatus.setStatusSell(1);
performanceStatus.setIsDistribution(0);
performanceStatus.setSyncAgent(0);
performanceStatus.setSyncDamai(0);
performanceStatus.setAuditStatus(1);
performanceStatus.setIsTrueName(resultData.getString("need_id_card").equals("yes") ? 1 : 0);
performanceStatus.setLimitCount(resultData.getInt("num_limit_mobile"));
performanceStatus.setLimitCountMember(1);
performanceStatus.setIsRecommend(resultData.getInt("is_recommend"));
performanceStatus.setCreatedAt(performances.getCreatedAt());
performanceStatus.setUpdatedAt(performances.getUpdatedAt());
//Relation
performanceRelations.setPerformanceRelationsId(IDGenerator.nextSnowId().toString());
performanceRelations.setPerformanceId(performances.getPerformancesId());
performanceRelations.setCopyId(resultData.getInt("copy_id") + "");
performanceRelations.setMerchantId(resultData.getInt("merchant_id") + "");
performanceRelations.setFieldId(resultData.getInt("field_id") + "");
performanceRelations.setRoadShowId(resultData.getInt("road_show_id") + "");
performanceRelations.setProjectId("");
performanceRelations.setVideoId("");
performanceRelations.setCreatedAt(performances.getCreatedAt());
performanceRelations.setUpdatedAt(performances.getUpdatedAt());
performancesMapper.insert(performances);
performanceStatusMapper.insert(performanceStatus);
performanceRelationsMapper.insert(performanceRelations);
performancePartnerVo.setPerformancesId(performances.getPerformancesId());
performancePartnerVo.setImgPoster(performances.getImgPoster());
performancePartnerVo.setTitle(performances.getTitle());
performancePartnerVo.setType(performances.getType());
performancePartnerVo.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmss.format(performances.getTimeStart()));
performancePartnerVo.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmss.format(performances.getTimeEnd()));
performancePartnerVo.setFieldId(performanceRelations.getFieldId());
performancePartnerVo.setFieldName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performances.getPerformancesId(), "name"));
performancePartnerVo.setNotice(performances.getNotice());
performancePartnerVo.setSponsorId(performances.getSponsorId());
performancePartnerVo.setSponsorType(performances.getSponsorType());
performancePartnerVo.setSponsor(performances.getSponsor());
performancePartnerVo.setContacts(performances.getContacts());
performancePartnerVo.setMobile(performances.getMobile());
performancePartnerVo.setDetails(performances.getDetails());
performancePartnerVo.setApprovalUrl(performances.getApprovalUrl());
performancePartnerVo.setPayCountdownMinute(5);
performancePartnerVo.setNoticeIds(new ArrayList<String>() {{
add("1");
add("3");
add("7");
add("12");
}});
performancePartnerVo.setNoticeImage(performances.getNoticeImage());
performancePartnerVo.setIsTrueName(performanceStatus.getIsTrueName());
performancePartnerVo.setLimitCount(performanceStatus.getLimitCount());
performancePartnerVo.setIsSubmit(1);
performancePartnerVo.setStatus(performanceStatus.getStatus());
performancePartnerVo.setMerchantId(performanceRelations.getMerchantId());
performancePartnerVo.setDescribes(performances.getDescribes());
performancePartnerVo.setStatusSell(performanceStatus.getStatusSell());
performancePartnerVo.setRoadShowId(performanceRelations.getRoadShowId());
performancePartnerVo.setRejectTxt(performances.getRejectTxt());
performancePartnerVo.setAuditStatus(1);
performancePartnerVo.setIsShow(performanceStatus.getIsShow());
performancePartnerVo.setProjectId(performances.getProvinceId());
// performancePartnerVo.setNoticeIds();
performancePartnerVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(performances.getCreatedAt()));
performancePartnerVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(performances.getUpdatedAt()));
performancePartnerVo.setIsCreateSave(0);
mongoTemplate.insert(performancePartnerVo, PerformancePartnerVo.class.getSimpleName());
//场次相关
String timesSql = "select type,use_start,use_end,created_at from tickets where performance_id = " + performanceId + " GROUP BY use_start,use_end"; //设置的预编译语句格式
pstmt = con.prepareStatement(timesSql);
ResultSet timesData = pstmt.executeQuery();
HashMap<String, String> timeMap = new HashMap<>();
while (timesData.next()) {
String title = "";
String useStart = DateUtil.Formatter.yyyyMMddHHmmssS.parse(timesData.getTimestamp("use_start").toString()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
;
String useEnd = DateUtil.Formatter.yyyyMMddHHmmssS.parse(timesData.getTimestamp("use_end").toString()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
;
if (timesData.getInt("type") == 1) {
title = useStart;
} else {
title = useStart + "-" + useEnd;
}
//times
ticketTimes.setTicketTimesId(IDGenerator.nextSnowId().toString());
ticketTimes.setTitle(title);
ticketTimes.setType(timesData.getInt("type"));
ticketTimes.setStatus(1);
ticketTimes.setUseStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(timesData.getTimestamp("use_start").toString()));
ticketTimes.setUseEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(timesData.getTimestamp("use_end").toString()));
ticketTimes.setComment("");
if (null != timesData.getTimestamp("created_at")) {
ticketTimes.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(timesData.getTimestamp("created_at").toString()));
}
ticketTimes.setUpdatedAt(null);
//Relation
ticketTimeRelation.setTicketTimeRelationId(IDGenerator.nextSnowId().toString());
ticketTimeRelation.setTimesId(ticketTimes.getTicketTimesId());
ticketTimeRelation.setPerformanceId(performanceId + "");
ticketTimeRelation.setCreatedAt(ticketTimes.getCreatedAt());
timeMap.put(title, ticketTimes.getTicketTimesId());
ticketTimesMapper.insert(ticketTimes);
ticketTimeRelationMapper.insert(ticketTimeRelation);
ticketTimesPartnerVo.setTicketTimesId(ticketTimes.getTicketTimesId());
ticketTimesPartnerVo.setPerformancesId(ticketTimeRelation.getPerformanceId());
ticketTimesPartnerVo.setType(ticketTimes.getType());
ticketTimesPartnerVo.setTitle(ticketTimes.getTitle());
ticketTimesPartnerVo.setStatus(ticketTimes.getStatus());
ticketTimesPartnerVo.setUseEnd(DateUtil.Formatter.yyyyMMddHHmmss.format(ticketTimes.getUseEnd()));
ticketTimesPartnerVo.setUseStart(DateUtil.Formatter.yyyyMMddHHmmss.format(ticketTimes.getUseStart()));
ticketTimesPartnerVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(ticketTimes.getCreatedAt()));
mongoTemplate.insert(ticketTimesPartnerVo, KylinTicketTimesPartnerVo.class.getSimpleName());
}
//票sql
String ticketSql = "select * from tickets where performance_id = " + performanceId; //设置的预编译语句格式
pstmt = con.prepareStatement(ticketSql);
ResultSet ticketData = pstmt.executeQuery();
while (ticketData.next()) {
//会员sql
String memberSql = "select status from performance_members where performance_id = " + performanceId; //设置的预编译语句格式
pstmt = con.prepareStatement(memberSql);
int isMember = 0;
ResultSet memberData = pstmt.executeQuery();
while (memberData.next()) {
isMember = memberData.getInt("status") == 1 ? 1 : 0;
}
String title = "";
String useStart = DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_start").toString()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
String useEnd = DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_end").toString()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
if (ticketData.getInt("type") == 1) {
title = useStart;
} else {
title = useStart + "-" + useEnd;
}
//Ticket
// tickets.setPerformancesId(IDGenerator.nextSnowId().toString());
tickets.setTicketsId(ticketData.getInt("id") + "");
tickets.setTitle(ticketData.getString("title"));
tickets.setType(ticketData.getInt("type"));
tickets.setPrice(ticketData.getBigDecimal("price"));
tickets.setPriceExpress(ticketData.getBigDecimal("price_express"));
tickets.setPriceDiscountMember(new BigDecimal("0.00"));
tickets.setPriceDiscount(new BigDecimal("0.00"));
tickets.setDescribes(ticketData.getString("describe_express"));
tickets.setDescribeExpress(ticketData.getString("describe_express"));
tickets.setDescribeElectronic(ticketData.getString("describe_electronic"));
tickets.setAdvanceMinuteMember(5);
tickets.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_start").toString()));
tickets.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_end").toString()));
if (null != ticketData.getTimestamp("time_end_express")) {
tickets.setTimeEndExpress(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("time_end_express").toString()));
}
tickets.setUseStart(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_start").toString()));
tickets.setUseEnd(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_end").toString()));
tickets.setPayCountdownMinute(5);
tickets.setSaleRemindMinute(60);
tickets.setComment("");
if (null != ticketData.getTimestamp("created_at")) {
tickets.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("created_at").toString()));
}
if (null != ticketData.getTimestamp("updated_at")) {
tickets.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("updated_at").toString()));
}
//Status
ticketStatus.setTicketStatusId(IDGenerator.nextSnowId().toString());
ticketStatus.setTicketId(tickets.getTicketsId());
ticketStatus.setIsStudent(ticketData.getString("student").equals("yes") ? 1 : 0);
ticketStatus.setIsElectronic(ticketData.getInt("is_electronic"));
ticketStatus.setIsExpress(ticketData.getInt("is_express"));
ticketStatus.setStatus(ticketData.getInt("status"));
ticketStatus.setCounts(1);
ticketStatus.setStatusExchange(7);
ticketStatus.setIsShowCode(0);
// ticketStatus.setQrCodeShowTime();
ticketStatus.setIsLackRegister(ticketData.getInt("is_lack_register"));
ticketStatus.setTotalGeneral(ticketData.getInt("total_general"));
ticketStatus.setTotalExchange(ticketData.getInt("total_exchange"));
ticketStatus.setSurplusGeneral(ticketData.getInt("surplus_general"));
ticketStatus.setSurplusExchange(ticketData.getInt("surplus_exchange"));
ticketStatus.setExpressType(ticketData.getInt("express_type"));
ticketStatus.setIsTrueName(ticketData.getString("need_id_card").equals("yes") ? 1 : 0);
ticketStatus.setLimitCount(0);
ticketStatus.setMemberLimitCount(1);
ticketStatus.setIsTransfer(0);
ticketStatus.setIsExclusive(ticketData.getInt("is_exclusive"));
ticketStatus.setIsMember(isMember);
ticketStatus.setIsAgent(0);
ticketStatus.setSyncDamai(0);
ticketStatus.setCreatedAt(tickets.getCreatedAt());
if (null != ticketData.getTimestamp("updated_at")) {
ticketStatus.setUpdatedAt(tickets.getUpdatedAt());
}
//Relation
ticketRelations.setTicketRelationsId(IDGenerator.nextSnowId().toString());
ticketRelations.setTicketId(tickets.getTicketsId());
ticketRelations.setTimesId(timeMap.get(title));
ticketRelations.setCreatedAt(tickets.getCreatedAt());
if (null != ticketData.getTimestamp("updated_at")) {
ticketRelations.setUpdatedAt(tickets.getUpdatedAt());
}
ticketsMapper.insert(tickets);
ticketStatusMapper.insert(ticketStatus);
ticketRelationsMapper.insert(ticketRelations);
dataUtils.setSurplusGeneral(tickets.getTicketsId(), ticketStatus.getSurplusGeneral());
dataUtils.setSurplusExchange(tickets.getTicketsId(), ticketStatus.getSurplusExchange());
//Vo
ticketPartnerVo.setTicketsId(tickets.getTicketsId());
ticketPartnerVo.setTitle(tickets.getTitle());
ticketPartnerVo.setIsStudent(ticketStatus.getIsStudent());
ticketPartnerVo.setIsElectronic(ticketStatus.getIsElectronic());
ticketPartnerVo.setIsExpress(ticketStatus.getIsExpress());
ticketPartnerVo.setType(tickets.getType());
ticketPartnerVo.setPrice(tickets.getPrice());
ticketPartnerVo.setTimeEndExpress(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getTimeEndExpress()));
ticketPartnerVo.setTotalGeneral(ticketStatus.getTotalGeneral());
ticketPartnerVo.setTotalExchange(ticketStatus.getTotalExchange());
ticketPartnerVo.setLimitCount(ticketStatus.getLimitCount());
ticketPartnerVo.setCounts(1);
ticketPartnerVo.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getTimeStart()));
ticketPartnerVo.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getTimeEnd()));
ticketPartnerVo.setUseStart(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getUseStart()));
ticketPartnerVo.setUseEnd(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getUseEnd()));
ticketPartnerVo.setDescribes(tickets.getDescribes());
ticketPartnerVo.setDescribeExpress(tickets.getDescribeExpress());
ticketPartnerVo.setDescribeElectronic(tickets.getDescribeElectronic());
ticketPartnerVo.setStatus(ticketStatus.getStatus());
ticketPartnerVo.setIsShowCode(ticketStatus.getIsShowCode());
// ticketPartnerVo.setQrCodeShowTime();
ticketPartnerVo.setTimesId(ticketRelations.getTimesId());
ticketPartnerVo.setIsLackRegister(ticketStatus.getIsLackRegister());
ticketPartnerVo.setSurplusGeneral(ticketStatus.getSurplusGeneral());
ticketPartnerVo.setSurplusExchange(ticketStatus.getSurplusExchange());
ticketPartnerVo.setExpressType(ticketStatus.getExpressType());
ticketPartnerVo.setIsTransfer(ticketStatus.getIsTransfer());
ticketPartnerVo.setIsMember(ticketStatus.getIsMember());
ticketPartnerVo.setIsExclusive(ticketStatus.getIsExclusive());
ticketPartnerVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getCreatedAt()));
ticketPartnerVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(tickets.getUpdatedAt()));
mongoTemplate.insert(ticketPartnerVo, KylinTicketPartnerVo.class.getSimpleName());
}
}
for (int i = 0; i < performanceIds.size(); i++) {
performanceVoTask.performanceVoStatus(performanceIds.get(i));
}
resultData.last();
rowCount += resultData.getRow();
if (allCountResult > rowCount) {
isBreak = true;
page += 1;
} else {
isBreak = false;
}
} while (isBreak);
return true;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
//关闭资源,倒关
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) con.close(); //必须要关
} catch (Exception e) {
}
}
} catch (Exception e) {
return false;
}
}
public boolean order(String month) {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
PreparedStatement pstmt = null; //使用预编译语句
ResultSet rs = null; //获取的结果集
KylinOrderTicketVo orderTicketVo = new KylinOrderTicketVo();
try {
int count = 1000;
int page = 0;
Class.forName(driverClassName); //执行驱动
con = DriverManager.getConnection(url, username, password); //获取连接
String sqlAllCount = "select count(0) as 'allCount' from order_tickets where performance_id > 5721 and status != 2 and created_at like '2021-" + month + "%'"; //设置的预编译语句格式
// String sqlAllCount = "select count(0) as 'allCount' from order_tickets where performance_id = "+month + " and status != 2 and status !=-1"; //设置的预编译语句格式
System.out.println(" SQL COUNT = " + sqlAllCount);
pstmt = con.prepareStatement(sqlAllCount);
ResultSet allCount = pstmt.executeQuery();
int allCountResult = 0;//共多少条
int rowCount = 0;//当前多少条
boolean isBreak = false;//是否终端循环
while (allCount.next()) {
allCountResult = allCount.getInt("allCount");
}
do {
ArrayList<KylinOrderTickets> orderList = new ArrayList();
ArrayList<KylinOrderTicketStatus> orderStatusList = new ArrayList();
ArrayList<KylinOrderTicketRelations> orderRelationList = new ArrayList();
ArrayList<KylinOrderTicketEntities> orderEntitiesList = new ArrayList();
ArrayList<KylinOrderTicketVo> orderListVo = new ArrayList();
ArrayList<KylinOrderTicketEntitiesVo> orderEntitiesListVo = new ArrayList();
//订单
String sql = "select * from order_tickets where performance_id > 5721 and status != 2 and created_at like '2021-" + month + "%' limit " + count * page + " ," + count; //设置的预编译语句格式
// String sql = "select * from order_tickets where performance_id = "+month +" and status != 2 limit " + count * page + " ," + count;
System.out.println(" SQL DATA = " + sql);
pstmt = con.prepareStatement(sql);
ResultSet orderData = pstmt.executeQuery();
while (orderData.next()) {
KylinOrderTickets orderTickets = new KylinOrderTickets();
KylinOrderTicketStatus orderTicketStatus = new KylinOrderTicketStatus();
KylinOrderTicketRelations orderTicketRelations = new KylinOrderTicketRelations();
KylinOrderTicketEntities orderTicketEntities = new KylinOrderTicketEntities();
ArrayList<KylinOrderTicketEntitiesVo> entitiesVosList = new ArrayList<>();
String ticketSql = "select student,use_end,use_start,title,type from tickets where id = " + orderData.getInt("ticket_id"); //设置的预编译语句格式
pstmt = con.prepareStatement(ticketSql);
ResultSet ticketData = pstmt.executeQuery();
int isStudent = 0;
String useEnd = "";
String useStart = "";
String ticketTitle = "";
int ticketType = 0;
while (ticketData.next()) {
isStudent = ticketData.getString("student").equals("yes") ? 1 : 0;
ticketTitle = ticketData.getString("title");
ticketType = ticketData.getInt("type");
useEnd = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_end").toString()));
useStart = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(ticketData.getTimestamp("use_start").toString()));
}
//退款
String refundSql = "select refund_table_id,sum(refund_number) as 'refund_number',sum(refund_price) as 'refund_price' from order_refunds where refund_table = 'order_ticket_entities' and order_id = " + orderData.getInt("id") + " group by refund_table_id"; //设置的预编译语句格式
pstmt = con.prepareStatement(refundSql);
int refundNumber = 0;
BigDecimal refundPrice = new BigDecimal("0.00");
ResultSet refundData = pstmt.executeQuery();
while (refundData.next()) {
refundNumber += refundData.getInt("refund_number");
refundPrice = refundPrice.add(refundData.getBigDecimal("refund_price"));
}
//演出
String performancedSql = "select time_start,img_poster,need_id_card,notice from performances where id =" + orderData.getInt("performance_id");
pstmt = con.prepareStatement(performancedSql);
ResultSet performanceData = pstmt.executeQuery();
String performanceTimeStart = "";
String performanceImg = "";
int isTrueName = 0;
String notice = "";
while (performanceData.next()) {
performanceTimeStart = DateUtil.Formatter.yyyyMMddHHmmss.format(DateUtil.Formatter.yyyyMMddHHmmssS.parse(performanceData.getTimestamp("time_start").toString()));
performanceImg = performanceData.getString("img_poster");
isTrueName = performanceData.getString("need_id_card").equals("yes") ? 1 : 0;
notice = performanceData.getString("notice");
}
orderTickets.setOrderTicketsId(orderData.getInt("id") + "");
orderTickets.setUserId(orderData.getInt("user_id") + "");
orderTickets.setUserName(orderData.getString("user_name"));
orderTickets.setUserMobile(orderData.getString("user_mobile"));
orderTickets.setPerformanceTitle(orderData.getString("performance_title"));
orderTickets.setOrderCode(orderData.getString("order_code"));
orderTickets.setPayCode(orderData.getString("pay_code"));
orderTickets.setQrCode(orderData.getString("qr_code"));
orderTickets.setOrderType(orderData.getString("order_type"));
orderTickets.setOrderSource(orderData.getString("order_type"));
orderTickets.setOrderVersion(orderData.getString("order_version"));
orderTickets.setNumber(orderData.getInt("number"));
orderTickets.setPrice(orderData.getBigDecimal("price"));
orderTickets.setPriceMember(orderData.getBigDecimal("price_member"));
orderTickets.setPriceTotal(orderData.getBigDecimal("price_total"));
orderTickets.setPriceVoucher(orderData.getBigDecimal("price_voucher"));
orderTickets.setPriceActual(orderData.getBigDecimal("price_actual"));
orderTickets.setPriceExpress(orderData.getBigDecimal("price_express"));
orderTickets.setPriceRefund(refundPrice);
orderTickets.setRefundNumber(refundNumber);
orderTickets.setPayType(orderData.getString("pay_type"));
orderTickets.setPaymentType(orderData.getString("payment_type"));
orderTickets.setTimePay(orderData.getString("time_pay"));
orderTickets.setExpressContacts(orderData.getString("express_contacts"));
orderTickets.setExpressAddress(orderData.getString("express_address"));
orderTickets.setExpressPhone(orderData.getString("express_phone"));
orderTickets.setCouponType(orderData.getString("coupon_type"));
orderTickets.setGetTicketType(orderData.getString("get_ticket_type"));
orderTickets.setGetTicketDescribe(orderData.getString("get_ticket_describe"));
orderTickets.setPayCountdownMinute(orderData.getInt("pay_countdown_minute"));
orderTickets.setComment("");
orderTickets.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("created_at").toString()));
if (null != orderData.getTimestamp("updated_at")) {
orderTickets.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("updated_at").toString()));
}
orderTicketStatus.setOrderTicketStatusId(IDGenerator.nextSnowId().toString());
orderTicketStatus.setOrderId(orderTickets.getOrderTicketsId());
orderTicketStatus.setExpressType(orderData.getInt("express_type"));
orderTicketStatus.setIsStudent(isStudent);
orderTicketStatus.setTransferStatus(orderData.getInt("transfer_status"));
orderTicketStatus.setStatus(orderData.getInt("status"));
orderTicketStatus.setPayStatus(orderData.getInt("pay_status"));
orderTicketStatus.setCreatedAt(orderTickets.getCreatedAt());
orderTicketStatus.setUpdatedAt(orderTickets.getUpdatedAt());
orderTicketRelations.setOrderTicketRelationsId(IDGenerator.nextSnowId().toString());
orderTicketRelations.setOrderId(orderTickets.getOrderTicketsId());
orderTicketRelations.setTransferId(orderData.getInt("transfer_id") + "");
orderTicketRelations.setLiveId(orderData.getInt("live_id") + "");
orderTicketRelations.setPerformanceId(orderData.getString("performance_id"));
orderTicketRelations.setTimeId("");
orderTicketRelations.setTicketId(orderData.getString("ticket_id"));
orderTicketRelations.setAgentId(orderData.getString("proxy_id"));
orderTicketRelations.setIsMember(orderData.getInt("is_member"));
orderTicketRelations.setCreatedAt(orderTickets.getCreatedAt());
orderTicketRelations.setUpdatedAt(orderTickets.getUpdatedAt());
orderList.add(orderTickets);
orderStatusList.add(orderTicketStatus);
orderRelationList.add(orderTicketRelations);
// orderTicketsMapper.insert(orderTickets);
// orderTicketStatusMapper.insert(orderTicketStatus);
// orderTicketRelationsMapper.insert(orderTicketRelations);
//vo
orderTicketVo.setMid(0);
orderTicketVo.setOrderTicketsId(orderTickets.getOrderTicketsId());
orderTicketVo.setUserId(orderTickets.getUserId());
orderTicketVo.setUserName(orderTickets.getUserName());
orderTicketVo.setUserMobile(orderTickets.getUserMobile());
orderTicketVo.setPerformanceTitle(orderTickets.getPerformanceTitle());
orderTicketVo.setTicketTitle(ticketTitle);
orderTicketVo.setTimeStart(performanceTimeStart);
orderTicketVo.setUseStart(useStart);
orderTicketVo.setPerformanceImg(performanceImg);
orderTicketVo.setOrderCode(orderTickets.getOrderCode());
orderTicketVo.setPayCode(orderTickets.getPayCode());
orderTicketVo.setQrCode(orderTickets.getQrCode());
orderTicketVo.setOrderType(orderTickets.getOrderType());
orderTicketVo.setOrderVersion(orderTickets.getOrderVersion());
orderTicketVo.setNumber(orderTickets.getNumber());
orderTicketVo.setPrice(orderTickets.getPrice());
orderTicketVo.setPriceMember(orderTickets.getPriceMember());
orderTicketVo.setPriceTotal(orderTickets.getPriceTotal());
orderTicketVo.setPriceVoucher(orderTickets.getPriceVoucher());
orderTicketVo.setPriceActual(orderTickets.getPriceActual());
orderTicketVo.setPriceExpress(orderTickets.getPriceExpress());
orderTicketVo.setPriceRefund(orderTickets.getPriceRefund());
orderTicketVo.setRefundNumber(orderTickets.getRefundNumber());
orderTicketVo.setPayType(orderTickets.getPayType());
orderTicketVo.setPaymentType(orderTickets.getPaymentType());
orderTicketVo.setTimePay(orderTickets.getTimePay());
orderTicketVo.setExpressContacts(orderTickets.getExpressContacts());
orderTicketVo.setExpressAddress(orderTickets.getExpressAddress());
orderTicketVo.setExpressPhone(orderTickets.getExpressPhone());
orderTicketVo.setCouponType(orderTickets.getCouponType());
orderTicketVo.setGetTicketType(orderTickets.getGetTicketType());
orderTicketVo.setGetTicketDescribe(orderTickets.getGetTicketDescribe());
orderTicketVo.setPayCountdownMinute(orderTickets.getPayCountdownMinute());
orderTicketVo.setExpressType(orderTicketStatus.getExpressType());
orderTicketVo.setIsStudent(orderTicketStatus.getIsStudent());
orderTicketVo.setTransferStatus(orderTicketStatus.getTransferStatus());
orderTicketVo.setStatus(orderTicketStatus.getStatus());
orderTicketVo.setPayStatus(orderTicketStatus.getPayStatus());
orderTicketVo.setTransferId(orderTicketRelations.getTransferId());
orderTicketVo.setLiveId(orderTicketRelations.getLiveId());
orderTicketVo.setPerformanceId(orderTicketRelations.getPerformanceId());
orderTicketVo.setTimeId(orderTicketRelations.getTimeId());
orderTicketVo.setTicketId(orderTicketRelations.getTicketId());
orderTicketVo.setAgentId(orderTicketRelations.getAgentId());
orderTicketVo.setIsMember(orderTicketRelations.getIsMember());
orderTicketVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTickets.getCreatedAt()));
orderTicketVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTickets.getUpdatedAt()));
orderTicketVo.setChangeDate(orderTickets.getUpdatedAt() == null ? orderTickets.getUpdatedAt() : orderTickets.getCreatedAt());
orderTicketVo.setIsTrueName(isTrueName);
orderTicketVo.setOverdueAt(orderTickets.getCreatedAt().plusMinutes(orderTickets.getPayCountdownMinute()).plusSeconds(15).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderTicketVo.setNoticeImage("[{\"id\":1,\"sort\":1,\"message\":\"因演出票品非普通商品,其背后承载的文化服务具有时效性、稀缺性等特征,故不适用7天无理由退货政策。因“不可抗力”导致的演出取消或延期除外。\",\"title\":\"门票退换\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c45722882a13.png\"},{\"id\":7,\"sort\":2,\"message\":\"凭订单二维码或手机号兑票入场,二维码或手机号请勿泄露,以免影响入场。个人原因导致的信息泄露,主办方/平台方不承担任何责任。\",\"title\":\"电子票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456d9482fb9.png\"},{\"id\":3,\"sort\":3,\"message\":\"本场演出不设座位,均为站席观演。\",\"title\":\"仅设站席\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/01/21/5c456e93db0b9.png\"},{\"id\":12,\"sort\":4,\"message\":\"每场现场票数量由场地方决定,具体请到现场询问。\",\"title\":\"现场票\",\"type\":\"image\",\"imgUrl\":\"http://img-zhengzai-tv.oss-cn-hangzhou.aliyuncs.com/partner/2019/06/17/5d07647eaa55f.png\"}]");
orderTicketVo.setNotice(notice);
orderTicketVo.setTicketType(ticketType);
orderTicketVo.setFieldName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + orderTicketRelations.getPerformanceId(), "name"));
//入场人
String enterSql = "select * from order_ticket_entities where order_id = " + orderTickets.getOrderTicketsId(); //设置的预编译语句格式
pstmt = con.prepareStatement(enterSql);
ResultSet enterData = pstmt.executeQuery();
while (enterData.next()) {
KylinOrderTicketEntitiesVo entitiesVo = new KylinOrderTicketEntitiesVo();
orderTicketEntities.setOrderTicketEntitiesId(enterData.getInt("id") + "");
orderTicketEntities.setOrderId(orderTickets.getOrderTicketsId());
orderTicketEntities.setTicketId(enterData.getInt("ticket_id") + "");
orderTicketEntities.setUserId(enterData.getInt("user_id") + "");
orderTicketEntities.setPerformanceId(enterData.getInt("performance_id") + "");
orderTicketEntities.setTimeId("");
orderTicketEntities.setEnterType(Integer.parseInt(enterData.getString("enter_type")));
orderTicketEntities.setEnterName(enterData.getString("enter_name"));
orderTicketEntities.setEnterMobile(enterData.getString("enter_mobile"));
orderTicketEntities.setEnterIdCode(enterData.getString("enter_idcode"));
orderTicketEntities.setStatus(enterData.getInt("status"));
orderTicketEntities.setSysDamai(0);
orderTicketEntities.setCheckClient("");
int isPayment = 0;
switch (enterData.getString("is_payment")) {
case "yes":
isPayment = 1;
break;
case "no":
isPayment = 0;
break;
case "refunding":
isPayment = 2;
break;
case "refunded":
isPayment = 3;
break;
}
orderTicketEntities.setIsPayment(isPayment);
orderTicketEntities.setRefundPrice(isPayment == 3 ? orderTickets.getPrice() : new BigDecimal("0.00"));
orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("created_at").toString()));
if (null != orderData.getTimestamp("updated_at")) {
orderTicketEntities.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(orderData.getTimestamp("updated_at").toString()));
}
orderEntitiesList.add(orderTicketEntities);
// orderTicketEntitiesMapper.insert(orderTicketEntities);
//vo
entitiesVo.setMid(0);
entitiesVo.setOrderTicketEntitiesId(orderTicketEntities.getOrderTicketEntitiesId());
entitiesVo.setOrderId(orderTicketEntities.getOrderId());
entitiesVo.setTicketId(orderTicketEntities.getTicketId());
entitiesVo.setUserId(orderTicketEntities.getUserId());
entitiesVo.setPerformanceId(orderTicketEntities.getPerformanceId());
entitiesVo.setTimeId(orderTicketEntities.getTimeId());
entitiesVo.setEnterType(orderTicketEntities.getEnterType());
entitiesVo.setEnterName(orderTicketEntities.getEnterName());
entitiesVo.setEnterMobile(orderTicketEntities.getEnterMobile());
entitiesVo.setEnterIdCode(orderTicketEntities.getEnterIdCode());
entitiesVo.setStatus(orderTicketEntities.getStatus());
entitiesVo.setSysDamai(orderTicketEntities.getSysDamai());
entitiesVo.setCheckClient(orderTicketEntities.getCheckClient());
entitiesVo.setIsPayment(orderTicketEntities.getIsPayment());
entitiesVo.setPerformanceTitle(orderTickets.getPerformanceTitle());
entitiesVo.setTicketTitle(ticketTitle);
entitiesVo.setUseStart(useStart);
entitiesVo.setUseEnd(useEnd);
entitiesVo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTicketEntities.getCreatedAt()));
entitiesVo.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(orderTicketEntities.getUpdatedAt()));
entitiesVo.setTicketsmId(0);
entitiesVo.setTimemId(0);
entitiesVo.setChangeDate(orderTicketEntities.getUpdatedAt() == null ? orderTicketEntities.getUpdatedAt() : orderTicketEntities.getCreatedAt());
// mongoTemplate.insert(entitiesVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
entitiesVosList.add(entitiesVo);
orderEntitiesListVo.add(entitiesVo);
}
orderTicketVo.setEntitiesVoList(entitiesVosList);
orderListVo.add(orderTicketVo);
// mongoTemplate.insert(orderTicketVo, KylinOrderTicketVo.class.getSimpleName());
}
kylinOrderTicketsService.saveBatch(orderList);
kylinOrderTicketStatusService.saveBatch(orderStatusList);
kylinOrderTicketRelationsService.saveBatch(orderRelationList);
kylinOrderTicketEntitiesService.saveBatch(orderEntitiesList);
mongoTemplate.insert(orderListVo, KylinOrderTicketVo.class.getSimpleName());
mongoTemplate.insert(orderEntitiesListVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
orderData.last();
rowCount += orderData.getRow();
if (allCountResult > rowCount) {
isBreak = true;
page += 1;
} else {
isBreak = false;
}
} while (isBreak);
return true;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
//关闭资源,倒关
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) con.close(); //必须要关
} catch (Exception e) {
}
}
}
public boolean roadShow() {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
PreparedStatement pstmt = null; //使用预编译语句
ResultSet rs = null; //获取的结果集
try {
ArrayList<KylinRoadShows> roadShowsList = new ArrayList();
Class.forName(driverClassName); //执行驱动
con = DriverManager.getConnection(url, username, password); //获取连接
String sql = "select rs.id,rs.title,rs.img_poster,rs.created_at,rs.updated_at,count(p.id) as 'count' from road_shows as rs left join performances as p on p.road_show_id = rs.id where p.id > 5721 group by rs.id,rs.title having count>0";
pstmt = con.prepareStatement(sql);
ResultSet resultData = pstmt.executeQuery();
//演出数据
while (resultData.next()) {
KylinRoadShows roadShows = new KylinRoadShows();
roadShows.setRoadShowsId(resultData.getInt("id")+"");
roadShows.setTitle(resultData.getString("title"));
roadShows.setImgPoster(resultData.getString("img_poster"));
roadShows.setStatus(1);
roadShows.setComment("");
roadShows.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("created_at").toString()));
if (null != resultData.getTimestamp("updated_at")) {
roadShows.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmssS.parse(resultData.getTimestamp("updated_at").toString()));
}
roadShowsList.add(roadShows);
}
kylinRoadShowsService.saveBatch(roadShowsList);
return true;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
//关闭资源,倒关
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (con != null) con.close(); //必须要关
} catch (Exception e) {
}
}
}
}
...@@ -21,7 +21,7 @@ import java.util.HashMap; ...@@ -21,7 +21,7 @@ import java.util.HashMap;
@Service @Service
public class FieldsServiceImpl extends ServiceImpl<KylinFieldsMapper, KylinFields> implements KylinFieldsService { public class FieldsServiceImpl implements KylinFieldsService {
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
......
...@@ -18,7 +18,7 @@ import java.time.LocalDateTime; ...@@ -18,7 +18,7 @@ import java.time.LocalDateTime;
import java.util.Map; import java.util.Map;
@Service @Service
public class KylinLackRegistersServiceImpl extends ServiceImpl<KylinLackRegistersMapper, KylinLackRegisters> implements IKylinLackRegistersService { public class KylinLackRegistersServiceImpl implements IKylinLackRegistersService {
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
......
...@@ -7,5 +7,5 @@ import com.liquidnet.service.kylin.service.IKylinOrderRefundPicService; ...@@ -7,5 +7,5 @@ import com.liquidnet.service.kylin.service.IKylinOrderRefundPicService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
public class KylinOrderRefundPicServiceImpl extends ServiceImpl<KylinOrderRefundPicMapper, KylinOrderRefundPic> implements IKylinOrderRefundPicService { public class KylinOrderRefundPicServiceImpl implements IKylinOrderRefundPicService {
} }
...@@ -37,7 +37,7 @@ import java.util.List; ...@@ -37,7 +37,7 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
public class KylinOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderTicketEntitiesMapper, KylinOrderTicketEntities> implements IKylinOrderTicketEntitiesService { public class KylinOrderTicketEntitiesServiceImpl implements IKylinOrderTicketEntitiesService {
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
......
...@@ -18,6 +18,6 @@ import org.springframework.stereotype.Service; ...@@ -18,6 +18,6 @@ import org.springframework.stereotype.Service;
* @since 2021-05-06 * @since 2021-05-06
*/ */
@Service @Service
public class KylinOrderTicketRelationsImpl extends ServiceImpl<KylinOrderTicketRelationsMapper, KylinOrderTicketRelations> implements IKylinOrderTicketRelationsService { public class KylinOrderTicketRelationsImpl implements IKylinOrderTicketRelationsService {
} }
...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service;
* @since 2021-05-06 * @since 2021-05-06
*/ */
@Service @Service
public class KylinOrderTicketStatusImpl extends ServiceImpl<KylinOrderTicketStatusMapper, KylinOrderTicketStatus> implements IKylinOrderTicketStatusService { public class KylinOrderTicketStatusImpl implements IKylinOrderTicketStatusService {
} }
...@@ -64,7 +64,7 @@ import java.util.*; ...@@ -64,7 +64,7 @@ import java.util.*;
*/ */
@Service @Service
@Slf4j @Slf4j
public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsMapper, KylinOrderTickets> implements IKylinOrderTicketsService { public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
@Value("${liquidnet.url-pay.pay}") @Value("${liquidnet.url-pay.pay}")
private String payUrl; private String payUrl;
...@@ -96,12 +96,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -96,12 +96,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
@Autowired @Autowired
private TaobaoTicketUtils taobaoTicketUtils; private TaobaoTicketUtils taobaoTicketUtils;
@Autowired @Autowired
private KylinOrderTicketsMapper orderTicketsMapper;
@Autowired
private KylinOrderTicketStatusMapper orderTicketStatusMapper;
@Autowired
private KylinOrderTicketRelationsMapper orderTicketRelationsMapper;
@Autowired
private OrderRefundOvertimeServiceImpl orderRefundsCallbackService; private OrderRefundOvertimeServiceImpl orderRefundsCallbackService;
@Autowired @Autowired
private KylinRefundsStatusServiceImpl refundsStatusService; private KylinRefundsStatusServiceImpl refundsStatusService;
...@@ -1070,100 +1064,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1070,100 +1064,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
} }
@Override
public boolean checkOrderTime(String userId) {
String lock = "order_lock:checkOrderTime:" + userId;
List<OrderScriptDto> dtoData = orderTicketsMapper.orderScriptDto(userId);
LocalDateTime now = LocalDateTime.now();
Long currentTime = System.currentTimeMillis();
HashMap<String, Integer> mapSurplusGeneral = new HashMap<>();
ArrayList<String> orderDataList = new ArrayList<>();
ArrayList<String> orderIdList = new ArrayList<>();
HashMap<String, Object> mapMongo = new HashMap<>();
for (OrderScriptDto item : dtoData) {
if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
try {
//vo
mapMongo.put("status", KylinTableStatusConst.ORDER_STATUS2);
mapMongo.put("updatedAt", DateUtil.Formatter.yyyyMMddHHmmssSSS.format(now));
mapMongo.put("changeDate", now);
orderDataList.add(item.getOrderTicketsId() + "," + item.getUserId());
orderIdList.add(item.getOrderTicketsId());
mapSurplusGeneral.put(item.getTicketId(), mapSurplusGeneral.get(item.getTicketId()) == null ? item.getNumber() : mapSurplusGeneral.get(item.getTicketId()) + item.getNumber());
} catch (Exception e) {
log.debug("CHECK TIME SYNC = " + e.getMessage());
e.printStackTrace();
return false;
}
} else {
}
}
currentTime = System.currentTimeMillis() - currentTime;
log.debug("FOR 循环 -> time:" + (currentTime) + "毫秒");
if (orderDataList.size() > 0) {
//mysql
String orderStr = "";
for (int i = 0; i < orderIdList.size(); i++) {
String orderTicketId = orderIdList.get(i);
orderStr += "'" + orderTicketId + "',";
}
orderStr = orderStr.substring(0, orderStr.length() - 1);
KylinOrderTickets orderTickets = new KylinOrderTickets();
orderTickets.setUpdatedAt(now);
orderTicketsMapper.update(orderTickets, new UpdateWrapper<KylinOrderTickets>().in("order_tickets_id", orderIdList));
KylinOrderTicketStatus orderTicketStatus = new KylinOrderTicketStatus();
orderTicketStatus.setStatus(2);
orderTicketStatus.setUpdatedAt(now);
orderTicketStatusMapper.update(orderTicketStatus, new UpdateWrapper<KylinOrderTicketStatus>().in("order_id", orderIdList));
KylinOrderTicketRelations orderTicketRelations = new KylinOrderTicketRelations();
orderTicketRelations.setUpdatedAt(now);
orderTicketRelationsMapper.update(orderTicketRelations, new UpdateWrapper<KylinOrderTicketRelations>().in("order_id", orderIdList));
currentTime = System.currentTimeMillis() - currentTime;
log.debug("mysql -> time:" + (currentTime) + "毫秒");
//库存
for (Map.Entry<String, Integer> entry : mapSurplusGeneral.entrySet()) {
dataUtils.changeSurplusGeneral(entry.getKey(), entry.getValue());
}
currentTime = System.currentTimeMillis() - currentTime;
log.debug("redis 库存 -> time:" + (currentTime) + "毫秒");
try {
//mongo
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("orderTicketsId").in(orderIdList)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(mapMongo))
);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("mongo -> time:" + (currentTime) + "毫秒");
} catch (Exception e) {
}
int forSize = 500;
int forCount = orderDataList.size() % forSize == 0 ? orderDataList.size() / forSize : (orderDataList.size() / forSize) + 1;
for (int i = 0; i < forCount; i++) {
LinkedList<String> mqList = new LinkedList<>();
for (int y = 0; y < forSize; y++) {
try {
String t = orderDataList.get(i * 500 + y);
mqList.add(t);
} catch (Exception e) {
break;
}
}
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE, MQConst.ROUTING_KEY_SQL_ORDER_CLOSE, OrderCloseMapping.get(mqList));
}
}
return true;
}
@Override @Override
public ResponseDto<Integer> checkOrderResult(String orderId) { public ResponseDto<Integer> checkOrderResult(String orderId) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
...@@ -1252,9 +1152,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1252,9 +1152,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
OrderRefundVo vo = new OrderRefundVo(); OrderRefundVo vo = new OrderRefundVo();
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
KylinOrderTicketVo orderTicketVo = dataUtils.getOrderTicketVo(orderId); KylinOrderTicketVo orderTicketVo = dataUtils.getOrderTicketVo(orderId);
KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(orderTicketVo.getPerformanceId());
if (!orderTicketVo.getUserId().equals(uid)) { if (!orderTicketVo.getUserId().equals(uid)) {
return null; return null;
} }
orderTicketVo.setFieldName(performanceVo.getFieldName());
KylinOrderRefundsVoBase kylinOrderRefundsVoBase = dataUtils.getOrderRefundVo(orderRefundId); KylinOrderRefundsVoBase kylinOrderRefundsVoBase = dataUtils.getOrderRefundVo(orderRefundId);
vo.setKylinOrderRefundsVoBaseList(kylinOrderRefundsVoBase); vo.setKylinOrderRefundsVoBaseList(kylinOrderRefundsVoBase);
vo.setOrderTicketVo(orderTicketVo); vo.setOrderTicketVo(orderTicketVo);
...@@ -1262,7 +1165,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1262,7 +1165,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
@Override @Override
public ResponseDto<Boolean> sendOrderRefund(String orderId, String orderTicketEntitiesId, String reason, String picList) { public ResponseDto<String> sendOrderRefund(String orderId, String orderTicketEntitiesId, String reason, String picList) {
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = null; KylinOrderTicketEntitiesVo orderTicketEntitiesVo = null;
try { try {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
...@@ -1289,9 +1192,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -1289,9 +1192,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
Map token = CurrentUtil.getTokenClaims(); Map token = CurrentUtil.getTokenClaims();
String username = StringUtils.defaultString(((String) token.get("nickname")), ""); String username = StringUtils.defaultString(((String) token.get("nickname")), "");
boolean result = refundsStatusService.userOrderTicketRefunding(orderTicketVo, refundSinglePrice.doubleValue(), orderTicketEntitiesId, reason, picList, uid, username, kylinOrderRefundsVoBaseList.size()); String result = refundsStatusService.userOrderTicketRefunding(orderTicketVo, refundSinglePrice.doubleValue(), orderTicketEntitiesId, reason, picList, uid, username, kylinOrderRefundsVoBaseList.size());
if (result) { if (result!="") {
return ResponseDto.success(); return ResponseDto.success(result);
} else { } else {
return ResponseDto.failure(ErrorMapping.get("20019")); return ResponseDto.failure(ErrorMapping.get("20019"));
} }
......
...@@ -13,7 +13,6 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo; ...@@ -13,7 +13,6 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper; import com.liquidnet.service.kylin.mapper.KylinPerformancesMapper;
import com.liquidnet.service.kylin.service.IKylinPerformancesService; import com.liquidnet.service.kylin.service.IKylinPerformancesService;
import com.liquidnet.service.kylin.timerTask.PerformanceVoTask;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.bson.Document; import org.bson.Document;
...@@ -43,7 +42,7 @@ import java.util.stream.Collectors; ...@@ -43,7 +42,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesMapper, KylinPerformances> implements IKylinPerformancesService { public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
...@@ -51,9 +50,6 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -51,9 +50,6 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired
private PerformanceVoTask task;
public HashMap<String, Object> localList( public HashMap<String, Object> localList(
int days, String cityName, int type, int days, String cityName, int type,
Integer isDiscount, Integer isAdvance, Integer isExclusive, Integer isDiscount, Integer isAdvance, Integer isExclusive,
...@@ -529,14 +525,4 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -529,14 +525,4 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
} }
return isMemberStatus; return isMemberStatus;
} }
public String checkPerformanceTime(String performancesId) {
try {
task.performanceVoStatus(performancesId);
return "成功";
} catch (Exception e) {
e.printStackTrace();
return "失败";
}
}
} }
...@@ -44,18 +44,6 @@ import java.util.List; ...@@ -44,18 +44,6 @@ import java.util.List;
@Service @Service
public class KylinRefundsStatusServiceImpl { public class KylinRefundsStatusServiceImpl {
@Autowired
private KylinOrderTicketStatusMapper kylinOrderTicketStatusMapper;
@Autowired
private KylinOrderRefundsMapper kylinOrderRefundsMapper;
@Autowired
private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper;
@Autowired
private KylinOrderRefundsEntitiesMapper kylinOrderRefundsEntitiesMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
...@@ -87,8 +75,8 @@ public class KylinRefundsStatusServiceImpl { ...@@ -87,8 +75,8 @@ public class KylinRefundsStatusServiceImpl {
// 订单状态表 和 缓存 // 订单状态表 和 缓存
KylinOrderTicketStatus orderStatusTable = new KylinOrderTicketStatus(); KylinOrderTicketStatus orderStatusTable = new KylinOrderTicketStatus();
orderStatusTable.setStatus(KylinTableStatusConst.ORDER_STATUS3); orderStatusTable.setStatus(KylinTableStatusConst.ORDER_STATUS3);
kylinOrderTicketStatusMapper.update(orderStatusTable, new UpdateWrapper<KylinOrderTicketStatus>() // kylinOrderTicketStatusMapper.update(orderStatusTable, new UpdateWrapper<KylinOrderTicketStatus>()
.eq("order_id", orderTicketsId)); // .eq("order_id", orderTicketsId));
KylinOrderTicketVo kylinOrderTicketVo = new KylinOrderTicketVo(); KylinOrderTicketVo kylinOrderTicketVo = new KylinOrderTicketVo();
kylinOrderTicketVo.setStatus(KylinTableStatusConst.ORDER_STATUS3); kylinOrderTicketVo.setStatus(KylinTableStatusConst.ORDER_STATUS3);
...@@ -106,8 +94,8 @@ public class KylinRefundsStatusServiceImpl { ...@@ -106,8 +94,8 @@ public class KylinRefundsStatusServiceImpl {
for (String v : ticketEntityIds) { for (String v : ticketEntityIds) {
KylinOrderTicketEntities entitiesTable = new KylinOrderTicketEntities(); KylinOrderTicketEntities entitiesTable = new KylinOrderTicketEntities();
entitiesTable.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT2); entitiesTable.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT2);
kylinOrderTicketEntitiesMapper.update(entitiesTable, new UpdateWrapper<KylinOrderTicketEntities>() // kylinOrderTicketEntitiesMapper.update(entitiesTable, new UpdateWrapper<KylinOrderTicketEntities>()
.eq("order_ticket_entities_id", v)); // .eq("order_ticket_entities_id", v));
KylinOrderTicketEntitiesVo kylinOrderTicketEntitiesVo = new KylinOrderTicketEntitiesVo(); KylinOrderTicketEntitiesVo kylinOrderTicketEntitiesVo = new KylinOrderTicketEntitiesVo();
kylinOrderTicketEntitiesVo.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT2); kylinOrderTicketEntitiesVo.setIsPayment(KylinTableStatusConst.ENTITIES_IS_PAYMENT2);
...@@ -127,14 +115,14 @@ public class KylinRefundsStatusServiceImpl { ...@@ -127,14 +115,14 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefunds.setOrderRefundsId(orderRefundsId); kylinOrderRefunds.setOrderRefundsId(orderRefundsId);
kylinOrderRefunds.setOrderTicketsId(orderTicketsId); kylinOrderRefunds.setOrderTicketsId(orderTicketsId);
Integer refundCount = kylinOrderRefundsMapper.selectCount( // Integer refundCount = kylinOrderRefundsMapper.selectCount(
new QueryWrapper<KylinOrderRefunds>() // new QueryWrapper<KylinOrderRefunds>()
.eq("order_tickets_id", orderTicketsId) // .eq("order_tickets_id", orderTicketsId)
); // );
String orderRefundCode = orderInfo.getOrderCode(); String orderRefundCode = orderInfo.getOrderCode();
String codeNum = StringUtils.leftPad(String.valueOf(refundCount), 3, "0"); // String codeNum = StringUtils.leftPad(String.valueOf(refundCount), 3, "0");
kylinOrderRefunds.setOrderRefundCode(orderRefundCode.concat(codeNum)); // kylinOrderRefunds.setOrderRefundCode(orderRefundCode.concat(codeNum));
kylinOrderRefunds.setPrice(BigDecimal.valueOf(entitiesPriceSum)); kylinOrderRefunds.setPrice(BigDecimal.valueOf(entitiesPriceSum));
kylinOrderRefunds.setPriceExpress(BigDecimal.valueOf(RefundPriceExpress)); kylinOrderRefunds.setPriceExpress(BigDecimal.valueOf(RefundPriceExpress));
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY); kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY);
...@@ -153,7 +141,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -153,7 +141,7 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefunds.setRefundCate(KylinTableStatusConst.ORDER_REFUND_CATE1); kylinOrderRefunds.setRefundCate(KylinTableStatusConst.ORDER_REFUND_CATE1);
} }
kylinOrderRefunds.setCreatedAt(LocalDateTime.now()); kylinOrderRefunds.setCreatedAt(LocalDateTime.now());
int rows = kylinOrderRefundsMapper.insert(kylinOrderRefunds); // int rows = kylinOrderRefundsMapper.insert(kylinOrderRefunds);
// 退款入场人表 // 退款入场人表
KylinOrderRefundEntities kylinOrderRefundEntities = new KylinOrderRefundEntities(); KylinOrderRefundEntities kylinOrderRefundEntities = new KylinOrderRefundEntities();
...@@ -164,14 +152,14 @@ public class KylinRefundsStatusServiceImpl { ...@@ -164,14 +152,14 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefundEntities.setRefundPrice(BigDecimal.valueOf(entitiesPrice.get(i))); kylinOrderRefundEntities.setRefundPrice(BigDecimal.valueOf(entitiesPrice.get(i)));
kylinOrderRefundEntities.setOrderTicketEntitiesId(ticketEntityIds.get(i)); kylinOrderRefundEntities.setOrderTicketEntitiesId(ticketEntityIds.get(i));
kylinOrderRefundEntities.setCreatedAt(LocalDateTime.now()); kylinOrderRefundEntities.setCreatedAt(LocalDateTime.now());
int rowsR = kylinOrderRefundsEntitiesMapper.insert(kylinOrderRefundEntities); // int rowsR = kylinOrderRefundsEntitiesMapper.insert(kylinOrderRefundEntities);
} }
return true; return true;
} }
public Boolean userOrderTicketRefunding( public String userOrderTicketRefunding(
KylinOrderTicketVo orderInfo, KylinOrderTicketVo orderInfo,
double refundPrice, double refundPrice,
String orderEntitiesId, String orderEntitiesId,
...@@ -317,10 +305,10 @@ public class KylinRefundsStatusServiceImpl { ...@@ -317,10 +305,10 @@ public class KylinRefundsStatusServiceImpl {
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND, MQConst.ROUTING_KEY_SQL_ORDER_REFUND, rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND, MQConst.ROUTING_KEY_SQL_ORDER_REFUND,
SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD, sqlsDataE)); SqlMapping.gets(sqls, sqlsDataA, sqlsDataB, sqlsDataC, sqlsDataD, sqlsDataE));
return true; return kylinOrderRefunds.getOrderRefundsId();
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
return false; return "";
} }
} }
} }
...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service;
* @since 2021-05-11 * @since 2021-05-11
*/ */
@Service @Service
public class KylinRoadShowsServiceImpl extends ServiceImpl<KylinRoadShowsMapper, KylinRoadShows> implements IKylinRoadShowsService { public class KylinRoadShowsServiceImpl implements IKylinRoadShowsService {
} }
...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service;
* @since 2021-05-06 * @since 2021-05-06
*/ */
@Service @Service
public class KylinTicketTimesServiceImpl extends ServiceImpl<KylinTicketTimesMapper, KylinTicketTimes> implements IKylinTicketTimesService { public class KylinTicketTimesServiceImpl implements IKylinTicketTimesService {
} }
...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service;
* @since 2021-05-06 * @since 2021-05-06
*/ */
@Service @Service
public class KylinTicketsServiceImpl extends ServiceImpl<KylinTicketsMapper, KylinTickets> implements IKylinTicketsService { public class KylinTicketsServiceImpl implements IKylinTicketsService {
} }
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.KylinOrderTicketEntitiesDao;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderRefundsService; import com.liquidnet.service.kylin.service.IKylinOrderRefundsService;
...@@ -15,12 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,12 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 订单退款表 服务实现类 处理逻辑判断 * 订单退款表 服务实现类 处理逻辑判断
...@@ -31,21 +20,21 @@ import java.util.stream.Collectors; ...@@ -31,21 +20,21 @@ import java.util.stream.Collectors;
*/ */
@Slf4j @Slf4j
@Service @Service
public class OrderRefundOvertimeServiceImpl extends ServiceImpl<KylinOrderRefundsMapper, KylinOrderRefunds> implements IKylinOrderRefundsService { public class OrderRefundOvertimeServiceImpl implements IKylinOrderRefundsService {
@Autowired @Autowired
private KylinRefundsStatusServiceImpl kylinRefundsStatusServiceImpl; private KylinRefundsStatusServiceImpl kylinRefundsStatusServiceImpl;
@Autowired // @Autowired
private KylinOrderRefundsMapper kylinOrderRefundsMapper; // private KylinOrderRefundsMapper kylinOrderRefundsMapper;
//
@Autowired // @Autowired
private KylinOrderTicketsMapper kylinOrderTicketsMapper; // private KylinOrderTicketsMapper kylinOrderTicketsMapper;
//
@Autowired // @Autowired
private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper; // private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper;
//
@Autowired // @Autowired
private KylinOrderTicketRelationsMapper kylinOrderTicketRelationsMapper; // private KylinOrderTicketRelationsMapper kylinOrderTicketRelationsMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
...@@ -54,76 +43,77 @@ public class OrderRefundOvertimeServiceImpl extends ServiceImpl<KylinOrderRefund ...@@ -54,76 +43,77 @@ public class OrderRefundOvertimeServiceImpl extends ServiceImpl<KylinOrderRefund
private DataUtils dataUtils; private DataUtils dataUtils;
public Boolean refundApply(String orderTicketsId) { public Boolean refundApply(String orderTicketsId) {
KylinOrderTickets orderInfo = kylinOrderTicketsMapper.selectOne( // KylinOrderTickets orderInfo = kylinOrderTicketsMapper.selectOne(
new QueryWrapper<KylinOrderTickets>().eq("order_tickets_id", orderTicketsId) // new QueryWrapper<KylinOrderTickets>().eq("order_tickets_id", orderTicketsId)
); // );
KylinOrderTicketRelations orderRelations = kylinOrderTicketRelationsMapper.selectOne( // KylinOrderTicketRelations orderRelations = kylinOrderTicketRelationsMapper.selectOne(
new QueryWrapper<KylinOrderTicketRelations>().eq("order_id", orderTicketsId) // new QueryWrapper<KylinOrderTicketRelations>().eq("order_id", orderTicketsId)
); // );
// 传的快递费不能大于实际的快递费=(支付的快递费-已退的快递费) // // 传的快递费不能大于实际的快递费=(支付的快递费-已退的快递费)
Double refundPriceExpressSum = kylinOrderRefundsMapper.RefundPriceExpressSum(// 已退快递费 // Double refundPriceExpressSum = kylinOrderRefundsMapper.RefundPriceExpressSum(// 已退快递费
orderTicketsId, // orderTicketsId,
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL // KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL
); // );
if (null == refundPriceExpressSum) { // if (null == refundPriceExpressSum) {
refundPriceExpressSum = 0.0; // refundPriceExpressSum = 0.0;
} // }
Double RefundPriceExpress = orderInfo.getPriceExpress().doubleValue() - refundPriceExpressSum; // Double RefundPriceExpress = orderInfo.getPriceExpress().doubleValue() - refundPriceExpressSum;
//
// 查询订单入场人 // // 查询订单入场人
List<KylinOrderTicketEntitiesDao> entitiesListTemp = kylinOrderTicketEntitiesMapper.getOvertimeRefundEntitiesList(orderTicketsId); // List<KylinOrderTicketEntitiesDao> entitiesListTemp = kylinOrderTicketEntitiesMapper.getOvertimeRefundEntitiesList(orderTicketsId);
List<KylinOrderTicketEntitiesDao> entitiesList = new ArrayList<>(); // List<KylinOrderTicketEntitiesDao> entitiesList = new ArrayList<>();
//
if(entitiesListTemp.size() > 0) { // if(entitiesListTemp.size() > 0) {
double priceActual = orderInfo.getPriceActual().doubleValue(); // double priceActual = orderInfo.getPriceActual().doubleValue();
double priceExpress = orderInfo.getPriceExpress().doubleValue(); // double priceExpress = orderInfo.getPriceExpress().doubleValue();
int allEntitiesCount = kylinOrderTicketEntitiesMapper.selectCount(// 总入场人数量 排出未付款的 用来计算单入场人的价格 // int allEntitiesCount = kylinOrderTicketEntitiesMapper.selectCount(// 总入场人数量 排出未付款的 用来计算单入场人的价格
new QueryWrapper<KylinOrderTicketEntities>() // new QueryWrapper<KylinOrderTicketEntities>()
.eq("order_id", orderInfo.getOrderTicketsId()) // .eq("order_id", orderInfo.getOrderTicketsId())
// .ne("is_payment", KylinTableStatusConst.ENTITIES_IS_PAYMENT0) //// .ne("is_payment", KylinTableStatusConst.ENTITIES_IS_PAYMENT0)
); // );
double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价 // double onePrice = (priceActual - priceExpress) / allEntitiesCount;//单价
for (KylinOrderTicketEntitiesDao entities : entitiesListTemp) { // for (KylinOrderTicketEntitiesDao entities : entitiesListTemp) {
Double refundedPrice = kylinOrderTicketEntitiesMapper.getRefundEntitiesPrice(//已退 包含退款中 // Double refundedPrice = kylinOrderTicketEntitiesMapper.getRefundEntitiesPrice(//已退 包含退款中
orderInfo.getOrderTicketsId(), // orderInfo.getOrderTicketsId(),
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL, // KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL,
entities.getOrderTicketEntitiesId() // entities.getOrderTicketEntitiesId()
); // );
double canRefundedPrice; // double canRefundedPrice;
if (null != refundedPrice) { // if (null != refundedPrice) {
canRefundedPrice = onePrice - refundedPrice; // canRefundedPrice = onePrice - refundedPrice;
} else { // } else {
canRefundedPrice = onePrice; // canRefundedPrice = onePrice;
} // }
entities.setCanRefundedPrice(BigDecimal.valueOf(canRefundedPrice)); // entities.setCanRefundedPrice(BigDecimal.valueOf(canRefundedPrice));
if (canRefundedPrice > 0) { // 退款中但是可退款金额为0不展示 // if (canRefundedPrice > 0) { // 退款中但是可退款金额为0不展示
entitiesList.add(entities); // entitiesList.add(entities);
} // }
} // }
} // }
//
List<String> ticketEntityIds = entitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getOrderTicketEntitiesId()).collect(Collectors.toList()); // List<String> ticketEntityIds = entitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getOrderTicketEntitiesId()).collect(Collectors.toList());
List<Double> entitiesPrice = entitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getCanRefundedPrice().doubleValue()).collect(Collectors.toList()); // List<Double> entitiesPrice = entitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getCanRefundedPrice().doubleValue()).collect(Collectors.toList());
//
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding( // boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding(
orderInfo, orderTicketsId, // orderInfo, orderTicketsId,
RefundPriceExpress, // RefundPriceExpress,
ticketEntityIds, entitiesPrice // ticketEntityIds, entitiesPrice
); // );
if (res) { // if (res) {
// 超时直接退还库存 // // 超时直接退还库存
for (String entitiesId : ticketEntityIds) { // for (String entitiesId : ticketEntityIds) {
KylinOrderTicketEntities entitiesInfo = kylinOrderTicketEntitiesMapper.selectOne( // KylinOrderTicketEntities entitiesInfo = kylinOrderTicketEntitiesMapper.selectOne(
new QueryWrapper<KylinOrderTicketEntities>().eq("order_ticket_entities_id", entitiesId) // new QueryWrapper<KylinOrderTicketEntities>().eq("order_ticket_entities_id", entitiesId)
); // );
if (entitiesInfo.getIsPayment() == KylinTableStatusConst.ENTITIES_IS_PAYMENT3) { // if (entitiesInfo.getIsPayment() == KylinTableStatusConst.ENTITIES_IS_PAYMENT3) {
dataUtils.changeSurplusGeneral(entitiesInfo.getTicketId(), 1); // dataUtils.changeSurplusGeneral(entitiesInfo.getTicketId(), 1);
dataUtils.changeBuyInfo(orderInfo.getUserId(), entitiesInfo.getEnterIdCode(), orderRelations.getPerformanceId(), entitiesInfo.getTicketId(), -1); // dataUtils.changeBuyInfo(orderInfo.getUserId(), entitiesInfo.getEnterIdCode(), orderRelations.getPerformanceId(), entitiesInfo.getTicketId(), -1);
} // }
} // }
// return true;
// } else {
// return false;
// }
return true; return true;
} else {
return false;
}
} }
} }
package com.liquidnet.service.kylin.service.impl.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.FieldMisDetailsDao;
import com.liquidnet.service.kylin.dao.FieldMisListDao;
import com.liquidnet.service.kylin.dto.param.FieldsAuditParam;
import com.liquidnet.service.kylin.dto.param.FieldsParam;
import com.liquidnet.service.kylin.dto.param.FieldsSearchParam;
import com.liquidnet.service.kylin.dto.param.FieldsStatusParam;
import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo;
import com.liquidnet.service.kylin.entity.KylinFieldStatus;
import com.liquidnet.service.kylin.entity.KylinFields;
import com.liquidnet.service.kylin.mapper.KylinFieldRelationMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldsMapper;
import com.liquidnet.service.kylin.service.admin.KylinFieldsAdminService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@Service
public class FieldsAdminServiceImpl implements KylinFieldsAdminService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinFieldsMapper fieldsMapper;
@Autowired
private KylinFieldStatusMapper kylinFieldStatusMapper;
@Autowired
private KylinFieldRelationMapper fieldRelationsMapper;
/**
* 创建场地
*
* @param fieldsParam
* @return boolean
*/
@Override
@Transactional
public boolean fieldCreate(FieldsParam fieldsParam) {
try {
// 获取 主键id
String fieldsId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
// mysql 操作
fieldsMapper.insert(fieldsParam.getFields(fieldsId, createdAt));
kylinFieldStatusMapper.insert(fieldsParam.getFieldStatus(fieldsId, createdAt, 1, 1, 1, 1));
fieldRelationsMapper.insert(fieldsParam.getFieldRelations(fieldsId, createdAt));
// mongo 操作
KylinFieldsVo kylinFieldsVo = new KylinFieldsVo();
BeanUtils.copyProperties(fieldsParam, kylinFieldsVo);
kylinFieldsVo.setFieldsId(fieldsId);
kylinFieldsVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinFieldsVo.setUpdatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
KylinFieldsVo data = mongoTemplate.insert(
kylinFieldsVo, KylinFieldsVo.class.getSimpleName()
);
// redis 操作
redisUtil.hset(KylinRedisConst.FIELDS, fieldsId, kylinFieldsVo);
return true;
} catch (Exception e) {
return false;
}
}
/**
* mis修改场地全部数据
*
* @param fieldsParam
* @return
*/
@Override
public boolean fieldUpdateMessage(FieldsParam fieldsParam) {
try {
String fieldsId = fieldsParam.getFieldsId();
LocalDateTime updatedAt = LocalDateTime.now();
// mysql 操作
KylinFields fields = fieldsParam.getFields(null, null);
fields.setUpdatedAt(updatedAt);
fieldsMapper.update(fields
, new UpdateWrapper<KylinFields>().eq("fields_id", fieldsId));
// mongo 操作
KylinFieldsVo kylinFieldsVoData = new KylinFieldsVo();
BeanUtils.copyProperties(fieldsParam, kylinFieldsVoData);
kylinFieldsVoData.setFieldsId(fieldsId);
kylinFieldsVoData.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinFieldsVoData)));
Document doc = mongoTemplate.getCollection(KylinFieldsVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("fieldsId").is(fieldsId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作
redisUtil.hset(KylinRedisConst.FIELDS, fieldsId, JsonUtils.fromJson(doc.toJson(), KylinFieldsVo.class));
return true;
} catch (Exception e) {
return false;
}
}
/**
* 场地列表 - 条件查询
*
* @param fieldsSearchParam
* @return
*/
@Override
public List<FieldMisListDao> fieldList(FieldsSearchParam fieldsSearchParam) {
try {
fieldsSearchParam.setCityId(0);
fieldsSearchParam.setDistrictId(0);
fieldsSearchParam.setProvinceId(0);
fieldsSearchParam.setPage((fieldsSearchParam.getPage() - 1) * fieldsSearchParam.getSize());
List<FieldMisListDao> data = fieldsMapper.misSearchFields(BeanUtil.convertBeanToMap(fieldsSearchParam));
return data;
} catch (Exception e) {
return new ArrayList<>();
}
}
@Override
public Long fieldListCount(FieldsSearchParam fieldsSearchParam) {
try {
fieldsSearchParam.setCityId(0);
fieldsSearchParam.setDistrictId(0);
fieldsSearchParam.setProvinceId(0);
Long count = fieldsMapper.misSearchFieldsCount(BeanUtil.convertBeanToMap(fieldsSearchParam));
return count;
} catch (Exception e) {
return 0L;
}
}
/**
* 场地详情
*
* @param fieldsId
* @return
*/
@Override
public FieldMisDetailsDao fieldDetails(String fieldsId) {
FieldMisDetailsDao data = fieldsMapper.misFieldsDetails(fieldsId);
return data;
}
/**
* 场地审核
*
* @param fieldsAuditParam
* @return
*/
@Override
public boolean fieldAudit(FieldsAuditParam fieldsAuditParam) {
try {
String fieldsId = fieldsAuditParam.getFieldsId();
LocalDateTime updatedAt = LocalDateTime.now();
fieldsAuditParam.setChangeStatus(1);
fieldsAuditParam.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// mysql 操作
KylinFields fields = fieldsAuditParam.getFields();
fields.setUpdatedAt(updatedAt);
fieldsMapper.update(fields, new UpdateWrapper<KylinFields>().eq("fields_id", fieldsId));
KylinFieldStatus fieldStatus = fieldsAuditParam.getFieldStatus();
fieldStatus.setUpdatedAt(updatedAt);
kylinFieldStatusMapper.update(fieldStatus, new UpdateWrapper<KylinFieldStatus>().eq("field_id", fieldsId));
// mongo 操作
Object obj = JSON.parse(JsonUtils.toJson(fieldsAuditParam));
BasicDBObject object = new BasicDBObject("$set", obj);
Document doc = mongoTemplate.getCollection(KylinFieldsVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("fieldsId").is(fieldsId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// redis 操作
redisUtil.hset(KylinRedisConst.FIELDS, fieldsId, JsonUtils.fromJson(doc.toJson(), KylinFieldsVo.class));
return true;
} catch (Exception e) {
return false;
}
}
/**
* 修改场地状态
*
* @param fieldsStatusParam
* @return
*/
@Override
public boolean fieldStatus(FieldsStatusParam fieldsStatusParam) {
try {
String fieldsId = fieldsStatusParam.getFieldsId();
LocalDateTime updatedAt = LocalDateTime.now();
fieldsStatusParam.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
KylinFieldStatus fieldStatus = fieldsStatusParam.getFieldStatus();
fieldStatus.setUpdatedAt(updatedAt);
kylinFieldStatusMapper.update(fieldStatus, new UpdateWrapper<KylinFieldStatus>().eq("field_id", fieldsId));
Object obj = JSON.parse(JsonUtils.toJson(fieldsStatusParam));
BasicDBObject object = new BasicDBObject("$set", obj);
Document doc = mongoTemplate.getCollection(KylinFieldsVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("fieldsId").is(fieldsId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
redisUtil.hset(KylinRedisConst.FIELDS, fieldsId, JsonUtils.fromJson(doc.toJson(), KylinFieldsVo.class));
return true;
}catch (Exception e){
return false;
}
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinFieldsVo;
import com.liquidnet.service.kylin.mapper.KylinFieldRelationMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinFieldsMapper;
import com.liquidnet.service.kylin.service.partner.KylinFieldsPartnerService;
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.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.HashMap;
@Service
public class FieldsPartnerServiceImpl implements KylinFieldsPartnerService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private RedisUtil redisUtil;
@Autowired
private KylinFieldsMapper fieldsMapper;
@Autowired
private KylinFieldStatusMapper kylinFieldStatusMapper;
@Autowired
private KylinFieldRelationMapper fieldRelationsMapper;
/**
* 根据名字模糊查询 partner 场地列表
* @param page
* @param size
* @param name
* @return
*/
@Override
public HashMap<String, Object> fieldList(int page, int size, String name) {
HashMap<String,Object> info = new HashMap<>();
// 排序 分页
Pageable pageable = PageRequest.of(0, size, Sort.by(Sort.Direction.DESC, "createdAt"));
//条件
Query query = Query.query(Criteria.where("name").regex(".*?\\" +name));
// 查询总数
long count = mongoTemplate.count(query, KylinFieldsVo.class, KylinFieldsVo.class.getSimpleName());
query.with(pageable);
info.put("total",count);
info.put("data", mongoTemplate.find(query, KylinFieldsVo.class, KylinFieldsVo.class.getSimpleName()));
return info;
}
/**
* partner 场地详情
* @param fieldId
* @return
*/
@Override
public KylinFieldsVo fieldDetails(String fieldId) {
KylinFieldsVo info = null;
// 获取 redis数据
info = (KylinFieldsVo) redisUtil.hget(KylinRedisConst.FIELDS, fieldId + "");
//不存在 获取 mongo数据
if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("fieldsId").is(fieldId)), KylinFieldsVo.class, KylinFieldsVo.class.getSimpleName());
redisUtil.hset(KylinRedisConst.FIELDS, fieldId + "",info);
}
return info;
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.service.partner.IKylinBuyNoticePartnerService;
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 extends ServiceImpl<KylinBuyNoticeMapper, KylinBuyNotice> implements IKylinBuyNoticePartnerService {
@Autowired
private KylinBuyNoticeMapper kylinBuyNoticeMapper;
@Override
public PageInfo<KylinBuyNoticeVo> getBuyNotice() {
PageInfo<KylinBuyNoticeVo> pageInfoTmp = null;
PageHelper.startPage(1, 20);
List<KylinBuyNotice> buyNoticeList = kylinBuyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().eq("status", 1).orderByDesc("sort").orderByDesc("mid"));
List<KylinBuyNoticeVo> kylinBuyNoticeVoList = new ArrayList<>();
for (KylinBuyNotice item : buyNoticeList) {
KylinBuyNoticeVo kylinBuyNoticeVo = new KylinBuyNoticeVo();
BeanUtils.copyProperties(item, kylinBuyNoticeVo);
kylinBuyNoticeVoList.add(kylinBuyNoticeVo);
}
pageInfoTmp = new PageInfo(kylinBuyNoticeVoList);
return pageInfoTmp;
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.ChildDetailsDao;
import com.liquidnet.service.kylin.dao.ChildListDao;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCheckUserVo;
import com.liquidnet.service.kylin.entity.KylinCheckUser;
import com.liquidnet.service.kylin.mapper.KylinCheckUserMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPartnerService;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.mongodb.BasicDBObject;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.Service;
import org.springframework.util.DigestUtils;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 验票用户表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Service
public class KylinCheckUserPartnerServiceImpl extends ServiceImpl<KylinCheckUserMapper, KylinCheckUser> implements IKylinCheckUserPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private DataUtils dataUtils;
@Autowired
private KylinCheckUserMapper checkUserMapper;
@Override
public PageInfo<ChildListDao> getCheckUserList(String merchantId, String mobile, int page, int size) {
PageInfo<ChildListDao> pageInfo = null;
try {
PageHelper.startPage(page, size);
List<ChildListDao> data = checkUserMapper.childSimpleList(merchantId, mobile);
pageInfo = new PageInfo(data);
return pageInfo;
} catch (Exception e) {
return pageInfo;
}
}
@Override
public ResponseDto<String> del(String merchantId, String checkUserId) {
try {
KylinCheckUser checkUser = new KylinCheckUser();
checkUser.setUpdatedAt(LocalDateTime.now());
checkUser.setStatus(0);
checkUserMapper.update(checkUser, new UpdateWrapper<KylinCheckUser>().eq("check_user_id", checkUserId));
dataUtils.delCheckUserRedis(checkUserId);
HashMap<String, Object> map = new HashMap<>();
map.put("status", 0);
// BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
// mongoTemplate.getCollection(CheckUserVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("checkUserId").is(checkUserId)).getQueryObject(),
// obj
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(checkUserId)), KylinCheckUserVo.class, KylinCheckUserVo.class.getSimpleName());
return ResponseDto.success("删除成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
@Override
public ResponseDto<String> create(String merchantId, String name, String pwd, String mobile) {
try {
KylinCheckUser checkUser = new KylinCheckUser();
checkUser.setName(name);
checkUser.setPwd(DigestUtils.md5DigestAsHex(pwd.getBytes()));
checkUser.setMobile(mobile);
checkUser.setCheckUserId(IDGenerator.nextSnowId().toString());
checkUser.setCreatedAt(LocalDateTime.now());
checkUser.setMerchantId(merchantId);
checkUser.setStatus(1);
checkUserMapper.insert(checkUser);
KylinCheckUserVo kylinCheckUserVo = new KylinCheckUserVo();
BeanUtils.copyProperties(checkUser, kylinCheckUserVo);
mongoTemplate.insert(kylinCheckUserVo, KylinCheckUserVo.class.getSimpleName());
return ResponseDto.success("添加成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<String> change(String merchantId, String checkUserId, String name, String pwd, String mobile) {
try {
KylinCheckUser checkUser = new KylinCheckUser();
checkUser.setName(name);
if(null!=pwd) {
checkUser.setPwd(DigestUtils.md5DigestAsHex(pwd.getBytes()));
}
checkUser.setMobile(mobile);
checkUser.setUpdatedAt(LocalDateTime.now());
checkUserMapper.update(checkUser, new UpdateWrapper<KylinCheckUser>().eq("check_user_id", checkUserId).eq("merchant_id", merchantId));
BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(checkUser));
mongoTemplate.getCollection(KylinCheckUserVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("checkUserId").is(checkUserId)).getQueryObject(),
obj
);
dataUtils.delCheckUserRedis(checkUserId);
return ResponseDto.success("修改成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20103));
}
}
@Override
public ResponseDto<ChildDetailsDao> details(String merchantId, String checkUserId) {
try {
ChildDetailsDao data = checkUserMapper.childDetails(merchantId, checkUserId);
return ResponseDto.success(data);
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20104));
}
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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.kylin.dao.ChildPerformanceDao;
import com.liquidnet.service.kylin.dto.param.CheckPerformanceRelationParam;
import com.liquidnet.service.kylin.dto.param.CheckUserParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCheckUserPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinCheckUserPerformances;
import com.liquidnet.service.kylin.mapper.KylinCheckUserPerformancesMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.kylin.service.partner.IKylinCheckUserPerformancesPartnerService;
import com.liquidnet.service.kylin.utils.DataUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 验票用户可看演出表 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-21
*/
@Service
public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<KylinCheckUserPerformancesMapper, KylinCheckUserPerformances> implements IKylinCheckUserPerformancesPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private DataUtils dataUtils;
@Autowired
private KylinCheckUserPerformancesMapper checkUserPerformancesMapper;
@Override
public ResponseDto<PageInfo<ChildPerformanceDao>> childPerformanceList(String merchantId, String checkUserId, int page, int size, String name) {
PageInfo<ChildPerformanceDao> pageInfo = null;
try {
PageHelper.startPage(page, size);
List<ChildPerformanceDao> data = checkUserPerformancesMapper.childPerformanceList(merchantId, checkUserId, name);
pageInfo = new PageInfo(data);
return ResponseDto.success(pageInfo);
} catch (Exception e) {
return ResponseDto.success(pageInfo);
}
}
@Override
public ResponseDto<PageInfo<ChildPerformanceDao>> unChildPerformanceList(String merchantId, String checkUserId, int page, int size, String name) {
PageInfo<ChildPerformanceDao> pageInfo = null;
try {
PageHelper.startPage(page, size);
List<ChildPerformanceDao> data = checkUserPerformancesMapper.unChildPerformanceList(merchantId, checkUserId, name);
pageInfo = new PageInfo(data);
return ResponseDto.success(pageInfo);
} catch (Exception e) {
return ResponseDto.success(pageInfo);
}
}
@Override
public ResponseDto<String> setPerformance(CheckUserParam param) {
try {
for (CheckPerformanceRelationParam item : param.getCheckPerformanceRelationParamList()) {
if (null == item.getCanDownTime()) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
KylinCheckUserPerformances checkUserPerformances = new KylinCheckUserPerformances();
checkUserPerformances.setCheckUserId(param.getCheckUserId());
checkUserPerformances.setCanDownTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(item.getCanDownTime()));
checkUserPerformances.setPerformanceId(item.getPerformanceId());
checkUserPerformances.setCheckUserPerformanceId(IDGenerator.nextSnowId());
checkUserPerformances.setCreatedAt(LocalDateTime.now());
checkUserPerformances.setStatus(1);
checkUserPerformancesMapper.insert(checkUserPerformances);
}
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(param.getCheckUserId())), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo();
List<CheckPerformanceRelationParam> performanceRelationParamsList = new ArrayList<>();
List<KylinCheckUserPerformances> data = checkUserPerformancesMapper.selectList(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", param.getCheckUserId()));
for (KylinCheckUserPerformances item : data) {
CheckPerformanceRelationParam performanceRelationParam = new CheckPerformanceRelationParam();
performanceRelationParam.setCanDownTime(item.getCanDownTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceRelationParam.setPerformanceId(item.getPerformanceId());
performanceRelationParamsList.add(performanceRelationParam);
}
userPerformanceVo.setCheckUserId(param.getCheckUserId());
userPerformanceVo.setRelationParams(performanceRelationParamsList);
mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName());
dataUtils.delCheckUserRelationRedis(param.getCheckUserId());
return ResponseDto.success("添加成功");
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<String> delPerformance(List<String> performanceIds, String checkUserId) {
try {
for (String performanceId : performanceIds) {
checkUserPerformancesMapper.delete(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId).eq("performance_id", performanceId));
}
mongoTemplate.remove(Query.query(Criteria.where("checkUserId").is(checkUserId)), KylinCheckUserPerformanceVo.class, KylinCheckUserPerformanceVo.class.getSimpleName());
KylinCheckUserPerformanceVo userPerformanceVo = new KylinCheckUserPerformanceVo();
List<CheckPerformanceRelationParam> performanceRelationParamsList = new ArrayList<>();
List<KylinCheckUserPerformances> data = checkUserPerformancesMapper.selectList(new UpdateWrapper<KylinCheckUserPerformances>().eq("check_user_id", checkUserId));
for (KylinCheckUserPerformances item : data) {
CheckPerformanceRelationParam performanceRelationParam = new CheckPerformanceRelationParam();
performanceRelationParam.setCanDownTime(item.getCanDownTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceRelationParam.setPerformanceId(item.getPerformanceId());
performanceRelationParamsList.add(performanceRelationParam);
}
userPerformanceVo.setCheckUserId(checkUserId);
userPerformanceVo.setRelationParams(performanceRelationParamsList);
mongoTemplate.insert(userPerformanceVo, KylinCheckUserPerformanceVo.class.getSimpleName());
dataUtils.delCheckUserRelationRedis(checkUserId);
return ResponseDto.success("删除成功");
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
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.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
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.KylinFieldsVo;
import com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo;
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.timerTask.PerformanceVoTask;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
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.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.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 演出 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-05
*/
@Service
@Slf4j
public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerformancesMapper, KylinPerformances> implements IKylinPerformancesPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private RedisUtil redisUtil;
@Autowired
private DataUtils dataUtils;
@Autowired
private PerformanceVoTask performanceVoTask;
@Autowired
private KylinPerformancesMapper performancesMapper;
@Autowired
private KylinPerformanceStatusMapper performanceStatusMapper;
@Autowired
private KylinPerformanceRelationsMapper performanceRelationsMapper;
@Autowired
private KylinTicketTimesMapper ticketTimesMapper;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private KylinTicketsMapper ticketsMapper;
@Autowired
private KylinTicketStatusMapper ticketStatusMapper;
@Autowired
private KylinTicketRelationsMapper ticketRelationsMapper;
@Autowired
private KylinTicketsPartnerServiceImpl ticketsPartnerService;
@Autowired
private KylinTicketTimesPartnerServiceImpl ticketTimesPartnerService;
@Override
public String step1(PerformanceStep1Param step1Param) {
String result = null;
// 无 performancesId 则 创建
if (null == step1Param.getPerformancesId()) {
result = createStep1(step1Param);
} else { // 获取 create 数据 status = 0 或 无数据 创建
PerformancePartnerVo createParam = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(step1Param.getPerformancesId())), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
if (createParam == null) {
result = createStep1(step1Param);
} else {// 修改
result = updateStep1(step1Param);
}
}
return result;
}
@Override
public String createStep1(PerformanceStep1Param step1Param) {
// 获取 主键id
String performanceId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
try {
step1Param.setPerformancesId(performanceId);
PerformancePartnerVo performancePartnerVo = new PerformancePartnerVo();
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((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performancePartnerVo.getFieldId(), "name"));
performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds()));
mongoTemplate.insert(
performancePartnerVo, PerformancePartnerVo.class.getSimpleName()
);
return performanceId;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String updateStep1(PerformanceStep1Param step1Param) {
// 获取 当前时间 -> 创建时间
LocalDateTime timeNow = LocalDateTime.now();
String performanceId = step1Param.getPerformancesId();
try {
PerformancePartnerVo data = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)),
PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
if (data == null || data.getAuditStatus() == null || data.getAuditStatus() == 0) {
return "不可修改";
}
step1Param.setPerformancesId(performanceId);
PerformancePartnerVo performancePartnerVo = new PerformancePartnerVo();
BeanUtils.copyProperties(step1Param, performancePartnerVo);
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(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds()));
performancePartnerVo.setFieldName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performancePartnerVo.getFieldId(), "name"));
performancePartnerVo.setNoticeImage(dataUtils.getBuyNoticeJsonString(step1Param.getNoticeIds()));
if (data != null) { // 有修改记录
performancePartnerVo.setIsTrueName(data.getIsTrueName());
performancePartnerVo.setLimitCount(data.getLimitCount());
performancePartnerVo.setStatusSell(data.getStatusSell());
performancePartnerVo.setRoadShowId(data.getRoadShowId());
performancePartnerVo.setProjectId(data.getProjectId());
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(performancePartnerVo));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
object
);
} else { // 无修改记录
KylinPerformanceStatus statusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performanceId", performanceId));
KylinPerformanceRelations relationsData = performanceRelationsMapper.selectOne(new UpdateWrapper<KylinPerformanceRelations>().eq("performancesId", performanceId));
performancePartnerVo.setIsTrueName(statusData.getIsTrueName());
performancePartnerVo.setLimitCount(statusData.getLimitCount());
performancePartnerVo.setStatusSell(statusData.getStatusSell());
performancePartnerVo.setRoadShowId(relationsData.getRoadShowId());
performancePartnerVo.setProjectId(relationsData.getProjectId());
mongoTemplate.insert(
performancePartnerVo, PerformancePartnerVo.class.getSimpleName()
);
}
return performanceId;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public ResponseDto<PerformancePartnerVo> getStep1(String performancesId) {
PerformancePartnerVo data = mongoTemplate.findOne(
Query.query(Criteria.where("performancesId").is(performancesId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName()
);
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if (data == null) {
return ResponseDto.failure(ErrorMapping.get(20104));
}
if(null!=performanceStatus) {
data.setStatus(performanceStatus.getStatus());
}
return ResponseDto.success(data);
}
@Override
public ResponseDto<String> step2(PerformanceStep2Param step2Param) {
ResponseDto<String> result = null;
// 无 performancesId 则 创建
if (step2Param.getPerformancesId().isEmpty()) {
} else { // 获取 create 数据 status = 0 或 无数据 创建
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", step2Param.getPerformancesId()));
if (performanceStatus == null || performanceStatus.getStatus() == 0 || performanceStatus.getStatus() == 4) {
result = createStep2(step2Param);
} else if (performanceStatus.getStatus() == 1 || performanceStatus.getStatus() == 3 || performanceStatus.getStatus() == 6 || performanceStatus.getStatus() == 7 || performanceStatus.getStatus() == 8 || performanceStatus.getStatus() == 9 ) {// 修改
result = updateStep2(step2Param);
}else if(performanceStatus.getStatus() == 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 = mongoTemplate.exists(Query.query(Criteria.where("performancesId").is(performanceId).and("auditStatus").is(0)),
PerformancePartnerVo.class,
PerformancePartnerVo.class.getSimpleName());
if (isExistsSubmit) {
return ResponseDto.failure(ErrorMapping.get(20112));
}
//演出修改数据
HashMap<String, Object> map = new HashMap<>();
map.put("isTrueName", step2Param.getIsTrueName());
map.put("limitCount", step2Param.getLimitCount());
map.put("createdAt", createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("isSubmit", step2Param.getIsSubmit());
map.put("statusSell", 1);
// 获取第一步数据
if (step2Param.getIsSubmit() == 1) { // 提交
map.put("status", 1);
map.put("isCreateSave", 0);
map.put("auditStatus", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
object
);
//提交 票
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 = performanceVoTask.getPerformanceMisVo(performanceId);
HashMap<String, Object> mapSql = new HashMap<>();
mapSql.put("isCreateSave", 0);
mapSql.put("rejectTxt", "");
mapSql.put("status", 1);
mapSql.put("updatedAt", createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
performanceVoTask.createPerformanceMySql(performanceId, mapSql, kylinPerformanceMisVo, createdAt);
KylinPerformances performances = new KylinPerformances();
performances.setAuditTime(LocalDateTime.now());
performancesMapper.update(performances, new UpdateWrapper<KylinPerformances>().eq("performances_id", performanceId));
}
return ResponseDto.success("操作成功");
} else { //保存
map.put("status", 0);
map.put("isCreateSave", 1);
map.put("auditStatus", -1);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
object
);
return ResponseDto.success("保存成功");
}
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20115));
}
}
@Override
public ResponseDto<String> updateStep2(PerformanceStep2Param step2Param) {
try {
// 获取 主键id
String performanceId = step2Param.getPerformancesId();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
boolean isExistsSubmit = mongoTemplate.exists(Query.query(Criteria.where("performancesId").is(performanceId).and("auditStatus").is(0)),
PerformancePartnerVo.class,
PerformancePartnerVo.class.getSimpleName());
if (isExistsSubmit) {
return ResponseDto.failure(ErrorMapping.get(20112));
}
//演出修改数据
HashMap<String, Object> map = new HashMap<>();
map.put("isTrueName", step2Param.getIsTrueName());
map.put("limitCount", step2Param.getLimitCount());
map.put("createdAt", createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("updatedAt", createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("isSubmit", step2Param.getIsSubmit());
// 获取第一步数据
if (step2Param.getIsSubmit() == 1) { // 提交
if (performanceVoTask.judgeIsAudit(performanceId)) {
map.put("auditStatus", 0);
map.put("status", 1);
} else {
map.put("auditStatus", 1);
map.put("status", 9);
}
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
object
);
//提交 票
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVoList = ticketTimesPartnerService.getTimesMongoList(performanceId);
for (KylinTicketTimesPartnerVo ticketTimes : kylinTicketTimesPartnerVoList) {
boolean boolResult = ticketsPartnerService.submitTicketByTimes(ticketTimes.getTicketTimesId(), (int) (map.get("status")));
if (boolResult) {
return ResponseDto.failure(ErrorMapping.get(20114));
}
}
if (kylinTicketTimesPartnerVoList.size() <= 0) {
return ResponseDto.failure(ErrorMapping.get(20113));
} else {
KylinPerformanceMisVo kylinPerformanceMisVo = performanceVoTask.getPerformanceMisVo(performanceId);
HashMap<String, Object> mapSql = new HashMap<>();
mapSql.put("rejectTxt", "");
mapSql.put("status", map.get("status"));
mapSql.put("updatedAt", createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
KylinPerformances performances = new KylinPerformances();
performances.setAuditTime(LocalDateTime.now());
performances.setNoticeImage(kylinPerformanceMisVo.getNoticeImage());
performancesMapper.update(performances, new UpdateWrapper<KylinPerformances>().eq("performances_id", performanceId));
KylinPerformanceStatus performanceStatus = new KylinPerformanceStatus();
performanceStatus.setAuditStatus((int) map.get("auditStatus"));
performanceStatus.setIsTrueName(step2Param.getIsTrueName());
performanceStatus.setLimitCount(step2Param.getLimitCount());
performanceStatusMapper.update(performanceStatus, new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performanceId));
//提示:票种价格、售票时间、票种购票限制 直接生效 (演出购票限制,购票须知 演出是否实名 票种缺货登记 票种是否电子票 票种是否快递票 票种最低购买张数 票种是否显示二维码)
List<TicketTimesTicketCreatePartnerVo> timeList = kylinPerformanceMisVo.getTicketTimes();
for (TicketTimesTicketCreatePartnerVo timesItem : timeList) {
List<KylinTicketPartnerVo> ticketList = timesItem.getTicket();
for (KylinTicketPartnerVo ticketItem : ticketList) {
//修改 redis库存
if (redisUtil.hasKey(KylinRedisConst.PERFORMANCES_INVENTORY + ticketItem.getTicketsId() + ":" + KylinRedisConst.SURPLUS_GENERAL)) {
KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketItem.getTicketsId()));
int changeGeneral = ticketItem.getTotalGeneral() - ticketStatus.getTotalGeneral();
int changeExchange = ticketItem.getTotalExchange() - ticketStatus.getTotalExchange();
log.debug("ticketItem.getTotalGeneral() = " + ticketItem.getTotalGeneral());
log.debug("ticketStatus.getTotalGeneral() = " + ticketStatus.getTotalGeneral());
dataUtils.changeSurplusGeneral(ticketItem.getTicketsId(), changeGeneral);
dataUtils.changeSurplusExchange(ticketItem.getTicketsId(), changeExchange);
}
//修改 mysql 库存
KylinTicketStatus inventory = new KylinTicketStatus();
inventory.setTotalExchange(ticketItem.getTotalExchange());
inventory.setTotalGeneral(ticketItem.getTotalGeneral());
inventory.setIsTrueName(kylinPerformanceMisVo.getIsTrueName());
inventory.setLimitCount(ticketItem.getLimitCount());
inventory.setIsLackRegister(ticketItem.getIsLackRegister());
inventory.setIsExpress(ticketItem.getIsExpress());
inventory.setIsElectronic(ticketItem.getIsElectronic());
inventory.setCounts(ticketItem.getCounts());
inventory.setIsShowCode(ticketItem.getIsShowCode());
inventory.setQrCodeShowTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getQrCodeShowTime()));
//修改 mysql 售卖时间
KylinTickets ticketSellTime = new KylinTickets();
ticketSellTime.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeEnd()));
ticketSellTime.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeStart()));
ticketSellTime.setAdvanceMinuteMember(null);
ticketSellTime.setPayCountdownMinute(kylinPerformanceMisVo.getPayCountdownMinute());
//修改 价格
ticketSellTime.setPrice(ticketItem.getPrice());
ticketSellTime.setPriceDiscountMember(null);
ticketsMapper.update(ticketSellTime, new UpdateWrapper<KylinTickets>().eq("tickets_id", ticketItem.getTicketsId()));
//修改 mysql 购票限购
ticketStatusMapper.update(inventory, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketItem.getTicketsId()));
}
}
performanceVoTask.performanceVoStatus(performanceId);
}
return ResponseDto.success("操作完成");
} else { //保存
map.put("status", 0);
map.put("auditStatus", -1);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("performancesId").is(performanceId)).getQueryObject(),
object
);
return ResponseDto.success("保存成功");
}
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20115));
}
}
@Override
public ResponseDto<PerformanceStep2Param> getStep2(String performancesId) {
PerformancePartnerVo data = mongoTemplate.findOne(
Query.query(Criteria.where("performancesId").is(performancesId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName()
);
if (data == null) {
return ResponseDto.failure(ErrorMapping.get(20104));
}
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVos = ticketTimesPartnerService.getTimesMongoList(performancesId);
List<TicketTimesTicketCreatePartnerVo> ticketTimesTicketCreatePartnerVoList = new ArrayList<TicketTimesTicketCreatePartnerVo>();
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);
}
PerformanceStep2Param performanceStep2Param = new PerformanceStep2Param();
BeanUtils.copyProperties(data, performanceStep2Param);
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if(null!=performanceStatus) {
performanceStep2Param.setStatus(performanceStatus.getStatus());
}else{
performanceStep2Param.setStatus(-1);
}
performanceStep2Param.setTicketTimes(ticketTimesTicketCreatePartnerVoList);
return ResponseDto.success(performanceStep2Param);
}
@Override
public ResponseDto<String> onLinePerformance(String performancesId) {
try {
KylinPerformanceStatus performanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if (!(performanceStatusData.getStatus() == 3 || performanceStatusData.getStatus() == 7)) {
return ResponseDto.failure(ErrorMapping.get(20110));
}
// mysql
LocalDateTime updatedAt = LocalDateTime.now();
KylinPerformanceStatus performanceStatusUpdate = new KylinPerformanceStatus();
performanceStatusUpdate.setStatus(6);
performanceStatusUpdate.setUpdatedAt(updatedAt);
performanceStatusMapper.update(performanceStatusUpdate
, new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
//场次
List<KylinTicketTimeRelation> ticketTimeRelation = ticketTimeRelationMapper.selectList(
new UpdateWrapper<KylinTicketTimeRelation>().eq("performance_id", performancesId)
);
for (KylinTicketTimeRelation ticketTimeRelationItem : ticketTimeRelation) {
KylinTicketTimes ticketTimes = ticketTimesMapper.selectOne(new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", ticketTimeRelationItem.getTimesId()).eq("status", 1));
//票
List<KylinTicketRelations> ticketRelations = ticketRelationsMapper.selectList(new UpdateWrapper<KylinTicketRelations>().eq("times_id", ticketTimes.getTicketTimesId()));
for (KylinTicketRelations ticketRelationsItem : ticketRelations) {
KylinTicketStatus ticketStatusUpdate = new KylinTicketStatus();
ticketStatusUpdate.setStatus(9);
ticketStatusUpdate.setUpdatedAt(updatedAt);
ticketStatusMapper.update(ticketStatusUpdate
, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketRelationsItem.getTicketId()).eq("status", 7));
HashMap<String, Object> map = new HashMap<>();
map.put("status", 9);
map.put("updatedAt", updatedAt);
mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketRelationsItem.getTicketId()).and("status").ne(7)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(map))
);
}
}
// 判断状态
performanceVoTask.performanceVoStatus(performancesId);
return ResponseDto.success("上线成功");
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20108));
}
}
@Override
public ResponseDto<String> outLinePerformance(String performancesId) {
try {
KylinPerformanceStatus performanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if (performanceStatusData.getStatus() >= 3 && performanceStatusData.getStatus() != 4 && performanceStatusData.getStatus() != 7 && performanceStatusData.getStatus() != 10) {//未提审||被拒绝
LocalDateTime updatedAt = LocalDateTime.now();
KylinPerformanceStatus performanceStatus = new KylinPerformanceStatus();
performanceStatus.setStatus(7);
performanceStatus.setUpdatedAt(updatedAt);
performanceStatusMapper.update(performanceStatus
, new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
performanceVoTask.performanceVoStatus(performancesId);
// dataUtils.updatePerformanceMongo(performancesId);
return ResponseDto.success("下线成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20111));
}
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20109));
}
}
@Override
public String copyPerformance(String performancesId) {
try {
PerformancePartnerVo performancePartnerVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
//复制演出
performancePartnerVo.setPerformancesId(IDGenerator.nextSnowId().toString());
performancePartnerVo.setStatus(0);
performancePartnerVo.setAuditStatus(-1);
performancePartnerVo.setIsCreateSave(1);
mongoTemplate.insert(performancePartnerVo, PerformancePartnerVo.class.getSimpleName());
List<KylinTicketTimesPartnerVo> kylinTicketTimesPartnerVos = mongoTemplate.find(Query.query(Criteria.where("performancesId").is(performancesId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
for (KylinTicketTimesPartnerVo timeItem : kylinTicketTimesPartnerVos) {
//复制场次
String timesId = timeItem.getTicketTimesId();
timeItem.setTicketTimesId(IDGenerator.nextSnowId().toString());
timeItem.setPerformancesId(performancePartnerVo.getPerformancesId());
mongoTemplate.insert(timeItem, KylinTicketTimesPartnerVo.class.getSimpleName());
List<KylinTicketPartnerVo> kylinTicketPartnerVos = mongoTemplate.find(Query.query(Criteria.where("timesId").is(timesId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
for (KylinTicketPartnerVo ticketItem : kylinTicketPartnerVos) {
//复制票
ticketItem.setStatus(0);
ticketItem.setTimesId(timeItem.getTicketTimesId());
ticketItem.setTicketsId(IDGenerator.nextSnowId().toString());
mongoTemplate.insert(ticketItem, KylinTicketPartnerVo.class.getSimpleName());
}
}
return performancePartnerVo.getPerformancesId();
} catch (Exception 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 = null;
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);
if (!performancePartnerListParam.getTitle().isEmpty()) {
criteria.and("title").regex(".*?\\" + performancePartnerListParam.getTitle());
}
Query query = Query.query(criteria);
// 查询总数
long count = mongoTemplate.count(query, PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
List<PerformancePartnerVo> performancePartnerVo = mongoTemplate.find(query, PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
query.with(pageable);
//处理Vo
List<KylinPerformancePartnerListVo> voList = new ArrayList<>();
for (PerformancePartnerVo item : performancePartnerVo) {
KylinPerformancePartnerListVo voData = new KylinPerformancePartnerListVo();
voData.setStatus0Data(item);
voList.add(voData);
}
pageInfoTmp = new PageInfo(voList);
pageInfoTmp.setTotal(count);
} else {//演出列表
try {
PageHelper.startPage(performancePartnerListParam.getPage(), performancePartnerListParam.getSize());
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(voList);
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20104));
}
}
return ResponseDto.success(pageInfoTmp);
}
@Override
public ResponseDto<String> withdraw(String performancesId) {
try {
//mysql auditStatus
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if (performanceStatus != null && performanceStatus.getAuditStatus() == 0) {
KylinPerformanceStatus data1 = new KylinPerformanceStatus();
HashMap<String, Object> map = new HashMap<>();
if (performanceStatus.getStatus() >= 3) {//通过审核
data1.setAuditStatus(1);
data1.setStatus(null);
map.put("auditStatus", 1);
} else if (performanceStatus.getStatus() == 4 || performanceStatus.getStatus() == 1) {//未通过审核
data1.setAuditStatus(-1);
data1.setStatus(0);
map.put("auditStatus", -1);
map.put("status", 0);
} else {
data1.setAuditStatus(2);
data1.setStatus(null);
map.put("auditStatus", 2);
}
performanceStatusMapper.update(data1, new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(PerformancePartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("performancesId").is(performancesId)).getQueryObject(),
object
);
return ResponseDto.success("撤回成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20116));
}
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20117));
}
}
@Override
public List<PerformanceOrderStatisticalVo> getPerformanceOrderStatisticalList(String performancesId) {
PerformanceOrderStatisticalDao countBean = new PerformanceOrderStatisticalDao();
countBean.setTitle("总计:");
List<PerformanceOrderStatisticalVo> voList = new ArrayList<>();
List<PerformanceOrderStatisticalDao> dtoList = performancesMapper.getPerformanceOrderStatisticalList(performancesId);
dtoList.forEach(dto -> {
PerformanceOrderStatisticalVo vo = new PerformanceOrderStatisticalVo();
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 = new PerformanceOrderStatisticalVo();
BeanUtil.copy(countBean, vo);
voList.add(vo);
return voList;
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.kylin.dto.param.CreateTicketTimesParam;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
import com.liquidnet.service.kylin.entity.KylinTicketTimeRelation;
import com.liquidnet.service.kylin.entity.KylinTicketTimes;
import com.liquidnet.service.kylin.mapper.KylinPerformanceStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinTicketTimeRelationMapper;
import com.liquidnet.service.kylin.mapper.KylinTicketTimesMapper;
import com.liquidnet.service.kylin.service.partner.IKylinTicketTimesPartnerService;
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.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.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 场次 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
@Slf4j
public class KylinTicketTimesPartnerServiceImpl extends ServiceImpl<KylinTicketTimesMapper, KylinTicketTimes> implements IKylinTicketTimesPartnerService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private KylinPerformanceStatusMapper performanceStatusMapper;
@Override
public ResponseDto<KylinTicketTimesPartnerVo> createTimesSummary(CreateTicketTimesParam createTicketTimesParam) {
ResponseDto<KylinTicketTimesPartnerVo> ticketTimesPartnerVo = null;
//获取演出状态
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(
new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", createTicketTimesParam.getPerformancesId()));
if (null == performanceStatus) {
ticketTimesPartnerVo = createTimes(createTicketTimesParam);
} else if(performanceStatus.getAuditStatus()==0){
return ResponseDto.failure(ErrorMapping.get(20101));
}else if (performanceStatus.getStatus() >= 3 && performanceStatus.getStatus() != 4) {//未被拒绝 且 通过审核的演出
ticketTimesPartnerVo = addNewTimes(createTicketTimesParam);
} else {
ticketTimesPartnerVo = createTimes(createTicketTimesParam);
}
return ticketTimesPartnerVo;
}
@Override
public ResponseDto<KylinTicketTimesPartnerVo> createTimes(CreateTicketTimesParam createTicketTimesParam) {
try {
// 获取 主键id
String ticketTimesId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
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 = new KylinTicketTimesPartnerVo();
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")));
mongoTemplate.insert(
kylinTicketTimesPartnerVo, KylinTicketTimesPartnerVo.class.getSimpleName()
);
return ResponseDto.success(kylinTicketTimesPartnerVo);
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20105));
}
}
@Override
public ResponseDto<KylinTicketTimesPartnerVo> addNewTimes(CreateTicketTimesParam createTicketTimesParam) {
try {
// 获取 主键id
String ticketTimesId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
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 = new KylinTicketTimesPartnerVo();
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")));
mongoTemplate.insert(
kylinTicketTimesPartnerVo, KylinTicketTimesPartnerVo.class.getSimpleName()
);
return ResponseDto.success(kylinTicketTimesPartnerVo);
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<String> deleteTimes(String ticketTimesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketTimesPartnerVo data = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketTimesId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
if (data.getStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get(20106));
}
KylinTicketTimeRelation ticketTimeRelation = ticketTimeRelationMapper.selectOne(
new UpdateWrapper<KylinTicketTimeRelation>().eq("times_id", ticketTimesId));
if (ticketTimeRelation != null) {
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(
new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", ticketTimeRelation.getPerformanceId()));
if(performanceStatus.getAuditStatus()==0){
return ResponseDto.failure(ErrorMapping.get(20101));
}
if (performanceStatus.getStatus() == 0 || performanceStatus.getStatus() == 4) {//未提审||被拒绝
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("status", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(KylinTicketTimesPartnerVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketTimesId").is(ticketTimesId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20106));
}
} else {
mongoTemplate.remove(Query.query(Criteria.where("ticketTimesId").is(ticketTimesId)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
return ResponseDto.success();
}
} catch (Exception 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 = new KylinTicketTimesPartnerVo();
BeanUtils.copyProperties(createTicketTimesParam, kylinTicketTimesPartnerVo);
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);
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinTicketTimesPartnerVo)));
Document doc = mongoTemplate.getCollection(KylinTicketTimesPartnerVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketTimesId").is(createTicketTimesParam.getTicketTimesId())).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
return ResponseDto.success(JsonUtils.fromJson(doc.toJson(), KylinTicketTimesPartnerVo.class));
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20103));
}
}
@Override
public List<KylinTicketTimesPartnerVo> getTimesMongoList(String performancesId) {
return mongoTemplate.find(Query.query(Criteria.where("performancesId").is(performancesId).and("status").ne(0)), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
}
@Override
public KylinTicketTimesPartnerVo getTimesMongo(String timesId) {
return mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(timesId).and("status")), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
}
}
package com.liquidnet.service.kylin.service.impl.partner;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.param.TicketCreateParam;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.partner.IKylinTicketsPartnerService;
import com.liquidnet.service.kylin.timerTask.PerformanceVoTask;
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.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.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 票 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-06
*/
@Service
@Slf4j
public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapper, KylinTickets> implements IKylinTicketsPartnerService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private KylinPerformanceStatusMapper performanceStatusMapper;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private KylinTicketStatusMapper ticketStatusMapper;
@Autowired
private KylinTicketRelationsMapper ticketRelationsMapper;
@Autowired
private PerformanceVoTask performanceVoTask;
@Override
public ResponseDto<KylinTicketPartnerVo> createTicketSummary(TicketCreateParam ticketCreateParam) {
ResponseDto<KylinTicketPartnerVo> ticketPartnerVo = null;
//获取演出状态
KylinTicketTimesPartnerVo timesPartnerVo = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketCreateParam.getTimesId())), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
if (null != timesPartnerVo) {
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(
new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", timesPartnerVo.getPerformancesId()));
if (null == performanceStatus) {
ticketPartnerVo = createTicket(ticketCreateParam);
} else if (performanceStatus.getStatus() >= 3 && performanceStatus.getStatus() != 4) {//未被拒绝 且 通过审核的演出
ticketPartnerVo = addNewTicket(ticketCreateParam);
} else {
ticketPartnerVo = createTicket(ticketCreateParam);
}
} else {
ticketPartnerVo = createTicket(ticketCreateParam);
}
return ticketPartnerVo;
}
@Override
public ResponseDto<KylinTicketPartnerVo> createTicket(TicketCreateParam ticketCreateParam) {
try {
// 获取 主键id
String ticketsId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
ticketCreateParam.setTicketsId(ticketsId);
// mongo 操作
KylinTicketPartnerVo kylinTicketPartnerVo = new KylinTicketPartnerVo();
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 = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketCreateParam.getTimesId())), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
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")));
}
KylinTicketPartnerVo data = mongoTemplate.insert(
kylinTicketPartnerVo, KylinTicketPartnerVo.class.getSimpleName()
);
return ResponseDto.success(kylinTicketPartnerVo);
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20105));
}
}
@Override
public ResponseDto<KylinTicketPartnerVo> addNewTicket(TicketCreateParam ticketCreateParam) {
try {
// 获取 主键id
String ticketsId = IDGenerator.nextSnowId().toString();
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
ticketCreateParam.setTicketsId(ticketsId);
// mongo 操作
KylinTicketPartnerVo kylinTicketPartnerVo = new KylinTicketPartnerVo();
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 = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketCreateParam.getTimesId())), KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
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")));
}
KylinTicketPartnerVo data = mongoTemplate.insert(
kylinTicketPartnerVo, KylinTicketPartnerVo.class.getSimpleName()
);
return ResponseDto.success(kylinTicketPartnerVo);
} catch (Exception e) {
return ResponseDto.failure(ErrorMapping.get(20101));
}
}
@Override
public ResponseDto<KylinTicketPartnerVo> updateTicket(TicketCreateParam ticketCreateParam) {
try {
KylinTicketTimesPartnerVo ticketTimeRelation = mongoTemplate.findOne(Query.query(Criteria.where("ticketTimesId").is(ticketCreateParam.getTimesId())),
KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
PerformancePartnerVo data = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(ticketTimeRelation.getPerformancesId())),
PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
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 = new KylinTicketPartnerVo();
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")));
}
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(kylinTicketPartnerVo));
Document doc = mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketsId").is(ticketId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
KylinTicketPartnerVo kylinTicketPartnerVoData = JsonUtils.fromJson(doc.toJson(), KylinTicketPartnerVo.class);
return ResponseDto.success(kylinTicketPartnerVoData);
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20103));
}
}
@Override
public ResponseDto<String> deleteTicket(String ticketsId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketRelations ticketRelations = ticketRelationsMapper.selectOne(
new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", ticketsId));
if (ticketRelations == null) {
mongoTemplate.remove(Query.query(Criteria.where("ticketsId").is(ticketsId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
return ResponseDto.success("删除成功");
}
KylinTicketTimeRelation ticketTimeRelation = ticketTimeRelationMapper.selectOne(
new UpdateWrapper<KylinTicketTimeRelation>().eq("times_id", ticketRelations.getTimesId()));
PerformancePartnerVo data = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(ticketTimeRelation.getPerformanceId())),
PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
if (data == null || data.getAuditStatus() == null || data.getAuditStatus() == 0) {
return ResponseDto.failure(ErrorMapping.get("20106"));
}
KylinPerformanceStatus performanceStatus = performanceStatusMapper.selectOne(
new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", ticketTimeRelation.getPerformanceId()));
if (performanceStatus.getStatus() == 0 || performanceStatus.getStatus() == 4) {//未提审||被拒绝
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
map.put("status", -1);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
return ResponseDto.success("删除成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20106));
}
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20102));
}
}
@Override
public ResponseDto<KylinTicketPartnerVo> copyTicket(String performanceId, String ticketsId) {
try {
// 获取 当前时间 -> 创建时间
LocalDateTime createdAt = LocalDateTime.now();
PerformancePartnerVo performancePartnerVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
if (performancePartnerVo.getAuditStatus() == 0 || performancePartnerVo.getAuditStatus() == 1) {
return ResponseDto.failure(ErrorMapping.get(20107));
}
KylinTicketPartnerVo kylinTicketPartnerVo = mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
kylinTicketPartnerVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
kylinTicketPartnerVo.setTicketsId(IDGenerator.nextSnowId().toString());
KylinTicketPartnerVo data = mongoTemplate.insert(
kylinTicketPartnerVo, KylinTicketPartnerVo.class.getSimpleName()
);
return ResponseDto.success(kylinTicketPartnerVo);
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20107));
}
}
@Override
public boolean submitTicketByTimes(String timesId, Integer status) {
LocalDateTime updatedAt = LocalDateTime.now();
HashMap<String, Object> map = new HashMap<>();
if (null == status) {
map.put("status", 1);
} else {
map.put("status", status);
}
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("timesId").is(timesId).and("status").nin(-2, 7)).getQueryObject(),
object
);
long count = mongoTemplate.count(
Query.query(Criteria.where("timesId").is(timesId)),
KylinTicketPartnerVo.class,
KylinTicketPartnerVo.class.getSimpleName()
);
return count <= 0;
}
@Override
public List<KylinTicketPartnerVo> getTicketMongoList(String timesId) {
return mongoTemplate.find(Query.query(Criteria.where("timesId").is(timesId).and("status").ne(-1)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
}
@Override
public KylinTicketPartnerVo getTicketsMongo(String ticketsId) {
return mongoTemplate.findOne(Query.query(Criteria.where("ticketsId").is(ticketsId)), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
}
@Override
public ResponseDto<String> onLine(String ticketsId, String performancesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
if (ticketStatus.getStatus() >= 3 && ticketStatus.getStatus() != 4 && ticketStatus.getStatus() != 6) {//未提审||被拒绝
//mysql
KylinTicketStatus changeStatus = new KylinTicketStatus();
changeStatus.setUpdatedAt(updatedAt);
changeStatus.setStatus(9);
ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
HashMap<String, Object> map = new HashMap<>();
map.put("status", 9);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
object
);
performanceVoTask.performanceVoStatus(performancesId);
return ResponseDto.success("上线成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20110));
}
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20108));
}
}
@Override
public ResponseDto<String> outLine(String ticketsId, String performancesId) {
try {
LocalDateTime updatedAt = LocalDateTime.now();
KylinTicketStatus ticketStatus = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
if (ticketStatus.getStatus() >= 3 && ticketStatus.getStatus() != 4 && ticketStatus.getStatus() != 7) {//未提审||被拒绝
//mysql
KylinTicketStatus changeStatus = new KylinTicketStatus();
changeStatus.setUpdatedAt(updatedAt);
changeStatus.setStatus(7);
ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketsId));
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("status", 7);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("ticketsId").is(ticketsId)).getQueryObject(),
object
);
performanceVoTask.performanceVoStatus(performancesId);
return ResponseDto.success("下线成功");
} else {
return ResponseDto.failure(ErrorMapping.get(20111));
}
} catch (Exception e) {
e.printStackTrace();
return ResponseDto.failure(ErrorMapping.get(20109));
}
}
}
package com.liquidnet.service.kylin.timerTask;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
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.kylin.constant.KylinRedisConst;
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.*;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketTimesPartnerServiceImpl;
import com.liquidnet.service.kylin.service.impl.partner.KylinTicketsPartnerServiceImpl;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.MongoVoUtils;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import lombok.extern.slf4j.Slf4j;
import lombok.extern.slf4j.XSlf4j;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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 java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@Component
@Slf4j
public class PerformanceVoTask {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoConverter mongoConverter;
@Autowired
private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
@Autowired
private MongoVoUtils mongoVoUtils;
@Autowired
private KylinPerformancesMapper performancesMapper;
@Autowired
private KylinPerformanceStatusMapper performanceStatusMapper;
@Autowired
private KylinPerformanceRelationsMapper performanceRelationsMapper;
@Autowired
private KylinTicketTimesPartnerServiceImpl ticketTimesPartnerService;
@Autowired
private KylinTicketsMapper ticketsMapper;
@Autowired
private KylinTicketStatusMapper ticketStatusMapper;
@Autowired
private KylinTicketRelationsMapper ticketRelationsMapper;
@Autowired
private KylinTicketTimesMapper ticketTimesMapper;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private KylinTicketsPartnerServiceImpl ticketsPartnerService;
/**
* 根据票状态判断 演出状态 票状态
*
* @param performanceSingleId
*/
public void performanceVoStatus(String performanceSingleId) {
LocalDateTime timeNow = LocalDateTime.now();
List<String> performanceIdList = new ArrayList<>();
if (performanceSingleId == null) {
List<KylinPerformanceStatus> list = performanceStatusMapper.selectList(new UpdateWrapper<KylinPerformanceStatus>().in("status", 6, 8, 9));
for (KylinPerformanceStatus item : list) {
performanceIdList.add(item.getPerformanceId());
}
} else {
performanceIdList.add(performanceSingleId);
}
for (String performancesId : performanceIdList) {
KylinPerformanceVo vo = mongoVoUtils.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 = dataUtils.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);
}
ticketStatusMapper.update(changeStatus, new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", 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;
}
//修改演出状态
KylinPerformanceStatus changeStatus = new KylinPerformanceStatus();
changeStatus.setStatus(appStatus);
performanceStatusMapper.update(changeStatus, new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
vo.setAppStatus(appStatus);
dataUtils.updatePerformanceMongo(performancesId, vo);
}
}
/**
* 生成 PerformanceCreatePartnerVo(用于审核第一次提交数据)
*
* @param performancesId
* @return
*/
public KylinPerformanceMisVo getPerformanceMisVo(String performancesId) {
try {
PerformancePartnerVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), PerformancePartnerVo.class, PerformancePartnerVo.class.getSimpleName());
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.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 {
//创建演出
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())));
performances.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performanceRelations.getFieldId(), "city_name"));
performances.setCityId(Integer.parseInt((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + performanceRelations.getFieldId(), "city_id")));
performances.setUpdatedAt(updatedAt);
performanceStatus.setPerformanceId(performances.getPerformancesId());
performanceStatus.setPerformanceStatusId(IDGenerator.nextSnowId().toString());
performanceStatus.setCreatedAt(performances.getCreatedAt());
performanceStatus.setAuditStatus(0);
performanceStatus.setUpdatedAt(updatedAt);
performanceStatus.setLimitCountMember(1);
performanceRelations.setPerformanceId(performances.getPerformancesId());
performanceRelations.setPerformanceRelationsId(IDGenerator.nextSnowId().toString());
performanceRelations.setCreatedAt(performances.getCreatedAt());
performanceRelations.setUpdatedAt(updatedAt);
performancesMapper.delete(new UpdateWrapper<KylinPerformances>().eq("performances_id", performances.getPerformancesId()));
performancesMapper.insert(performances);
performanceStatusMapper.delete(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performanceStatus.getPerformanceId()));
performanceStatusMapper.insert(performanceStatus);
performanceRelationsMapper.delete(new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id", performanceRelations.getPerformanceId()));
performanceRelationsMapper.insert(performanceRelations);
//场次数据
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().toString());
ticketTimeRelation.setTimesId(ticketTimes.getTicketTimesId());
ticketTimeRelation.setCreatedAt(ticketTimes.getCreatedAt());
ticketTimeRelation.setUpdatedAt(updatedAt);
ticketTimesMapper.delete(new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", ticketTimes.getTicketTimesId()));
ticketTimesMapper.insert(ticketTimes);
ticketTimeRelationMapper.delete(new UpdateWrapper<KylinTicketTimeRelation>().eq("times_id", ticketTimeRelation.getTimesId()));
ticketTimeRelationMapper.insert(ticketTimeRelation);
//修改票
for (KylinTicketPartnerVo ticketItem : ticketsPartnerService.getTicketMongoList(ticketTimeItem.getTicketTimesId())) {
BasicDBObject objectTicketVo = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document docTicket = mongoTemplate.getCollection(KylinTicketPartnerVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("ticketsId").is(ticketItem.getTicketsId())).getQueryObject(),
objectTicketVo,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
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.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().toString());
ticketRelations.setTicketId(tickets.getTicketsId());
ticketRelations.setCreatedAt(tickets.getCreatedAt());
ticketRelations.setUpdatedAt(updatedAt);
ticketsMapper.delete(new UpdateWrapper<KylinTickets>().eq("tickets_id", tickets.getTicketsId()));
ticketsMapper.insert(tickets);
ticketStatusMapper.delete(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticketStatus.getTicketId()));
ticketStatusMapper.insert(ticketStatus);
ticketRelationsMapper.delete(new UpdateWrapper<KylinTicketRelations>().eq("ticket_id", ticketRelations.getTicketId()));
ticketRelationsMapper.insert(ticketRelations);
dataUtils.setSurplusExchange(tickets.getTicketsId(), ticketStatus.getSurplusExchange());
dataUtils.setSurplusGeneral(tickets.getTicketsId(), ticketStatus.getSurplusGeneral());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 判断是否需要审核
public boolean judgeIsAudit(String performanceId) {
KylinPerformanceMisVo misVo = getPerformanceMisVo(performanceId);
KylinPerformanceVo mongoVo = mongoVoUtils.combinePerformanceVoData(performanceId);
if (!misVo.getTitle().equals(mongoVo.getTitle())) {
log.debug("NEED CHANGE TITLE");
return true;
} else if (!misVo.getType().equals(mongoVo.getType())) {
log.debug("NEED CHANGE TYPE");
return true;
} else if (!misVo.getTimeStart().equals(mongoVo.getTimeStart())) {
log.debug("NEED CHANGE TIMESTART");
return true;
} else if (!misVo.getTimeEnd().equals(mongoVo.getTimeEnd())) {
log.debug("NEED CHANGE TIMEEND");
return true;
} else if (!misVo.getFieldId().equals(mongoVo.getFieldId())) {
log.debug("NEED CHANGE FIELDID");
return true;
} else if (!misVo.getNotice().equals(mongoVo.getNotice())) {
log.debug("NEED CHANGE NOTICE");
return true;
} else if (!misVo.getDetails().equals(mongoVo.getDetails())) {
log.debug("NEED CHANGE DETAILS");
return true;
} else if (!misVo.getApprovalUrl().equals(mongoVo.getApprovalUrl())) {
log.debug("NEED CHANGE APPROVALURL");
return true;
} else if (!misVo.getPayCountdownMinute().equals(mongoVo.getPayCountdownMinute())) {
log.debug("NEED CHANGE PAYCOUTDOWN");
return true;
}
boolean exists = mongoTemplate.exists(Query.query(Criteria.where("status").is(-1).and("performancesId").is(performanceId)),
KylinTicketTimesPartnerVo.class, KylinTicketTimesPartnerVo.class.getSimpleName());
if (exists) {
log.debug("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);
boolean exists2 = mongoTemplate.exists(Query.query(Criteria.where("status").is(-2).and("timesId").is(times.getTicketTimesId())), KylinTicketPartnerVo.class, KylinTicketPartnerVo.class.getSimpleName());
if (exists2) {
log.debug("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.debug("NEED CHANGE TICKET TITLE");
log.debug("ticketVo.getTitle() = " + ticketVo.getTitle());
log.debug("ticketPartnerVo.getTitle() = " + ticketPartnerVo.getTitle());
return true;
}
// else if (!ticketVo.getQrCodeShowTime().equals(ticketPartnerVo.getQrCodeShowTime())) {
// log.debug("NEED CHANGE TICKET QRCODESHOWTIME");
// return true;
// }
else if (!ticketVo.getDescribeElectronic().equals(ticketPartnerVo.getDescribeElectronic())) {
log.debug("NEED CHANGE TICKET DESCRIBEELECTRONIC");
log.debug("ticketVo.getDescribeElectronic() =" + ticketVo.getDescribeElectronic());
log.debug("ticketPartnerVo.getDescribeElectronic() =" + ticketPartnerVo.getDescribeElectronic());
return true;
} else if (!ticketVo.getDescribeExpress().equals(ticketPartnerVo.getDescribeExpress())) {
log.debug("NEED CHANGE TICKET DESCRIBEELEXPRESS");
log.debug("ticketVo.getDescribeExpress() =" + ticketVo.getDescribeExpress());
log.debug("ticketPartnerVo.getDescribeExpress() =" + ticketPartnerVo.getDescribeExpress());
return true;
}
if (!ticketVo.getDescribes().equals(ticketPartnerVo.getDescribes())) {
log.debug("NEED CHANGE TICKET DESCRIBES");
log.debug("ticketVo.getDescribes() =" + ticketVo.getDescribes());
log.debug("ticketPartnerVo.getDescribes() =" + ticketPartnerVo.getDescribes());
return true;
}
break;
}
}
}
}
return false;
}
}
...@@ -30,8 +30,6 @@ import java.util.regex.Pattern; ...@@ -30,8 +30,6 @@ import java.util.regex.Pattern;
@Component @Component
public class DataUtils { public class DataUtils {
@Autowired
private KylinBuyNoticeMapper buyNoticeMapper;
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
@Autowired @Autowired
...@@ -41,17 +39,6 @@ public class DataUtils { ...@@ -41,17 +39,6 @@ public class DataUtils {
@Autowired @Autowired
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
/**
* 根据 购票须知 id 获取 购票须知文案
*
* @param buyNoticeIds 购票须知 数组
* @return 购票须知 json串
*/
public String getBuyNoticeJsonString(List<String> buyNoticeIds) {
List<KylinBuyNotice> data = buyNoticeMapper.selectList(new UpdateWrapper<KylinBuyNotice>().in("buy_notice_id", buyNoticeIds));
return JsonUtils.toJson(data);
}
/** /**
* 初始化普通库存 * 初始化普通库存
* *
...@@ -243,11 +230,7 @@ public class DataUtils { ...@@ -243,11 +230,7 @@ public class DataUtils {
public void updatePerformanceMongo(String performanceIds, KylinPerformanceVo paramVo) { public void updatePerformanceMongo(String performanceIds, KylinPerformanceVo paramVo) {
//查询 mysql 数据 //查询 mysql 数据
KylinPerformanceVo vo; KylinPerformanceVo vo;
if (null == paramVo) {
vo = mongoVoUtils.combinePerformanceVoData(performanceIds);
} else {
vo = paramVo; vo = paramVo;
}
if (vo != null) { if (vo != null) {
try { try {
//删除 mongo数据 //删除 mongo数据
......
...@@ -14,6 +14,9 @@ import com.liquidnet.service.kylin.entity.*; ...@@ -14,6 +14,9 @@ import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.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.math.BigDecimal;
...@@ -23,150 +26,12 @@ import java.util.List; ...@@ -23,150 +26,12 @@ import java.util.List;
@Component @Component
public class MongoVoUtils { public class MongoVoUtils {
@Autowired
private KylinPerformancesMapper performancesMapper;
@Autowired
private KylinPerformanceStatusMapper performanceStatusMapper;
@Autowired
private KylinPerformanceRelationsMapper performanceRelationsMapper;
@Autowired
private KylinTicketTimesMapper ticketTimesMapper;
@Autowired
private KylinTicketTimeRelationMapper ticketTimeRelationMapper;
@Autowired
private KylinTicketsMapper ticketsMapper;
@Autowired
private KylinTicketStatusMapper ticketStatusMapper;
@Autowired
private KylinTicketRelationsMapper ticketRelationsMapper;
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired
public KylinPerformanceVo combinePerformanceVoData(String performancesId) { private MongoTemplate mongoTemplate;
try {
KylinPerformanceVo voData = new KylinPerformanceVo();
//演出数据
KylinPerformances p1 = performancesMapper.selectOne(new UpdateWrapper<KylinPerformances>().eq("performances_id", performancesId));
KylinPerformanceStatus p2 = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
KylinPerformanceRelations p3 = performanceRelationsMapper.selectOne(new UpdateWrapper<KylinPerformanceRelations>().eq("performance_id", performancesId));
//场地相关数据
KylinFields fields = new KylinFields();
String cityName = (String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name");
fields.setCityId(Integer.parseInt((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_id")));
fields.setLatitude((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "latitude"));
fields.setLongitude((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "longitude"));
fields.setCityName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "city_name"));
fields.setName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "name"));
//相关状态时间初始变量
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<KylinTicketTimeRelation> tt3 = ticketTimeRelationMapper.selectList(new UpdateWrapper<KylinTicketTimeRelation>().eq("performance_id", performancesId));
List<KylinTicketTimesVo> timeList = new ArrayList<>();
for (int x = 0; x < tt3.size(); x++) {
KylinTicketTimeRelation times = tt3.get(x);
KylinTicketTimes tt1 = ticketTimesMapper.selectOne(new UpdateWrapper<KylinTicketTimes>().eq("ticket_times_id", times.getTimesId()));
//票种数据
List<KylinTicketRelations> t3 = ticketRelationsMapper.selectList(new UpdateWrapper<KylinTicketRelations>().eq("times_id", times.getTimesId()));
List<KylinTicketVo> ticketList = new ArrayList<>();
for (int y = 0; y < t3.size(); y++) {
KylinTicketRelations ticket = t3.get(y);
KylinTickets t1 = ticketsMapper.selectOne(new UpdateWrapper<KylinTickets>().eq("tickets_id", ticket.getTicketId()));
KylinTicketStatus t2 = ticketStatusMapper.selectOne(new UpdateWrapper<KylinTicketStatus>().eq("ticket_id", ticket.getTicketId()));
// if(t2.getStatus()==7){
// continue;
// }
KylinTicketVo kylinTicketVo = new KylinTicketVo();
kylinTicketVo.setTimeId(ticket.getTimesId());
kylinTicketVo.setTicket(t1);
kylinTicketVo.setTicketStatus(t2);
ticketList.add(kylinTicketVo);
// //票种 库存redis
// if (!redisUtil.hHasKey(KylinRedisConst.PERFORMANCES_INVENTORY + kylinTicketVo.getTicketsId(), KylinRedisConst.SURPLUS_GENERAL)) {
// dataUtils.setSurplusGeneral(kylinTicketVo.getTicketsId(), t2.getTotalGeneral());
// dataUtils.setSurplusExchange(kylinTicketVo.getTicketsId(), t2.getSurplusExchange());
// }
if (kylinTicketVo.getIsMember() == 1) {
if (kylinTicketVo.getMemberPrice().compareTo(kylinTicketVo.getPrice()) != 0) {
isDiscount = 1;
}
if (DateUtil.compareStrDay(DateUtil.getNowTime(), kylinTicketVo.getMemberTimeStart()) < 0) {
isAdvance = 1;
}
if (kylinTicketVo.getIsMember() == 1) {
isMember = 1;
}
if (kylinTicketVo.getIsExclusive() == 1) {
isExclusive = 1;
}
if (isAdvance == 0 && isDiscount == 0 && isExclusive == 0) {
isMember = 0;
}
}
if (kylinTicketVo.getIsLackRegister() == 1) {
isLackRegister = 1;
}
payCountdownMinute = t1.getPayCountdownMinute();
if (price.compareTo(new BigDecimal("0.00")) == 0) {
price = kylinTicketVo.getPrice();
} else {
if (kylinTicketVo.getPrice().compareTo(price) < 0) {
price = kylinTicketVo.getPrice();
}
}
if (stopSellTime == null || stopSellTime.isBefore(t1.getTimeEnd())) {
stopSellTime = t1.getTimeEnd();
}
if (sellMemberTime == null || sellMemberTime.isAfter(t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()))) {
sellMemberTime = t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember());
}
if (sellTime == null || sellTime.isAfter(t1.getTimeStart())) {
sellTime = t1.getTimeStart();
}
}
// if(ticketList.size()>0) {
KylinTicketTimesVo kylinTicketTimesVo = new KylinTicketTimesVo();
kylinTicketTimesVo.setTicketTimes(tt1);
kylinTicketTimesVo.setPerformanceId(times.getPerformanceId());
kylinTicketTimesVo.setTimeId(times.getTimesId());
kylinTicketTimesVo.setTicketList(ticketList);
timeList.add(kylinTicketTimesVo);
// }
}
voData.setPerformance(p1);
voData.setPerformanceStatus(p2);
voData.setPerformanceRelations(p3);
voData.setFieldsData(fields, cityName);
voData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellMemberTime, sellTime, isAdvance, isDiscount, payCountdownMinute);
voData.setTicketTimeList(timeList);
voData.setAppStatus(p2.getStatus());
return voData;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/** /**
* @param userId 用户id * @param userId 用户id
......
...@@ -42,8 +42,6 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky ...@@ -42,8 +42,6 @@ public class KylinCheckUserPerformancesPartnerServiceImpl extends ServiceImpl<Ky
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
@Autowired @Autowired
private MongoConverter mongoConverter;
@Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
@Autowired @Autowired
private KylinCheckUserPerformancesMapper checkUserPerformancesMapper; private KylinCheckUserPerformancesMapper checkUserPerformancesMapper;
......
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