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

Commit dd303720 authored by 洪全海's avatar 洪全海

会员下单,未写完

parent a1f45599
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码")
@Data
public class AdamMemberOrderCodeParam implements Serializable {
private static final long serialVersionUID = 5940725094369061032L;
@ApiModelProperty(position = 0, required = false, example = "0")
private String uid;
@ApiModelProperty(position = 1, required = true, example = "0")
private String memberCode;
}
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@ApiModel(value = "AdamMemberOrderParam", description = "入场人响应")
@Data
public class AdamMemberOrderParam implements Serializable {
private static final long serialVersionUID = 3219448286221952517L;
/**
* 会员卡id
*/
@ApiModelProperty(position = 0, required = true, value = "会员ID[50]", example = "62960077673504768")
private String memberId;
@ApiModelProperty(position = 1, required = true, value = "购买方式:0-购买会员 1-购买会员码,2-使用会员码", example = "0")
private Integer mode;
@ApiModelProperty(position = 2, required = true, value = "应付金额", example = "0")
private BigDecimal price;
@ApiModelProperty(position = 3, required = true, value = "实付金额", example = "0")
private BigDecimal pricePaid;
@ApiModelProperty(position = 4, required = true, value = "会员价格id", example = "0")
private String memberPriceId;
@ApiModelProperty(position = 5, required = false, value = "先这么写,应该从token取才对", example = "0")
private String uid;
@ApiModelProperty(position = 6, required = true, value = "用户生日", example = "0")
private LocalDateTime birthday;
/**
* 支付方式
* ALIPAY,WEPAY,WAPALIPAY,WAPWEPAY,JSWEPAY,APPLETWEPAY,APPIAP
*/
@ApiModelProperty(position = 7, required = true, value = "支付方式:ALIPAY,WEPAY,WAPALIPAY,WAPWEPAY,JSWEPAY,APPLETWEPAY,APPIAP")
private String payChannel;
/**
* AuthCode
*/
@ApiModelProperty(position = 8, required = true, value = "支付用的AuthCode")
private String authCode;
@ApiModelProperty(position = 9, required = true, value = "支付用的productId")
private String productId;
@ApiModelProperty(position = 10, required = true, value = "支付用的openId")
private String openId;
}
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
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;
}
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.springframework.security.core.parameters.P;
import java.io.Serializable;
@ApiModel(value = "AdamMemberOrderVo", description = "订单详情展示")
@Data
public class AdamMemberOrderVo implements Serializable {
private static final long serialVersionUID = 5258094625450569125L;
public static final AdamMemberOrderVo obj = new AdamMemberOrderVo();
private static AdamMemberOrderVo getNew(){
try {
return (AdamMemberOrderVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new AdamMemberOrderVo();
}
}
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
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;
/**
* 对客户端API接口
*/
public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
/**
* 购买会员或会员码
*
* @param param
*/
AdamMemberOrderResult buyMemberOrMemberCode(AdamMemberOrderParam param);
/**
* 使用会员码
* @param param
* @return
*/
Object useMemberCode(AdamMemberOrderCodeParam param);
/**
* 获取订单详情信息
*
* @param orderNo 订单号
* @return
*/
AdamMemberOrderVo getMemberOrderInfo(String orderNo);
}
package com.liquidnet.service.adam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
public class AdamMemberOrder implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* 订单号
*/
private String orderNo;
/**
* 用户id
*/
private String uid;
/**
* 购买方式:0-购买会员 1-购买会员码,2-使用会员码
*/
private String mode;
/**
* 原价
*/
private BigDecimal price;
/**
* 实际支付价格
*/
private BigDecimal pricePaid;
/**
* 会员名称
*/
private String memberName;
/**
* 会员id
*/
private String memberId;
/**
* 价格id
*/
private String memberPriceId;
/**
* 购买天数
*/
private Integer days;
/**
* 订单状态:0未支付 1已支付 2已超时 5已退款
*/
private Integer state;
/**
* 会员编号
*/
private String memberNo;
/**
* 支付渠道
*/
private String payChannel;
/**
* 支付单号
*/
private String payNo;
/**
* 支付时间
*/
private LocalDateTime paymentAt;
/**
* 用户生日
*/
private LocalDateTime birthday;
/**
* ip地址
*/
private String clientIp;
/**
* 购买来源 Android iOS h5
*/
private String source;
/**
* 客户端版本号
*/
private String version;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
public interface AdamMemberOrderMapper extends BaseMapper<AdamMemberOrder> {
}
...@@ -254,16 +254,19 @@ create table adam_member_order ...@@ -254,16 +254,19 @@ create table adam_member_order
mid int unsigned auto_increment primary key, mid int unsigned auto_increment primary key,
order_no varchar(64), order_no varchar(64),
uid varchar(64), uid varchar(64),
mode tinyint comment '购买方式:1-buy,2-code', mode tinyint comment '购买方式:0-购买会员 1-购买会员码,2-使用会员码',
price decimal(8, 2) comment '原价', price decimal(8, 2) comment '原价',
price_paid decimal(8, 2) comment '实际支付', price_paid decimal(8, 2) comment '实际支付',
member_name varchar(64), member_name varchar(64),
member_id int unsigned, member_id varchar(255) comment '会员id',
member_price_id varchar(255) comment '会员价格id',
days int default 0 comment '购买天数',
state tinyint comment '订单状态', state tinyint comment '订单状态',
member_no varchar(20) comment '会员号', member_no varchar(20) comment '会员号',
pay_channel varchar(20) comment '支付渠道', pay_channel varchar(20) comment '支付渠道',
pay_no varchar(64) comment '支付订单', pay_no varchar(64) comment '支付订单',
payment_at datetime, birthday date default null comment '用户生日',
payment_at datetime default null comment '支付时间',
created_at datetime, created_at datetime,
updated_at datetime, updated_at datetime,
client_ip varchar(20), client_ip varchar(20),
......
package com.liquidnet.service.adam.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "购买会员")
@Slf4j
@RestController
@RequestMapping("/member/order")
public class AdamMemberOrderController {
@Autowired
IAdamMemberOrderService adamMemberOrderService;
@ApiOperationSupport(order = 0)
@ApiOperation(value = "购买会员或兑换码")
@PostMapping("/buy/member")
public ResponseDto<AdamMemberOrder> buyMemberOrCode(AdamMemberOrderParam param) {
try {
adamMemberOrderService.buyMemberOrMemberCode(param);
return new ResponseDto().success();
} catch (Exception e) {
e.printStackTrace();
return new ResponseDto().failure();
}
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "使用兑换码")
@PostMapping("/use/memberCode")
public ResponseDto<AdamMemberOrder> useMemberCode(AdamMemberOrderParam param) {
try {
adamMemberOrderService.useMemberCode(param);
return new ResponseDto().success();
} catch (Exception e) {
e.printStackTrace();
return new ResponseDto().failure();
}
}
}
package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
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.adam.mapper.AdamMemberOrderMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMapper, AdamMemberOrder> implements IAdamMemberOrderService {
@Autowired
AdamMemberOrderMapper adamMemberOrderMapper;
@Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Override
public AdamMemberOrderResult buyMemberOrMemberCode(AdamMemberOrderParam param) {
AdamMemberOrderResult result = new AdamMemberOrderResult();
// 判断黑名单,待定(暂不做)
// 验证会员是否有效
// 验证价格是否有效
// 获取会员编号
// 生成订单信息
int buyType = param.getMode();
// 判断购买情况
// 调取对应支付接口
String a= "";
switch (buyType) {
case 0:
a = "1";
break;
case 1:
a = "2";
break;
default:
a = "3";
break;
}
return result;
}
/**
* 使用会员码
* @param param
* @return
*/
@Override
public Object useMemberCode(AdamMemberOrderCodeParam param) {
String uid = param.getUid();
String code = param.getMemberCode();
return null;
}
/**
* 购买会员
* @return
*/
private Object buyMember() {
return null;
}
/**
* 购买会员码
* @return
*/
private Object buyMemberCode() {
return null;
}
@Override
public AdamMemberOrderVo getMemberOrderInfo(String orderNo) {
return null;
}
}
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