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

Commit 934b40e1 authored by jiangxiulong's avatar jiangxiulong

kylin用户发起退款拿出来 手续费规则

parent bd6e74fd
...@@ -31,26 +31,6 @@ public interface IKylinOrderTicketsService { ...@@ -31,26 +31,6 @@ public interface IKylinOrderTicketsService {
//订单未支付数量 //订单未支付数量
ResponseDto<Integer> orderUnPayCount(); ResponseDto<Integer> orderUnPayCount();
//想要退款详情
ResponseDto<KylinOrderTicketPreVo> toOrderRefundDetails(String orderId);
//退款详情
ResponseDto<OrderRefundVo> orderRefundDetails(String orderId, String orderRefundId);
/**
* 发起退款
*
* @param orderId 订单id
* @param orderTicketEntitiesId 票单id
* @param reason 退款原因
* @param picList 证据截图
* @return 是否成功
*/
ResponseDto sendOrderRefund(String orderId, String orderTicketEntitiesId, String reason, String picList, Integer sendExpressType, String expressNumber, String expressContacts, String expressPhone, String sendExpressAddress, String appointmentTime);
//退款撤回
ResponseDto<Boolean> orderRefundWithdraw(String orderRefundsId);
//发起转赠订单 //发起转赠订单
ResponseDto<String> orderTransfer(String orderId, String transferUid, String transferMobile); ResponseDto<String> orderTransfer(String orderId, String transferUid, String transferMobile);
......
...@@ -352,36 +352,6 @@ public class DataUtils { ...@@ -352,36 +352,6 @@ public class DataUtils {
return ret; return ret;
} }
// 获取手续费
public ArrayList<OrderRefundPoundage> getRefundPoundage(){
Object obj = redisUtil.get(KylinRedisConst.ORDER_REFUND_POUNDAGE);
if(obj==null){
ArrayList<OrderRefundPoundage> voList = new ArrayList();
OrderRefundPoundage vo1 = OrderRefundPoundage.getNew();
vo1.setDay(15);
vo1.setContent("距离演出开始日期>15天");
vo1.setPresent(BigDecimal.valueOf(0.1));
vo1.setIsCanRefund(1);
OrderRefundPoundage vo2 = OrderRefundPoundage.getNew();
vo2.setDay(3);
vo2.setContent("距离演出开始日期>3天-15天(含15天)");
vo2.setPresent(BigDecimal.valueOf(0.5));
vo2.setIsCanRefund(1);
OrderRefundPoundage vo3 = OrderRefundPoundage.getNew();
vo3.setDay(0);
vo3.setContent("距离演出开始日期≤3天(含演出当天)");
vo3.setPresent(BigDecimal.valueOf(0));
vo3.setIsCanRefund(1);
voList.add(vo1);
voList.add(vo2);
voList.add(vo3);
redisUtil.set(KylinRedisConst.ORDER_REFUND_POUNDAGE,voList);
return voList;
}else{
return (ArrayList<OrderRefundPoundage>)obj;
}
}
// 获取 快递地址 // 获取 快递地址
public OrderRefundAddress getRefundAddress(){ public OrderRefundAddress getRefundAddress(){
Object obj = redisUtil.get(KylinRedisConst.ORDER_REFUND_ADDRESS); Object obj = redisUtil.get(KylinRedisConst.ORDER_REFUND_ADDRESS);
......
...@@ -5,20 +5,13 @@ import com.github.pagehelper.PageInfo; ...@@ -5,20 +5,13 @@ import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayAgainParam;
import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.returns.*; import com.liquidnet.service.kylin.dto.vo.returns.*;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsService;
import com.liquidnet.service.kylin.service.impl.KylinOrderTicketsServiceImpl;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.HashMap; import java.util.HashMap;
...@@ -86,67 +79,6 @@ public class KylinOrderTicketsController { ...@@ -86,67 +79,6 @@ public class KylinOrderTicketsController {
} }
} }
@GetMapping("toOrderRefundDetails")
@ApiOperation("想要退款订单详情")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<KylinOrderTicketPreVo> toOrderRefundDetails(
@RequestParam(value = "orderId", required = false) @NotNull(message = "订单ID不能为空") String orderId
) {
return orderTicketsService.toOrderRefundDetails(orderId);
}
@PostMapping("sendOrderRefunds")
@ApiOperation("发起退款申请")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "orderId", value = "订单ID", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "orderTicketEntitiesId", value = "订单入场人ID", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "reason", value = "退款申请备注", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "picList", value = "图片"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "sendExpressType", value = "快递方式 1上门取件 2自主发货"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressNumber", value = "自主发货的顺丰订单号"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressContacts", value = "发货人姓名"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressPhone", value = "发货人联系方式"),
@ApiImplicitParam(type = "form", dataType = "String", name = "sendExpressAddress", value = "取件地址"),
@ApiImplicitParam(type = "form", dataType = "String", name = "appointmentTime", value = "预约取件时间")
})
public ResponseDto sendOrderRefund(
@RequestParam(value = "orderId", required = true) @NotNull(message = "订单ID不能为空") String orderId,
@RequestParam(value = "orderTicketEntitiesId", required = true) @NotNull(message = "票单ID不能为空") String orderTicketEntitiesId,
@RequestParam(value = "reason", required = true) @NotNull(message = "退款原因不能为空") String reason,
@RequestParam(value = "picList", required = false) String picList,
@RequestParam(value = "sendExpressType", required = false) Integer sendExpressType,
@RequestParam(value = "expressNumber", required = false) String expressNumber,
@RequestParam(value = "expressContacts", required = false) String expressContacts,
@RequestParam(value = "expressPhone", required = false) String expressPhone,
@RequestParam(value = "sendExpressAddress", required = false) String sendExpressAddress,
@RequestParam(value = "appointmentTime", required = false) String appointmentTime
) {
// 退款
return orderTicketsService.sendOrderRefund(
orderId, orderTicketEntitiesId, reason, picList,
sendExpressType, expressNumber, expressContacts, expressPhone, sendExpressAddress, appointmentTime
);
}
@GetMapping("orderRefundDetails")
@ApiOperation("退款申请详情")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<OrderRefundVo> orderRefundDetails(@RequestParam(value = "orderId", required = true) @NotNull(message = "订单ID不能为空") String orderId,
@RequestParam(value = "orderRefundId", required = true) @NotNull(message = "退款订单ID不能为空") String orderRefundId) {
return orderTicketsService.orderRefundDetails(orderId, orderRefundId);
}
@PostMapping("orderRefundWithdraw")
@ApiOperation("发起退款撤回")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Boolean> orderRefundWithdraw(@RequestParam(value = "orderRefundId", required = true) @NotNull(message = "退款订单ID不能为空") String orderRefundId) {
return orderTicketsService.orderRefundWithdraw(orderRefundId);
}
@GetMapping("orderUnPayCount") @GetMapping("orderUnPayCount")
@ApiOperation("待支付演出订单数量") @ApiOperation("待支付演出订单数量")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
......
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderTicketPreVo;
import com.liquidnet.service.kylin.dto.vo.returns.OrderRefundVo;
import com.liquidnet.service.kylin.service.impl.KylinOrderTicketsRefundServiceImpl;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* <p>
* 订单用户申请退款 前端控制器
* </p>
*
* @author 姜秀龙
* @since 2021-09-16
*/
@Api(tags = "前端-订单相关")
@RestController
@RequestMapping("orderRefund")
@Validated
public class KylinOrderTicketsRefundController {
@Autowired
KylinOrderTicketsRefundServiceImpl kylinOrderTicketsRefundService;
@GetMapping("toOrderRefundDetails")
@ApiOperation("想要退款订单详情")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<KylinOrderTicketPreVo> toOrderRefundDetails(
@RequestParam(value = "orderId", required = false) @NotNull(message = "订单ID不能为空") String orderId
) {
return kylinOrderTicketsRefundService.toOrderRefundDetails(orderId);
}
@PostMapping("sendOrderRefunds")
@ApiOperation("发起退款申请")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "orderId", value = "订单ID", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "orderTicketEntitiesId", value = "订单入场人ID", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "reason", value = "退款申请备注", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "picList", value = "图片"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "sendExpressType", value = "快递方式 1上门取件 2自主发货"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressNumber", value = "自主发货的顺丰订单号"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressContacts", value = "发货人姓名"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressPhone", value = "发货人联系方式"),
@ApiImplicitParam(type = "form", dataType = "String", name = "sendExpressAddress", value = "取件地址"),
@ApiImplicitParam(type = "form", dataType = "String", name = "appointmentTime", value = "预约取件时间")
})
public ResponseDto sendOrderRefund(
@RequestParam(value = "orderId", required = true) @NotNull(message = "订单ID不能为空") String orderId,
@RequestParam(value = "orderTicketEntitiesId", required = true) @NotNull(message = "票单ID不能为空") String orderTicketEntitiesId,
@RequestParam(value = "reason", required = true) @NotNull(message = "退款原因不能为空") String reason,
@RequestParam(value = "picList", required = false) String picList,
@RequestParam(value = "sendExpressType", required = false) Integer sendExpressType,
@RequestParam(value = "expressNumber", required = false) String expressNumber,
@RequestParam(value = "expressContacts", required = false) String expressContacts,
@RequestParam(value = "expressPhone", required = false) String expressPhone,
@RequestParam(value = "sendExpressAddress", required = false) String sendExpressAddress,
@RequestParam(value = "appointmentTime", required = false) String appointmentTime
) {
// 退款
return kylinOrderTicketsRefundService.sendOrderRefund(
orderId, orderTicketEntitiesId, reason, picList,
sendExpressType, expressNumber, expressContacts, expressPhone, sendExpressAddress, appointmentTime
);
}
@GetMapping("orderRefundDetails")
@ApiOperation("退款申请详情")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<OrderRefundVo> orderRefundDetails(@RequestParam(value = "orderId", required = true) @NotNull(message = "订单ID不能为空") String orderId,
@RequestParam(value = "orderRefundId", required = true) @NotNull(message = "退款订单ID不能为空") String orderRefundId) {
return kylinOrderTicketsRefundService.orderRefundDetails(orderId, orderRefundId);
}
@PostMapping("orderRefundWithdraw")
@ApiOperation("发起退款撤回")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Boolean> orderRefundWithdraw(@RequestParam(value = "orderRefundId", required = true) @NotNull(message = "退款订单ID不能为空") String orderRefundId) {
return kylinOrderTicketsRefundService.orderRefundWithdraw(orderRefundId);
}
}
...@@ -131,7 +131,7 @@ public class DataUtils { ...@@ -131,7 +131,7 @@ public class DataUtils {
List<KylinOrderListVo> voList = mongoTemplate.find(Query.query(Criteria.where("userId").is(userId)) List<KylinOrderListVo> voList = mongoTemplate.find(Query.query(Criteria.where("userId").is(userId))
.with(Sort.by(Sort.Direction.DESC, "createdAt")).limit(40), .with(Sort.by(Sort.Direction.DESC, "createdAt")).limit(40),
KylinOrderListVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinOrderListVo.class, KylinOrderTicketVo.class.getSimpleName());
for (KylinOrderListVo item : voList){ for (KylinOrderListVo item : voList) {
item.setStatus(item.getStatus()); item.setStatus(item.getStatus());
} }
redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList); redisUtil.set(KylinRedisConst.ORDER_LIST + userId, voList);
...@@ -151,7 +151,7 @@ public class DataUtils { ...@@ -151,7 +151,7 @@ public class DataUtils {
return (KylinOrderTicketVo) obj; return (KylinOrderTicketVo) obj;
} else { } else {
KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinOrderTicketVo ticketData = mongoTemplate.findOne(Query.query(Criteria.where("orderTicketsId").is(orderId)), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
if(ticketData==null){ if (ticketData == null) {
return null; return null;
} }
List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName()); List<KylinOrderTicketEntitiesVo> kylinOrderTicketEntitiesVoList = mongoTemplate.find(Query.query(Criteria.where("orderId").is(orderId)), KylinOrderTicketEntitiesVo.class, KylinOrderTicketEntitiesVo.class.getSimpleName());
...@@ -521,7 +521,7 @@ public class DataUtils { ...@@ -521,7 +521,7 @@ public class DataUtils {
/** /**
* 获取可退款票单价格 * 获取可退款票单价格
* *
* @param orderTicketVo 订单vo数据 * @param orderTicketVo 订单vo数据
* @param orderTicketEntitiesId 票单id * @param orderTicketEntitiesId 票单id
* @return * @return
*/ */
...@@ -596,11 +596,11 @@ public class DataUtils { ...@@ -596,11 +596,11 @@ public class DataUtils {
*/ */
public int getPerformanceIsTrueName(String performanceId) { public int getPerformanceIsTrueName(String performanceId) {
Object obj = redisUtil.get(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId); Object obj = redisUtil.get(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId);
if (obj!=null) { if (obj != null) {
return (int)obj; return (int) obj;
}else{ } else {
int isTrueName = getPerformanceVo(performanceId).getIsTrueName(); int isTrueName = getPerformanceVo(performanceId).getIsTrueName();
redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId,isTrueName); redisUtil.set(KylinRedisConst.PERFORMANCES_TRUE_NAME + performanceId, isTrueName);
return isTrueName; return isTrueName;
} }
} }
...@@ -670,8 +670,8 @@ public class DataUtils { ...@@ -670,8 +670,8 @@ public class DataUtils {
public List<KylinPerformanceVo> myPerformancesList(String userId) { public List<KylinPerformanceVo> myPerformancesList(String userId) {
Query queryNew = new Query(); Query queryNew = new Query();
queryNew.addCriteria(Criteria.where("userId").is(userId)); queryNew.addCriteria(Criteria.where("userId").is(userId));
List<String> performanceIdList = mongoTemplate.findDistinct(queryNew, "performanceId", "KylinOrderTicketVo",KylinOrderTicketVo.class, String.class); List<String> performanceIdList = mongoTemplate.findDistinct(queryNew, "performanceId", "KylinOrderTicketVo", KylinOrderTicketVo.class, String.class);
log.info("myPerformancesList performanceIdList.size:{}",performanceIdList.size()); log.info("myPerformancesList performanceIdList.size:{}", performanceIdList.size());
// 固定条件 // 固定条件
Query query = getCommonWhere(); Query query = getCommonWhere();
...@@ -696,6 +696,25 @@ public class DataUtils { ...@@ -696,6 +696,25 @@ public class DataUtils {
if (isRefundPoundage > 0) { // 开启了演出退票有手续费 if (isRefundPoundage > 0) { // 开启了演出退票有手续费
Object obj = redisUtil.get(KylinRedisConst.ORDER_REFUND_POUNDAGE); Object obj = redisUtil.get(KylinRedisConst.ORDER_REFUND_POUNDAGE);
if (obj == null) { if (obj == null) {
OrderRefundPoundage vo1 = OrderRefundPoundage.getNew();
vo1.setDay(15);
vo1.setContent("距离演出开始日期>15天");
vo1.setPresent(BigDecimal.valueOf(0.1));
vo1.setIsCanRefund(1);
OrderRefundPoundage vo2 = OrderRefundPoundage.getNew();
vo2.setDay(3);
vo2.setContent("距离演出开始日期>3天-15天(含15天)");
vo2.setPresent(BigDecimal.valueOf(0.5));
vo2.setIsCanRefund(1);
OrderRefundPoundage vo3 = OrderRefundPoundage.getNew();
vo3.setDay(0);
vo3.setContent("距离演出开始日期≤3天(含演出当天)");
vo3.setPresent(BigDecimal.valueOf(0));
vo3.setIsCanRefund(1);
orderRefundPoundageArrayList.add(vo1);
orderRefundPoundageArrayList.add(vo2);
orderRefundPoundageArrayList.add(vo3);
redisUtil.set(KylinRedisConst.ORDER_REFUND_POUNDAGE, orderRefundPoundageArrayList);
return orderRefundPoundageArrayList; return orderRefundPoundageArrayList;
} else { } else {
return (ArrayList<OrderRefundPoundage>) obj; return (ArrayList<OrderRefundPoundage>) obj;
...@@ -706,7 +725,7 @@ public class DataUtils { ...@@ -706,7 +725,7 @@ public class DataUtils {
} }
// 获取订单券的使用情况 // 获取订单券的使用情况
public ArrayList<KylinOrderCoupons> getOrderCoupon(String orderId){ public ArrayList<KylinOrderCoupons> getOrderCoupon(String orderId) {
String redisKey = KylinRedisConst.ORDER_COUPON.concat(orderId); String redisKey = KylinRedisConst.ORDER_COUPON.concat(orderId);
Object obj = redisUtil.get(redisKey); Object obj = redisUtil.get(redisKey);
if (obj == null) { if (obj == null) {
...@@ -735,6 +754,7 @@ public class DataUtils { ...@@ -735,6 +754,7 @@ public class DataUtils {
String redisKey = KylinRedisConst.ORDER_REFUND_EXPRESS_INFO.concat(orderId); String redisKey = KylinRedisConst.ORDER_REFUND_EXPRESS_INFO.concat(orderId);
redisUtil.set(redisKey, kylinOrderExpressVo); redisUtil.set(redisKey, kylinOrderExpressVo);
} }
public KylinOrderExpressVo getOrderRefundExpressInfo(String orderId) { public KylinOrderExpressVo getOrderRefundExpressInfo(String orderId) {
String redisKey = KylinRedisConst.ORDER_REFUND_EXPRESS_INFO.concat(orderId); String redisKey = KylinRedisConst.ORDER_REFUND_EXPRESS_INFO.concat(orderId);
return (KylinOrderExpressVo) redisUtil.get(redisKey); return (KylinOrderExpressVo) redisUtil.get(redisKey);
......
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