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

Commit 6b13188a authored by 张国柄's avatar 张国柄

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

parents 473f9a87 d3da01bd
......@@ -64,6 +64,7 @@ public class KylinTableStatusConst {
public static final Integer ENTITIES_IS_PAYMENT1 = 1; // 已支付
public static final Integer ENTITIES_IS_PAYMENT2 = 2; // 退款中
public static final Integer ENTITIES_IS_PAYMENT3 = 3; // 已退款
public static final Integer ENTITIES_IS_PAYMENT4 = 4; // 部分退款
// 出票状态
public static final Integer ENTITIES_STATUS0 = 0; // 未出票
public static final Integer ENTITIES_STATUS1 = 1; // 已出票
......
......@@ -26,7 +26,7 @@ public class RefundApplyParam implements Serializable {
private Double RefundPriceExpress;
private List<String> ticketEntityIds;
private List<BigDecimal> entitiesPrice;
private List<Double> entitiesPrice;
private List<String> ids;
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.dto.vo.mongo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
......@@ -36,6 +37,8 @@ public class KylinOrderTicketEntitiesVo implements Serializable, Cloneable {
private Integer ticketsmId;
private Integer timemId;
private BigDecimal refundPrice;
private String checkType;
private String checkedAt;
private String checkUserId;
......
......@@ -98,9 +98,6 @@ public class KylinOrderRefundsVo implements Serializable {
private String refundType;
private Integer refundCate;
@ApiModelProperty(value = "订单入场人/搭售款式表 id 多个 ,分割")
private String orderTicketEntitiesIds;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createdAt;
......
package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.entity.KylinOrderRefundEntities;
/**
* <p>
* 订单退款入场人表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-06-16
*/
public interface IKylinOrderRefundsEntitiesService extends IService<KylinOrderRefundEntities> {
}
......@@ -5,6 +5,8 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.*;
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;
......@@ -18,6 +20,8 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Component
......@@ -215,4 +219,131 @@ public class DataUtils {
System.out.println("创建Vo异常");
}
}
/**
* 获取巡演列表redis
*/
public List<KylinPerformanceVo> getRoadList(String roadShowId) {
String redisKey = KylinRedisConst.PERFORMANCES_ROADLIST.concat(roadShowId);
if (!redisUtil.hasKey(redisKey)) {
List<KylinPerformanceVo> roadList = mongoTemplate.find(
Query.query(Criteria.where("roadShowId").is(roadShowId)),
KylinPerformanceVo.class,
KylinPerformanceVo.class.getSimpleName()
);
redisUtil.set(redisKey, roadList);
}
return (List<KylinPerformanceVo>) redisUtil.get(redisKey);
}
/**
* 根据演出id 获取 演出vo 详情
*
* @param performanceId
* @return
*/
public KylinPerformanceVo getPerformanceVo(String performanceId) {
if (redisUtil.hasKey(KylinRedisConst.PERFORMANCES + performanceId)) {
} else {
KylinPerformanceVo performanceData = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
List<KylinPerformanceVo> roadList = new ArrayList();
if (Integer.parseInt(performanceData.getRoadShowId()) > 0) {
roadList = getRoadList(performanceData.getRoadShowId());
}
redisUtil.set(KylinRedisConst.PERFORMANCES + performanceId, performanceData);
performanceData.setRoadList(roadList); // 不一起存到演出详情
}
return (KylinPerformanceVo) redisUtil.get(KylinRedisConst.PERFORMANCES + performanceId);
}
/**
* @param performanceId 演出id
* @param ticketId 票种id
* @param buyCount 购买数量 大于 0 增加 小于 0 减少 对应 支付 退款表
*/
public void changeBuyInfo(String userId, String idCard, String performanceId, String ticketId, int buyCount) {
String redisKey;
KylinPerformanceVo vo = getPerformanceVo(performanceId);
int isTrueName = vo.getIsTrueName();
int ticketType = 0;
String useTime = "";
HashMap<String, ArrayList<String>> allTicketId = new HashMap<>();
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
KylinTicketTimesVo timeItem = vo.getTicketTimeList().get(x);
ArrayList<String> ticketList = new ArrayList<>();
for (int y = 0; y < timeItem.getTicketList().size(); y++) {
KylinTicketVo ticketItem = timeItem.getTicketList().get(y);
if (ticketItem.getType() == 1) {
ticketList.add(ticketItem.getTicketsId());
}
if (ticketItem.getTicketsId().equals(ticketId)) {
useTime = ticketItem.getUseStart();
ticketType = ticketItem.getType();
}
}
allTicketId.put(timeItem.getUseStart(), ticketList);
}
if (0 == isTrueName) {
redisKey = KylinRedisConst.USERID_BUY_INFO + userId;
} else {
redisKey = KylinRedisConst.IDCARD_BUY_INFO + idCard;
}
String performanceIdKey = redisKey + ":" + KylinRedisConst.PERFORMANCE_ID + ":" + performanceId;
String ticketIdKey = redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId;
String ticketUseTimeKey = ticketIdKey + ":" + KylinRedisConst.USE_TIME;
redisUtil.set(ticketUseTimeKey, useTime);
if (buyCount > 0) {
redisUtil.incr(ticketIdKey, buyCount);
if (1 == ticketType) {
int count = 0;
for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
String item = allTicketId.get(useTime).get(i);
if (allTicketId.get(useTime).size() == 1) {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
}
if (i == 0) {
count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
}
}
} else {
redisUtil.incr(performanceIdKey, buyCount);
}
} else {
redisUtil.decr(ticketIdKey, Math.abs(buyCount));
if (1 == ticketType) {
int count = 0;
for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
String item = allTicketId.get(useTime).get(i);
if (allTicketId.get(useTime).size() == 1) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
}
if (i == 0) {
count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
}
}
} else {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
}
}
}
}
......@@ -29,6 +29,8 @@ public class KylinOrderTicketEntitiesDao {
private String useEnd;
private BigDecimal canRefundedPrice;
/**
* 订单
*/
......
......@@ -60,8 +60,6 @@ public class OrderRefundDao implements Serializable {
private String refundType;
private String refundCate;
private String orderTicketEntitiesIds;
private String createdAt;
private String updatedAt;
......
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 订单退款入场人表
* </p>
*
* @author jiangxiulong
* @since 2021-06-16
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinOrderRefundEntities implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
private String orderRefundsEntitiesId;
private String orderRefundsId;
private String orderTicketEntitiesId;
private BigDecimal refundPrice;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
......@@ -69,6 +69,7 @@ public class KylinOrderRefunds implements Serializable {
* 退款总金额
*/
private BigDecimal price;
private BigDecimal priceExpress;
/**
* 退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败
......@@ -146,11 +147,6 @@ public class KylinOrderRefunds implements Serializable {
private String refundType;
private Integer refundCate;
/**
* 订单入场人/搭售款式表 id 多个 ,分割
*/
private String orderTicketEntitiesIds;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
......
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.entity.KylinOrderRefundEntities;
/**
* <p>
* 订单退款入场人表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-06-16
*/
public interface KylinOrderRefundsEntitiesMapper extends BaseMapper<KylinOrderRefundEntities> {
}
......@@ -29,4 +29,14 @@ public interface KylinOrderRefundsMapper extends BaseMapper<KylinOrderRefunds> {
List<OrderRefundDao> misRefundList(Map<String,Object> map);
int selectRefundingCount(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel,
@Param("ticketEntityIds") List<String> ticketEntityIds
);
double RefundPriceExpressSum(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel
);
}
......@@ -18,7 +18,19 @@ import java.util.List;
*/
public interface KylinOrderTicketEntitiesMapper extends BaseMapper<KylinOrderTicketEntities> {
List<KylinOrderRefundsEntitiesDao> selectEntitiesList(@Param("orderTicketEntitiesIdS") String[] orderTicketEntitiesIdS);
List<KylinOrderRefundsEntitiesDao> selectEntitiesList(@Param("orderTicketEntitiesIdS") List<String> orderTicketEntitiesIdS);
List<KylinOrderTicketEntitiesDao> getRefundEntitiesList(String orderTicketsId);
Double getRefundEntitiesPrice(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatusCancel") Integer orderRefundStatusCancel,
@Param("orderTicketEntitiesId") String orderTicketEntitiesId
);
Double getRefundOverEntitiesPrice(
@Param("orderTicketsId") String orderTicketsId,
@Param("orderRefundStatus") Integer orderRefundStatus,
@Param("entitiesId") String entitiesId
);
}
......@@ -48,4 +48,25 @@
</if>
</where>
</select>
<select id="selectRefundingCount" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM kylin_order_refunds AS a
JOIN kylin_order_refund_entities AS b ON a.order_refunds_id = b.order_refunds_id
<where>
AND a.order_tickets_id = #{orderTicketsId}
AND a.status != ${orderRefundStatusCancel}
AND b.order_ticket_entities_id IN
<foreach collection="ticketEntityIds" item="entityIds" index="index" open="(" close=")" separator=",">
${entityIds}
</foreach>
</where>
</select>
<select id="RefundPriceExpressSum" resultType="java.lang.Double">
SELECT SUM(price_express)
FROM kylin_order_refunds
<where>
AND order_tickets_id = #{orderTicketsId}
AND status != ${orderRefundStatusCancel}
</where>
</select>
</mapper>
......@@ -22,6 +22,27 @@
JOIN kylin_order_tickets AS c ON c.order_tickets_id = a.order_id
<where>
a.order_id = #{orderTicketsId}
AND a.is_payment != 0
</where>
</select>
<select id="getRefundEntitiesPrice" resultType="java.lang.Double">
SELECT SUM(b.refund_price)
FROM kylin_order_refunds AS a
JOIN kylin_order_refund_entities AS b ON a.order_refunds_id = b.order_refunds_id
<where>
AND a.order_tickets_id = #{orderTicketsId}
AND a.status != ${orderRefundStatusCancel}
AND b.order_ticket_entities_id = #{orderTicketEntitiesId}
</where>
</select>
<select id="getRefundOverEntitiesPrice" resultType="java.lang.Double">
SELECT SUM(b.refund_price)
FROM kylin_order_refunds AS a
JOIN kylin_order_refund_entities AS b ON a.order_refunds_id = b.order_refunds_id
<where>
AND a.order_tickets_id = #{orderTicketsId}
AND a.status = ${orderRefundStatus}
AND b.order_ticket_entities_id = #{orderTicketEntitiesId}
</where>
</select>
</mapper>
......@@ -507,7 +507,8 @@ CREATE TABLE `kylin_order_ticket_entities`
`status` int(11) NOT NULL DEFAULT 0 COMMENT '出票状态: 0未出票 1已出票',
`sys_damai` int(11) NOT NULL DEFAULT 0 COMMENT '大麦同步状态: 0不同步 1待同步 2同步完成 3同步失败',
`check_client` varchar(255) NOT NULL DEFAULT '' COMMENT '出票端 例如 pda 验票app android/ios 大麦出票',
`is_payment` int(11) NOT NULL DEFAULT 0 COMMENT '支付状态: 0未支付 1已支付 2退款中 3已退款 ',
`is_payment` int(11) NOT NULL DEFAULT 0 COMMENT '支付状态: 0未支付 1已支付 2退款中 3已退款 4部分退款',
`refund_price` decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '已退款金额',
`comment` varchar(255) NULL DEFAULT '' COMMENT 'comment',
`created_at` datetime(3) NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime(3) NULL DEFAULT NULL COMMENT '修改时间',
......@@ -658,9 +659,10 @@ CREATE TABLE `kylin_order_refunds`
`refund_at` timestamp NULL DEFAULT NULL COMMENT '成功退款时间',
`refund_id` varchar(50) NOT NULL DEFAULT '' COMMENT '第三方退款编号',
`refund_error` varchar(100) NOT NULL DEFAULT '' COMMENT '退款失败原因',
`price` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '退款总金额',
`price` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '退款票总金额',
`price_express` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '退款快递费',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '退款状态: 0请求退款 2取消退款 1审核通过 5驳回退款 7等待退款 3正在退款 4完成退款 6退款失败',
`type` tinyint NOT NULL DEFAULT '0' COMMENT '退款差异: 0申请退款返还库存 1自动退款无法取消退款不返还库存',
`type` tinyint NOT NULL DEFAULT '0' COMMENT '退款差异: 0客服或票务申请 1超时自动退款不占库存',
`applicant_id` varchar(255) NOT NULL DEFAULT '' COMMENT '申请人id',
`applicant_name` varchar(100) NOT NULL DEFAULT '' COMMENT '申请人名称',
`applicant_at` timestamp NULL DEFAULT NULL COMMENT '申请时间',
......@@ -675,7 +677,6 @@ CREATE TABLE `kylin_order_refunds`
`refuse` varchar(200) NOT NULL DEFAULT '' COMMENT '回绝原因',
`refund_type` varchar(200) NOT NULL DEFAULT '' COMMENT '退款方式',
`refund_cate` tinyint NOT NULL DEFAULT '0' COMMENT '1票务2快递费3票和快递费',
`order_ticket_entities_ids` text COMMENT '订单入场人/搭售款式表 id 多个 ,分割',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`mid`),
......@@ -685,4 +686,20 @@ CREATE TABLE `kylin_order_refunds`
KEY `kylin_order_refunds_order_refunds_id_index` (`order_refunds_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT ='订单退款表'
COLLATE = utf8mb4_unicode_ci COMMENT ='订单退款表';
drop TABLE if exists `kylin_order_refund_entities`;
CREATE TABLE `kylin_order_refund_entities`
(
`mid` int unsigned NOT NULL AUTO_INCREMENT,
`order_refunds_entities_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_refunds_entities_id',
`order_refunds_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_refunds_id',
`order_ticket_entities_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_ticket_entities_id',
`refund_price` decimal(11, 2) NOT NULL DEFAULT '0.00' COMMENT '退款金额',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
KEY `kylin_order_refunds_entities_id_index` (`order_refunds_entities_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT '退款入场人表';
......@@ -3,11 +3,13 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.service.impl.OrderRefundsCallbackServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
......@@ -21,12 +23,29 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "前端-退款回调")
@RestController
@RequestMapping("refund")
@Validated
public class OrderRefundCallbackController {
@Autowired
private OrderRefundsCallbackServiceImpl orderRefundsCallbackServiceImpl;
@PostMapping("apply")
@ApiOperation("超时退款")
@ApiImplicitParams({
@ApiImplicitParam(type = "body", dataType = "String", name = "orderTicketsId", value = "订单ID", required = true),
})
public Boolean refundApply(@RequestParam() String orderTicketsId) {
try {
Boolean res = orderRefundsCallbackServiceImpl.refundApply(orderTicketsId);
if (res) {
return true;
} else {
return false;
}
} catch (Exception e) {
return false;
}
}
@PostMapping("callback")
@ApiOperation("退款回调")
public String refundCallback(RefundCallbackParam refundCallbackParam) {
......
......@@ -314,11 +314,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets.setPriceTotal(ticketData.getPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0")));
}
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
/*if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
orderTickets.setPriceActual(new BigDecimal("0.01"));
} else {
} else {*/
orderTickets.setPriceActual(orderTickets.getPriceTotal());
}
// }
orderTickets.setPriceVoucher(new BigDecimal("0.0"));
orderTickets.setPriceExpress(ticketData.getPriceExpress());
......@@ -466,11 +466,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<String, String>();
httpData.add("type", "TICKET");
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
/*if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
httpData.add("price", "0.01");
} else {
} else {*/
httpData.add("price", orderTickets.getPriceActual().toString());
}
// }
httpData.add("name", useTime + ticketData.getTitle() + "-" + performanceData.getTitle());
httpData.add("detail", performanceData.getTitle() + "-" + ticketData.getTitle() + "-" + useTime);
httpData.add("order_code", orderTickets.getOrderCode());
......
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.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.entity.KylinOrderRefunds;
import com.liquidnet.service.kylin.mapper.KylinOrderRefundsMapper;
import com.liquidnet.service.kylin.entity.KylinOrderTicketEntities;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderRefundsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 订单退款表 服务实现类 处理逻辑判断
......@@ -29,6 +40,15 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
@Autowired
private KylinOrderRefundsMapper kylinOrderRefundsMapper;
@Autowired
private KylinOrderTicketsMapper kylinOrderTicketsMapper;
@Autowired
private KylinOrderTicketStatusMapper kylinOrderTicketStatusMapper;
@Autowired
private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper;
@Autowired
MongoTemplate mongoTemplate;
......@@ -67,6 +87,7 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
kylinOrderRefunds.setRefundId(refundCallbackParam.getRefund_id());
kylinOrderRefunds.setRefundAt(refundCallbackParam.getRefund_at());
kylinOrderRefunds.setRefundError(refundCallbackParam.getRefund_error());
kylinOrderRefunds.setUpdatedAt(LocalDateTime.now());
kylinOrderRefundsMapper.update(
kylinOrderRefunds,
......@@ -76,4 +97,35 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
return "success";
}
public Boolean refundApply(String orderTicketsId) {
KylinOrderTickets orderInfo = kylinOrderTicketsMapper.selectOne(
new QueryWrapper<KylinOrderTickets>().eq("order_tickets_id", orderTicketsId)
);
// 查询订单入场人
List<KylinOrderTicketEntities> EntitiesList = kylinOrderTicketEntitiesMapper.selectList(
new QueryWrapper<KylinOrderTicketEntities>()
.eq("order_id", orderTicketsId)
.eq("is_payment", KylinTableStatusConst.ENTITIES_IS_PAYMENT1)
);
List<String> ticketEntityIds = EntitiesList.stream().map(KylinOrderTicketEntities -> KylinOrderTicketEntities.getOrderTicketEntitiesId()).collect(Collectors.toList());
// 该订单正在退款或已有退款
int refundingCount = kylinOrderRefundsMapper.selectRefundingCount(
orderTicketsId,
KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL,
ticketEntityIds
);
if (refundingCount > 0) {
return false;
}
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding(
orderInfo, orderTicketsId, ticketEntityIds
);
if (res) {
return true;
} else {
return false;
}
}
}
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