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

Commit 06134d90 authored by 张国柄's avatar 张国柄

fix:会员API;

 支付请求、响应数据调整;
parent 1b30df0e
......@@ -11,8 +11,7 @@ import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberOrderCallbackResult", description = "购买会员或会员码的支付回调")
@Data
public class AdamMemberOrderCallbackResult implements Serializable {
private static final long serialVersionUID = 3219448286221952517L;
private static final long serialVersionUID = -4161563334263071103L;
@ApiModelProperty(position = 0, required = true, value = "订单状态")
private Integer status;
@ApiModelProperty(position = 1, required = true, value = "订单号")
......
......@@ -11,36 +11,30 @@ import java.math.BigDecimal;
@Data
public class AdamMemberOrderParam implements Serializable {
private static final long serialVersionUID = 3219448286221952517L;
@ApiModelProperty(position = 10, required = true, value = "会员ID[50]", example = "62960077673504768")
@ApiModelProperty(position = 10, required = true, value = "会员ID[50]")
private String memberId;
@ApiModelProperty(position = 11, required = true, value = "购买方式:0-购买会员,1-购买会员码", example = "0")
@ApiModelProperty(position = 11, required = true, value = "购买方式:0-购买会员,1-购买会员码", allowableValues = "0,1")
private Integer mode;
@ApiModelProperty(position = 12, required = true, value = "应付金额", example = "0")
@ApiModelProperty(position = 12, required = true, value = "应付金额", example = "199")
private BigDecimal price;
@ApiModelProperty(position = 13, required = true, value = "实付金额", example = "0")
@ApiModelProperty(position = 13, required = true, value = "实付金额", example = "199")
private BigDecimal pricePaid;
@ApiModelProperty(position = 14, required = true, value = "会员价格ID", example = "0")
@ApiModelProperty(position = 14, required = true, value = "会员价格ID")
private String memberPriceId;
@ApiModelProperty(position = 15, required = true, value = "用户生日", example = "0")
private String birthday;
@ApiModelProperty(position = 16, required = true, value = "支付方式:ALIPAY,WEPAY,WAPALIPAY,WAPWEPAY,JSWEPAY,APPLETWEPAY,APPIAP")
@ApiModelProperty(position = 15, required = true, value = "支付方式", allowableValues = "ALIPAY,WEPAY,WAPALIPAY,WAPWEPAY,JSWEPAY,APPLETWEPAY,APPIAP")
private String payChannel;
@ApiModelProperty(position = 17, required = true, value = "支付用的AuthCode")
private String authCode;
@ApiModelProperty(position = 18, required = true, value = "支付用的productId")
@ApiModelProperty(position = 16, required = false, value = "支付用的productId")
private String productId;
@ApiModelProperty(position = 19, required = true, value = "支付用的openId")
private String openId;
@ApiModelProperty(position = 20, required = false, value = "姓名")
@ApiModelProperty(position = 17, required = false, value = "姓名", example = "王武")
private String name;
@ApiModelProperty(position = 21, required = false, value = "身份证件号")
@ApiModelProperty(position = 18, required = false, value = "身份证件号", example = "111111111111111111")
private String idCard;
@ApiModelProperty(position = 22, required = false, value = "用户ID", example = "1")
private String uid;
@ApiModelProperty(position = 23, required = false, value = "IP地址")
private String clientIp;
@ApiModelProperty(position = 24, required = false, value = "版本")
private String version;
@ApiModelProperty(position = 25, required = false, value = "来源")
private String source;
@ApiModelProperty(position = 19, required = false, value = "支付用的AUTHCODE")
private String authCode;
@ApiModelProperty(position = 20, required = false, value = "支付用的OPENID")
private String openId;
@ApiModelProperty(position = 21, required = true, value = "未支付/取消支付跳转URL")
private String showUrl;
@ApiModelProperty(position = 22, required = true, value = "支付成功跳转URL")
private String returnUrl;
}
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
......@@ -8,16 +9,15 @@ import java.io.Serializable;
@ApiModel(value = "AdamMemberOrderResult", description = "购买会员或会员码响应")
@Data
public class AdamMemberOrderResult implements Serializable {
private static final long serialVersionUID = 3219448286221952517L;
private String payCode;
private String orderId;
private Object payObject;
// 判断状态 0-返回请求错误联系客服 1-返回服务器繁忙
private Integer state;
private static final long serialVersionUID = 7779516626586568151L;
@ApiModelProperty(value = "支付CODE")
private String code;
@ApiModelProperty(value = "会员订单号")
private String orderNo;
@ApiModelProperty(value = "支付数据")
private Object payData;
@ApiModelProperty(value = "未支付/取消支付跳转URL")
private String showUrl;
@ApiModelProperty(value = "支付成功跳转URL")
private String returnUrl;
}
......@@ -38,19 +38,17 @@ public class AdamMemberOrderVo implements Serializable {
private String payNo;
@ApiModelProperty(position = 11, value = "支付时间")
private String paymentAt;
@ApiModelProperty(position = 12, value = "生日")
private String birthday;
@ApiModelProperty(position = 13, value = "创建时间")
private String createdAt;
@ApiModelProperty(position = 14, value = "兑换码")
private String memberCode;
@ApiModelProperty(position = 15, value = "价格")
private BigDecimal price;
@ApiModelProperty(position = 16, value = "价格")
@ApiModelProperty(position = 16, value = "客户端IP")
private String ip;
@ApiModelProperty(position = 17, value = "价格")
@ApiModelProperty(position = 17, value = "客户端来源")
private String source;
@ApiModelProperty(position = 18, value = "价格")
@ApiModelProperty(position = 18, value = "客户端版本")
private String version;
public static final AdamMemberOrderVo obj = new AdamMemberOrderVo();
......@@ -79,7 +77,6 @@ public class AdamMemberOrderVo implements Serializable {
mqList.add(orderVo.getMemberNo());
mqList.add(orderVo.getPayChannel());
mqList.add(orderVo.getPayNo());
mqList.add(orderVo.getBirthday());
mqList.add(orderVo.getPaymentAt());
mqList.add(orderVo.getCreatedAt());
mqList.add(orderVo.getCreatedAt());
......
......@@ -7,6 +7,7 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.base.ResponseDto;
import java.util.List;
......@@ -19,7 +20,7 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
*
* @param param
*/
AdamMemberOrderResult buyMemberOrMemberCode(AdamMemberOrderParam param) throws Exception;
ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) throws Exception;
/**
* 使用会员码
......
......@@ -66,9 +66,7 @@ public class AdamMemberOrderController {
@ApiOperation(value = "购买会员或会员码")
@PostMapping("buy")
public ResponseDto<AdamMemberOrderResult> buyMemberOrCode(@RequestBody AdamMemberOrderParam param) {
AdamMemberOrderResult adamMemberOrderResult = null;
try {
param.setUid(CurrentUtil.getCurrentUid());
log.info("member/order/buy:param:{}", JsonUtils.toJson(param));
AdamRealInfoVo realInfoVo = adamRealNameService.queryByUid(CurrentUtil.getCurrentUid());
......@@ -76,15 +74,14 @@ public class AdamMemberOrderController {
if (StringUtils.isBlank(param.getName()) || StringUtils.isBlank(param.getIdCard())) {
return ResponseDto.failure(ErrorMapping.get("10101"));
}
adamUserService.identity(param.getUid(), param.getName(), param.getIdCard());
adamUserService.identity(CurrentUtil.getCurrentUid(), param.getName(), param.getIdCard());
}
adamMemberOrderResult = adamMemberOrderService.buyMemberOrMemberCode(param);
return adamMemberOrderService.buyMemberOrMemberCode(param);
} catch (Exception e) {
e.printStackTrace();
log.error("系统异常:购买会员或会员码", e);
return ResponseDto.failure();
}
return ResponseDto.success(adamMemberOrderResult);
}
@ApiOperationSupport(order = 2)
......
......@@ -61,7 +61,7 @@ public class AdamUserController {
editUserInfoVo.setArea(parameter.getArea());
editUserInfoVo.setSignature(parameter.getSignature());
editUserInfoVo.setTagMe(parameter.getTagMe());
editUserInfoVo.setIsComplete(1);
editUserInfoVo.setIsComplete(StringUtils.isEmpty(editUserInfoVo.getUpdatedAt()) ? 0 : 1);
editUserInfoVo.setUpdatedAt(DateUtil.getNowTime());
adamUserInfoService.edit(editUserInfoVo);
......
package com.liquidnet.service.adam.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.*;
......@@ -14,13 +13,14 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamMemberService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.liquidnet.service.adam.util.MemberUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
......@@ -42,10 +42,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
@Autowired
IAdamRdmService adamRdmService;
@Autowired
AdamMemberOrderMapper adamMemberOrderMapper;
@Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
IAdamUserMemberService adamUserMemberService;
@Autowired
IAdamMemberPriceService adamMemberPriceService;
......@@ -100,7 +96,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
}
@Override
public AdamMemberOrderResult buyMemberOrMemberCode(AdamMemberOrderParam param) {
public ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) {
String memberId = param.getMemberId();
String memberPriceId = param.getMemberPriceId();
AdamMemberOrderResult result = new AdamMemberOrderResult();
......@@ -109,8 +105,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 验证会员是否有效
AdamMemberVo adamMemberVo = adamMemberService.queryMemberInfo();
if (!adamMemberVo.getMemberId().equals(memberId)) {
result.setState(0);
return result;
// result.setState(0);
// return result;
return ResponseDto.failure(ErrorMapping.get("10201"));
}
// 验证价格是否有效
List<AdamMemberPriceVo> adamMemberPrice = adamMemberVo.getPriceVoList();
......@@ -123,8 +120,9 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
}
}
if (null == priceVo) {
result.setState(0);
return result;
// result.setState(0);
// return result;
return ResponseDto.failure(ErrorMapping.get("10202"));
}
AdamMemberPriceVo memberPrice = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId), memberPriceId);
......@@ -138,7 +136,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
String orderNo = IDGenerator.nextSnowId().toString().concat("V");
orderVo.setOrderNo(orderNo);
orderVo.setMemberId(memberId);
orderVo.setBirthday(param.getBirthday());
orderVo.setDays(memberPrice.getDays());
orderVo.setMemberPriceId(memberPriceId);
orderVo.setCreatedAt(createdAt);
......@@ -146,15 +143,15 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setMode(param.getMode());
orderVo.setPayChannel(param.getPayChannel());
orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setUid(param.getUid());
orderVo.setUid(CurrentUtil.getCurrentUid());
orderVo.setPrice(param.getPrice());
orderVo.setIp(param.getClientIp());
orderVo.setVersion(param.getVersion());
orderVo.setSource(param.getSource());
orderVo.setIp(CurrentUtil.getCliVersion());
orderVo.setVersion(CurrentUtil.getCliVersion());
orderVo.setSource(CurrentUtil.getCliSource());
mongoTemplate.insert(orderVo, AdamMemberOrderVo.class.getSimpleName());
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(param.getUid()), orderNo, orderVo);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(orderVo.getUid()), orderNo, orderVo);
// 创建订单
int buyType = param.getMode();
......@@ -178,21 +175,27 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
if (null != param.getProductId()) {
payParam.add("product_id", param.getProductId());
}
Map payResult = null;
switch (buyType) {
case 0:
payParam.add("detail", "正在现场 - 购买会员");
payResult = this.callPayServer(param.getPayChannel(), payParam);
result.setOrderId((String) payResult.get("order_id"));
break;
case 1:
payParam.add("detail", "正在现场 - 购买会员码");
payResult = this.callPayServer(param.getPayChannel(), payParam);
result.setOrderId((String) payResult.get("order_id"));
break;
}
result.setPayObject(payResult);
return result;
// Map payResult = null;
// switch (buyType) {
// case 0:
// payParam.add("detail", "正在现场 - 购买会员");
// payResult = this.callPayServer(param.getPayChannel(), payParam);
// result.setOrderNo((String) payResult.get("order_id"));
// break;
// case 1:
// payParam.add("detail", "正在现场 - 购买会员码");
// payResult = this.callPayServer(param.getPayChannel(), payParam);
// result.setOrderNo((String) payResult.get("order_id"));
// break;
// }
payParam.add("detail", buyType == 0 ? "正在现场 - 购买会员" : "正在现场 - 购买会员码");
Map payResult = this.callPayServer(param.getPayChannel(), payParam);
result.setOrderNo(orderVo.getOrderNo());
result.setCode((String) payResult.get("code"));
result.setPayData(payResult.get("pay_data"));
result.setShowUrl(param.getShowUrl());
result.setReturnUrl(param.getReturnUrl());
return ResponseDto.success(result);
}
/**
......@@ -241,7 +244,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setCreatedAt(currentDateTime);
orderVo.setDays(priceVo.getDays());
orderVo.setBirthday(param.getBirthday());
orderVo.setPayNo(memberCodeVo.getCode());
orderVo.setPrice(BigDecimal.valueOf(0));
......@@ -324,6 +326,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
break;
}
String json = HttpUtil.post(url, payParam);
log.info("HttpUtil.response.body:{}", json);
return JsonUtils.fromJson(json, Map.class);
}
......
......@@ -17,4 +17,10 @@
10201=
\ No newline at end of file
10201=会员信息有误,请联系客服
10202=会员价格有误,请联系客服
10301=
\ No newline at end of file
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