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

Commit ab441242 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents ae820575 44690a2e
......@@ -11,10 +11,12 @@ import java.util.List;
@Data
public class KylinStationCheckOrderParam implements Serializable {
private static final long serialVersionUID = 2312115659117282564L;
@ApiModelProperty(position = 11, value = "演出ID[64]")
private String performanceId;
@ApiModelProperty(position = 13, value = "出票端:(验票app)android/ios")
private String checkClient;
@ApiModelProperty(position = 14, value = "出票`orderTicketEntitiesId`列表")
private List<String> checkedEntitiesIdList;
@ApiModelProperty(position = 10, value = "票明细ID")
private String ticketEntitiesId;
@ApiModelProperty(position = 11, value = "验票类型:1-扫码,2-手机号")
private String checkType;
@ApiModelProperty(position = 12, value = "验票时间[yyyy-MM-dd HH:mm:ss]")
private String checkedAt;
@ApiModelProperty(position = 13, value = "验票操作人ID")
private String checkUserId;
}
......@@ -5,7 +5,7 @@ import lombok.Data;
import java.io.Serializable;
@Data
public class KylinOrderTicketEntitiesVo implements Serializable {
public class KylinOrderTicketEntitiesVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1207664465164005975L;
private String orderTicketEntitiesId;
......@@ -30,4 +30,19 @@ public class KylinOrderTicketEntitiesVo implements Serializable {
private String createdAt;
private String updatedAt;
private String checkType;
private String checkedAt;
private String checkUserId;
private static final KylinOrderTicketEntitiesVo obj = new KylinOrderTicketEntitiesVo();
public static KylinOrderTicketEntitiesVo getNew() {
try {
return (KylinOrderTicketEntitiesVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinOrderTicketEntitiesVo();
}
}
}
package com.liquidnet.service.kylin.dto.vo;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -16,18 +17,28 @@ public class KylinStationCheckOrderVo implements Serializable {
private String performanceId;
@ApiModelProperty(position = 12, value = "订单ID")
private String orderId;
@ApiModelProperty(position = 13, value = "用户昵称")
@ApiModelProperty(position = 13, value = "票种ID")
private String ticketId;
@ApiModelProperty(position = 14, value = "二维身份CODE")
private String qrCode;
@ApiModelProperty(position = 15, value = "订单用户姓名")
private String userName;
@ApiModelProperty(position = 16, value = "订单用户手机号")
private String userMobile;
@ApiModelProperty(position = 17, value = "入场人姓名")
private String enterName;
@ApiModelProperty(position = 14, value = "用户手机号")
@ApiModelProperty(position = 18, value = "入场人手机号")
private String enterMobile;
@ApiModelProperty(position = 15, value = "出票状态:0-未出票,1-已出票")
@ApiModelProperty(position = 19, value = "出票状态:0-未出票,1-已出票")
private Integer status;
@ApiModelProperty(position = 16, value = "支付状态:0-未支付,1-已支付,2-退款中,3-已退款")
@ApiModelProperty(position = 20, value = "支付状态:0-未支付,1-已支付,2-退款中,3-已退款")
private Integer isPayment;
@ApiModelProperty(position = 17, value = "出票端:(验票app)android/ios")
@ApiModelProperty(position = 21, value = "出票端:(验票app)android/ios")
private String checkClient;
@ApiModelProperty(position = 18, value = "二维身份CODE")
private String qrCode;
@ApiModelProperty(position = 22, value = "验票类型:1-扫码,2-手机号")
private String checkType;
@ApiModelProperty(position = 23, value = "验票时间[yyyy-MM-dd HH:mm:ss]")
private String checkedAt;
private static final KylinStationCheckOrderVo obj = new KylinStationCheckOrderVo();
......@@ -38,4 +49,16 @@ public class KylinStationCheckOrderVo implements Serializable {
return new KylinStationCheckOrderVo();
}
}
public String getUserName() {
return SensitizeUtil.chineseName(userName);
}
public String getEnterName() {
return SensitizeUtil.chineseName(enterName);
}
public String getEnterMobile() {
return SensitizeUtil.custom(enterMobile, 3, 4);
}
}
package com.liquidnet.service.kylin.dto.vo.partner;
import com.liquidnet.service.kylin.dto.vo.KylinBuyNoticeVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -57,6 +58,9 @@ public class KylinPerformanceMisVo {
@ApiModelProperty(value = "购票须知")
private String noticeImage;
@ApiModelProperty(value = "购票须知数组")
private List<KylinBuyNoticeVo> noticeImageList;
@ApiModelProperty(value = "状态")
private Integer status;
......
......@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import java.util.List;
/**
* <p>
* 订单详情 服务类
......@@ -14,5 +16,5 @@ import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
*/
public interface IKylinOrderTicketEntitiesService extends IService<KylinOrderTicketEntities> {
void updateByStation(KylinStationCheckOrderParam checkDataParam);
void updateByStation(List<KylinStationCheckOrderParam> checkOrderParamList);
}
package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
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.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.KylinBuyNoticeVo;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketVo;
......@@ -279,7 +282,7 @@ public class PerformanceVoUtils {
// performanceMisVo.setIsShow(1);
kylinPerformanceMisVo.setIsDistribution(0);
kylinPerformanceMisVo.setSyncAgent(0);
kylinPerformanceMisVo.setAuditStatus(0);
kylinPerformanceMisVo.setNoticeImageList(JsonUtils.fromJson(kylinPerformanceMisVo.getNoticeImage(), new TypeReference<List<KylinBuyNoticeVo>>() {}));
// }
// boolean exists = mongoTemplate.exists(Query.query(Criteria.where("performancesId").is(performancesId)), PerformanceMisVo.class, PerformanceMisVo.class.getSimpleName());
......
......@@ -74,13 +74,16 @@ zuul:
# 忽略的接口,屏蔽接口
# ignored-patterns: /**/div/**
# -----------------------------------------------------------
# 判断顺序: exclude.url > include.url > include.url-pattern > exclude.url-pattern
global:
include:
url:
url-pattern: /kylin/station/**
exclude:
url: /adam/send,
/adam/member/info
/adam/member/info,
/kylin/station/login,
/kylin/station/login/sms
url-pattern: /**/login/**,
/*/v2/api-docs*,
/kylin/**
......
......@@ -243,17 +243,21 @@ public class KylinStationController {
for (KylinOrderTicketVo t : orderTicketVoList)
for (KylinStationCheckOrderVo r : voList)
if (r.getOrderId().equals(t.getOrderTicketsId())) r.setQrCode(t.getQrCode());
if (r.getOrderId().equals(t.getOrderTicketsId())) {
r.setQrCode(t.getQrCode());
r.setUserMobile(t.getUserMobile());
r.setUserName(t.getUserName());
}
return ResponseDto.success(voList);
}
@ApiOperation(value = "上载验票数据")
@PostMapping("upload")
public ResponseDto<Object> uploadTicketData(@RequestBody KylinStationCheckOrderParam checkDataParam) {
log.info("checkDataParams:{}", JsonUtils.toJson(checkDataParam));
public ResponseDto<Object> uploadTicketData(@RequestBody List<KylinStationCheckOrderParam> checkOrderParamList) {
log.info("checkDataParams:{}", JsonUtils.toJson(checkOrderParamList));
kylinOrderTicketEntitiesService.updateByStation(checkDataParam);
kylinOrderTicketEntitiesService.updateByStation(checkOrderParamList);
return ResponseDto.success();
}
......
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.mq.constant.MQConst;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dto.param.KylinStationCheckOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketEntitiesMapper;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject;
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.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
......@@ -21,7 +24,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
......@@ -33,6 +36,7 @@ import java.util.List;
* @author liquidnet
* @since 2021-05-20
*/
@Slf4j
@Service
public class KylinOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderTicketEntitiesMapper, KylinOrderTicketEntities> implements IKylinOrderTicketEntitiesService {
@Autowired
......@@ -44,29 +48,38 @@ public class KylinOrderTicketEntitiesServiceImpl extends ServiceImpl<KylinOrderT
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void updateByStation(KylinStationCheckOrderParam checkDataParam) {
String performanceId = checkDataParam.getPerformanceId();
KylinOrderTicketEntitiesVo updateVo = new KylinOrderTicketEntitiesVo();
updateVo.setCheckClient(checkDataParam.getCheckClient());
updateVo.setUpdatedAt(DateUtil.getNowTime());
updateVo.setStatus(1);// 1-已出票
List<String> checkedEntitiesIdList = checkDataParam.getCheckedEntitiesIdList();
mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("performanceId").is(performanceId)
.and("orderTicketEntitiesId").in(checkedEntitiesIdList.toArray())
.and("status").is(0)
).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(updateVo))
);
public void updateByStation(List<KylinStationCheckOrderParam> checkOrderParamList) {
// // 根据验票用户ID分组
// Map<String, List<KylinStationCheckOrderParam>> checkOrderByUserIdMap = checkOrderParamList.stream().collect(Collectors.groupingBy(KylinStationCheckOrderParam::getCheckUserId));
//
// for (Map.Entry<String, List<KylinStationCheckOrderParam>> entry : checkOrderByUserIdMap.entrySet()) {
// List<KylinStationCheckOrderParam> checkOrderByUserList = entry.getValue();
//
// // 根据验票类型分组
// Map<String, List<KylinStationCheckOrderParam>> checkOrderByCheckTypeMap = checkOrderByUserList.stream().collect(Collectors.groupingBy(KylinStationCheckOrderParam::getCheckType));
// }
LocalDateTime nowDt = LocalDateTime.now();
String nowDtStr = DateUtil.format(nowDt, DateUtil.Formatter.yyyyMMddHHmmss);
LinkedList<Object[]> paramsList = new LinkedList<>();
for (String id : checkedEntitiesIdList) {
paramsList.add(new Object[]{1, nowDt, id});
}
List<WriteModel<Document>> list = new ArrayList<>();
checkOrderParamList.forEach(r -> {
KylinOrderTicketEntitiesVo updateVo = KylinOrderTicketEntitiesVo.getNew();
updateVo.setCheckType(r.getCheckType());
updateVo.setCheckedAt(r.getCheckedAt());
updateVo.setCheckUserId(r.getCheckUserId());
updateVo.setUpdatedAt(nowDtStr);
updateVo.setStatus(1);
paramsList.add(new Object[]{1, nowDtStr, r.getCheckedAt(), r.getCheckType(), r.getCheckUserId(), r.getTicketEntitiesId()});
Document updateQuery = Query.query(Criteria.where("orderTicketEntitiesId").is(r.getTicketEntitiesId())).getQueryObject();
list.add(new UpdateOneModel<Document>(updateQuery, new Document("$set", Document.parse(JsonUtils.toJson(updateVo)))));
});
BulkWriteResult bulkWriteResult = mongoTemplate.getCollection(KylinOrderTicketEntitiesVo.class.getSimpleName()).bulkWrite(list);
log.info("bulkWriteResult:{}", JsonUtils.toJson(bulkWriteResult));
// TODO: 2021/6/1 sql to mq
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_user.add", paramsList));
// SqlMapping.get("kylin_order_ticket_entities.updateStatusByStation", paramsList));
}
}
kylin_order_ticket_entities.add=INSERT INTO kylin_order_ticket_entities(order_ticket_entities_id ,order_id ,ticket_id ,user_id ,time_id ,performance_id ,enter_type ,enter_name ,enter_mobile,enter_id_code,status,sys_damai,check_client,is_payment,comment,created_at,updated_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_payment = ?,updated_at = ? WHERE order_tickets_id = ?
kylin_order_ticket_entities.updateStatusByStation=UPDATE kylin_order_ticket_status SET `status`=?, updated_at=? WHERE order_ticket_entities_id =?
\ No newline at end of file
kylin_order_ticket_entities.updateStatusByStation=UPDATE kylin_order_ticket_status SET `status`=?, updated_at=?, checked_at=?, check_type=?, checkUserId=? WHERE order_ticket_entities_id =?
\ No newline at end of file
......@@ -86,11 +86,6 @@ public class GlobalAuthFilter extends ZuulFilter {
if (excludeUrls.contains(requestURI)) {
return false;
}
for (String urlPattern : excludeUrlPatterns) {
if (PathMatchUtil.isPathMatch(urlPattern, requestURI)) {
return false;
}
}
if (includeUrls.contains(requestURI)) {
return true;
}
......@@ -99,6 +94,11 @@ public class GlobalAuthFilter extends ZuulFilter {
return true;
}
}
for (String urlPattern : excludeUrlPatterns) {
if (PathMatchUtil.isPathMatch(urlPattern, requestURI)) {
return false;
}
}
return true;
}
......
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