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

Commit 6c5cde37 authored by jiangxiulong's avatar jiangxiulong

kylin 增加演出预约相关接口

parent 1aaf78e3
......@@ -82,4 +82,5 @@ public class KylinRedisConst {
public static final String KYLIN_EXPRESS_MODULES = "kylin:express:modules";
public static final String REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE = "kylin:performSubscribe:uid:";
}
package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
import com.liquidnet.service.kylin.entity.KylinPerformances;
import java.util.List;
/**
* <p>
......@@ -19,9 +14,14 @@ public interface IKylinPerformancesService {
/**
* 根据 券适用范围查询演出id
*
* @param useScope
* @param busiId
* @return
*/
ResponseDto<String> getPerformanceIdByInfo(Integer useScope,String busiId);
ResponseDto<String> getPerformanceIdByInfo(Integer useScope, String busiId);
ResponseDto<String> subscribe(String performancesId, Integer sourceType);
ResponseDto<Integer> isSubscribe(String performancesId);
}
drop TABLE if exists `kylin_perform_sub`;
CREATE TABLE `kylin_perform_sub`
(
`mid` int(11) NOT NULL AUTO_INCREMENT,
`perform_sub_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'perform_sub_id',
`performance_id` varchar(255) NOT NULL DEFAULT '' COMMENT '演出id',
`user_id` varchar(255) NOT NULL DEFAULT '' COMMENT '用户id',
`user_name` varchar(255) NOT NULL DEFAULT '' COMMENT '用户昵称',
`user_mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '用户手机号',
`source_type` tinyint NOT NULL DEFAULT 0 COMMENT '来源 1小程序 2h5',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `idx_perform_sub_id` (`perform_sub_id`),
KEY `idx_perform_sub_performance_id` (`performance_id`),
KEY `idx_perform_sub_user_id` (`user_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COMMENT '演出预约表';
\ No newline at end of file
......@@ -261,4 +261,26 @@ public class KylinPerformancesController {
public ResponseDto<String> addLackRegister(@RequestParam("useScope") Integer useScope, @RequestParam("busiId") String busiId) {
return iKylinPerformancesService.getPerformanceIdByInfo(useScope, busiId);
}
@PostMapping("subscribe")
@ApiOperation("演出预约")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出id", required = true),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "sourceType", value = "来源 1小程序 2h5", required = true)
})
public ResponseDto<String> subscribe(
@RequestParam() String performancesId,
@RequestParam() Integer sourceType
) {
return iKylinPerformancesService.subscribe(performancesId, sourceType);
}
@GetMapping("isSubscribe")
@ApiOperation("是否预约演出")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "performancesId", value = "演出id", required = true)
})
public ResponseDto<Integer> isSubscribe(@RequestParam() String performancesId) {
return iKylinPerformancesService.isSubscribe(performancesId);
}
}
package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.commons.lang.CommonConst;
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.DistanceUtil;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.PerformanceMemberAuditParam;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.ExpressModuleVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketExpressModuleVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo;
import com.liquidnet.service.kylin.service.IKylinPerformancesService;
import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.ObjectUtil;
import com.liquidnet.service.kylin.utils.QueueUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
......@@ -685,4 +681,34 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
return ResponseDto.failure();
}
}
@Override
public ResponseDto<String> subscribe(String performancesId, Integer sourceType) {
try {
Map claims = CurrentUtil.getTokenClaims();
String uid = StringUtils.defaultString(((String) claims.get(CurrentUtil.TOKEN_SUB)), "");
String nickname = StringUtils.defaultString(((String) claims.get(CurrentUtil.TOKEN_NICKNAME)), "");
String mobile = StringUtils.defaultString(((String) claims.get(CurrentUtil.TOKEN_MOBILE)), "");
queueUtils.sendMsgByRedis(
MQConst.KylinQueue.SQL_PERFORMANCE_LACK.getKey(),
SqlMapping.get(
"kylin_perform_sub.insert",
new Object[]{
IDGenerator.nextSnowId(), performancesId, uid, nickname, mobile, sourceType
}
));
dataUtils.setSubscribe(uid, performancesId);
return ResponseDto.success("预约成功");
} catch (Exception e) {
log.error("演出预约 [performancesId:{}, uid:{}, e:{}]", performancesId, CurrentUtil.getCurrentUid(), e);
return ResponseDto.success("预约失败");
}
}
@Override
public ResponseDto<Integer> isSubscribe(String performancesId) {
String uid = CurrentUtil.getCurrentUid();
Integer subscribe = dataUtils.getSubscribe(uid, performancesId);
return ResponseDto.success(subscribe);
}
}
......@@ -3,8 +3,6 @@ package com.liquidnet.service.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IPUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
......@@ -32,7 +30,6 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Component
......@@ -871,4 +868,24 @@ public class DataUtils {
return (int) obj;
}
}
public void setSubscribe(String uid, String performancesId) {
String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE
.concat(uid)
.concat(":")
.concat(performancesId);
redisUtil.set(redisKey, 1);
}
public Integer getSubscribe(String uid, String performancesId) {
String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE
.concat(uid)
.concat(":")
.concat(performancesId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return 0;
} else {
return (Integer) obj;
}
}
}
......@@ -31,3 +31,5 @@ kylin_order_ticket_status.transfer.update=UPDATE kylin_order_ticket_status SET t
kylin_order_ticket_relation.transfer.update=UPDATE kylin_order_ticket_relations SET transfer_uid = ?, transfer_id = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ------------------------ 订单补充入场人 ----------------------------
kylin_order_refund_entities.supplementEnter=UPDATE kylin_order_ticket_entities SET enter_type = ?,enter_name = ?,enter_mobile = ?,enter_id_code = ?,updated_at = ? WHERE order_ticket_entities_id = ?
# ------------------------ 演出预约 ----------------------------
kylin_perform_sub.insert=INSERT INTO kylin_perform_sub (perform_sub_id,performance_id,user_id,user_name,user_mobile,source_type) VALUES (?,?,?,?,?,?)
......@@ -19,5 +19,7 @@ CREATE TABLE `sweet_applet_sub_msg`
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '小程序订阅消息记录表';
alter table sweet_applet_sub_msg add union_id varchar(255) NOT NULL DEFAULT '' COMMENT 'union_id' after open_id;
ALTER TABLE sweet_applet_sub_msg MODIFY activity_type smallint NOT NULL DEFAULT 0 COMMENT '活动类型';
\ No newline at end of file
alter table sweet_applet_sub_msg
add union_id varchar(255) NOT NULL DEFAULT '' COMMENT 'union_id' after open_id;
ALTER TABLE sweet_applet_sub_msg
MODIFY activity_type smallint NOT NULL DEFAULT 0 COMMENT '活动类型';
\ No newline at end of file
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