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

Commit 4a53de68 authored by 胡佳晨's avatar 胡佳晨

提交 pda接口

parent ab6e19b4
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class CheckData implements Serializable, Cloneable {
@ApiModelProperty(value = "0未检票,1已检票")
private int check_status;
@ApiModelProperty(value = "0-正常|1-黑名单")
private String check_time;
@ApiModelProperty(value = "票提")
private String enter_idcode;
@ApiModelProperty(value = "抽成票提")
private String enter_mobile;
@ApiModelProperty(value = "代理id")
private String enter_name;
@ApiModelProperty(value = "总代id")
private String ticket_entity_id;
@ApiModelProperty(value = "总代id")
private String ticket_id;
@ApiModelProperty(value = "总代id")
private String ticket_name;
@ApiModelProperty(value = "总代id")
private String ticket_price;
@ApiModelProperty(value = "1单日票 2通票")
private Integer ticket_type;
@ApiModelProperty(value = "总代id")
private String ticket_use_end;
@ApiModelProperty(value = "总代id")
private String ticket_use_start;
@ApiModelProperty(value = "总代id")
private Integer ticket_count;
@ApiModelProperty(value = "总代id")
private Boolean select_status;
private static final CheckData obj = new CheckData();
public static CheckData getNew() {
try {
return (CheckData) obj.clone();
} catch (CloneNotSupportedException e) {
return new CheckData();
}
}
}
......@@ -2,8 +2,12 @@ package com.liquidnet.service.kylin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.WqTempParam;
import com.liquidnet.service.kylin.dto.vo.CheckData;
import com.liquidnet.service.kylin.dto.vo.WqTempVo;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 补偿接口 胡佳晨
......@@ -22,5 +26,9 @@ public interface IKylinTempService {
ResponseDto<WqTempVo> getWqTempExpress(String orderId);
ResponseDto<Boolean> updateMailNo(String orderId,String mailNo);
ResponseDto<Boolean> updateMailNo(String orderId, String mailNo);
ResponseDto<List<CheckData>> getCheckData(String performance_id, String idcode, String[] ticket_ids);
ResponseDto<List<CheckData>> checkTicket(String performance_id, String idcode, String remarks, String[] ticket_ids, String check_time);
}
package com.liquidnet.service.kylin.controller;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.WqTempParam;
import com.liquidnet.service.kylin.dto.vo.CheckData;
import com.liquidnet.service.kylin.dto.vo.WqTempVo;
import com.liquidnet.service.kylin.service.IKylinTempService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Api(tags = "pda验票接口")
@RestController
@RequestMapping("pda")
@Slf4j
public class CheckDataController {
@Autowired
private IKylinTempService kylinTempService;
@GetMapping("checked")
@ApiOperation("查询入场的已检票数据")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "performance_id", value = "演出id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "idcode", value = "证件号", required = true),
@ApiImplicitParam(type = "query", dataType = "ArrayList", name = "ticket_ids", value = "票id", required = true),
})
public HashMap<String, Object> getCheckData(String performance_id, String idcode, String[] ticket_ids) {
HashMap<String, Object> map = CollectionUtil.mapStringObject();
map.put("check_data", kylinTempService.getCheckData(performance_id, idcode, ticket_ids).getData());
return map;
}
@PostMapping("check")
@ApiOperation("检票")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "performance_id", value = "演出id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "idcode", value = "证件号", required = true),
@ApiImplicitParam(type = "query", dataType = "ArrayList", name = "ticket_ids", value = "票id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "remarks", value = "设备号", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "check_time", value = "验票时间", required = true),
})
public HashMap<String, Object> checkTicket(String performance_id, String idcode, String remarks, String[] ticket_ids, String check_time) {
HashMap<String, Object> map = CollectionUtil.mapStringObject();
map.put("check_data", kylinTempService.checkTicket(performance_id, idcode, remarks, ticket_ids, check_time).getData());
map.put("check_time", check_time);
return map;
}
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.SuperAccountUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.kylin.dto.param.WqTempParam;
import com.liquidnet.service.kylin.dto.vo.CheckData;
import com.liquidnet.service.kylin.dto.vo.KylinTimePerformanceVo;
import com.liquidnet.service.kylin.dto.vo.WqTempVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.service.IKylinTempService;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.ObjectUtil;
import com.liquidnet.service.kylin.utils.QueueUtils;
import com.mongodb.bulk.BulkWriteResult;
import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.model.WriteModel;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
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 java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
......@@ -35,6 +55,8 @@ public class TempServiceImpl implements IKylinTempService {
DataUtils dataUtils;
@Autowired
QueueUtils queueUtils;
@Autowired
MongoTemplate mongoTemplate;
@Override
public ResponseDto<Boolean> setWqRedis(String orderId) {
......@@ -63,7 +85,7 @@ public class TempServiceImpl implements IKylinTempService {
try {
String uid = CurrentUtil.getCurrentUid();
KylinOrderTicketVo orderTicketVo = dataUtils.getOrderTicketVo(param.getOrderId());
if(!SuperAccountUtils.isSuperAccount(uid,orderTicketVo.getUserId())){
if (!SuperAccountUtils.isSuperAccount(uid, orderTicketVo.getUserId())) {
return ResponseDto.failure(ErrorMapping.get("20003"));
}
// if (uid.equals("809406") || uid.equals("773650")) {
......@@ -74,7 +96,7 @@ public class TempServiceImpl implements IKylinTempService {
// }
Integer isTemp = dataUtils.getWqOrderId(param.getOrderId());
if(isTemp == 0){
if (isTemp == 0) {
return ResponseDto.failure(ErrorMapping.get("20003"));
}
......@@ -114,7 +136,7 @@ public class TempServiceImpl implements IKylinTempService {
public ResponseDto<WqTempVo> getWqTempExpress(String orderId) {
String uid = CurrentUtil.getCurrentUid();
KylinOrderTicketVo orderTicketVo = dataUtils.getOrderTicketVo(orderId);
if(!SuperAccountUtils.isSuperAccount(uid,orderTicketVo.getUserId())){
if (!SuperAccountUtils.isSuperAccount(uid, orderTicketVo.getUserId())) {
return ResponseDto.failure(ErrorMapping.get("20003"));
}
// if (uid.equals("809406") || uid.equals("773650")) {
......@@ -144,4 +166,103 @@ public class TempServiceImpl implements IKylinTempService {
return ResponseDto.failure();
}
}
@Override
public ResponseDto<List<CheckData>> getCheckData(String performance_id, String idcode, String[] ticket_ids) {
List<CheckData> voList = ObjectUtil.checkDataArrayList();
List<KylinOrderTicketEntitiesVo> dataList = mongoTemplate.find(Query.query(Criteria.where("performanceId").is(performance_id).and("ticketId").in(ticket_ids).and("enterIdCode").is(idcode))
, KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
for (KylinOrderTicketEntitiesVo entitiesVo : dataList) {
if (entitiesVo.getEnterIdCode().equals(idcode)) {
CheckData vo = CheckData.getNew();
vo.setCheck_status(entitiesVo.getStatus());
vo.setCheck_time(entitiesVo.getCheckedAt());
vo.setEnter_idcode(entitiesVo.getEnterIdCode());
vo.setEnter_mobile(entitiesVo.getEnterMobile());
vo.setEnter_name(entitiesVo.getEnterName());
vo.setTicket_id(entitiesVo.getTicketId());
vo.setTicket_name(entitiesVo.getTicketTitle());
vo.setTicket_count(1);
vo.setTicket_entity_id(entitiesVo.getOrderTicketEntitiesId());
vo.setTicket_use_end(entitiesVo.getUseEnd());
vo.setTicket_use_start(entitiesVo.getUseStart());
vo.setTicket_type(vo.getTicket_use_end().equals(vo.getTicket_use_start()) ? 1 : 0);
vo.setSelect_status(false);
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(performance_id);
for (int x = 0; x < performanceData.getTicketTimeList().size(); x++) {
KylinTicketTimesVo timeItem = performanceData.getTicketTimeList().get(x);
for (int y = 0; y < timeItem.getTicketList().size(); y++) {
KylinTicketVo ticketItem = timeItem.getTicketList().get(y);
if (ticketItem.getTicketsId().equals(entitiesVo.getTicketId())) {
vo.setTicket_price(ticketItem.getPrice().toString());
break;
}
}
}
voList.add(vo);
}
}
return ResponseDto.success(voList);
}
@Override
public ResponseDto<List<CheckData>> checkTicket(String performance_id, String idcode, String remarks, String[] ticket_ids, String check_time) {
List<CheckData> voList = ObjectUtil.checkDataArrayList();
List<KylinOrderTicketEntitiesVo> dataList = mongoTemplate.find(Query.query(Criteria.where("performanceId").is(performance_id).and("ticketId").in(ticket_ids).and("enterIdCode").is(idcode))
, KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
for (KylinOrderTicketEntitiesVo entitiesVo : dataList) {
if (entitiesVo.getEnterIdCode().equals(idcode)) {
CheckData vo = CheckData.getNew();
vo.setCheck_status(1);
vo.setCheck_time(entitiesVo.getCheckedAt());
vo.setEnter_idcode(entitiesVo.getEnterIdCode());
vo.setEnter_mobile(entitiesVo.getEnterMobile());
vo.setEnter_name(entitiesVo.getEnterName());
vo.setTicket_id(entitiesVo.getTicketId());
vo.setTicket_name(entitiesVo.getTicketTitle());
vo.setTicket_count(1);
vo.setTicket_entity_id("");
vo.setTicket_use_end(entitiesVo.getUseEnd());
vo.setTicket_use_start(entitiesVo.getUseStart());
vo.setTicket_type(vo.getTicket_use_end().equalsIgnoreCase(vo.getTicket_use_start()) ? 1 : 0);
vo.setSelect_status(false);
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(performance_id);
for (int x = 0; x < performanceData.getTicketTimeList().size(); x++) {
KylinTicketTimesVo timeItem = performanceData.getTicketTimeList().get(x);
for (int y = 0; y < timeItem.getTicketList().size(); y++) {
KylinTicketVo ticketItem = timeItem.getTicketList().get(y);
if (ticketItem.getTicketsId().equals(entitiesVo.getTicketId())) {
vo.setTicket_price(ticketItem.getPrice().toString());
break;
}
}
}
voList.add(vo);
}
}
List<WriteModel<Document>> list = ObjectUtil.getWriteModelDocumentArrayList();
LinkedList<Object[]> paramsList = CollectionUtil.linkedListObjectArr();
voList.forEach(r -> {
paramsList.add(new Object[]{1, "PDA" + "PDA", LocalDateTime.now(), r.getTicket_entity_id(), remarks});
Document updateQuery = Query.query(Criteria.where("performanceId").is(performance_id).and("ticketId").in(ticket_ids).and("enterIdCode").is(idcode)).getQueryObject();
Document updateDoc = new Document("status", 1)
.append("checkClient", "PDA")
.append("updatedAt", check_time)
.append("checkType", "PDA")
.append("checkedAt", check_time)
.append("checkUserId", "PDA");
list.add(new UpdateOneModel<>(updateQuery, new Document("$set", updateDoc)));
});
BulkWriteResult bulkWriteResult = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).bulkWrite(list);
if (bulkWriteResult.getModifiedCount() > 0) {
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SQL_STATION.getKey(),
SqlMapping.get("kylin_order_ticket_entities.update_status_bystation_pad", paramsList));
}else{
return ResponseDto.success();
}
return ResponseDto.success(voList);
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.utils;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.kylin.dto.vo.CheckData;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
......@@ -42,11 +43,17 @@ public class ObjectUtil {
private static final ArrayList<NoticeGoblinMixDetailsVo> noticeGoblinMixDetailsVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinMixDetailsVo> goblinMixDetailsVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinGoodsSkuInfoVo> goblinGoodsSkuInfoVoArrayList = new ArrayList<>();
private static final ArrayList<CheckData> checkData = new ArrayList<>();
public static ArrayList<KylinCandyVo> kylinCandyVos() {
return (ArrayList<KylinCandyVo>) kylinCandyVos.clone();
}
public static ArrayList<CheckData> checkDataArrayList() {
return (ArrayList<CheckData>) checkData.clone();
}
public static ArrayList<KylinStationPerformanceVo> getKylinStationPerformanceVoArrayList() {
return (ArrayList<KylinStationPerformanceVo>) kylinStationPerformanceVoArrayList.clone();
}
......
......@@ -37,4 +37,6 @@ kylin_perform_sub.insert=INSERT INTO kylin_perform_sub (perform_sub_id,performan
kylin_order_express_ex.insert = INSERT INTO kylin_order_express_ex (`order_id`,`express_contacts`,`express_address`,`province`,`city`,`county`,`express_phone`,`created_at`) VALUES (?,?,?,?,?,?,?,?)
kylin_order_express_ex.sendMail = UPDATE kylin_order_express_ex SET mail_no = ? , updated_at = ? where order_id = ?
# ------------------------ ar演出队列 ----------------------------
kylin_ar_ticket.update =update kylin_ticket_active set state=?,redeem_uid= ?,redeem_at= ? where `code`= ?
\ No newline at end of file
kylin_ar_ticket.update =update kylin_ticket_active set state=?,redeem_uid= ?,redeem_at= ? where `code`= ?
kylin_order_ticket_entities.update_status_bystation_pad=UPDATE kylin_order_ticket_entities SET `status`=?,check_client=?,updated_at=?, comment=? WHERE order_ticket_entities_id=?
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