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

Commit a238d7ca authored by dongchun's avatar dongchun

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

parents 176494d7 dcdeb634
...@@ -36,6 +36,7 @@ public class KylinRedisConst { ...@@ -36,6 +36,7 @@ public class KylinRedisConst {
public static final String ORDER_REFUND_ADDRESS = "kylin:order:refund:address"; public static final String ORDER_REFUND_ADDRESS = "kylin:order:refund:address";
// 手续费 // 手续费
public static final String ORDER_REFUND_POUNDAGE = "kylin:order:poundage"; public static final String ORDER_REFUND_POUNDAGE = "kylin:order:poundage";
public static final String ORDER_REFUND_POUNDAGE_EXPLAIN = "kylin:order:poundageExplain";
public static final String USERID_BUY_INFO = "kylin:buy:userId:"; public static final String USERID_BUY_INFO = "kylin:buy:userId:";
public static final String IDCARD_BUY_INFO = "kylin:buy:idCard:"; public static final String IDCARD_BUY_INFO = "kylin:buy:idCard:";
......
...@@ -6,9 +6,12 @@ import lombok.Data; ...@@ -6,9 +6,12 @@ import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /**
* @version V1.0 * <p>
* @class: OrderRefundPoundage * 退款手续费说明
* @Copyright: LightNet @ Copyright (c) 2021 * </p>
*
* @author jiangxiulong
* @since 2021-10-13
*/ */
@Data @Data
public class OrderRefundPoundage implements Cloneable { public class OrderRefundPoundage implements Cloneable {
......
package com.liquidnet.service.kylin.dto.vo.admin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>
* 退款手续费说明
* </p>
*
* @author jiangxiulong
* @since 2021-10-13
*/
@Data
public class OrderRefundPoundageAll implements Serializable, Cloneable {
private static final long serialVersionUID = -5077177070181399707L;
@ApiModelProperty(value = "特殊说明")
private String explain;
@ApiModelProperty(value = "手续费列表")
private List<OrderRefundPoundage> orderRefundPoundageList;
private static final OrderRefundPoundageAll obj = new OrderRefundPoundageAll();
public static OrderRefundPoundageAll getNew() {
try {
return (OrderRefundPoundageAll) obj.clone();
} catch (CloneNotSupportedException e) {
return new OrderRefundPoundageAll();
}
}
}
package com.liquidnet.service.kylin.dto.vo.returns; package com.liquidnet.service.kylin.dto.vo.returns;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundageAll;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations; import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus; import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
...@@ -89,12 +90,15 @@ public class KylinOrderTicketPreVo implements Serializable, Cloneable { ...@@ -89,12 +90,15 @@ public class KylinOrderTicketPreVo implements Serializable, Cloneable {
private Integer isRefundExpress; private Integer isRefundExpress;
@ApiModelProperty(value = "手续费规则列表") @ApiModelProperty(value = "手续费规则列表")
private ArrayList<OrderRefundPoundage> refundPoundageList; private OrderRefundPoundageAll refundPoundageAll;
@ApiModelProperty(value = "订单使用优惠券列表") @ApiModelProperty(value = "订单使用优惠券列表")
private ArrayList<KylinOrderCoupons> orderCouponList; private ArrayList<KylinOrderCoupons> orderCouponList;
@ApiModelProperty(value = "退款快递统一寄回地址") @ApiModelProperty(value = "退款快递统一寄回地址")
private OrderRefundAddress refundAddress; private OrderRefundAddress refundAddress;
@ApiModelProperty(value = "快递状态")
private Integer expressStatus;
private static final KylinOrderTicketPreVo obj = new KylinOrderTicketPreVo(); private static final KylinOrderTicketPreVo obj = new KylinOrderTicketPreVo();
public static KylinOrderTicketPreVo getNew() { public static KylinOrderTicketPreVo getNew() {
......
...@@ -2,15 +2,24 @@ package com.liquidnet.client.admin.web.controller.zhengzai.tools; ...@@ -2,15 +2,24 @@ package com.liquidnet.client.admin.web.controller.zhengzai.tools;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IExportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; 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 java.util.List;
@Controller @Controller
@RequestMapping("/tools") @RequestMapping("/tools")
public class ToolsBaseController extends BaseController { public class ToolsBaseController extends BaseController {
private String prefix = "zhengzai/tools"; private String prefix = "zhengzai/tools";
@Autowired
private IExportService exportService;
@GetMapping() @GetMapping()
public String tools() { public String tools() {
...@@ -20,6 +29,7 @@ public class ToolsBaseController extends BaseController { ...@@ -20,6 +29,7 @@ public class ToolsBaseController extends BaseController {
@GetMapping(value = "/details/{id}") @GetMapping(value = "/details/{id}")
public String detailsRoadShow(@PathVariable("id") Integer id, ModelMap mmap) { public String detailsRoadShow(@PathVariable("id") Integer id, ModelMap mmap) {
if (id == 1) { if (id == 1) {
mmap.put("url", "/tools/export/mobile");
return prefix + "/fun1"; return prefix + "/fun1";
} else { } else {
return prefix + "/edit"; return prefix + "/edit";
...@@ -28,8 +38,23 @@ public class ToolsBaseController extends BaseController { ...@@ -28,8 +38,23 @@ public class ToolsBaseController extends BaseController {
@PostMapping("/export/mobile") @PostMapping("/export/mobile")
@ResponseBody @ResponseBody
public AjaxResult exportMobile(Integer mobileType) { public AjaxResult exportMobile(Integer mobileType, String performanceId) {
System.out.println(mobileType); if (performanceId == null || performanceId.trim().equals("")) {
return toAjax(mobileType); return error("演出id有误");
}
List<OrderExportVo> list;
if (mobileType == 1) {//购票用户
list = exportService.exportOrderByPerformanceIdPay(performanceId);
} else if (mobileType == 2) {//下单用户
list = exportService.exportOrderByPerformanceIdAll(performanceId);
} else {
return error("查无订单");
}
if (list.size() == 0) {
return error("查无订单");
}
ExcelUtil<OrderExportVo> util = new ExcelUtil(OrderExportVo.class);
return util.exportExcel(list, list.get(0).getPerformanceTitle() + "-" + mobileType);
} }
} }
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org"> <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head> <head>
<th:block th:include="include :: header('工具库')"/> <th:block th:include="include :: header('工具库')"/>
</head> </head>
...@@ -7,27 +7,36 @@ ...@@ -7,27 +7,36 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="form-group"> <div class="form-group">
<div class="radio check-box"> <div class="radio check-box">
<input type="radio" value="1" name="mobileType" checked> 购票用户</label> <input type="radio" value="1" name="mobileType" checked> 支付用户</label>
</div> </div>
<div class="radio check-box"> <div class="radio check-box">
<input type="radio" value="2" name="mobileType"> 下单用户</label> <input type="radio" value="2" name="mobileType"> 全部用户</label>
</div>
</div>
<div class="form-group">
<label class="control-label">演出id:</label>
<div class="input-group date">
<input id="performanceId" class="form-control" type="text">
</div> </div>
</div> </div>
</div> </div>
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx + "/tools";
function submitHandler() { var options = {
// $.operate.save(prefix + "/export/mobile", $('#form-fun1-edit').serialize()); modalName: "订单手机号",
exportUrl:[[${url}]],
}
$.table.init(options);
function submitHandler() {
var param = { var param = {
"mobileType": document.getElementsByName("mobileType")[0].checked ? 1 : 2 "mobileType": document.getElementsByName("mobileType")[0].checked ? 1 : 2,
"performanceId": $('#performanceId').val()
}; };
// $.operate.save(prefix + "/export/mobile", param); $.table.exportExcel("", param)
$.operate.post(prefix + "/export/mobile", param, function (res) { // $.operate.post([[${url}]], param, function (res) {
}); // });
} }
</script> </script>
</body> </body>
......
...@@ -28,8 +28,7 @@ ...@@ -28,8 +28,7 @@
</div> </div>
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx+"tools/"; var prefix = ctx + "tools/";
console.log(ctx);
var options = { var options = {
url: prefix, url: prefix,
modalName: "", modalName: "",
......
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderExportVo implements Serializable, Cloneable{
@Excel(name = "演出名称", cellType = Excel.ColumnType.STRING)
private String performanceTitle;
@Excel(name = "手机号", cellType = Excel.ColumnType.STRING)
private String userMobile;
@Excel(name = "姓名", cellType = Excel.ColumnType.STRING)
private String userName;
private static final OrderExportVo obj = new OrderExportVo();
public static OrderExportVo getNew() {
try {
return (OrderExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new OrderExportVo();
}
public OrderExportVo copyOrderExportVo(OrderExportDao source) {
this.setPerformanceTitle(source.getPerformanceTitle());
this.setUserMobile(source.getUserMobile());
this.setUserName(source.getUserName());
return this;
}
}
package com.liquidnet.client.admin.zhengzai.kylin.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import java.util.List;
public interface IExportService {
List<OrderExportVo> exportOrderByPerformanceIdAll(String performancesId);
List<OrderExportVo> exportOrderByPerformanceIdPay(String performancesId);
}
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.core.type.TypeReference;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.exception.BusinessException;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IExportService;
import com.liquidnet.client.admin.zhengzai.kylin.service.IImportService;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils;
import com.liquidnet.client.admin.zhengzai.kylin.utils.OrderUtils;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class ExportServiceImpl implements IExportService {
@Autowired
KylinPerformancesMapper performancesMapper;
@Override
public List<OrderExportVo> exportOrderByPerformanceIdAll(String performancesId) {
List<OrderExportDao> list = performancesMapper.exportOrderByPerformanceIdAll(performancesId);
List<OrderExportVo> voList = new ArrayList();
for (OrderExportDao item :list){
voList.add(OrderExportVo.getNew().copyOrderExportVo(item));
}
return voList;
}
@Override
public List<OrderExportVo> exportOrderByPerformanceIdPay(String performancesId) {
List<OrderExportDao> list = performancesMapper.exportOrderByPerformanceIdPay(performancesId);
List<OrderExportVo> voList = new ArrayList();
for (OrderExportDao item :list){
voList.add(OrderExportVo.getNew().copyOrderExportVo(item));
}
return voList;
}
}
package com.liquidnet.service.kylin.dao;
import lombok.Data;
@Data
public class OrderExportDao {
private String performanceTitle;
private String userMobile;
private String userName;
}
...@@ -52,4 +52,7 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> { ...@@ -52,4 +52,7 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<PerformanceExpressPerformanceListAdminDao> performanceExpressPerformanceList(Map<String, Object> map); List<PerformanceExpressPerformanceListAdminDao> performanceExpressPerformanceList(Map<String, Object> map);
PerformanceExpressPerformanceListAdminDao countExpressNumber(String performancesId); PerformanceExpressPerformanceListAdminDao countExpressNumber(String performancesId);
List<OrderExportDao> exportOrderByPerformanceIdAll(String performancesId);
List<OrderExportDao> exportOrderByPerformanceIdPay(String performancesId);
} }
...@@ -280,7 +280,7 @@ ...@@ -280,7 +280,7 @@
FROM kylin_order_tickets AS ot FROM kylin_order_tickets AS ot
inner JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id inner JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
inner JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id inner JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
WHERE status = 0 AND NOW() > DATE_SUB(ot.created_at, INTERVAL -(pay_countdown_minute + 1) MINUTE)) as s WHERE status = 0 AND ot.coupon_type !='exchange' AND NOW() > DATE_SUB(ot.created_at, INTERVAL -(pay_countdown_minute + 1) MINUTE)) as s
left JOIN kylin_order_coupons AS oc ON oc.order_id = s.order_tickets_id left JOIN kylin_order_coupons AS oc ON oc.order_id = s.order_tickets_id
<if test="userId!=''"> <if test="userId!=''">
AND user_id = #{userId} AND user_id = #{userId}
......
...@@ -47,6 +47,12 @@ ...@@ -47,6 +47,12 @@
<result column="title" property="title"/> <result column="title" property="title"/>
</resultMap> </resultMap>
<resultMap id="OrderExportDaoResult" type="com.liquidnet.service.kylin.dao.OrderExportDao">
<result column="performance_title" property="performanceTitle"/>
<result column="user_mobile" property="userMobile"/>
<result column="user_name" property="userName"/>
</resultMap>
<resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao"> <resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
<result column="performances_id" property="performancesId"/> <result column="performances_id" property="performancesId"/>
<result column="title" property="title"/> <result column="title" property="title"/>
...@@ -278,7 +284,8 @@ ...@@ -278,7 +284,8 @@
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
WHERE WHERE
(ots.`status` = 1 or ots.`status` = 0 or ots.`status` = 3 or ots.`status` = 6) and coupon_type ='no' and ots.transfer_status in (0,1,2,5) (ots.`status` = 1 or ots.`status` = 0 or ots.`status` = 3 or ots.`status` = 6) and coupon_type ='no' and
ots.transfer_status in (0,1,2,5)
GROUP BY otr.performance_id GROUP BY otr.performance_id
) AS ot ON ot.performance_id = p.performances_id ) AS ot ON ot.performance_id = p.performances_id
<where> <where>
...@@ -354,7 +361,8 @@ ...@@ -354,7 +361,8 @@
INNER JOIN kylin_tickets AS t ON t.tickets_id = tr.ticket_id INNER JOIN kylin_tickets AS t ON t.tickets_id = tr.ticket_id
INNER JOIN kylin_ticket_status AS ts ON ts.ticket_id = tr.ticket_id INNER JOIN kylin_ticket_status AS ts ON ts.ticket_id = tr.ticket_id
<where> <where>
<foreach collection="performanceList" item="performanceIds" index="index" open="performances_id in (" close=")" separator=","> <foreach collection="performanceList" item="performanceIds" index="index" open="performances_id in ("
close=")" separator=",">
${performanceIds} ${performanceIds}
</foreach> </foreach>
</where> </where>
...@@ -518,7 +526,8 @@ ...@@ -518,7 +526,8 @@
</where> </where>
order by sponsor_id order by sponsor_id
</select> </select>
<select id="performanceExpressPerformanceList" resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao"> <select id="performanceExpressPerformanceList"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao">
SELECT SELECT
p.performances_id , p.performances_id ,
p.title , p.title ,
...@@ -544,7 +553,8 @@ ...@@ -544,7 +553,8 @@
GROUP BY p.performances_id GROUP BY p.performances_id
ORDER BY p.created_at DESC ORDER BY p.created_at DESC
</select> </select>
<select id="countExpressNumber" resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao"> <select id="countExpressNumber"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao">
SELECT SELECT
COUNT(*) total_number COUNT(*) total_number
FROM FROM
...@@ -558,4 +568,23 @@ ...@@ -558,4 +568,23 @@
AND ots.transfer_status IN (0, 1, 3, 5) AND ots.transfer_status IN (0, 1, 3, 5)
AND ot.get_ticket_type = 'express' AND ot.get_ticket_type = 'express'
</select> </select>
<select id="exportOrderByPerformanceIdAll" resultMap="OrderExportDaoResult">
SELECT performance_title,user_mobile,user_name
FROM kylin_order_tickets kot
INNER JOIN kylin_order_ticket_relations as kotr on kotr.order_id = kot.order_tickets_id
INNER JOIN kylin_order_ticket_status as kots on kots.order_id = kot.order_tickets_id
WHERE performance_id = #{performancesId}
GROUP BY user_mobile;
</select>
<select id="exportOrderByPerformanceIdPay" resultMap="OrderExportDaoResult">
SELECT performance_title,user_mobile,user_name
FROM kylin_order_tickets kot
INNER JOIN kylin_order_ticket_relations as kotr on kotr.order_id = kot.order_tickets_id
INNER JOIN kylin_order_ticket_status as kots on kots.order_id = kot.order_tickets_id
WHERE performance_id = #{performancesId}
AND status IN (1, 3)
GROUP BY user_mobile;
</select>
</mapper> </mapper>
...@@ -9,6 +9,7 @@ import com.liquidnet.service.base.constant.MQConst; ...@@ -9,6 +9,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress; import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage; import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundageAll;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo; import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
...@@ -117,16 +118,19 @@ public class KylinOrderTicketsRefundServiceImpl { ...@@ -117,16 +118,19 @@ public class KylinOrderTicketsRefundServiceImpl {
orderTicketVo.setOrderCode(orderTicketVo.getOrderCode().substring(orderTicketVo.getOrderCode().length() - 10)); orderTicketVo.setOrderCode(orderTicketVo.getOrderCode().substring(orderTicketVo.getOrderCode().length() - 10));
} }
// 手续费相关 // 手续费相关
ArrayList<OrderRefundPoundage> refundPoundage = dataUtils.getRefundPoundage(performanceVo.getIsRefundPoundage()); OrderRefundPoundageAll refundPoundageAll = dataUtils.getRefundPoundageAll(performanceVo.getIsRefundPoundage());
// 券 // 券
ArrayList<KylinOrderCoupons> orderCoupon = dataUtils.getOrderCoupon(orderId); ArrayList<KylinOrderCoupons> orderCoupon = dataUtils.getOrderCoupon(orderId);
// 快递地址 // 快递地址
OrderRefundAddress refundAddress = dataUtils.getRefundAddress(orderTicketVo.getGetTicketType()); OrderRefundAddress refundAddress = dataUtils.getRefundAddress(orderTicketVo.getGetTicketType());
// 快递状态
Integer orderExpressStatus = dataUtils.getOrderExpressInfo(orderTicketVo.getOrderTicketsId());
vo.setExpressStatus(orderExpressStatus);
// 整理返回数据 // 整理返回数据
BeanUtils.copyProperties(orderTicketVo, vo); BeanUtils.copyProperties(orderTicketVo, vo);
vo.setIsRefundPoundage(performanceVo.getIsRefundPoundage()); vo.setIsRefundPoundage(performanceVo.getIsRefundPoundage());
vo.setIsRefundVoucher(performanceVo.getIsRefundVoucher()); vo.setIsRefundVoucher(performanceVo.getIsRefundVoucher());
vo.setRefundPoundageList(refundPoundage); vo.setRefundPoundageAll(refundPoundageAll);
vo.setOrderCouponList(orderCoupon); vo.setOrderCouponList(orderCoupon);
vo.setRefundAddress(refundAddress); vo.setRefundAddress(refundAddress);
vo.setIsTrueName(performanceVo.getIsTrueName()); vo.setIsTrueName(performanceVo.getIsTrueName());
......
...@@ -310,7 +310,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -310,7 +310,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
if (null != performanceVo.getIsCanRefund() && performanceVo.getIsCanRefund() == 1) { if (null != performanceVo.getIsCanRefund() && performanceVo.getIsCanRefund() == 1) {
LocalDateTime refundOpenDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundOpenTime()); LocalDateTime refundOpenDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundOpenTime());
LocalDateTime refundCloseDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundCloseTime()); LocalDateTime refundCloseDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundCloseTime());
if (LocalDateTime.now().isAfter(refundOpenDate) && LocalDateTime.now().isBefore(refundCloseDate) && orderTicketVo.getExpressAddress().trim().equals("") if (LocalDateTime.now().isAfter(refundOpenDate) && LocalDateTime.now().isBefore(refundCloseDate)
&& ticketVo.getCounts() == 1 && lockPrice.compareTo(orderTicketVo.getPriceActual()) != 0 && ticketVo.getCounts() == 1 && lockPrice.compareTo(orderTicketVo.getPriceActual()) != 0
&& (orderTicketVo.getStatus().equals(1) || orderTicketVo.getStatus().equals(3) || orderTicketVo.getStatus().equals(6)) && (orderTicketVo.getStatus().equals(1) || orderTicketVo.getStatus().equals(3) || orderTicketVo.getStatus().equals(6))
&& (orderTicketVo.getTransferStatus().equals(0) || orderTicketVo.getTransferStatus().equals(5))) { && (orderTicketVo.getTransferStatus().equals(0) || orderTicketVo.getTransferStatus().equals(5))) {
...@@ -353,7 +353,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -353,7 +353,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
} else { } else {
vo.setIsCanBack(0); vo.setIsCanBack(0);
} }
// 快递票不可退 // 快递票不可退
if (orderTicketVo.getGetTicketType().equals("express")) { if (orderTicketVo.getGetTicketType().equals("express")) {
vo.setIsCanBack(0); vo.setIsCanBack(0);
} }
......
...@@ -8,6 +8,7 @@ import com.liquidnet.service.kylin.constant.KylinRedisConst; ...@@ -8,6 +8,7 @@ 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.dto.vo.admin.OrderRefundAddress; import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage; import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundageAll;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo; import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo; import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.mongo.*; import com.liquidnet.service.kylin.dto.vo.mongo.*;
...@@ -539,7 +540,7 @@ public class DataUtils { ...@@ -539,7 +540,7 @@ public class DataUtils {
BigDecimal orderLockPrice = BigDecimal.valueOf(0); BigDecimal orderLockPrice = BigDecimal.valueOf(0);
for (KylinOrderRefundsVo refundVo : kylinOrderRefundsVoBaseList) { for (KylinOrderRefundsVo refundVo : kylinOrderRefundsVoBaseList) {
int status = refundVo.getStatus(); int status = refundVo.getStatus();
if (status != KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL && status != KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT) { //退款流程未完成 金额锁定 if (status != KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL && status != KylinTableStatusConst.ORDER_REFUND_STATUS_REJECT && status != KylinTableStatusConst.ORDER_REFUND_STATUS_REFUNDED) { //退款流程未完成 金额锁定
List<KylinOrderRefundEntitiesVo> refundEntitiesVos = refundVo.getOrderRefundEntitiesVoList(); List<KylinOrderRefundEntitiesVo> refundEntitiesVos = refundVo.getOrderRefundEntitiesVoList();
for (KylinOrderRefundEntitiesVo refundEntitiesVo : refundEntitiesVos) { for (KylinOrderRefundEntitiesVo refundEntitiesVo : refundEntitiesVos) {
if (refundEntitiesVo.getOrderTicketEntitiesId().equals(orderTicketEntitiesId)) { if (refundEntitiesVo.getOrderTicketEntitiesId().equals(orderTicketEntitiesId)) {
...@@ -716,7 +717,7 @@ public class DataUtils { ...@@ -716,7 +717,7 @@ public class DataUtils {
vo3.setDay(0); vo3.setDay(0);
vo3.setContent("距离演出开始日期≤3天(含演出当天)"); vo3.setContent("距离演出开始日期≤3天(含演出当天)");
vo3.setPresent(BigDecimal.valueOf(1)); vo3.setPresent(BigDecimal.valueOf(1));
vo3.setIsCanRefund(1); vo3.setIsCanRefund(0);
orderRefundPoundageArrayList.add(vo1); orderRefundPoundageArrayList.add(vo1);
orderRefundPoundageArrayList.add(vo2); orderRefundPoundageArrayList.add(vo2);
orderRefundPoundageArrayList.add(vo3); orderRefundPoundageArrayList.add(vo3);
...@@ -729,6 +730,24 @@ public class DataUtils { ...@@ -729,6 +730,24 @@ public class DataUtils {
return orderRefundPoundageArrayList; return orderRefundPoundageArrayList;
} }
} }
// 获取手续费ALL说明
public OrderRefundPoundageAll getRefundPoundageAll(Integer isRefundPoundage) {
ArrayList<OrderRefundPoundage> refundPoundage = getRefundPoundage(isRefundPoundage);
OrderRefundPoundageAll aNew = OrderRefundPoundageAll.getNew();
aNew.setOrderRefundPoundageList(refundPoundage);
Object obj = redisUtil.get(KylinRedisConst.ORDER_REFUND_POUNDAGE_EXPLAIN);
if (null == obj) {
String explain = "1.存在异常订购行为的订单,平台有权不予办理退票。\n2.不支持退票示例:如演出时间为5月1日,则不支持退票的时间范围为4月28日-30日及5月1日(演出当天)。";
redisUtil.set(KylinRedisConst.ORDER_REFUND_POUNDAGE_EXPLAIN, explain);
aNew.setExplain(explain);
} else {
String explain = (String) obj;
aNew.setExplain(explain);
}
return aNew;
}
// 获取订单券的使用情况 // 获取订单券的使用情况
public ArrayList<KylinOrderCoupons> getOrderCoupon(String orderId) { public ArrayList<KylinOrderCoupons> getOrderCoupon(String orderId) {
......
...@@ -230,6 +230,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -230,6 +230,7 @@ public class KylinRefundsStatusServiceImpl {
} }
} }
// 退所有优惠券 提前购优惠卷不退 // 退所有优惠券 提前购优惠卷不退
if (newStatus == KylinTableStatusConst.ORDER_STATUS4) {
KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(orderRelations.getPerformanceId()); KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(orderRelations.getPerformanceId());
if (performanceVo.getIsRefundVoucher() > 0) { if (performanceVo.getIsRefundVoucher() > 0) {
ArrayList<KylinOrderCoupons> orderCoupon = dataUtils.getOrderCoupon(orderTicketsId); ArrayList<KylinOrderCoupons> orderCoupon = dataUtils.getOrderCoupon(orderTicketsId);
...@@ -243,8 +244,8 @@ public class KylinRefundsStatusServiceImpl { ...@@ -243,8 +244,8 @@ public class KylinRefundsStatusServiceImpl {
ArrayList<BackCouponParam> params = new ArrayList(); ArrayList<BackCouponParam> params = new ArrayList();
params.add(param); params.add(param);
String jsonString = JSON.toJSONString(params); String jsonString = JSON.toJSONString(params);
log.info("订单退款回调orderTicketRefunded-退所有优惠券:[orderTicketsId={}, [params={}, candyUrl={}]", log.info("订单退款回调orderTicketRefunded-退所有优惠券:[orderTicketsId={}, uCouponIdsStr={}, uid={}, candyUrl={}]",
orderTicketsId, params, candyUrl); orderTicketsId, uCouponIdsStr, orderInfo.getUserId(), candyUrl);
try { try {
String returnData = HttpUtil.postRaw(candyUrl + "/candy-coupon/useBack", jsonString, null); String returnData = HttpUtil.postRaw(candyUrl + "/candy-coupon/useBack", jsonString, null);
log.info("订单退款回调退券结果:[returnData={}]", returnData); log.info("订单退款回调退券结果:[returnData={}]", returnData);
...@@ -254,6 +255,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -254,6 +255,7 @@ public class KylinRefundsStatusServiceImpl {
} }
} }
} }
}
return true; return true;
} }
......
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