package com.nova.sankuai.controller.v2;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.nova.sankuai.domain.dto.*;
|
import com.nova.sankuai.domain.entity.SystemParam;
|
import com.nova.sankuai.domain.enums.vipservice.PayTypeEnum;
|
import com.nova.sankuai.domain.enums.vipservice.VipCardOrderEnum;
|
import com.nova.sankuai.domain.enums.vipservice.VipCardTypeEnum;
|
import com.nova.sankuai.domain.vo.*;
|
import com.nova.sankuai.domain.vo.vipcard.VipCardVo;
|
import com.nova.sankuai.domain.vo.vipcard.VipUserStatusVo;
|
import com.nova.sankuai.infra.constants.ResultCode;
|
import com.nova.sankuai.infra.mapper.SystemParamMapper;
|
import com.nova.sankuai.infra.utils.ResultJson;
|
import com.nova.sankuai.infra.utils.UserUtil;
|
import com.nova.sankuai.security.UserDetail;
|
import com.nova.sankuai.service.IVipCardOrderService;
|
import com.nova.sankuai.service.IYinShengService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
|
/**
|
* @author weikangdi
|
* @create 2021/12/22
|
*/
|
@Api(tags = "会员服务V2")
|
@Slf4j
|
@RestController
|
@RequestMapping(value = "/api/v2/vipCardOrder")
|
@AllArgsConstructor
|
public class VipCardOrderV2Controller {
|
|
private final IVipCardOrderService vipCardOrderService;
|
|
private final SystemParamMapper systemParamMapper;
|
|
private final IYinShengService yinShengService;
|
|
@GetMapping(value = "/getVipCardList")
|
@ApiOperation(value = "会员卡列表查询接口")
|
public ResultJson<?> getVipCardList(String appId, @AuthenticationPrincipal UserDetail userDetail) {
|
JSONObject result = vipCardOrderService.getVipCardListV2(appId, userDetail.getPhone());
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping(value = "/buyCard")
|
@ApiOperation(value = "购买会员卡")
|
public ResultJson<BuyCardParamVo> buyCard(@RequestBody VipCardVo cardVo, @AuthenticationPrincipal UserDetail userDetail) throws InterruptedException {
|
SystemParam systemParam = systemParamMapper.getDefaultParam();
|
cardVo.setVipType(VipCardTypeEnum.MEMBER_SERVICE.getCode());
|
BuyCardParamVo paramVo;
|
if (PayTypeEnum.LIE_XIONG.getCode().equals(systemParam.getPaymentMethod())) {
|
String phone = userDetail.getPhone();
|
paramVo = vipCardOrderService.buyCard(cardVo, phone);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.YIN_SHENG.getCode().equals(systemParam.getPaymentMethod())) {
|
paramVo = vipCardOrderService.buyCardByYinSheng(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.ALIPAY_SDK.getCode().equals(systemParam.getPaymentMethod()) || PayTypeEnum.ALIPAY_H5.getCode().equals(systemParam.getPaymentMethod())) {
|
paramVo = vipCardOrderService.buyCardByAlipay(cardVo, userDetail, systemParam.getPaymentMethod());
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.WEI_YA.getCode().equals(systemParam.getPaymentMethod())) {
|
paramVo = vipCardOrderService.buyCardByWeiYa(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.YIN_SHENG_FAST_PROTOCOL.getCode().equals(systemParam.getPaymentMethod())) {
|
paramVo = vipCardOrderService.buyCardByYSProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.SHAN_TAI_FAST_PROTOCOL.getCode().equals(systemParam.getPaymentMethod())) {
|
//原闪态支付 paramVo = vipCardOrderService.buyCardBySTProtocol(cardVo, userDetail);
|
paramVo = vipCardOrderService.buyCardByHFBProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.BAOFU_PROTOCOL.getCode().equals(systemParam.getPaymentMethod())) {// 于2022-12-05新增:宝付预支付
|
paramVo = vipCardOrderService.buyCardByBfProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
}
|
return ResultJson.failure(ResultCode.SERVER_ERROR, "未找到匹配的支付方式");
|
}
|
|
|
@GetMapping(value = "/getOrderStatus")
|
@ApiOperation(value = "查询订单状态")
|
public ResultJson<String> getOrderStatus(String partnerThirdOrderId) {
|
String status = vipCardOrderService.getOrderStatus(partnerThirdOrderId);
|
if (VipCardOrderEnum.STATUS_INVALID.getCode().equals(status) || VipCardOrderEnum.STATUS_CLOSE.getCode().equals(status)) {
|
status = VipCardOrderEnum.message(status);
|
}
|
return ResultJson.ok(status);
|
}
|
|
@GetMapping(value = "/checkUserStatus")
|
@ApiOperation(value = "校验用户状态")
|
public ResultJson<VipUserStatusVo> checkUserStatus(@AuthenticationPrincipal UserDetail userDetail, String appId) {
|
VipUserStatusVo result = vipCardOrderService.checkUserStatus(userDetail, appId);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/updateUserApprovalTime")
|
@ApiOperation(value = "更新用户审核时间")
|
public ResultJson<VipUserStatusVo> updateUserApprovalTime(String appId, @AuthenticationPrincipal UserDetail userDetail) {
|
VipUserStatusVo result = vipCardOrderService.updateUserApprovalTime(userDetail.getPhone(), appId);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/updateShowActivationPage")
|
@ApiOperation(value = "更新初审页面展示")
|
public ResultJson<Void> updateShowActivationPage(@AuthenticationPrincipal UserDetail userDetail) {
|
vipCardOrderService.updateShowActivationPage(userDetail.getPhone());
|
return ResultJson.success();
|
}
|
|
@GetMapping(value = "/getQueueVipList")
|
@ApiOperation(value = "审核排队特权查询")
|
public ResultJson<List<VipCardVo>> getQueueVipList(String appId, @AuthenticationPrincipal UserDetail userDetail) {
|
List<VipCardVo> result = vipCardOrderService.getQueueVipList(appId, userDetail.getPhone());
|
return ResultJson.ok(result);
|
}
|
|
|
@PostMapping(value = "/buyQueueVip")
|
@ApiOperation(value = "购买审核排队会员")
|
public ResultJson<BuyCardParamVo> buyQueueVip(@RequestBody VipCardVo cardVo, @AuthenticationPrincipal UserDetail userDetail) throws InterruptedException {
|
SystemParam systemParam = systemParamMapper.getDefaultParam();
|
cardVo.setVipType(VipCardTypeEnum.AUDIT_QUEUE.getCode());
|
BuyCardParamVo paramVo;
|
if (PayTypeEnum.YIN_SHENG.getCode().equals(systemParam.getQueuePayType())) {
|
paramVo = vipCardOrderService.buyCardByYinSheng(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.ALIPAY_SDK.getCode().equals(systemParam.getQueuePayType()) || PayTypeEnum.ALIPAY_H5.getCode().equals(systemParam.getQueuePayType())) {
|
paramVo = vipCardOrderService.buyCardByAlipay(cardVo, userDetail, systemParam.getQueuePayType());
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.YIN_SHENG_FAST_PROTOCOL.getCode().equals(systemParam.getQueuePayType())) {
|
paramVo = vipCardOrderService.buyCardByYSProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.SHAN_TAI_FAST_PROTOCOL.getCode().equals(systemParam.getQueuePayType())) {
|
paramVo = vipCardOrderService.buyCardBySTProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.BAOFU_PROTOCOL.getCode().equals(systemParam.getPaymentMethod())) {// 于2022-12-05新增:宝付预支付
|
paramVo = vipCardOrderService.buyCardByBfProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
}
|
return ResultJson.failure(ResultCode.SERVER_ERROR, "未找到匹配的支付方式");
|
}
|
|
@PostMapping(value = "/getQueue")
|
@ApiOperation(value = "获取审核排队名次")
|
public ResultJson<QueueVo> getQueue(HttpServletRequest request) {
|
String token = request.getHeader("Authorization");
|
UserDetail user = UserUtil.getUser(token);
|
QueueVo result = vipCardOrderService.getQueue(user);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/getQueueDefaultVip")
|
@ApiOperation(value = "获取审核排队默认会员卡")
|
public ResultJson<VipCardVo> getQueueDefaultVip(String appId, @AuthenticationPrincipal UserDetail userDetail) {
|
VipCardVo result = vipCardOrderService.getQueueDefaultVip(appId, userDetail.getPhone());
|
return ResultJson.ok(result);
|
}
|
|
|
@PostMapping(value = "/buyLoanMarketVip")
|
@ApiOperation(value = "购买贷超会员")
|
public ResultJson<BuyCardParamVo> buyLoanMarketVip(@RequestBody VipCardVo cardVo, @AuthenticationPrincipal UserDetail userDetail) throws InterruptedException {
|
SystemParam systemParam = systemParamMapper.getDefaultParam();
|
cardVo.setVipType(VipCardTypeEnum.LOAN_MARKET_VIP.getCode());
|
BuyCardParamVo paramVo;
|
if (PayTypeEnum.YIN_SHENG.getCode().equals(systemParam.getLoanVipPayType())) {
|
paramVo = vipCardOrderService.buyCardByYinSheng(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.ALIPAY_SDK.getCode().equals(systemParam.getLoanVipPayType()) || PayTypeEnum.ALIPAY_H5.getCode().equals(systemParam.getLoanVipPayType())) {
|
paramVo = vipCardOrderService.buyCardByAlipay(cardVo, userDetail, systemParam.getLoanVipPayType());
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.YIN_SHENG_FAST_PROTOCOL.getCode().equals(systemParam.getLoanVipPayType())) {
|
paramVo = vipCardOrderService.buyCardByYSProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.SHAN_TAI_FAST_PROTOCOL.getCode().equals(systemParam.getLoanVipPayType())) {
|
paramVo = vipCardOrderService.buyCardBySTProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.BAOFU_PROTOCOL.getCode().equals(systemParam.getPaymentMethod())) {// 于2022-12-05新增:宝付预支付
|
paramVo = vipCardOrderService.buyCardByBfProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
}
|
return ResultJson.failure(ResultCode.SERVER_ERROR, "未找到匹配的支付方式");
|
}
|
|
@GetMapping(value = "/getLoanMarketVip")
|
@ApiOperation(value = "获取贷超会员卡信息")
|
public ResultJson<VipCardVo> getLoanMarketVip(String appId, @AuthenticationPrincipal UserDetail userDetail) {
|
VipCardVo result = vipCardOrderService.getLoanMarketVip(appId, userDetail.getPhone());
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/getSeniorVip")
|
@ApiOperation(value = "获取高级会员卡信息")
|
public ResultJson<VipCardVo> getSeniorVip(String appId, @AuthenticationPrincipal UserDetail userDetail) {
|
VipCardVo result = vipCardOrderService.getSeniorVip(appId, userDetail.getPhone());
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping(value = "/buySeniorVip")
|
@ApiOperation(value = "购买高级会员")
|
public ResultJson<BuyCardParamVo> buySeniorVip(@RequestBody VipCardVo cardVo, @AuthenticationPrincipal UserDetail userDetail) throws InterruptedException {
|
SystemParam systemParam = systemParamMapper.getDefaultParam();
|
cardVo.setVipType(VipCardTypeEnum.SENIOR_VIP.getCode());
|
BuyCardParamVo paramVo;
|
if (PayTypeEnum.YIN_SHENG.getCode().equals(systemParam.getSeniorVipPayType())) {
|
paramVo = vipCardOrderService.buyCardByYinSheng(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.ALIPAY_SDK.getCode().equals(systemParam.getSeniorVipPayType()) || PayTypeEnum.ALIPAY_H5.getCode().equals(systemParam.getSeniorVipPayType())) {
|
paramVo = vipCardOrderService.buyCardByAlipay(cardVo, userDetail, systemParam.getSeniorVipPayType());
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.YIN_SHENG_FAST_PROTOCOL.getCode().equals(systemParam.getSeniorVipPayType())) {
|
paramVo = vipCardOrderService.buyCardByYSProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.SHAN_TAI_FAST_PROTOCOL.getCode().equals(systemParam.getSeniorVipPayType())) {
|
paramVo = vipCardOrderService.buyCardBySTProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
} else if (PayTypeEnum.BAOFU_PROTOCOL.getCode().equals(systemParam.getPaymentMethod())) {// 于2022-12-05新增:宝付预支付
|
paramVo = vipCardOrderService.buyCardByBfProtocol(cardVo, userDetail);
|
return ResultJson.ok(paramVo);
|
}
|
return ResultJson.failure(ResultCode.SERVER_ERROR, "未找到匹配的支付方式");
|
}
|
|
|
@PostMapping(value = "/checkBeforePayment")
|
@ApiOperation(value = "支付前用户校验")
|
public ResultJson<PaymentCheckVo> checkBeforePayment(@RequestBody PaymentCheckDto checkDto, HttpServletRequest request) {
|
PaymentCheckVo result = vipCardOrderService.checkBeforePayment(checkDto, request);
|
return ResultJson.ok(result);
|
}
|
|
|
@PostMapping(value = "/protocolPaySignByYs")
|
@ApiOperation(value = "银盛快捷支付签约")
|
public ResultJson<YSFastProtocolSignVo> protocolPaySignByYs(@RequestBody YSProtocolSignDto signDto, HttpServletRequest request) {
|
YSFastProtocolSignVo result = yinShengService.protocolPaySignByYs(signDto, request);
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping(value = "/protocolPaySignConfirmByYs")
|
@ApiOperation(value = "银盛快捷支付签约确认")
|
public ResultJson<Boolean> protocolPaySignConfirmByYs(@RequestBody YSProtocolSignConfirmDto signConfirmDto, HttpServletRequest request) {
|
boolean result = yinShengService.protocolPaySignConfirmByYs(signConfirmDto, request);
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping(value = "/protocolPaySmsConfirmByYs")
|
@ApiOperation(value = "银盛快捷支付短信确认")
|
public ResultJson<Boolean> protocolPaySmsConfirmByYs(@RequestBody YSProtocolPaySmsConfirmDto smsConfirmDto) {
|
boolean result = yinShengService.protocolPaySmsConfirmByYs(smsConfirmDto);
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping(value = "/getProtocolPaySmsByYs")
|
@ApiOperation(value = "银盛快捷支付重新获取短信")
|
public ResultJson<?> getProtocolPaySmsByYs(@RequestBody YSProtocolPaySmsDto smsDto) {
|
yinShengService.getProtocolPaySmsByYs(smsDto);
|
return ResultJson.success();
|
}
|
|
@PostMapping(value = "/checkProtocolSignByYs")
|
@ApiOperation(value = "用户银盛快捷支付签约校验")
|
public ResultJson<YSFastProtocolSignCheckVo> getProtocolPaySmsByYs(HttpServletRequest request) {
|
YSFastProtocolSignCheckVo result = yinShengService.checkProtocolSignByYs(request);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/getSTOrderStatus")
|
@ApiOperation(value = "查询闪态订单状态")
|
public ResultJson<String> getSTOrderStatus(String partnerThirdOrderId) {
|
// String status = vipCardOrderService.getSTOrderStatus(partnerThirdOrderId);
|
String status = vipCardOrderService.getHFBOrderStatus(partnerThirdOrderId);
|
if (VipCardOrderEnum.STATUS_INVALID.getCode().equals(status) || VipCardOrderEnum.STATUS_CLOSE.getCode().equals(status)) {
|
status = VipCardOrderEnum.message(status);
|
}
|
return ResultJson.ok(status);
|
}
|
}
|