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

Commit 0fb5b506 authored by jiangxiulong's avatar jiangxiulong

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

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