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

Commit 0fb5b506 authored by jiangxiulong's avatar jiangxiulong

refund表增加票务审核字段;票务和财务权限对于状态的特殊处理;完善确认收货和优化 + 完善 + 快递演出列表,只展示支持快递票的演出

parent 6095fc98
......@@ -37,7 +37,9 @@ public class KylinTableStatusConst {
public static final Integer ORDER_REFUND_STATUS_REFUSE = 8; // 二审拒绝
public static final Integer ORDER_REFUND_STATUS_TICKET = 9; // 票务确认收货
public static final Integer ORDER_REFUND_TYPE_APPLY = 0; // 人工申请(后台客服和用户),可以取消退款,回调再处理库存和券
public static final Integer ORDER_REFUND_TYPE_APPLY = 0; // 客服、票务人工申请,可以取消退款,回调再处理库存和券
public static final Integer ORDER_REFUND_TYPE_APPLY2 = 2; // 用户申请普通退款,可以取消退款,回调再处理库存和券
public static final Integer ORDER_REFUND_TYPE_APPLY3 = 3; // 用户申请快递退款,可以取消退款,回调再处理库存和券,需确认收货
public static final Integer ORDER_REFUND_TYPE_AUTO = 1; // 超时退款,无法取消退款,直接返还库存和券,回调不再处理库存和券
/**
......
......@@ -37,4 +37,6 @@ public class RefundSearchParam implements Serializable {
@NotNull(message = "数量不能为空")
private Integer pageNum;
private Integer roleType;
}
......@@ -109,6 +109,19 @@ public class KylinOrderRefundsVo implements Serializable,Cloneable {
@ApiModelProperty(value = "回绝原因")
private String refuse;
@ApiModelProperty(value = "票务审核人id")
private String ticketAuditId;
@ApiModelProperty(value = "票务审核人名称")
private String ticketAuditName;
@ApiModelProperty(value = "票务审核时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime ticketAuditAt;
@ApiModelProperty(value = "票务审核备注")
private String ticketAuditRemark;
@ApiModelProperty(value = "票务/快递费/票和快递费")
private String refundType;
......
......@@ -16,9 +16,7 @@ import com.liquidnet.service.kylin.dao.OrderRefundDao;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundSearchParam;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
import com.liquidnet.service.kylin.dto.vo.returns.RefundOrderDetailsVo;
import com.liquidnet.service.kylin.service.IKylinOrderRefundsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
......
......@@ -174,6 +174,23 @@ public class KylinOrderRefundBatchAdminController extends BaseController {
}
}
// 批量没有快递数据 所以没有此功能 如果加的话就用演出id查订单再查退款
@Log(title = "演出退款管理", businessType = BusinessType.AUDIT3)
@RequiresPermissions("kylin:refundBatch:ticketAudit")
@PostMapping("ticketAudit")
@ResponseBody
public AjaxResult ticketAudit(RefundBatchApplyParam refundBatchApplyParam) {
try {
ResponseDto res = kylinRefundPerformancesAdminServiceImpl.ticketAuditAll(refundBatchApplyParam);
if (res.isSuccess()) {
return success();
} else {
return error(res.getMessage());
}
} catch (Exception e) {
return error(e.getMessage());
}
}
@Log(title = "演出退款管理", businessType = BusinessType.AUDIT2)
@RequiresPermissions("kylin:refundBatch:execute")
......
......@@ -48,6 +48,14 @@
<label class="col-sm-2 control-label">审核备注:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.reject}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">确认收货人名称:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.ticketAuditName}"></div>
<label class="col-sm-2 control-label">确认收货执行时间:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.ticketAuditAt}"></div>
<label class="col-sm-2 control-label">确认收货执行备注:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.ticketAuditRemark}"></div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">执行人名称:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.executorName}"></div>
......
......@@ -53,9 +53,16 @@
<option value="8">二审驳回退款</option>
</shiro:lacksRole>
</shiro:hasPermission>
<shiro:hasPermission name="kylin:refund:ticketAudit">
<shiro:lacksRole name="admin">
<option value="1">一审审核通过</option>
</shiro:lacksRole>
</shiro:hasPermission>
<shiro:hasPermission name="kylin:refund:execute">
<shiro:lacksRole name="admin">
<option value="1,9">全部</option>
<option value="1">一审审核通过</option>
<option value="9">已确认收货</option>
</shiro:lacksRole>
</shiro:hasPermission>
</select>
......@@ -209,7 +216,6 @@
yes: function (index, layero) {
var remark = $(layero).find("[name='remark']").val();
data['ticketRemark'] = remark;
data['status'] = 1;
$.operate.save(prefix + "/ticketAudit", data);
layer.close(index)
},
......
......@@ -134,15 +134,14 @@
type: 1,
fixed: false,
maxmin: true,
title: '运营审核',
title: '票务审核',
area: ['500px', '220px'],
content: $("#form-refund-review").html(),
btn: ["确认收货", '没收到,再等等吧~'],
yes: function (index, layero) {
var remark = $(layero).find("[name='remark']").val();
data['ticketRemark'] = remark;
data['status'] = 44;
$.operate.save(prefix + "/review", data);
$.operate.save(prefix + "/ticketAudit", data);
layer.close(index)
},
btn2: function (index, layero) {}
......@@ -214,8 +213,8 @@
actions.push('<a class="btn btn-info btn-xs' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.refundBatchId + '\')"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs ' + reviewFlag + '" href="javascript:void(0)" onclick="review(\'' + row.refundBatchId + '\')"></i>运营审核</a> ');
actions.push('<a class="btn btn-primary btn-xs ' + ticketAuditFlag + '" href="javascript:void(0)" onclick="ticketAudit(\'' + row.refundBatchId + '\')"></i>票务审核</a> ');
actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="javascript:void(0)" onclick="execute(\'' + row.refundBatchId + '\')"></i>财务审核</a> ');
// actions.push('<a class="btn btn-primary btn-xs ' + ticketAuditFlag + '" href="javascript:void(0)" onclick="ticketAudit(\'' + row.refundBatchId + '\')"></i>票务审核</a> ');
actions.push('<a class="btn btn-primary btn-xs ' + executeFlag + '" href="javascript:void(0)" onclick="execute(\'' + row.refundBatchId + '\')"></i>财务审核</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + cancelFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.refundBatchId + '\', \'确定取消退款申请吗?\', table.options.cancelUrl)"></i>取消</a> ');
// actions.push('<a class="btn btn-warning btn-xs ' + reapplyFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.refundBatchId + '\', \'确定重新提交退款审核吗?\', table.options.reapplyUrl)"></i>重新提交</a> ');
return actions.join('');
......
......@@ -229,49 +229,57 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
if (orderRefundsIdList.size() <= 0) {
return ResponseDto.failure("无退款订单");
}
Integer[] orderRefundStatus = null;
Integer orderType = null;
List<Integer> orderRefundStatus = null;
List<Integer> orderTypeList = null;
switch (type) {
default:
return ResponseDto.failure("type类型错误");
case "cancel":
// orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED};
orderType = KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY;
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED);
orderTypeList = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY, KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY2, KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY3);
break;
case "reapply":
// orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT};
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT);
break;
case "approved":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE);
break;
case "reject":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
orderType = KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY;
case "reject": // 运营驳回
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE);
orderTypeList = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY, KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY2, KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY3);
break;
case "ticketAudit":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED};
orderType = KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY;
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED);
orderTypeList = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY3);
break;
case "unfilled":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR, KylinTableStatusConst.ORDER_REFUND_STATUS_TICKET);
break;
case "refuse":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
orderRefundStatus = Arrays.asList(KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR, KylinTableStatusConst.ORDER_REFUND_STATUS_TICKET);
break;
}
QueryWrapper<KylinOrderRefunds> listQuery = new QueryWrapper();
listQuery.in("order_refunds_id", orderRefundsIdList).in("status", orderRefundStatus);
if (null != orderType) {
listQuery.eq("type", orderType);
if (null != orderTypeList) {
listQuery.in("type", orderTypeList);
}
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(listQuery);
if (orderRefundsIdList.size() != refundList.size()) {
return ResponseDto.failure("当前状态不允许操作");
}
if (type.equals("unfilled") || type.equals("refuse")) {
for (KylinOrderRefunds info : refundList) {
if (info.getType() == KylinTableStatusConst.ORDER_REFUND_TYPE_APPLY3) {
if (info.getStatus() == KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED) {
return ResponseDto.failure("存在待确认收货的订单,当前不允许操作");
}
}
}
}
boolean res = false;
String reject = refundApplyParam.getReject();
String refuse = refundApplyParam.getRefuse();
......@@ -280,21 +288,24 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
res = kylinRefundsStatusServiceImpl.orderTicketRefundCancel(refundList, true);
break;
case "reapply":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, "", "", authId, authName);
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, refundApplyParam, authId, authName);
break;
case "approved":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, reject, "", authId, authName);
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, refundApplyParam, authId, authName);
break;
case "reject":
boolean cancelRes = kylinRefundsStatusServiceImpl.orderTicketRefundCancel(refundList, false);
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, reject, "", authId, authName);
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, refundApplyParam, authId, authName);
break;
case "ticketAudit":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, refundApplyParam, authId, authName);
break;
case "unfilled":
kylinRefundsStatusServiceImpl.orderTicketRefundUnfilled(refundList, refuse, authId, authName);
kylinRefundsStatusServiceImpl.orderTicketRefundUnfilled(refundList, refundApplyParam, authId, authName);
res = true;
break;
case "refuse":
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, type, "", refuse, authId, authName);
res = kylinRefundsStatusServiceImpl.orderRefundChangeStatus(refundList, refundApplyParam, authId, authName);
break;
}
if (res) {
......@@ -325,7 +336,6 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
refundCallbackParam.setRefundCode(refundInfo.getRefundCode());
BigDecimal refundPrice = refundInfo.getPrice().add(refundInfo.getPriceExpress());
refundCallbackParam.setRefundPrice(refundPrice);
// refundCallbackParam.setRefund_type("UNKNOWN");
refundCallbackParam.setRefundId(refundInfo.getRefundId());
refundCallbackParam.setRefundAt(DateUtils.dateTimeNow());
refundCallbackParam.setRefundError(refundInfo.getRefundError());
......@@ -397,6 +407,17 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
public PageInfo<OrderRefundDao> refundList(RefundSearchParam refundSearchParam) {
PageInfo<OrderRefundDao> pageInfoTmp = null;
try {
if (!ShiroUtils.getSysUser().isAdmin()) {
if (ShiroUtils.getSubject().hasRole("kylin:refund:ticketAudit")) {
// 票务
refundSearchParam.setRoleType(1);
}
if (ShiroUtils.getSubject().hasRole("kylin:refund:execute")) {
// 财务
refundSearchParam.setRoleType(2);
}
}
PageHelper.startPage(refundSearchParam.getPageNum(), refundSearchParam.getPageSize());
if (!refundSearchParam.getStatus().isEmpty()) {
refundSearchParam.setStatusStr(Arrays.asList(refundSearchParam.getStatus().split(",")));
......
......@@ -200,6 +200,10 @@ public class KylinRefundPerformancesAdminServiceImpl {
}
}
public ResponseDto ticketAuditAll(RefundBatchApplyParam refundBatchApplyParam) {
return ResponseDto.success();
}
public KylinOrderRefundBatchesVo detail(String refundBatchId) {
KylinOrderRefundBatches data = kylinOrderRefundBatchesMapper.selectOne(
new QueryWrapper<KylinOrderRefundBatches>()
......
......@@ -326,9 +326,9 @@ public class KylinRefundsStatusServiceImpl {
return true;
}
public boolean orderRefundChangeStatus(List<KylinOrderRefunds> refundList, String type, String reject, String refuse, String authId, String authName) {
KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds();
switch (type) {
public boolean orderRefundChangeStatus(List<KylinOrderRefunds> refundList, RefundApplyParam refundApplyParam, String authId, String authName) {
KylinOrderRefunds kylinOrderRefunds = KylinOrderRefunds.getNew();
switch (refundApplyParam.getType()) {
case "reapply":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY);
kylinOrderRefunds.setApplicantId(authId);
......@@ -340,21 +340,28 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefunds.setAuditorId(authId);
kylinOrderRefunds.setAuditorName(authName);
kylinOrderRefunds.setAuditorAt(LocalDateTime.now());
kylinOrderRefunds.setReject(reject);
kylinOrderRefunds.setReject(refundApplyParam.getReject());
break;
case "reject":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT);
kylinOrderRefunds.setAuditorId(authId);
kylinOrderRefunds.setAuditorName(authName);
kylinOrderRefunds.setAuditorAt(LocalDateTime.now());
kylinOrderRefunds.setReject(reject);
kylinOrderRefunds.setReject(refundApplyParam.getReject());
break;
case "ticketAudit":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_TICKET);
kylinOrderRefunds.setTicketAuditId(authId);
kylinOrderRefunds.setTicketAuditName(authName);
kylinOrderRefunds.setTicketAuditAt(LocalDateTime.now());
kylinOrderRefunds.setTicketAuditRemark(refundApplyParam.getTicketRemark());
break;
case "refuse":
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE);
kylinOrderRefunds.setExecutorId(authId);
kylinOrderRefunds.setExecutorName(authName);
kylinOrderRefunds.setExecutorAt(LocalDateTime.now());
kylinOrderRefunds.setRefuse(refuse);
kylinOrderRefunds.setRefuse(refundApplyParam.getRefuse());
break;
}
......@@ -370,7 +377,7 @@ public class KylinRefundsStatusServiceImpl {
new UpdateWrapper<KylinOrderRefunds>().in("order_refunds_id", orderRefundIds)
);
// 修改缓存
KylinOrderRefundsVo kylinOrderRefundsVo = new KylinOrderRefundsVo();
KylinOrderRefundsVo kylinOrderRefundsVo = KylinOrderRefundsVo.getNew();
BeanUtils.copyProperties(kylinOrderRefunds, kylinOrderRefundsVo);
kylinOrderRefundsVo.setUpdatedAt(LocalDateTime.now());
for (String refundId : orderRefundIds) {
......@@ -380,11 +387,6 @@ public class KylinRefundsStatusServiceImpl {
object
);
}
/*BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(kylinOrderRefundsVo));
UpdateResult updateResult = mongoTemplate.getCollection(KylinOrderRefundsVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderRefundsId").in(orderRefundIds)).getQueryObject(),
object
);*/
dataUtils.delOrderRefundVo(orderRefundIds);
dataUtils.delOrderRefundVoByOrderId(orderIds);
......@@ -392,13 +394,13 @@ public class KylinRefundsStatusServiceImpl {
}
@Async
public void orderTicketRefundUnfilled(List<KylinOrderRefunds> refundList, String refuse, String authId, String authName) {
public void orderTicketRefundUnfilled(List<KylinOrderRefunds> refundList, RefundApplyParam refundApplyParam, String authId, String authName) {
KylinOrderRefunds kylinOrderRefunds = new KylinOrderRefunds();
kylinOrderRefunds.setStatus(KylinTableStatusConst.ORDER_REFUND_STATUS_UNFILLED);
kylinOrderRefunds.setExecutorId(authId);
kylinOrderRefunds.setExecutorName(authName);
kylinOrderRefunds.setExecutorAt(LocalDateTime.now());
kylinOrderRefunds.setRefuse(refuse);
kylinOrderRefunds.setRefuse(refundApplyParam.getRefuse());
kylinOrderRefunds.setUpdatedAt(LocalDateTime.now());
for (KylinOrderRefunds refund : refundList) {
......@@ -416,14 +418,8 @@ public class KylinRefundsStatusServiceImpl {
params.add("paymentType", oderInfo.getPaymentType());
params.add("price", String.valueOf(refundPrice));
params.add("priceTotal", String.valueOf(oderInfo.getPriceTotal()));
// params.add("reason", refund.getReason());
params.add("reason", "按需退款");
/*String sign = StringUtils.Ksort(params);
sign = sign.concat("&key=").concat("R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V");
// sign = MD5.getStrMD5(sign);
sign = sign.toUpperCase();
params.add("sign", sign);*/
MultiValueMap<String, String> headers = new LinkedMultiValueMap();
// headers.add("Content-Type", "application/json;charset=UTF-8");
headers.add("Accept", "application/json;charset=UTF-8");
......
......@@ -126,6 +126,7 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
}
}
} catch (Exception e) {
log.error("getPerformancesListException", e);
}
return voList;
}
......
......@@ -58,6 +58,14 @@ public class OrderRefundDao implements Serializable {
private String refuse;
private String ticketAuditId;
private String ticketAuditName;
private LocalDateTime ticketAuditAt;
private String ticketAuditRemark;
private String refundType;
private String createdAt;
......@@ -98,6 +106,9 @@ public class OrderRefundDao implements Serializable {
case 8:
this.statusName="二审驳回退款";
break;
case 9:
this.statusName="已确认收货";
break;
default:
this.statusName="其他";
break;
......
......@@ -142,6 +142,26 @@ public class KylinOrderRefunds implements Serializable {
*/
private String refuse;
/**
* 票务审核人id
*/
private String ticketAuditId;
/**
* 票务审核人名称
*/
private String ticketAuditName;
/**
* 票务审核时间
*/
private LocalDateTime ticketAuditAt;
/**
* 票务审核备注
*/
private String ticketAuditRemark;
/**
* 票务/快递费/票和快递费
*/
......
......@@ -48,12 +48,32 @@
<if test="orderCode!=''">
AND b.order_code = #{orderCode}
</if>
<if test="status!=''">
AND a.status IN
<foreach collection="statusStr" item="status" index="index" open="(" close=")" separator=",">
${status}
</foreach>
</if>
<choose>
<when test="roleType!=''">
<if test="roleType == 1">
AND a.type = 3 AND a.status = 1
</if>
<if test="roleType == 2">
<if test="statusStr == '9'">
AND a.status = 9
</if>
<if test="statusStr 1= '1'">
AND a.status = 1 AND a.type != 3
</if>
<if test="statusStr != '1' and statusStr != '9'">
AND (a.status = 9 OR (a.status = 1 AND a.type != 3)
</if>
</if>
</when>
<otherwise>
<if test="status!=''">
AND a.status IN
<foreach collection="statusStr" item="status" index="index" open="(" close=")" separator=",">
${status}
</foreach>
</if>
</otherwise>
</choose>
</where>
ORDER BY mid DESC
</select>
......
......@@ -527,8 +527,6 @@
p.time_start ,
p.time_end ,
p.created_at,
p.created_at,
p.created_at,
oep.total1,
oep.total2,
......@@ -538,15 +536,20 @@
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
LEFT JOIN kylin_performance_relations AS pr ON p.performances_id = pr.performance_id
LEFT JOIN kylin_order_express_performances AS oep ON oep.performances_id = pr.performance_id
JOIN kylin_ticket_time_relation AS a ON a.performance_id = p.performances_id
JOIN kylin_ticket_relations AS b ON b.times_id = a.times_id
JOIN kylin_ticket_status AS c ON c.ticket_id = b.ticket_id
<where>
c.is_express = 1
<if test="title!=''">
AND title LIKE concat('%', #{title}, '%')
AND p.title LIKE concat('%', #{title}, '%')
</if>
<if test="performancesId!=''">
AND performances_id = #{performancesId}
AND p.performances_id = #{performancesId}
</if>
</where>
ORDER BY created_at DESC
GROUP BY p.performances_id
ORDER BY p.created_at DESC
</select>
<select id="countExpressNumber"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao">
......
......@@ -758,7 +758,7 @@ CREATE TABLE `kylin_order_refunds`
`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超时退款 2用户申请普通退款 3用户申请快递退款',
`applicant_id` varchar(255) NOT NULL DEFAULT '' COMMENT '申请人id',
`applicant_name` varchar(100) NOT NULL DEFAULT '' COMMENT '申请人名称',
`applicant_at` timestamp NULL DEFAULT NULL COMMENT '申请时间',
......
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