pay 修改
This commit is contained in:
@ -14,6 +14,7 @@ import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||
import co.yixiang.modules.order.service.YxStoreOrderStatusService;
|
||||
import co.yixiang.modules.order.web.dto.*;
|
||||
import co.yixiang.modules.order.web.param.OrderParam;
|
||||
import co.yixiang.modules.order.web.param.PayParam;
|
||||
import co.yixiang.modules.order.web.param.RefundParam;
|
||||
import co.yixiang.modules.order.web.param.YxStoreOrderQueryParam;
|
||||
import co.yixiang.modules.order.web.vo.YxStoreOrderQueryVo;
|
||||
@ -150,6 +151,9 @@ public class StoreOrderController extends BaseController {
|
||||
if(StrUtil.isNotEmpty(orderId)){
|
||||
switch (param.getPayType()){
|
||||
case "weixin":
|
||||
if(param.getFrom().equals("weixinh5")){
|
||||
throw new ErrorRequestException("H5模式不支持微信支付,请用公众号演示");
|
||||
}
|
||||
try {
|
||||
map.put("status","WECHAT_PAY");
|
||||
WxPayMpOrderResult wxPayMpOrderResult = storeOrderService
|
||||
@ -178,6 +182,69 @@ public class StoreOrderController extends BaseController {
|
||||
return ApiResult.fail("订单生成失败");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 订单支付
|
||||
*/
|
||||
@PostMapping("/order/pay")
|
||||
@ApiOperation(value = "订单支付",notes = "订单支付")
|
||||
public ApiResult<ConfirmOrderDTO> pay(@Valid @RequestBody PayParam param){
|
||||
|
||||
Map<String,Object> map = new LinkedHashMap<>();
|
||||
int uid = SecurityUtils.getUserId().intValue();
|
||||
if(StrUtil.isEmpty(param.getUni())) return ApiResult.fail("参数错误");
|
||||
|
||||
YxStoreOrderQueryVo storeOrder = storeOrderService
|
||||
.getOrderInfo(param.getUni(),uid);
|
||||
if(ObjectUtil.isNull(storeOrder)) return ApiResult.fail("订单不存在");
|
||||
|
||||
if(storeOrder.getPaid() == 1) return ApiResult.fail("该订单已支付");
|
||||
|
||||
//todo 砍价
|
||||
//todo 拼团
|
||||
|
||||
String orderId = storeOrder.getOrderId();
|
||||
|
||||
OrderExtendDTO orderDTO = new OrderExtendDTO();
|
||||
orderDTO.setOrderId(orderId);
|
||||
map.put("status","SUCCESS");
|
||||
map.put("result",orderDTO);
|
||||
//开始处理支付
|
||||
if(StrUtil.isNotEmpty(orderId)){
|
||||
switch (param.getPaytype()){
|
||||
case "weixin":
|
||||
if(param.getFrom().equals("weixinh5")){
|
||||
throw new ErrorRequestException("H5模式不支持微信支付,请用公众号演示");
|
||||
}
|
||||
try {
|
||||
map.put("status","WECHAT_PAY");
|
||||
WxPayMpOrderResult wxPayMpOrderResult = storeOrderService
|
||||
.wxPay(orderId);
|
||||
//重新组装
|
||||
Map<String,String> jsConfig = new HashMap<>();
|
||||
jsConfig.put("appId",wxPayMpOrderResult.getAppId());
|
||||
jsConfig.put("timestamp",wxPayMpOrderResult.getTimeStamp());
|
||||
jsConfig.put("nonceStr",wxPayMpOrderResult.getNonceStr());
|
||||
jsConfig.put("package",wxPayMpOrderResult.getPackageValue());
|
||||
jsConfig.put("signType",wxPayMpOrderResult.getSignType());
|
||||
jsConfig.put("paySign",wxPayMpOrderResult.getPaySign());
|
||||
orderDTO.setJsConfig(jsConfig);
|
||||
map.put("result",orderDTO);
|
||||
return ApiResult.ok(map);
|
||||
} catch (WxPayException e) {
|
||||
return ApiResult.fail(e.getMessage());
|
||||
}
|
||||
case "yue":
|
||||
storeOrderService.yuePay(orderId,uid);
|
||||
return ApiResult.ok(map,"余额支付成功");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return ApiResult.fail("订单生成失败");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 订单详情
|
||||
*/
|
||||
|
@ -0,0 +1,17 @@
|
||||
package co.yixiang.modules.order.web.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @ClassName PayDTO
|
||||
* @Author hupeng <610796224@qq.com>
|
||||
* @Date 2019/11/7
|
||||
**/
|
||||
@Data
|
||||
public class PayDTO implements Serializable {
|
||||
private String from;
|
||||
private String paytype;
|
||||
private String uni;
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package co.yixiang.modules.order.web.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @ClassName PayDTO
|
||||
* @Author hupeng <610796224@qq.com>
|
||||
* @Date 2019/11/7
|
||||
**/
|
||||
@Data
|
||||
public class PayParam implements Serializable {
|
||||
private String from;
|
||||
private String paytype;
|
||||
private String uni;
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package co.yixiang.modules.user.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import co.yixiang.common.entity.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
@ -21,112 +22,112 @@ import java.util.Date;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel(value="YxUser对象", description="用户表")
|
||||
@ApiModel(value = "YxUser对象", description = "用户表")
|
||||
public class YxUser extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@TableId(value = "uid", type = IdType.AUTO)
|
||||
private Integer uid;
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@TableId(value = "uid", type = IdType.AUTO)
|
||||
private Integer uid;
|
||||
|
||||
@ApiModelProperty(value = "用户账户(跟accout一样)")
|
||||
private String username;
|
||||
@ApiModelProperty(value = "用户账户(跟accout一样)")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "用户账号")
|
||||
private String account;
|
||||
@ApiModelProperty(value = "用户账号")
|
||||
private String account;
|
||||
|
||||
@ApiModelProperty(value = "用户密码(跟pwd)")
|
||||
private String password;
|
||||
@ApiModelProperty(value = "用户密码(跟pwd)")
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty(value = "用户密码")
|
||||
private String pwd;
|
||||
@ApiModelProperty(value = "用户密码")
|
||||
private String pwd;
|
||||
|
||||
@ApiModelProperty(value = "真实姓名")
|
||||
private String realName;
|
||||
@ApiModelProperty(value = "真实姓名")
|
||||
private String realName;
|
||||
|
||||
@ApiModelProperty(value = "生日")
|
||||
private Integer birthday;
|
||||
@ApiModelProperty(value = "生日")
|
||||
private Integer birthday;
|
||||
|
||||
@ApiModelProperty(value = "身份证号码")
|
||||
private String cardId;
|
||||
@ApiModelProperty(value = "身份证号码")
|
||||
private String cardId;
|
||||
|
||||
@ApiModelProperty(value = "用户备注")
|
||||
private String mark;
|
||||
@ApiModelProperty(value = "用户备注")
|
||||
private String mark;
|
||||
|
||||
@ApiModelProperty(value = "合伙人id")
|
||||
private Integer partnerId;
|
||||
@ApiModelProperty(value = "合伙人id")
|
||||
private Integer partnerId;
|
||||
|
||||
@ApiModelProperty(value = "用户分组id")
|
||||
private Integer groupId;
|
||||
@ApiModelProperty(value = "用户分组id")
|
||||
private Integer groupId;
|
||||
|
||||
@ApiModelProperty(value = "用户昵称")
|
||||
private String nickname;
|
||||
@ApiModelProperty(value = "用户昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty(value = "用户头像")
|
||||
private String avatar;
|
||||
@ApiModelProperty(value = "用户头像")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty(value = "手机号码")
|
||||
private String phone;
|
||||
@ApiModelProperty(value = "手机号码")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty(value = "添加时间")
|
||||
private Integer addTime;
|
||||
@ApiModelProperty(value = "添加时间")
|
||||
private Integer addTime;
|
||||
|
||||
@ApiModelProperty(value = "添加ip")
|
||||
private String addIp;
|
||||
@ApiModelProperty(value = "添加ip")
|
||||
private String addIp;
|
||||
|
||||
@ApiModelProperty(value = "最后一次登录时间")
|
||||
private Integer lastTime;
|
||||
@ApiModelProperty(value = "最后一次登录时间")
|
||||
private Integer lastTime;
|
||||
|
||||
@ApiModelProperty(value = "最后一次登录ip")
|
||||
private String lastIp;
|
||||
@ApiModelProperty(value = "最后一次登录ip")
|
||||
private String lastIp;
|
||||
|
||||
@ApiModelProperty(value = "用户余额")
|
||||
private BigDecimal nowMoney;
|
||||
@ApiModelProperty(value = "用户余额")
|
||||
private BigDecimal nowMoney;
|
||||
|
||||
@ApiModelProperty(value = "佣金金额")
|
||||
private BigDecimal brokeragePrice;
|
||||
@ApiModelProperty(value = "佣金金额")
|
||||
private BigDecimal brokeragePrice;
|
||||
|
||||
@ApiModelProperty(value = "用户剩余积分")
|
||||
private BigDecimal integral;
|
||||
@ApiModelProperty(value = "用户剩余积分")
|
||||
private BigDecimal integral;
|
||||
|
||||
@ApiModelProperty(value = "连续签到天数")
|
||||
private Integer signNum;
|
||||
@ApiModelProperty(value = "连续签到天数")
|
||||
private Integer signNum;
|
||||
|
||||
@ApiModelProperty(value = "1为正常,0为禁止")
|
||||
private Boolean status;
|
||||
@ApiModelProperty(value = "1为正常,0为禁止")
|
||||
private Boolean status;
|
||||
|
||||
@ApiModelProperty(value = "等级")
|
||||
private Integer level;
|
||||
@ApiModelProperty(value = "等级")
|
||||
private Integer level;
|
||||
|
||||
@ApiModelProperty(value = "推广元id")
|
||||
private Integer spreadUid;
|
||||
@ApiModelProperty(value = "推广元id")
|
||||
private Integer spreadUid;
|
||||
|
||||
@ApiModelProperty(value = "推广员关联时间")
|
||||
private Integer spreadTime;
|
||||
@ApiModelProperty(value = "推广员关联时间")
|
||||
private Integer spreadTime;
|
||||
|
||||
@ApiModelProperty(value = "用户类型")
|
||||
private String userType;
|
||||
@ApiModelProperty(value = "用户类型")
|
||||
private String userType;
|
||||
|
||||
@ApiModelProperty(value = "是否为推广员")
|
||||
private Boolean isPromoter;
|
||||
@ApiModelProperty(value = "是否为推广员")
|
||||
private Boolean isPromoter;
|
||||
|
||||
@ApiModelProperty(value = "用户购买次数")
|
||||
private Integer payCount;
|
||||
@ApiModelProperty(value = "用户购买次数")
|
||||
private Integer payCount;
|
||||
|
||||
@ApiModelProperty(value = "下级人数")
|
||||
private Integer spreadCount;
|
||||
@ApiModelProperty(value = "下级人数")
|
||||
private Integer spreadCount;
|
||||
|
||||
@ApiModelProperty(value = "清理会员时间")
|
||||
private Integer cleanTime;
|
||||
@ApiModelProperty(value = "清理会员时间")
|
||||
private Integer cleanTime;
|
||||
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
private String addres;
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
private String addres;
|
||||
|
||||
@ApiModelProperty(value = "管理员编号 ")
|
||||
private Integer adminid;
|
||||
@ApiModelProperty(value = "管理员编号 ")
|
||||
private Integer adminid;
|
||||
|
||||
@ApiModelProperty(value = "用户登陆类型,h5,wechat,routine")
|
||||
private String loginType;
|
||||
@ApiModelProperty(value = "用户登陆类型,h5,wechat,routine")
|
||||
private String loginType;
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ public class YxWechatUser extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "微信用户id")
|
||||
@TableId(value = "uid", type = IdType.AUTO)
|
||||
@TableId(value = "uid", type = IdType.INPUT)
|
||||
private Integer uid;
|
||||
|
||||
@ApiModelProperty(value = "只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段")
|
||||
|
@ -11,6 +11,7 @@ import co.yixiang.modules.security.security.JwtUser;
|
||||
import co.yixiang.modules.security.utils.JwtTokenUtil;
|
||||
import co.yixiang.modules.user.entity.YxUser;
|
||||
import co.yixiang.modules.user.entity.YxWechatUser;
|
||||
import co.yixiang.modules.user.mapper.YxUserMapper;
|
||||
import co.yixiang.modules.user.service.YxUserService;
|
||||
import co.yixiang.modules.user.service.YxWechatUserService;
|
||||
import co.yixiang.utils.EncryptUtils;
|
||||
@ -92,9 +93,30 @@ public class WechatController extends BaseController {
|
||||
if(ObjectUtil.isNotNull(wechatUser)){
|
||||
jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wechatUser.getNickname());
|
||||
}else{
|
||||
|
||||
|
||||
//用户保存
|
||||
YxUser user = new YxUser();
|
||||
user.setAccount(wxMpUser.getNickname());
|
||||
user.setUsername(wxMpUser.getNickname());
|
||||
user.setPassword(EncryptUtils.encryptPassword("123456"));
|
||||
user.setPwd(EncryptUtils.encryptPassword("123456"));
|
||||
user.setPhone("");
|
||||
user.setUserType("wechat");
|
||||
user.setAddTime(OrderUtil.getSecondTimestampTwo());
|
||||
user.setLastTime(OrderUtil.getSecondTimestampTwo());
|
||||
user.setNickname(wxMpUser.getNickname());
|
||||
user.setAvatar(wxMpUser.getHeadImgUrl());
|
||||
user.setNowMoney(BigDecimal.ZERO);
|
||||
user.setBrokeragePrice(BigDecimal.ZERO);
|
||||
user.setIntegral(BigDecimal.ZERO);
|
||||
|
||||
userService.save(user);
|
||||
|
||||
|
||||
//保存微信用户
|
||||
YxWechatUser yxWechatUser = new YxWechatUser();
|
||||
// System.out.println("wxMpUser:"+wxMpUser);
|
||||
// System.out.println("wxMpUser:"+wxMpUser);
|
||||
yxWechatUser.setAddTime(OrderUtil.getSecondTimestampTwo());
|
||||
yxWechatUser.setNickname(wxMpUser.getNickname());
|
||||
yxWechatUser.setOpenid(wxMpUser.getOpenId());
|
||||
@ -119,27 +141,11 @@ public class WechatController extends BaseController {
|
||||
if(ObjectUtil.isNotEmpty(wxMpUser.getGroupId())){
|
||||
yxWechatUser.setGroupid(wxMpUser.getGroupId());
|
||||
}
|
||||
yxWechatUser.setUid(user.getUid());
|
||||
|
||||
wechatUserService.save(yxWechatUser);
|
||||
|
||||
|
||||
//用户保存
|
||||
YxUser user = new YxUser();
|
||||
user.setAccount(wxMpUser.getNickname());
|
||||
user.setUsername(wxMpUser.getNickname());
|
||||
user.setPassword(EncryptUtils.encryptPassword("123456"));
|
||||
user.setPwd(EncryptUtils.encryptPassword("123456"));
|
||||
user.setPhone("");
|
||||
user.setUserType("wechat");
|
||||
user.setAddTime(OrderUtil.getSecondTimestampTwo());
|
||||
user.setLastTime(OrderUtil.getSecondTimestampTwo());
|
||||
user.setNickname(wxMpUser.getNickname());
|
||||
user.setAvatar(wxMpUser.getHeadImgUrl());
|
||||
user.setNowMoney(BigDecimal.ZERO);
|
||||
user.setBrokeragePrice(BigDecimal.ZERO);
|
||||
user.setIntegral(BigDecimal.ZERO);
|
||||
user.setUid(yxWechatUser.getUid());
|
||||
userService.save(user);
|
||||
|
||||
jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wxMpUser.getNickname());
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ spring:
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
url: jdbc:log4jdbc:mysql://localhost:3306/yshop?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
|
||||
username: yshop
|
||||
password: yshoP@2019#yx
|
||||
password:
|
||||
|
||||
# 初始化配置
|
||||
initial-size: 3
|
||||
@ -48,7 +48,7 @@ spring:
|
||||
database: 0
|
||||
host: 127.0.0.1
|
||||
port: 6379
|
||||
password: yshop2019@yxtw
|
||||
password:
|
||||
#连接超时时间
|
||||
timeout: 5000
|
||||
|
||||
|
Reference in New Issue
Block a user