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

Commit b2cb9a57 authored by anjiabin's avatar anjiabin
parents 025eb45b 36042a8a
...@@ -33,4 +33,6 @@ public class RefundApplyParam implements Serializable { ...@@ -33,4 +33,6 @@ public class RefundApplyParam implements Serializable {
private String refuse; private String refuse;
private String type;
} }
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "KylinStationCheckRefreshVo", description = "下载刷新验票信息响应参数")
@Data
public class KylinStationCheckRefreshVo implements Serializable, Cloneable {
private static final long serialVersionUID = -7313121561515036798L;
private KylinStationPerformanceVo performanceVo;
private List<KylinStationCheckOrderVo> checkOrderVos;
private static final KylinStationCheckRefreshVo obj = new KylinStationCheckRefreshVo();
public static KylinStationCheckRefreshVo getNew() {
try {
return (KylinStationCheckRefreshVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinStationCheckRefreshVo();
}
}
}
...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@ApiModel(value = "KylinStationPerformanceVo", description = "演出列表响应参数") @ApiModel(value = "KylinStationPerformanceVo", description = "演出列表响应参数")
...@@ -29,6 +30,14 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable { ...@@ -29,6 +30,14 @@ public class KylinStationPerformanceVo implements Serializable, Cloneable {
private List<KylinStationTicketVo> ticketVoList; private List<KylinStationTicketVo> ticketVoList;
@ApiModelProperty(position = 18, value = "可下载时间") @ApiModelProperty(position = 18, value = "可下载时间")
private String canDownTime; private String canDownTime;
@ApiModelProperty(position = 20, value = "票房")
private BigDecimal priceSum;
@ApiModelProperty(position = 21, value = "票量[9]")
private Integer number;
@ApiModelProperty(position = 22, value = "已验票量[9]")
private Integer checkedNum;
@ApiModelProperty(position = 23, value = "余量[9]")
private Integer remainderNum;
private static final KylinStationPerformanceVo obj = new KylinStationPerformanceVo(); private static final KylinStationPerformanceVo obj = new KylinStationPerformanceVo();
......
...@@ -6,6 +6,7 @@ import com.liquidnet.client.admin.common.core.domain.AjaxResult; ...@@ -6,6 +6,7 @@ import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinOrderRefundsServiceImpl; import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinOrderRefundsServiceImpl;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinOrderTicketsAdminServiceImpl; import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinOrderTicketsAdminServiceImpl;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderRefundDao; import com.liquidnet.service.kylin.dao.OrderRefundDao;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam; import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
...@@ -19,8 +20,6 @@ import org.springframework.stereotype.Controller; ...@@ -19,8 +20,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.websocket.server.PathParam;
/** /**
* <p> * <p>
* 后台单订单退款 服务实现类 * 后台单订单退款 服务实现类
...@@ -88,11 +87,11 @@ public class KylinOrderRefundAdminController extends BaseController { ...@@ -88,11 +87,11 @@ public class KylinOrderRefundAdminController extends BaseController {
@ResponseBody @ResponseBody
public AjaxResult refundApply(RefundApplyParam refundApplyParam) { public AjaxResult refundApply(RefundApplyParam refundApplyParam) {
try { try {
Boolean res = kylinOrderRefundsServiceImpl.refundApply(refundApplyParam); ResponseDto res = kylinOrderRefundsServiceImpl.refundApply(refundApplyParam);
if (res) { if (res.isSuccess()) {
return success(); return success();
} else { } else {
return error("申请退款失败"); return error(res.getMessage());
} }
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
...@@ -104,11 +103,12 @@ public class KylinOrderRefundAdminController extends BaseController { ...@@ -104,11 +103,12 @@ public class KylinOrderRefundAdminController extends BaseController {
@ResponseBody @ResponseBody
public AjaxResult refundCancel(RefundApplyParam refundApplyParam) { public AjaxResult refundCancel(RefundApplyParam refundApplyParam) {
try { try {
Boolean res = kylinOrderRefundsServiceImpl.refundCancel(refundApplyParam); refundApplyParam.setType("cancel");
if (res) { ResponseDto res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
if (res.isSuccess()) {
return success(); return success();
} else { } else {
return error("取消退款失败"); return error(res.getMessage());
} }
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
...@@ -120,12 +120,12 @@ public class KylinOrderRefundAdminController extends BaseController { ...@@ -120,12 +120,12 @@ public class KylinOrderRefundAdminController extends BaseController {
@ResponseBody @ResponseBody
public AjaxResult refundReapply(RefundApplyParam refundApplyParam) { public AjaxResult refundReapply(RefundApplyParam refundApplyParam) {
try { try {
Boolean res = kylinOrderRefundsServiceImpl.refundReapply(refundApplyParam); refundApplyParam.setType("reapply");
if (res) { ResponseDto res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
if (res.isSuccess()) {
return success(); return success();
} else { } else {
// 不是重新发起退款,而是重新发起退款审核 return error(res.getMessage());
return error("再次发起退款审核失败");
} }
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
...@@ -138,18 +138,20 @@ public class KylinOrderRefundAdminController extends BaseController { ...@@ -138,18 +138,20 @@ public class KylinOrderRefundAdminController extends BaseController {
@ResponseBody @ResponseBody
public AjaxResult refundReview(RefundApplyParam refundApplyParam) { public AjaxResult refundReview(RefundApplyParam refundApplyParam) {
try { try {
Boolean res = false; ResponseDto res = null;
Integer status = refundApplyParam.getStatus(); Integer status = refundApplyParam.getStatus();
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED) { // 通过 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED) { // 通过
res = kylinOrderRefundsServiceImpl.refundApproved(refundApplyParam); refundApplyParam.setType("approved");
res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
} }
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT) { // 驳回 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT) { // 驳回
res = kylinOrderRefundsServiceImpl.refundReject(refundApplyParam); refundApplyParam.setType("reject");
res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
} }
if (res) { if (res.isSuccess()) {
return success(); return success();
} else { } else {
return error("审核退款失败"); return error(res.getMessage());
} }
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
...@@ -162,18 +164,20 @@ public class KylinOrderRefundAdminController extends BaseController { ...@@ -162,18 +164,20 @@ public class KylinOrderRefundAdminController extends BaseController {
@ResponseBody @ResponseBody
public AjaxResult refundExecute(RefundApplyParam refundApplyParam) { public AjaxResult refundExecute(RefundApplyParam refundApplyParam) {
try { try {
Boolean res = false; ResponseDto res = null;
Integer status = refundApplyParam.getStatus(); Integer status = refundApplyParam.getStatus();
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_UNFILLED) { // 通过 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_UNFILLED) { // 通过
res = kylinOrderRefundsServiceImpl.refundUnfilled(refundApplyParam); refundApplyParam.setType("unfilled");
res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
} }
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE) { // 驳回 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE) { // 驳回
res = kylinOrderRefundsServiceImpl.refundRefuse(refundApplyParam); refundApplyParam.setType("refuse");
res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
} }
if (res) { if (res.isSuccess()) {
return success(); return success();
} else { } else {
return error("审核退款失败"); return error(res.getMessage());
} }
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
......
...@@ -6,11 +6,9 @@ import com.liquidnet.client.admin.common.core.domain.AjaxResult; ...@@ -6,11 +6,9 @@ import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinRefundPerformancesAdminServiceImpl; import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinRefundPerformancesAdminServiceImpl;
import com.liquidnet.service.kylin.dao.OrderRefundBatchDao; import com.liquidnet.service.kylin.dao.OrderRefundBatchDao;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundBatchApplyParam; import com.liquidnet.service.kylin.dto.param.RefundBatchApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundBatchSearchParam; import com.liquidnet.service.kylin.dto.param.RefundBatchSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinOrderRefundBatchesVo; import com.liquidnet.service.kylin.dto.vo.KylinOrderRefundBatchesVo;
import com.liquidnet.service.kylin.dto.vo.OrderDetailsVo;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
......
...@@ -24,6 +24,10 @@ liquidnet: ...@@ -24,6 +24,10 @@ liquidnet:
username: testmall username: testmall
password: zhengzai!mYT password: zhengzai!mYT
database-name: dev_ln_scene database-name: dev_ln_scene
url-refund:
apply: "http://devpay.zhengzai.tv/refund/single"
notify: "https://devzuul.zhengzai.tv/kylin/refund/callback"
# end-dev-这里是配置信息基本值 # end-dev-这里是配置信息基本值
spring: spring:
......
...@@ -24,6 +24,9 @@ liquidnet: ...@@ -24,6 +24,9 @@ liquidnet:
username: testmall username: testmall
password: zhengzai!mYT password: zhengzai!mYT
database-name: test_ln_scene database-name: test_ln_scene
url-refund:
apply: "http://pay.zhengzai.tv/refund/single"
notify: "https://zuul.zhengzai.tv/kylin/refund/callback"
# end-dev-这里是配置信息基本值 # end-dev-这里是配置信息基本值
spring: spring:
......
...@@ -24,6 +24,9 @@ liquidnet: ...@@ -24,6 +24,9 @@ liquidnet:
username: zhengzai username: zhengzai
password: $hAh4SGcDQ password: $hAh4SGcDQ
database-name: test_ln_scene database-name: test_ln_scene
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://zuul.zhengzai.tv/kylin/refund/callback"
# end-dev-这里是配置信息基本值 # end-dev-这里是配置信息基本值
spring: spring:
......
...@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; ...@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderRefundDao; import com.liquidnet.service.kylin.dao.OrderRefundDao;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam; import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
...@@ -23,7 +23,6 @@ import com.liquidnet.service.kylin.mapper.KylinOrderTicketStatusMapper; ...@@ -23,7 +23,6 @@ import com.liquidnet.service.kylin.mapper.KylinOrderTicketStatusMapper;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper; import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.liquidnet.service.kylin.service.IKylinOrderRefundsService; import com.liquidnet.service.kylin.service.IKylinOrderRefundsService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpException;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
...@@ -33,7 +32,7 @@ import java.util.List; ...@@ -33,7 +32,7 @@ import java.util.List;
/** /**
* <p> * <p>
* 订单退款表 服务实现类 * 订单退款表 服务实现类 处理逻辑判断
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
...@@ -60,14 +59,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -60,14 +59,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
public Boolean refundApply(RefundApplyParam refundApplyParam) throws Exception { public ResponseDto refundApply(RefundApplyParam refundApplyParam) {
/*int count = 0;
count = kylinOrderTicketsMapper.selectCount(
new UpdateWrapper<KylinOrderTickets>().eq("order_tickets_id", refundApplyParam.getOrderTicketsId()).eq("coupon_type", "no")
);
if (count > 0) {
throw new Exception("使用满减券 暂不能退款");
}*/
String orderTicketsId = refundApplyParam.getOrderTicketsId(); String orderTicketsId = refundApplyParam.getOrderTicketsId();
List<String> ticketEntityIds = refundApplyParam.getTicketEntityIds(); List<String> ticketEntityIds = refundApplyParam.getTicketEntityIds();
double RefundPriceExpress = refundApplyParam.getRefundPriceExpress(); double RefundPriceExpress = refundApplyParam.getRefundPriceExpress();
...@@ -86,15 +78,15 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -86,15 +78,15 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
// 订单状态需已付款 // 订单状态需已付款
if (thisOrderStatus != KylinTableStatusConst.ORDER_STATUS1) { if (thisOrderStatus != KylinTableStatusConst.ORDER_STATUS1) {
throw new HttpException("订单状态信息有误"); return ResponseDto.failure("订单状态信息有误");
} }
// 订单支付状态需为已支付 // 订单支付状态需为已支付
if (thisPayStatus != KylinTableStatusConst.ORDER_PAY_STATUS1) { if (thisPayStatus != KylinTableStatusConst.ORDER_PAY_STATUS1) {
throw new HttpException("订单支付信息有误"); return ResponseDto.failure("订单支付信息有误");
} }
// 传的快递费不能大于实际的快递费 // 传的快递费不能大于实际的快递费
if (RefundPriceExpress > priceExpress) { if (RefundPriceExpress > priceExpress) {
throw new HttpException("快递费不能大于实际的快递费"); return ResponseDto.failure("快递费不能大于实际的快递费");
} }
// 该订单正在退款或已有退款 // 该订单正在退款或已有退款
QueryWrapper<KylinOrderRefunds> refundingCountQuery = new QueryWrapper<KylinOrderRefunds>() QueryWrapper<KylinOrderRefunds> refundingCountQuery = new QueryWrapper<KylinOrderRefunds>()
...@@ -105,19 +97,9 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -105,19 +97,9 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
} }
int refundingCount = kylinOrderRefundsMapper.selectCount(refundingCountQuery); int refundingCount = kylinOrderRefundsMapper.selectCount(refundingCountQuery);
if (refundingCount > 0) { if (refundingCount > 0) {
throw new HttpException("该订单正在退款或已有退款"); return ResponseDto.failure("该订单正在退款或已有退款");
} }
// 该订单的入场人未付款/正在退款/已退款
// TODO: 2021/5/27 出票未出票不知是否要处理
/*QueryWrapper<KylinOrderTicketEntities> notPayCountQuery = new QueryWrapper<KylinOrderTicketEntities>()
.in("order_ticket_entities_id", ticketEntityIds)
.in("is_payment", new Integer[]{
KylinTableStatusConst.ENTITIES_IS_PAYMENT0,
KylinTableStatusConst.ENTITIES_IS_PAYMENT2,
KylinTableStatusConst.ENTITIES_IS_PAYMENT3});
int notPayCount = kylinOrderTicketEntitiesMapper.selectCount(notPayCountQuery);*/
// 选择退款的入场人是否正确 // 选择退款的入场人是否正确
// TODO: 2021/5/27 出票未出票不知是否要处理 // TODO: 2021/5/27 出票未出票不知是否要处理
QueryWrapper<KylinOrderTicketEntities> choiceCountQuery = new QueryWrapper<KylinOrderTicketEntities>() QueryWrapper<KylinOrderTicketEntities> choiceCountQuery = new QueryWrapper<KylinOrderTicketEntities>()
...@@ -127,7 +109,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -127,7 +109,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
int choiceCount = kylinOrderTicketEntitiesMapper.selectCount(choiceCountQuery); int choiceCount = kylinOrderTicketEntitiesMapper.selectCount(choiceCountQuery);
int ticketEntityCount = ticketEntityIds.size(); int ticketEntityCount = ticketEntityIds.size();
if (choiceCount < 0 || choiceCount != ticketEntityCount) { if (choiceCount < 0 || choiceCount != ticketEntityCount) {
throw new HttpException("入场人订单有误或不存在"); return ResponseDto.failure("入场人订单有误或不存在");
} }
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding( boolean res = kylinRefundsStatusServiceImpl.orderTicketRefunding(
...@@ -136,142 +118,80 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -136,142 +118,80 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
ticketEntityCount, ticketEntityIds ticketEntityCount, ticketEntityIds
); );
if (res) { if (res) {
return true; return ResponseDto.success();
} else { } else {
return false; return ResponseDto.failure("操作失败");
} }
} }
public Boolean refundCancel(RefundApplyParam refundApplyParam) throws Exception { public ResponseDto refundCheckStatus(RefundApplyParam refundApplyParam) {
List<String> orderRefundsIdList = refundApplyParam.getIds(); String type = refundApplyParam.getType();
Integer[] orderRefundStatus = {KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(
new QueryWrapper<KylinOrderRefunds>()
.eq("type", KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY)
.in("order_refunds_id", orderRefundsIdList)
.in("status", orderRefundStatus)
);
if (orderRefundsIdList.size() != refundList.size()) {
throw new Exception("订单需未审核、已驳回、已回绝,非自动退款订单");
}
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefundCancel(refundList);
if (res) {
return true;
} else {
return false;
}
}
public Boolean refundReapply(RefundApplyParam refundApplyParam) throws Exception {
List<String> orderRefundsIdList = refundApplyParam.getIds();
Integer[] orderRefundStatus = {KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(
new QueryWrapper<KylinOrderRefunds>()
.eq("type", KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY)
.in("order_refunds_id", orderRefundsIdList)
.in("status", orderRefundStatus)
);
if (orderRefundsIdList.size() != refundList.size()) {
throw new Exception("订单需一审驳回或二审驳回");
}
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefundReapply(refundList);
if (res) {
return true;
} else {
return false;
}
}
public Boolean refundApproved(RefundApplyParam refundApplyParam) throws Exception {
List<String> orderRefundsIdList = refundApplyParam.getIds(); List<String> orderRefundsIdList = refundApplyParam.getIds();
if (orderRefundsIdList.size() <= 0) { if (orderRefundsIdList.size() <= 0) {
throw new Exception("无退款订单"); return ResponseDto.failure("无退款订单");
}
String reject = refundApplyParam.getReject();
Integer[] orderRefundStatus = {KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(
new QueryWrapper<KylinOrderRefunds>()
.eq("type", KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY)
.in("order_refunds_id", orderRefundsIdList)
.in("status", orderRefundStatus)
);
if (orderRefundsIdList.size() != refundList.size()) {
throw new Exception("订单需未审核、已驳回、已回绝,请检查订单状态");
} }
Integer[] orderRefundStatus = null;
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefundApproved(refundList, reject); Integer orderType = KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY;
if (res) { switch (type) {
return true; default:
} else { return ResponseDto.failure("type类型错误");
return false; case "cancel":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
break;
case "reapply":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
break;
case "approved":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
break;
case "reject":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
break;
case "unfilled":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
break;
case "refuse":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
break;
} }
}
public Boolean refundReject(RefundApplyParam refundApplyParam) throws Exception {
List<String> orderRefundsIdList = refundApplyParam.getIds();
String reject = refundApplyParam.getReject();
Integer[] orderRefundStatus = {KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList( List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(
new QueryWrapper<KylinOrderRefunds>() new QueryWrapper<KylinOrderRefunds>()
.eq("type", KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY) .eq("type", orderType)
.in("order_refunds_id", orderRefundsIdList) .in("order_refunds_id", orderRefundsIdList)
.in("status", orderRefundStatus) .in("status", orderRefundStatus)
); );
if (orderRefundsIdList.size() != refundList.size()) { if (orderRefundsIdList.size() != refundList.size()) {
throw new Exception("订单需未审核、已审核、已回绝,请检查订单状态"); return ResponseDto.failure("当前状态不允许操作");
} }
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefundReject(refundList, reject); boolean res = false;
if (res) { String reject = refundApplyParam.getReject();
return true;
} else {
return false;
}
}
public Boolean refundUnfilled(RefundApplyParam refundApplyParam) throws Exception {
List<String> orderRefundsIdList = refundApplyParam.getIds();
String refuse = refundApplyParam.getRefuse();
Integer[] orderRefundStatus = {KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(
new QueryWrapper<KylinOrderRefunds>()
.eq("type", KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY)
.in("order_refunds_id", orderRefundsIdList)
.in("status", orderRefundStatus)
);
if (orderRefundsIdList.size() != refundList.size()) {
throw new Exception("订单需已审核、退款失败,请检查订单状态");
}
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefundUnfilled(refundList, refuse);
if (res) {
return true;
} else {
return false;
}
}
public Boolean refundRefuse(RefundApplyParam refundApplyParam) throws Exception {
List<String> orderRefundsIdList = refundApplyParam.getIds();
String refuse = refundApplyParam.getRefuse(); String refuse = refundApplyParam.getRefuse();
Integer[] orderRefundStatus = {KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR}; switch (type) {
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList( case "cancel":
new QueryWrapper<KylinOrderRefunds>() res = kylinRefundsStatusServiceImpl.orderTicketRefundCancel(refundList);
.eq("type", KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY) break;
.in("order_refunds_id", orderRefundsIdList) case "reapply":
.in("status", orderRefundStatus) res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, "", "");
); break;
if (orderRefundsIdList.size() != refundList.size()) { case "approved":
throw new Exception("订单需已审核、退款失败,请检查订单状态"); res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, reject, "");
break;
case "Reject":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, reject, "");
break;
case "unfilled":
res = kylinRefundsStatusServiceImpl.orderTicketRefundUnfilled(refundList, refuse);
break;
case "refuse":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, "", refuse);
break;
} }
boolean res = kylinRefundsStatusServiceImpl.orderTicketRefundRefuse(refundList, refuse);
if (res) { if (res) {
return true; return ResponseDto.success();
} else { } else {
return false; return ResponseDto.failure("操作失败");
} }
} }
......
...@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.kylin.service.impl; ...@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam; import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundBatchApplyParam; import com.liquidnet.service.kylin.dto.param.RefundBatchApplyParam;
...@@ -15,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -67,7 +67,7 @@ public class KylinRefundExecuteServiceImpl { ...@@ -67,7 +67,7 @@ public class KylinRefundExecuteServiceImpl {
if (order.getPriceExpress() != null) { if (order.getPriceExpress() != null) {
refundApplyParam.setRefundPriceExpress(order.getPriceExpress().doubleValue()); refundApplyParam.setRefundPriceExpress(order.getPriceExpress().doubleValue());
} }
Boolean res = kylinOrderRefundsServiceImpl.refundApply(refundApplyParam); ResponseDto res = kylinOrderRefundsServiceImpl.refundApply(refundApplyParam);
} }
count = orderList.size(); count = orderList.size();
...@@ -91,17 +91,21 @@ public class KylinRefundExecuteServiceImpl { ...@@ -91,17 +91,21 @@ public class KylinRefundExecuteServiceImpl {
break; break;
case "review": case "review":
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED) { // 通过申请 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED) { // 通过申请
type = "approved";
whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE}; whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
} }
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT) { // 驳回申请 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT) { // 驳回申请
type = "reject";
whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE}; whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
} }
break; break;
case "execute": case "execute":
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_UNFILLED) { // 执行退款 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_UNFILLED) { // 执行退款
type = "unfilled";
whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR}; whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
} }
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE) { // 拒绝退款 if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE) { // 拒绝退款
type = "refuse";
whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR}; whereStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
} }
break; break;
...@@ -121,34 +125,14 @@ public class KylinRefundExecuteServiceImpl { ...@@ -121,34 +125,14 @@ public class KylinRefundExecuteServiceImpl {
RefundApplyParam refundApplyParam = new RefundApplyParam(); RefundApplyParam refundApplyParam = new RefundApplyParam();
refundApplyParam.setIds(refundIds); refundApplyParam.setIds(refundIds);
Boolean res = null; refundApplyParam.setType(type);
if (null != refundBatchApplyParam.getRefuse()) {
switch (type) { refundApplyParam.setRefuse(refundBatchApplyParam.getRefuse());
case "reapply":
res = kylinOrderRefundsServiceImpl.refundReapply(refundApplyParam);
break;
case "cancel":
res = kylinOrderRefundsServiceImpl.refundCancel(refundApplyParam);
break;
case "review":
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED) { // 通过申请
res = kylinOrderRefundsServiceImpl.refundApproved(refundApplyParam);
}
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT) { // 驳回申请
res = kylinOrderRefundsServiceImpl.refundReject(refundApplyParam);
}
break;
case "execute":
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_UNFILLED) { // 执行退款
res = kylinOrderRefundsServiceImpl.refundUnfilled(refundApplyParam);
}
if (status == KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE) { // 拒绝退款
res = kylinOrderRefundsServiceImpl.refundRefuse(refundApplyParam);
}
break;
default:
throw new Exception("type异常,无法操作");
} }
if (null != refundBatchApplyParam.getReject()) {
refundApplyParam.setReject(refundBatchApplyParam.getReject());
}
ResponseDto res = kylinOrderRefundsServiceImpl.refundCheckStatus(refundApplyParam);
} }
count = refundList.size(); count = refundList.size();
......
...@@ -4,17 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -4,17 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderRefundBatchDao; import com.liquidnet.service.kylin.dao.OrderRefundBatchDao;
import com.liquidnet.service.kylin.dto.param.RefundBatchApplyParam; import com.liquidnet.service.kylin.dto.param.RefundBatchApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundBatchSearchParam; import com.liquidnet.service.kylin.dto.param.RefundBatchSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinOrderRefundBatchesVo; import com.liquidnet.service.kylin.dto.vo.KylinOrderRefundBatchesVo;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinOrderRefundBatches; import com.liquidnet.service.kylin.entity.KylinOrderRefundBatches;
import com.liquidnet.service.kylin.mapper.KylinOrderRefundBatchesMapper; import com.liquidnet.service.kylin.mapper.KylinOrderRefundBatchesMapper;
import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper; import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
......
...@@ -26,11 +26,10 @@ import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper; ...@@ -26,11 +26,10 @@ import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.client.model.ReturnDocument;
import com.sun.media.jfxmedia.logging.Logger;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpException;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -45,7 +44,7 @@ import java.util.stream.Collectors; ...@@ -45,7 +44,7 @@ import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 退款表 服务实现类 * 订单退款表 服务实现类 处理数据 退款后状态的变化
* </p> * </p>
* *
* @author jiaangxiulong * @author jiaangxiulong
...@@ -55,6 +54,11 @@ import java.util.stream.Collectors; ...@@ -55,6 +54,11 @@ import java.util.stream.Collectors;
@Service @Service
public class KylinRefundsStatusServiceImpl { public class KylinRefundsStatusServiceImpl {
@Value("${liquidnet.url-refund.apply}")
private String applyUrl;
@Value("${liquidnet.url-refund.notify}")
private String notifyUrl;
@Autowired @Autowired
private KylinOrderTicketsMapper kylinOrderTicketsMapper; private KylinOrderTicketsMapper kylinOrderTicketsMapper;
...@@ -77,7 +81,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -77,7 +81,7 @@ public class KylinRefundsStatusServiceImpl {
RefundApplyParam refundApplyParam, KylinOrderTickets orderInfo, String orderTicketsId, RefundApplyParam refundApplyParam, KylinOrderTickets orderInfo, String orderTicketsId,
double RefundPriceExpress, double priceExpress, double RefundPriceExpress, double priceExpress,
int ticketEntityCount, List<String> ticketEntityIds int ticketEntityCount, List<String> ticketEntityIds
) throws HttpException { ) {
// 处理数据 // 处理数据
String authId = ShiroUtils.getUserId().toString(); String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName(); String authName = ShiroUtils.getLoginName();
...@@ -225,90 +229,53 @@ public class KylinRefundsStatusServiceImpl { ...@@ -225,90 +229,53 @@ public class KylinRefundsStatusServiceImpl {
return true; return true;
} }
public boolean orderTicketRefundReapply(List<KylinOrderRefunds> refundList) { public boolean orderRefundChangeStatus(List<KylinOrderRefunds> refundList, String type, String reject, String refuse) {
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds();
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY);
kylinOrderRefunds.setApplicantId(authId);
kylinOrderRefunds.setApplicantName(authName);
kylinOrderRefunds.setApplicantAt(LocalDateTime.now());
List<String> refundIds = refundList.stream().map(KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList());
kylinOrderRefundsMapper.update(
kylinOrderRefunds,
new UpdateWrapper<KylinOrderRefunds>().in("order_refunds_id", refundIds)
);
return true;
}
public boolean orderTicketRefundApproved(List<KylinOrderRefunds> refundList, String reject) {
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds();
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED);
kylinOrderRefunds.setAuditorId(authId);
kylinOrderRefunds.setAuditorName(authName);
kylinOrderRefunds.setAuditorAt(LocalDateTime.now());
kylinOrderRefunds.setReject(reject);
List<String> refundIds = refundList.stream().map(KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList());
kylinOrderRefundsMapper.update(
kylinOrderRefunds,
new UpdateWrapper<KylinOrderRefunds>().in("order_refunds_id", refundIds)
);
return true;
}
public boolean orderTicketRefundReject(List<KylinOrderRefunds> refundList, String reject) {
String authId = ShiroUtils.getUserId().toString(); String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName(); String authName = ShiroUtils.getLoginName();
KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds(); KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds();
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT);
kylinOrderRefunds.setAuditorId(authId);
kylinOrderRefunds.setAuditorName(authName);
kylinOrderRefunds.setAuditorAt(LocalDateTime.now());
kylinOrderRefunds.setReject(reject);
List<String> refundIds = refundList.stream().map(KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList()); switch (type) {
case "reapply":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY);
kylinOrderRefunds.setApplicantId(authId);
kylinOrderRefunds.setApplicantName(authName);
kylinOrderRefunds.setApplicantAt(LocalDateTime.now());
break;
case "approved":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED);
kylinOrderRefunds.setAuditorId(authId);
kylinOrderRefunds.setAuditorName(authName);
kylinOrderRefunds.setAuditorAt(LocalDateTime.now());
kylinOrderRefunds.setReject(reject);
break;
case "Reject":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT);
kylinOrderRefunds.setAuditorId(authId);
kylinOrderRefunds.setAuditorName(authName);
kylinOrderRefunds.setAuditorAt(LocalDateTime.now());
kylinOrderRefunds.setReject(reject);
break;
case "refuse":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE);
kylinOrderRefunds.setExecutorId(authId);
kylinOrderRefunds.setExecutorName(authName);
kylinOrderRefunds.setExecutorAt(LocalDateTime.now());
kylinOrderRefunds.setRefuse(refuse);
break;
}
kylinOrderRefundsMapper.update( List<String> orderRefundIds = refundList.stream().map(
kylinOrderRefunds, KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList()
new UpdateWrapper<KylinOrderRefunds>().in("order_refunds_id", refundIds)
); );
return true;
}
public boolean orderTicketRefundRefuse(List<KylinOrderRefunds> refundList, String refuse) {
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds();
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE);
kylinOrderRefunds.setExecutorId(authId);
kylinOrderRefunds.setExecutorName(authName);
kylinOrderRefunds.setExecutorAt(LocalDateTime.now());
kylinOrderRefunds.setRefuse(refuse);
List<String> refundIds = refundList.stream().map(KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList());
kylinOrderRefundsMapper.update( kylinOrderRefundsMapper.update(
kylinOrderRefunds, kylinOrderRefunds,
new UpdateWrapper<KylinOrderRefunds>().in("order_refunds_id", refundIds) new UpdateWrapper<KylinOrderRefunds>().in("order_refunds_id", orderRefundIds)
); );
return true; return true;
} }
public boolean orderTicketRefundUnfilled(List<KylinOrderRefunds> refundList, String refuse) throws Exception { public boolean orderTicketRefundUnfilled(List<KylinOrderRefunds> refundList, String refuse) {
String authId = ShiroUtils.getUserId().toString(); String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName(); String authName = ShiroUtils.getLoginName();
...@@ -320,9 +287,6 @@ public class KylinRefundsStatusServiceImpl { ...@@ -320,9 +287,6 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefunds.setRefuse(refuse); kylinOrderRefunds.setRefuse(refuse);
// List<String> refundIds = refundList.stream().map(KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList()); // List<String> refundIds = refundList.stream().map(KylinOrderRefunds -> KylinOrderRefunds.getOrderRefundsId()).collect(Collectors.toList());
// 开始执行退款
String postUrl = "http://testpay.zhengzai.tv/refund/single";
for (KylinOrderRefunds refund : refundList) { for (KylinOrderRefunds refund : refundList) {
KylinOrderTickets oderInfo = kylinOrderTicketsMapper.selectOne( KylinOrderTickets oderInfo = kylinOrderTicketsMapper.selectOne(
new QueryWrapper<KylinOrderTickets>() new QueryWrapper<KylinOrderTickets>()
...@@ -333,7 +297,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -333,7 +297,7 @@ public class KylinRefundsStatusServiceImpl {
params.add("order_refund_code", refund.getOrderRefundCode()); params.add("order_refund_code", refund.getOrderRefundCode());
params.add("price", refund.getPrice().toString()); params.add("price", refund.getPrice().toString());
params.add("reason", refund.getReason()); params.add("reason", refund.getReason());
params.add("notify_url", "http://zuul.zhengzai.tv/kylin/refund/callback"); params.add("notify_url", notifyUrl);
String sign = StringUtils.Ksort(params); String sign = StringUtils.Ksort(params);
sign = sign.concat("&key=").concat("R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V"); sign = sign.concat("&key=").concat("R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V");
...@@ -345,7 +309,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -345,7 +309,7 @@ public class KylinRefundsStatusServiceImpl {
// start // start
// TODO: 2021/5/31 待整理 // TODO: 2021/5/31 待整理
String postResult = null; String postResult = null;
postResult = HttpUtil.post(postUrl, params); postResult = HttpUtil.post(applyUrl, params);
JsonNode postResultNew = JsonUtils.fromJson(postResult, JsonNode.class); JsonNode postResultNew = JsonUtils.fromJson(postResult, JsonNode.class);
// 请求提审接口结果 // 请求提审接口结果
if (postResultNew.get("message").toString() != "OK") { if (postResultNew.get("message").toString() != "OK") {
......
...@@ -21,9 +21,6 @@ liquidnet: ...@@ -21,9 +21,6 @@ liquidnet:
pay: "http://testpay.zhengzai.tv/" pay: "http://testpay.zhengzai.tv/"
check: "http://testpay.zhengzai.tv/order/verify" check: "http://testpay.zhengzai.tv/order/verify"
localUrl: "https://zuul.zhengzai.tv/kylin/order/syncOrder" localUrl: "https://zuul.zhengzai.tv/kylin/order/syncOrder"
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://devzuul.zhengzai.tv/kylin/refund/callback"
#以下为spring各环境个性配置 #以下为spring各环境个性配置
spring: spring:
......
...@@ -21,9 +21,6 @@ liquidnet: ...@@ -21,9 +21,6 @@ liquidnet:
pay: "http://testpay.zhengzai.tv/" pay: "http://testpay.zhengzai.tv/"
check: "http://testpay.zhengzai.tv/order/verify" check: "http://testpay.zhengzai.tv/order/verify"
localUrl: "https://zuul.zhengzai.tv/kylin/order/syncOrder" localUrl: "https://zuul.zhengzai.tv/kylin/order/syncOrder"
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://zuul.zhengzai.tv/kylin/refund/callback"
#以下为spring各环境个性配置 #以下为spring各环境个性配置
spring: spring:
......
...@@ -103,7 +103,7 @@ public class KylinStationController { ...@@ -103,7 +103,7 @@ public class KylinStationController {
@ApiOperation(value = "演出列表") @ApiOperation(value = "演出列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mod", value = "模块[recent-近期的,over-历史]", allowableValues = "recent,over"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mod", value = "模块[recent-近期的,over-历史]", allowableValues = "recent,over"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "match", value = "匹配字符[title|cityName|fieldName]"), @ApiImplicitParam(type = "form", required = false, dataType = "String", name = "match", value = "匹配字符[title|cityName|fieldName]"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "pageNo", value = "页码", example = "1"), @ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "pageSize", value = "页记录数", example = "5"), @ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "pageSize", value = "页记录数", example = "5"),
}) })
...@@ -179,11 +179,15 @@ public class KylinStationController { ...@@ -179,11 +179,15 @@ public class KylinStationController {
Map<String, String> performanceRelationMap = performanceRelationList.stream().collect(Collectors.toMap(CheckPerformanceRelationParam::getPerformanceId, CheckPerformanceRelationParam::getCanDownTime)); Map<String, String> performanceRelationMap = performanceRelationList.stream().collect(Collectors.toMap(CheckPerformanceRelationParam::getPerformanceId, CheckPerformanceRelationParam::getCanDownTime));
// 补充演出列表票种统计 // 补充演出列表票种统计
voList.forEach(r -> { for (KylinStationPerformanceVo r : voList) {
// 演出的所有订单票明细 // 演出的所有订单票明细
List<KylinOrderTicketEntitiesVo> performanceTicketEntitiesVoList = oteVoMap.get(r.getPerformancesId()); List<KylinOrderTicketEntitiesVo> performanceTicketEntitiesVoList = oteVoMap.get(r.getPerformancesId());
if (!CollectionUtils.isEmpty(performanceTicketEntitiesVoList)) continue;
// 订单票明细按票种分组 // 订单票明细按票种分组
Map<String, List<KylinOrderTicketEntitiesVo>> performanceTicketEntitiesVoMap = performanceTicketEntitiesVoList.stream().collect(Collectors.groupingBy(KylinOrderTicketEntitiesVo::getTicketId)); Map<String, List<KylinOrderTicketEntitiesVo>> performanceTicketEntitiesVoMap =
performanceTicketEntitiesVoList.stream().collect(Collectors.groupingBy(KylinOrderTicketEntitiesVo::getTicketId));
List<KylinStationTicketVo> ticketVoList = new ArrayList<>(); List<KylinStationTicketVo> ticketVoList = new ArrayList<>();
...@@ -218,19 +222,13 @@ public class KylinStationController { ...@@ -218,19 +222,13 @@ public class KylinStationController {
ticketVoList.add(stationTicketVo); ticketVoList.add(stationTicketVo);
} }
r.setPriceSum(priceSum);
KylinStationTicketVo sumTicketVo = KylinStationTicketVo.getNew(); r.setNumber(number);
sumTicketVo.setTicketId("TT"); r.setCheckedNum(checkedNum);
sumTicketVo.setTitle("合计"); r.setRemainderNum(remainderNum);
sumTicketVo.setPriceSum(priceSum);
sumTicketVo.setNumber(number);
sumTicketVo.setCheckedNum(checkedNum);
sumTicketVo.setRemainderNum(remainderNum);
ticketVoList.add(sumTicketVo);
r.setTicketVoList(ticketVoList); r.setTicketVoList(ticketVoList);
r.setCanDownTime(performanceRelationMap.get(r.getPerformancesId())); r.setCanDownTime(performanceRelationMap.get(r.getPerformancesId()));
}); }
} }
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -246,7 +244,7 @@ public class KylinStationController { ...@@ -246,7 +244,7 @@ public class KylinStationController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "performanceId", value = "演出ID[64]"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "performanceId", value = "演出ID[64]"),
}) })
@GetMapping("download") @GetMapping("download")
public ResponseDto<List<KylinStationCheckOrderVo>> downloadTicketData(@RequestParam String performanceId) { public ResponseDto<KylinStationCheckRefreshVo> downloadTicketData(@RequestParam String performanceId) {
log.info("performanceId:{}", performanceId); log.info("performanceId:{}", performanceId);
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
...@@ -266,27 +264,52 @@ public class KylinStationController { ...@@ -266,27 +264,52 @@ public class KylinStationController {
return ResponseDto.failure(ErrorMapping.get("20608")); return ResponseDto.failure(ErrorMapping.get("20608"));
} }
List<KylinStationCheckOrderVo> voList = new ArrayList<>(); List<KylinStationCheckOrderVo> checkOrderVos;
// 查取演出对应的订单票明细 // 查取演出对应的订单票明细
Query orderTicketEntitiesVoQuery = Query.query(Criteria.where("performanceId").is(performanceId).and("isPayment").is(1)); Query orderTicketEntitiesVoQuery = Query.query(Criteria.where("performanceId").is(performanceId).and("isPayment").is(1));
voList = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinStationCheckOrderVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName()); checkOrderVos = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinStationCheckOrderVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
Query query = Query.query(Criteria.where("orderTicketsId").in( Query query = Query.query(Criteria.where("orderTicketsId").in(
voList.stream().map(KylinStationCheckOrderVo::getOrderId).toArray() checkOrderVos.stream().map(KylinStationCheckOrderVo::getOrderId).toArray()
)); ));
query.fields().include("orderTicketsId").include("qrCode"); query.fields().include("orderTicketsId").include("qrCode");
List<KylinOrderTicketVo> orderTicketVoList = mongoTemplate.find(query, KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); List<KylinOrderTicketVo> orderTicketVoList = mongoTemplate.find(query, KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
for (KylinOrderTicketVo t : orderTicketVoList) for (KylinOrderTicketVo t : orderTicketVoList) {
for (KylinStationCheckOrderVo r : voList) for (KylinStationCheckOrderVo r : checkOrderVos) {
if (r.getOrderId().equals(t.getOrderTicketsId())) { if (r.getOrderId().equals(t.getOrderTicketsId())) {
r.setQrCode(t.getQrCode()); r.setQrCode(t.getQrCode());
r.setUserMobile(t.getUserMobile()); r.setUserMobile(t.getUserMobile());
r.setUserName(t.getUserName()); r.setUserName(t.getUserName());
} }
}
return ResponseDto.success(voList); }
KylinStationCheckRefreshVo vo = KylinStationCheckRefreshVo.getNew();
vo.setCheckOrderVos(checkOrderVos);
{
// 查取演出信息
KylinStationPerformanceVo performanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)),
KylinStationPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// 查取订单对应票种
Query performanceTicketVoQuery = Query.query(Criteria.where("ticketsId").in(
checkOrderVos.stream().filter(distinctByKey(KylinStationCheckOrderVo::getTicketId)).map(KylinStationCheckOrderVo::getTicketId).toArray()
));
List<KylinTicketVo> performanceTicketVoList = mongoTemplate.find(performanceTicketVoQuery, KylinTicketVo.class, KylinTicketVo.class.getSimpleName());
List<KylinStationTicketVo> ticketVoList = new ArrayList<>();
for (KylinTicketVo r : performanceTicketVoList) {
KylinStationTicketVo stationTicketVo = KylinStationTicketVo.getNew();
stationTicketVo.setTicketId(r.getTicketsId());
stationTicketVo.setTitle(r.getTitle());
stationTicketVo.setPrice(r.getPrice());
stationTicketVo.setUseStart(r.getUseStart());
stationTicketVo.setUseEnd(r.getUseEnd());
ticketVoList.add(stationTicketVo);
}
performanceVo.setTicketVoList(ticketVoList);
vo.setPerformanceVo(performanceVo);
}
return ResponseDto.success(vo);
} }
@ApiOperation(value = "上载验票数据") @ApiOperation(value = "上载验票数据")
...@@ -305,7 +328,7 @@ public class KylinStationController { ...@@ -305,7 +328,7 @@ public class KylinStationController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "latestUpdateAt", value = "最近更新时间[yyyy-MM-dd HH:mm:ss]"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "latestUpdateAt", value = "最近更新时间[yyyy-MM-dd HH:mm:ss]"),
}) })
@PostMapping("refresh") @PostMapping("refresh")
public ResponseDto<List<KylinStationCheckOrderVo>> refreshTicketData(@RequestParam String performanceId, @RequestParam String latestUpdateAt) { public ResponseDto<KylinStationCheckRefreshVo> refreshTicketData(@RequestParam String performanceId, @RequestParam String latestUpdateAt) {
log.info("refresh performanceId:{},latestUpdateAt:{}", performanceId, latestUpdateAt); log.info("refresh performanceId:{},latestUpdateAt:{}", performanceId, latestUpdateAt);
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
...@@ -325,25 +348,50 @@ public class KylinStationController { ...@@ -325,25 +348,50 @@ public class KylinStationController {
return ResponseDto.failure(ErrorMapping.get("20608")); return ResponseDto.failure(ErrorMapping.get("20608"));
} }
List<KylinStationCheckOrderVo> voList = new ArrayList<>(); List<KylinStationCheckOrderVo> checkOrderVos;
// 查取演出对应的订单票明细 // 查取演出对应的订单票明细
Query orderTicketEntitiesVoQuery = Query.query( Query orderTicketEntitiesVoQuery = Query.query(
Criteria.where("performanceId").is(performanceId).and("updatedAt").gte(latestUpdateAt) Criteria.where("performanceId").is(performanceId).and("updatedAt").gte(latestUpdateAt)
); );
voList = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinStationCheckOrderVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName()); checkOrderVos = mongoTemplate.find(orderTicketEntitiesVoQuery, KylinStationCheckOrderVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
Query query = Query.query(Criteria.where("orderTicketsId").in( Query query = Query.query(Criteria.where("orderTicketsId").in(
voList.stream().map(KylinStationCheckOrderVo::getOrderId).toArray() checkOrderVos.stream().map(KylinStationCheckOrderVo::getOrderId).toArray()
)); ));
query.fields().include("orderTicketsId").include("qrCode"); query.fields().include("orderTicketsId").include("qrCode");
List<KylinOrderTicketVo> orderTicketVoList = mongoTemplate.find(query, KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); List<KylinOrderTicketVo> orderTicketVoList = mongoTemplate.find(query, KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
for (KylinOrderTicketVo t : orderTicketVoList) for (KylinOrderTicketVo t : orderTicketVoList) {
for (KylinStationCheckOrderVo r : voList) for (KylinStationCheckOrderVo r : checkOrderVos) {
if (r.getOrderId().equals(t.getOrderTicketsId())) r.setQrCode(t.getQrCode()); if (r.getOrderId().equals(t.getOrderTicketsId())) r.setQrCode(t.getQrCode());
}
return ResponseDto.success(voList); }
KylinStationCheckRefreshVo vo = KylinStationCheckRefreshVo.getNew();
vo.setCheckOrderVos(checkOrderVos);
{
// 查取演出信息
KylinStationPerformanceVo performanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performanceId)),
KylinStationPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
// 查取订单对应票种
Query performanceTicketVoQuery = Query.query(Criteria.where("ticketsId").in(
checkOrderVos.stream().filter(distinctByKey(KylinStationCheckOrderVo::getTicketId)).map(KylinStationCheckOrderVo::getTicketId).toArray()
));
List<KylinTicketVo> performanceTicketVoList = mongoTemplate.find(performanceTicketVoQuery, KylinTicketVo.class, KylinTicketVo.class.getSimpleName());
List<KylinStationTicketVo> ticketVoList = new ArrayList<>();
for (KylinTicketVo r : performanceTicketVoList) {
KylinStationTicketVo stationTicketVo = KylinStationTicketVo.getNew();
stationTicketVo.setTicketId(r.getTicketsId());
stationTicketVo.setTitle(r.getTitle());
stationTicketVo.setPrice(r.getPrice());
stationTicketVo.setUseStart(r.getUseStart());
stationTicketVo.setUseEnd(r.getUseEnd());
ticketVoList.add(stationTicketVo);
}
performanceVo.setTicketVoList(ticketVoList);
vo.setPerformanceVo(performanceVo);
}
return ResponseDto.success(vo);
} }
/* ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ */
......
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