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

Commit 56dac7be authored by liuran's avatar liuran

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

parents 53028f6a 969e134c
......@@ -23,7 +23,7 @@ public class AdamMemberOrderRefundParam implements Serializable {
private BigDecimal refundAmt;
@NotNull(message = "请选择是否能继续购买会员")
@ApiModelProperty(required = true, value = "是否能继续购买会员[1-是|2-否]")
private Integer buyMark;
private Integer renewable;
@NotBlank(message = "请输入退款原因")
@ApiModelProperty(required = true, value = "退款原因")
private String reason;
......
......@@ -18,7 +18,6 @@ public class CandyMemberCouponBuildParam {
@NotBlank(message = "会员权益ID不能为空")
private String mrightsId;
@NotBlank(message = "券ID不能为空")
@ApiModelProperty(required = false, value = "券ID", example = "券ID")
private String couponId;
//private Integer state;
......@@ -33,13 +32,11 @@ public class CandyMemberCouponBuildParam {
// private String notice;
//private Integer exclusive;
@NotNull(message = "券类别不能为空")
@Pattern(regexp = "\\b(0|1|2|3)\\b", message = "业务类别无效")
@ApiModelProperty(required = true, value = "业务类别[0-全场|1-演出|2-商品|3-优先购]", allowableValues = "0,1,2,3")
private Integer busiType;
@NotNull(message = "券类型不能为空")
@Pattern(regexp = "\\b(1|2)\\b", message = "券类型无效")
// @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券]", allowableValues = "1,2")
// @ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]", allowableValues = "1,2,3,4,101")
@ApiModelProperty(required = true, value = "券类型[1-代金券|2-满减券|101-优先券]", allowableValues = "1,2,101")
private Integer couType;
// @NotNull(message = "券领取方式不能为空")
// @ApiModelProperty(required = true, value = "领取方式[0-用户输入兑换|1-发放至用户]", allowableValues = "0,1")
......@@ -53,7 +50,6 @@ public class CandyMemberCouponBuildParam {
@ApiModelProperty(required = false, value = "满减~减", example = "0.01")
private BigDecimal valMinus;
@NotNull(message = "券叠加限制不能为空")
@Pattern(regexp = "\\b(0|1)\\b", message = "叠加限制无效")
@ApiModelProperty(required = false, value = "叠加限制[0-限制|1-叠加]", allowableValues = "0,1")
private Integer overlay;
//private Integer overlayLevel;
......
......@@ -116,6 +116,10 @@ public class KylinPerformanceVo {
private Integer isRefundVoucher;
private Integer isRefundExpress;
private Integer isTransfer;
private String transferStartTime;
private String transferEndTime;
public void setPerformance(KylinPerformances performance) {
this.mid = performance.getMid();
this.performancesId = performance.getPerformancesId();
......
......@@ -66,7 +66,7 @@ public class AdamMemberAdminController extends BaseController {
startPage();
return getDataTable(adamMemberService.list(
Wrappers.lambdaQuery(AdamMember.class).eq(AdamMember::getState, 1).select(
AdamMember::getMemberId, AdamMember::getIcon, AdamMember::getName, AdamMember::getTitle
AdamMember::getMemberId, AdamMember::getIcon, AdamMember::getTitle, AdamMember::getSubTitle, AdamMember::getOnsale
)
));
}
......@@ -193,6 +193,11 @@ public class AdamMemberAdminController extends BaseController {
}
parameter.setValFace(valMinus);
break;
case 101:
parameter.setValFace(null);
parameter.setValOver(null);
parameter.setValMinus(null);
break;
default:
logger.warn("Invalid operation[buildParam.couType={}]", parameter.getCouType());
return this.error(AjaxResult.Type.WARN, "券类型无效");
......
......@@ -74,12 +74,15 @@ public class AdamMemberOrderAdminController extends BaseController {
AdamMemberOrder memberOrder = adamMemberOrderAdminService.getOne(queryWrapper);
if (null == memberOrder) {
return this.error("订单不存在");
return AjaxResult.warn("订单不存在");
}
if (memberOrder.getState() != 1) {
return AjaxResult.warn(String.format("该订单[%s]不支持退款,请核实订单状态", parameter.getOrderNo()));
}
if (memberOrder.getPricePaid().compareTo(parameter.getRefundAmt()) < 0) {
return this.error("退款金额超出订单实际支付金额");
return AjaxResult.warn("退款金额超出订单实际支付金额");
}
return this.toAjax(adamMemberOrderAdminService.refundProcessing(parameter, memberOrder));
return adamMemberOrderAdminService.refundProcessing(parameter, memberOrder);
}
}
......@@ -1003,7 +1003,7 @@ var table = {
// 详细信息,以tab页展现
detailTab: function(id) {
table.set();
$.modal.openTab("详细" + table.options.modalName, $.operate.detailUrl(id));
$.modal.openTab(table.options.modalName + "详情", $.operate.detailUrl(id));
},
// 详细访问地址
detailUrl: function(id) {
......
......@@ -33,14 +33,34 @@
title: '会员卡ID'
},
{
field: 'name',
title: '会员卡名称',
field: 'icon',
title: 'ICON',
formatter: function (value, row, index) {
var actions = [];
actions.push($.common.sprintf("<img class='img-circle img-xs' src='%s' />", value));
return actions;
}
},
{
field: 'title',
title: '会员卡标题',
align: 'center',
},
{
field: 'subTitle',
title: '会员卡说明',
},
{
field: 'onsale',
title: '开售状态',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
var listClass = "badge badge-" + (value === 1 ? 'primary' : 'danger');
actions.push($.common.sprintf("<span class='%s'>%s</span>", listClass, value === 1 ? '开售' : '停售'));
return actions;
}
},
{
title: '操作',
align: 'center',
......
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.admin.AdamMemberOrderRefundParam;
import com.liquidnet.service.adam.dto.admin.MemberOrderListReq;
......@@ -24,5 +25,5 @@ public interface IAdamMemberOrderAdminService extends IService<AdamMemberOrder>
MemberOrderDetailAdminVo getMemberOrderDetail(String orderNo);
boolean refundProcessing(AdamMemberOrderRefundParam param, AdamMemberOrder memberOrder);
AjaxResult refundProcessing(AdamMemberOrderRefundParam param, AdamMemberOrder memberOrder);
}
......@@ -3,9 +3,16 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberOrderAdminService;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.MemberOrderDto;
import com.liquidnet.service.adam.dto.admin.AdamMemberOrderRefundParam;
import com.liquidnet.service.adam.dto.admin.MemberOrderListReq;
......@@ -16,6 +23,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo;
import com.liquidnet.service.adam.entity.*;
import com.liquidnet.service.adam.mapper.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -24,9 +32,12 @@ import org.springframework.util.LinkedMultiValueMap;
import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
......@@ -37,6 +48,7 @@ import java.util.Map;
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/6 16:25
*/
@Slf4j
@Service
public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> implements IAdamMemberOrderAdminService {
@Autowired
......@@ -49,6 +61,11 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
private AdamUserMapper adamUserMapper;
@Autowired
private AdamMemberOrderExtMapper adamMemberOrderExtMapper;
@Autowired
private AdamMemberRefundMapper adamMemberRefundMapper;
@Autowired
private RedisUtil redisUtil;
@Value("${liquidnet.url-refund.apply}")
private String applyUrl;
......@@ -111,7 +128,7 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
@Override
@Transactional
public boolean refundProcessing(AdamMemberOrderRefundParam param, AdamMemberOrder memberOrder) {
public AjaxResult refundProcessing(AdamMemberOrderRefundParam param, AdamMemberOrder memberOrder) {
LinkedMultiValueMap<String, String> linkedMultiValueMap = new LinkedMultiValueMap<>();
linkedMultiValueMap.add("code", memberOrder.getPayNo());
......@@ -124,10 +141,48 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
linkedMultiValueMap.add("priceTotal", String.valueOf(memberOrder.getPricePaid()));
linkedMultiValueMap.add("reason", param.getReason());
// String postResult = HttpUtil.post(applyUrl, linkedMultiValueMap);
log.info("会员退款:支付中心请求参数:{}", linkedMultiValueMap);
String postResult = HttpUtil.post(applyUrl, linkedMultiValueMap);
log.info("会员退款:支付中心返回数据:{}", postResult);
JsonNode postResultJNode = JsonUtils.fromJson(postResult, JsonNode.class);
if (!postResultJNode.get("success").asBoolean()) {
return AjaxResult.warn("会员退款请求支付中心失败");
}
// 退款请求成功,修改订单状态,同步REDIS
LocalDateTime now = LocalDateTime.now();
AdamMemberRefund memberRefund = new AdamMemberRefund();
memberRefund.setRefundNo(IDGenerator.nextTimeId2().concat("VR"));
memberRefund.setOrderNo(memberOrder.getOrderNo());
memberRefund.setRefundPrice(param.getRefundAmt());
memberRefund.setRefundReason(param.getReason());
memberRefund.setRenewable(param.getRenewable());
memberRefund.setRefundState(0);
memberRefund.setRefundNo(postResultJNode.get("refundCode").asText());
memberRefund.setOperator(ShiroUtils.getLoginName());
memberRefund.setCreatedAt(now);
adamMemberRefundMapper.insert(memberRefund);
AdamMemberOrder updateInfoMemberOrder = new AdamMemberOrder();
updateInfoMemberOrder.setMid(memberOrder.getMid());
updateInfoMemberOrder.setState(4);
updateInfoMemberOrder.setUpdatedAt(now);
adamMemberOrderMapper.updateById(updateInfoMemberOrder);
String moKey = AdamRedisConst.INFO_MEMBER_ORDER + memberOrder.getUid();
ArrayList<AdamMemberOrderVo> vos = (ArrayList<AdamMemberOrderVo>) redisUtil.get(moKey);
int idx = IntStream.range(0, vos.size())
.filter(i -> vos.get(i).getOrderNo().equals(memberOrder.getOrderNo()))
.findFirst().orElse(-1);
AdamMemberOrderVo vo = vos.get(idx);
vo.setState(4);
vo.setUpdatedAt(now);
vos.set(idx, vo);
redisUtil.set(moKey, vos);
return true;
return AjaxResult.success();
}
}
......@@ -55,7 +55,7 @@ public class AdamMemberOrder implements Serializable {
*/
private Integer days;
/**
* 订单状态:0未支付 1已支付 2已超时 5已退款
* 订单状态:0-未支付,1-已支付,2-已关闭,3-超时付,4-退款中,5-已退款
*/
private Integer state;
/**
......
package com.liquidnet.service.adam.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员退款
* </p>
*
* @author liquidnet
* @since 2021-09-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class AdamMemberRefund implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 退款请求编号
*/
private String refundNo;
/**
* 对应支付中心order_code
*/
private String orderNo;
/**
* 退款金额
*/
private BigDecimal refundPrice;
/**
* 退款描述
*/
private String refundReason;
/**
* 继续购买[1-可以|2-不可]
*/
private Integer renewable;
/**
* 退款状态[0-发起退款|1-已退款|2-关闭|3-退款失败|9-退款中]
*/
private Integer refundState;
/**
* 支付中心退款编号
*/
private String repayNo;
/**
* 支付中心退款描述
*/
private String repayReason;
/**
* 操作人
*/
private String operator;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
/**
* 完成时间
*/
private LocalDateTime completeAt;
private String comment;
}
package com.liquidnet.service.adam.mapper;
import com.liquidnet.service.adam.entity.AdamMemberRefund;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 会员退款 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-09-07
*/
public interface AdamMemberRefundMapper extends BaseMapper<AdamMemberRefund> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.adam.mapper.AdamMemberRefundMapper">
</mapper>
......@@ -367,7 +367,6 @@ alter table adam_member_order add payment_id varchar(64) null comment '支付中
alter table adam_member_order add area varchar(100) null comment '地区' after birthday;
# 会员退款
drop table if exists adam_member_refund;
create table adam_member_refund
......@@ -379,7 +378,7 @@ create table adam_member_refund
refund_price decimal(8, 2) comment '退款金额',
refund_reason varchar(200) comment '退款描述',
renewable tinyint comment '继续购买[1-可以|2-不可]',
refund_state tinyint comment '退款状态[0-发起退款|1-已退款|2-取消退款|3-退款失败|9-退款中]',
refund_state tinyint comment '退款状态[0-发起退款|1-已退款|2-关闭|3-退款失败|9-退款中]',
# payment_type varchar(30) comment '支付渠道(即UPPER(CONCAT(device_from,pay_type)))',
repay_no varchar(64) comment '支付中心退款编号',
......
......@@ -131,6 +131,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
}
CandyCouponVo baseVo = CouponBaseUtil.getPerformanceCouponUserVo(dtoItem, priceTotal, performanceId, timeId, ticketId);
if(baseVo.getCouType().equals(101)){
continue;
}
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
......@@ -153,6 +156,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
int canUse = 0;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getPerformanceCouponUserVo(dtoItem, priceTotal, performanceId, timeId, ticketId);
if(baseVo.getCouType().equals(101)){
continue;
}
if (baseVo.getState().equals(1)) { //可用
canUse = 1;
break;
......@@ -182,6 +188,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
}
CandyCouponVo baseVo = CouponBaseUtil.getGoodCouponUserVo(dtoItem, priceTotal, goodId, dtoList.size());
if(baseVo.getCouType().equals(101)){
continue;
}
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
......@@ -204,6 +213,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
int canUse = 0;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getGoodCouponUserVo(dtoItem, priceTotal, goodId, dtoList.size());
if(baseVo.getCouType().equals(101)){
continue;
}
if (baseVo.getState().equals(1)) { //可用
canUse = 1;
break;
......@@ -298,6 +310,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
case 92://票
isTarget = CouponBaseUtil.isTargetCoupon(ruleItem.getBusiId(), dto.getCouType(), ticketId, new BigDecimal(totalPrice), dto.getValOver());
break;
case 100://票
isTarget = true;
break;
default:
isTarget = false;
break;
......@@ -410,7 +425,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
String uCouponId = IDGenerator.get32UUID();
//构建baseDto
CandyUserCouponBasicDto baseDto = CandyUserCouponBasicDto.getNew().copyToRedisBaseCoupon(uCouponId, uid, ccode, infoDto, null);
CandyUserCouponBasicDto baseDto = CandyUserCouponBasicDto.getNew().copyToRedisBaseCoupon(uCouponId, uid, ccode, infoDto,LocalDateTime.now().plusDays(infoDto.getRedeemValidity()));
return ResponseDto.success(CouponBaseUtil.getBaseCouponUserVo(baseDto));
} else {
return ResponseDto.failure("兑换失败,请稍后再试");
......
......@@ -28,6 +28,7 @@ public class CouponBaseUtil {
List<CandyCouponRulesVo> rulesVoList = ObjectUtil.getCandyCouponRulesVos();
vo.setTitle(dtoItem.getTitle());
vo.setExpireAt(DateUtil.format(dtoItem.getDuedAt(), DateUtil.Formatter.yyyy_MM_dd));
vo.setDiscount(dtoItem.getDiscount());
vo.setValFace(dtoItem.getValFace());
vo.setBusiType(dtoItem.getBusiType());
vo.setValOver(dtoItem.getValOver());
......@@ -75,6 +76,7 @@ public class CouponBaseUtil {
vo.setTitle(dtoItem.getTitle());
vo.setExpireAt(DateUtil.format(dtoItem.getDuedAt(), DateUtil.Formatter.yyyy_MM_dd));
vo.setValFace(dtoItem.getValFace());
vo.setDiscount(dtoItem.getDiscount());
vo.setValOver(dtoItem.getValOver());
vo.setValMinus(dtoItem.getValMinus());
vo.setBindType(dtoItem.getBindType());
......@@ -83,6 +85,7 @@ public class CouponBaseUtil {
vo.setUcouponId(dtoItem.getUcouponId());
vo.setUsedAt(DateUtil.format(dtoItem.getUsedAt(), DateUtil.Formatter.yyyy_MM_dd));
vo.setUsedFor(dtoItem.getUsedFor());
vo.setBusiType(dtoItem.getBusiType());
//适用范围 规则
if (dtoItem.getBusiType().equals(0)) {
isTarget = true;
......@@ -103,6 +106,9 @@ public class CouponBaseUtil {
case 92://票
isTarget = isTargetCoupon(ruleItem.getBusiId(), dtoItem.getCouType(), ticketId, priceTotal, dtoItem.getValOver());
break;
case 100://全场
isTarget = true;
break;
default:
isTarget = false;
break;
......@@ -111,6 +117,10 @@ public class CouponBaseUtil {
isTarget = false;
}
}
if (dtoItem.getUseRules().size() == 0 && !dtoItem.getBusiType().equals(0)) {
isTarget = false;
}
}
//券类别
if (dtoItem.getBusiType().equals(3)) {
......@@ -146,6 +156,7 @@ public class CouponBaseUtil {
vo.setExpireAt(DateUtil.format(dtoItem.getDuedAt(), DateUtil.Formatter.yyyy_MM_dd));
vo.setValFace(dtoItem.getValFace());
vo.setValOver(dtoItem.getValOver());
vo.setDiscount(dtoItem.getDiscount());
vo.setValMinus(dtoItem.getValMinus());
vo.setBindType(dtoItem.getBindType());
vo.setLabel(dtoItem.getLabel());
......@@ -153,6 +164,7 @@ public class CouponBaseUtil {
vo.setUcouponId(dtoItem.getUcouponId());
vo.setUsedAt(DateUtil.format(dtoItem.getUsedAt(), DateUtil.Formatter.yyyy_MM_dd));
vo.setUsedFor(dtoItem.getUsedFor());
vo.setBusiType(dtoItem.getBusiType());
//适用范围 规则
if (dtoItem.getBusiType().equals(0)) {
isTarget = true;
......@@ -170,6 +182,9 @@ public class CouponBaseUtil {
case 81://款式
// isTarget = isTargetCoupon(ruleItem.getBusiId(), dtoItem.getCouType(), produceId, priceTotal, dtoItem.getValOver());
break;
case 100://全场
isTarget = true;
break;
default:
isTarget = false;
break;
......@@ -178,6 +193,10 @@ public class CouponBaseUtil {
isTarget = false;
}
}
if (dtoItem.getUseRules().size() == 0 && !dtoItem.getBusiType().equals(0)) {
isTarget = false;
}
}
//券类别
if (dtoItem.getBusiType().equals(3)) {
......
......@@ -421,7 +421,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
"\"trade_no\":\"" + tradeNo + "\"," +
"\"out_request_no\":\"" + outBizNo + "\"}"); //设置业务参数
AlipayTradeFastpayRefundQueryResponse response = PayAlipayUtils.getInstance().getHttpClient().execute(request);
log.info("AlipayTradeFastpayRefundQueryRequest -> data = " + response);
log.info("AlipayTradeFastpayRefundQueryRequest -> data = " + JSON.toJSONString(response));
if (response.isSuccess()) {
try {
......@@ -455,8 +455,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return "success";
} catch (Exception e) {
e.printStackTrace();
log.error("");
log.error("EXCEPTION", e);
return "fail";
}
} else {
......
......@@ -376,7 +376,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
dataUtils.setOrderCoupon(orderTicketId, couponsList);
}
orderTickets.setPriceActual(orderTickets.getPriceTotal().subtract(orderTickets.getPriceVoucher()));
BigDecimal finalPrice = orderTickets.getPriceTotal().subtract(orderTickets.getPriceVoucher());
orderTickets.setPriceActual(finalPrice.compareTo(BigDecimal.ZERO)<=0?BigDecimal.ZERO:finalPrice);
orderTickets.setPriceExpress(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : BigDecimal.valueOf(0));
orderTickets.setPriceRefund(BigDecimal.valueOf(0.0));
orderTickets.setRefundNumber(0);
......@@ -592,7 +593,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
syncOrderParam.setOrderCode(orderTickets.getOrderCode());
syncOrderParam.setPaymentAt(DateUtil.format(LocalDateTime.now(), DateUtil.Formatter.yyyyMMddHHmmss));
syncOrderParam.setCode(orderTickets.getPayCode());
syncOrderParam.setPrice(orderTickets.getPrice());
syncOrderParam.setPrice(orderTickets.getPriceActual());
syncOrderParam.setPaymentId("FREE_PAYMENT_ID");
syncOrderParam.setPaymentType(orderTickets.getPaymentType());
syncOrderParam.setStatus(1);
......
......@@ -61,6 +61,9 @@ public class CandyMgtCouponTaskController {
case 4:// 折扣券
platformCandyCouponService.issueDiscountCouponHandler(mgtCoupon, coupon);
break;
case 101:// 优先券
platformCandyCouponService.issuePriorityCouponHandler(mgtCoupon, coupon);
break;
default:
log.warn("发放券任务总数:{},任务{}无法处理,无效的券类型[mcouponId:{},couType:{}]", taskSize, i, mgtCoupon.getMcouponId(), coupon.getCouType());
break;
......
......@@ -175,6 +175,7 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
private void processForAllMember(CandyMgtCoupon mgtCoupon, CandyCoupon coupon, List<CandyCouponRuleDto> couponRuleDtoList) {
List<CandyUserCoupon> initUserCouponList = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
LocalDateTime duedAt = now.plusDays(coupon.getValidity()).withHour(23).withMinute(59).withSecond(59);
LocalDateTime nowEndTime = now.withHour(23).withMinute(59).withSecond(59);
LambdaQueryWrapper<AdamUserMember> queryWrapper = Wrappers.lambdaQuery(AdamUserMember.class).eq(AdamUserMember::getState, 1)
......@@ -204,7 +205,8 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
userCoupon.setCouponId(coupon.getCouponId());
userCoupon.setState(1);
userCoupon.setBindAt(now);
userCoupon.setDuedAt(coupon.getExpireAt());
userCoupon.setDuedAt(duedAt);
userCoupon.setCreatedAt(now);
initUserCouponList.add(userCoupon);
}
......@@ -247,6 +249,7 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
private void processForUserCoupon(CandyMgtCoupon mgtCoupon, CandyCoupon coupon, List<CandyCouponRuleDto> couponRuleDtoList) {
List<CandyUserCoupon> initUserCouponList = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
LocalDateTime duedAt = now.plusDays(coupon.getValidity()).withHour(23).withMinute(59).withSecond(59);
String eventLimit = mgtCoupon.getEventLimit();
String[] eventLimitArr = eventLimit.split(",");
......@@ -265,7 +268,8 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
userCoupon.setCouponId(coupon.getCouponId());
userCoupon.setState(1);
userCoupon.setBindAt(now);
userCoupon.setDuedAt(coupon.getExpireAt());
userCoupon.setDuedAt(duedAt);
userCoupon.setCreatedAt(now);
initUserCouponList.add(userCoupon);
......@@ -342,4 +346,16 @@ public class PlatformCandyCouponService extends ServiceImpl<CandyCouponMapper, C
public void issueDiscountCouponHandler(final CandyMgtCoupon mgtCoupon, final CandyCoupon coupon) {
this.issueCouponProcessing(mgtCoupon, coupon);
}
/**
* <p>
* 发放优先券
* </p>
*
* @param mgtCoupon CandyMgtCoupon
* @param coupon CandyCoupon
*/
public void issuePriorityCouponHandler(final CandyMgtCoupon mgtCoupon, final CandyCoupon coupon) {
this.issueCouponProcessing(mgtCoupon, coupon);
}
}
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