package com.dsh.other.controller; import com.dsh.other.entity.SiteBooking; import com.dsh.other.feignclient.activity.UserCouponClient; import com.dsh.other.model.QuerySiteTimes; import com.dsh.other.service.ISiteBookingService; import com.dsh.other.service.ISiteService; import com.dsh.other.util.ResultUtil; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 硬件方调用 存储玩湃惠民卡使用记录 * @author zhibing.pu * @date 2023/6/24 11:27 */ @RestController @Api(tags = "硬件方调用 存储玩湃惠民卡使用记录") @RequestMapping("/base/code") @Slf4j public class CodeCallBackController { @Autowired private ISiteBookingService siteBookingService; @Autowired private ISiteService siteService; @Autowired private UserCouponClient userCouponClient; // 进场二维码新增参数codeType 1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 /** * 硬件开门后回调 是否可进场检查接口 sid门店id rid场地id */ @GetMapping("/verify") public ResultUtil verify(Integer codeType,String dataId, Integer rid, Integer sid) throws Exception { log.info("硬件开门后回调 校验是否可入场"); System.err.println("硬件开门后回调 校验是否可入场"); System.err.println("codeType:"+codeType); System.err.println("dataId:"+dataId); System.err.println("rid:"+rid); System.err.println("sid:"+sid); if (rid==32){ rid= 27; } Date date = new Date(); // codeType二维码类型1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 234需要校验能否进场 if (codeType==1 || codeType==2){ // 将订单设置为已使用 SiteBooking siteBooking = siteBookingService.getById(Integer.valueOf(dataId)); if (siteBooking==null){ System.err.println("未查询到订场记录"+dataId); System.err.println("codeType"+codeType); return ResultUtil.error("未查询到订场记录"); }else{ siteBooking.setStatus(3); siteBookingService.updateById(siteBooking); } return ResultUtil.success(); } if (codeType==3){ // 判断是否能入场 远程调用将门票设置为已使用 Date date1 = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String day = simpleDateFormat.format(date1); List querySiteTimes = siteService.querySiteTimes(rid, day, null, null, 2); Integer flag =0; for (QuerySiteTimes querySiteTime : querySiteTimes) { if (querySiteTime.getSelectable()==1){ flag = 1; break; } } if (flag==0){ return ResultUtil.error("该时间段已无空位"); }else{ // 远程调用 将门票设置为已使用 userCouponClient.changeTicketStatus(dataId,sid,rid); return ResultUtil.success(); } } if (codeType==4){ // 判断是否能入场 Date date1 = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String day = simpleDateFormat.format(date1); List querySiteTimes = siteService.querySiteTimes(rid, day, null, null, 2); Integer flag =0; for (QuerySiteTimes querySiteTime : querySiteTimes) { if (querySiteTime.getSelectable()==1){ flag = 1; break; } } if (flag==0){ log.info("该时间段已无空位"); return ResultUtil.error("该时间段已无空位"); }else{ return ResultUtil.success(); } } return ResultUtil.success(); } }