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

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

fix:会员API;

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