Browse Source

更新支付宝支付

wang-hai-cheng 5 years ago
parent
commit
16872ff099

+ 8 - 12
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/controller/PayController.java

@@ -1,15 +1,11 @@
 package cn.com.ty.lift.quan.pay.controller;
 
 
-import cn.com.ty.lift.common.aliservice.alipay.AlipayUtil;
-import cn.com.ty.lift.quan.pay.dao.entity.Pay;
+import cn.com.ty.lift.quan.pay.dao.entity.UserInfo;
 import cn.com.ty.lift.quan.pay.dao.entity.model.PayReq;
-import cn.com.ty.lift.quan.pay.service.impl.PayServiceImpl;
+import cn.com.ty.lift.quan.pay.service.impl.UserInfoServiceImpl;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.alipay.api.AlipayApiException;
-import com.alipay.api.internal.util.AlipayUtils;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -28,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/pay")
 @AllArgsConstructor
 public class PayController {
-    private final PayServiceImpl payService;
+    private final UserInfoServiceImpl payService;
 
     /**
      * @param
@@ -37,15 +33,15 @@ public class PayController {
      * @date 2019/12/26 14:28
      */
     @PostMapping("/bind")
-    public RestResponse bind(@RequestBody Pay req) {
-        return payService.bind(req);
+    public RestResponse bind(@RequestBody UserInfo userInfo) {
+        return payService.bind(userInfo);
     }
 
     @PostMapping("/info")
-    public RestResponse balance(@RequestBody Pay pay) {
-        Pay byId = payService.getById(pay.getUserId());
+    public RestResponse balance(@RequestBody UserInfo userInfo) {
+        UserInfo byId = payService.getById(userInfo.getUserId());
         if (byId == null) {
-            return RestResponse.fail("用户未绑定支付宝账号");
+            return RestResponse.success("无此用户");
         }
         return RestResponse.success(byId);
     }

+ 0 - 56
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/dao/entity/Pay.java

@@ -1,56 +0,0 @@
-package cn.com.ty.lift.quan.pay.dao.entity;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-/**
- * <p>
- * 用户资金表
- * </p>
- *
- * @author wang-hai-cheng
- * @since 2019-12-26
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class Pay implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 用户id
-     */
-    @TableId("user_id")
-    private Long userId;
-
-    /**
-     * 支付宝账号
-     */
-    @TableField("alipay_account")
-    private String alipayAccount;
-
-    /**
-     * 支付宝用户id
-     */
-    @TableField("alipay_id")
-    private String alipayId;
-
-    /**
-     * 用户的余额
-     */
-    @TableField("money")
-    private BigDecimal money;
-
-    /**
-     * 用户提现时,冻结的余额
-     */
-    @TableField("freeze_money")
-    private BigDecimal freezeMoney;
-}

+ 128 - 0
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/dao/entity/UserInfo.java

@@ -0,0 +1,128 @@
+package cn.com.ty.lift.quan.pay.dao.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @author wang-hai-cheng
+ * @since 2020-01-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class UserInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户id
+     */
+    @TableId(value = "user_id", type = IdType.AUTO)
+    private Long userId;
+
+    /**
+     * 用户昵称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 用户手机号
+     */
+    @TableField("mobile")
+    private String mobile;
+
+    /**
+     * 性别
+     */
+    @TableField("gender")
+    private Integer gender;
+
+    /**
+     * 年龄
+     */
+    @TableField("age")
+    private Integer age;
+
+    /**
+     * 头像地址
+     */
+    @TableField("avatar_url")
+    private String avatarUrl;
+
+    /**
+     * 备注
+     */
+    @TableField("remarks")
+    private String remarks;
+
+    /**
+     * 个性签名
+     */
+    @TableField("signature")
+    private String signature;
+
+    @TableField("service_total")
+    private Integer serviceTotal;
+
+    @TableField("satisfaction_total")
+    private Integer satisfactionTotal;
+
+    @TableField("level")
+    private Integer level;
+
+    @TableField("maintenance_total")
+    private Integer maintenanceTotal;
+
+    @TableField("emergency_total")
+    private Integer emergencyTotal;
+
+    @TableField("lift_total")
+    private Integer liftTotal;
+
+    /**
+     * 用户余额
+     */
+    @TableField("balance")
+    private BigDecimal balance;
+
+    /**
+     * 用户类型:00:超级管理员,0:企业管理员,1:普通用户
+     */
+    @TableField("type")
+    private String type;
+
+    @TableField("delete_flag")
+    private Integer deleteFlag;
+
+    /**
+     * 支付宝账号
+     */
+    @TableField("alipay_account")
+    private String alipayAccount;
+
+    /**
+     * 支付宝id
+     */
+    @TableField("alipay_id")
+    private String alipayId;
+
+    /**
+     * 冻结的余额
+     */
+    @TableField("freeze_balance")
+    private BigDecimal freezeBalance;
+
+
+}

+ 3 - 3
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/dao/entity/model/PayReq.java

@@ -1,16 +1,16 @@
 package cn.com.ty.lift.quan.pay.dao.entity.model;
 
-import cn.com.ty.lift.quan.pay.dao.entity.Pay;
+import cn.com.ty.lift.quan.pay.dao.entity.UserInfo;
 import lombok.Data;
 
 import java.math.BigDecimal;
 
 @Data
-public class PayReq extends Pay {
+public class PayReq extends UserInfo {
     //金额操作记录表id
     private Long id;
     //1充值 2提现
-    private Integer type;
+    private Integer task;
     //买家账号
     private String buyerId;
     //商品名

+ 0 - 22
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/dao/mapper/PayMapper.java

@@ -1,22 +0,0 @@
-package cn.com.ty.lift.quan.pay.dao.mapper;
-
-import cn.com.ty.lift.quan.pay.dao.entity.Pay;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-import java.util.Map;
-
-/**
- * <p>
- * 用户资金表 Mapper 接口
- * </p>
- *
- * @author wang-hai-cheng
- * @since 2019-12-26
- */
-public interface PayMapper extends BaseMapper<Pay> {
-
-    @Select("select count(user_id) count from user_account where user_id=${userId}")
-    Map<String, Long> selectUserByUserId(@Param("userId") Long userId);
-}

+ 16 - 0
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/dao/mapper/UserInfoMapper.java

@@ -0,0 +1,16 @@
+package cn.com.ty.lift.quan.pay.dao.mapper;
+
+import cn.com.ty.lift.quan.pay.dao.entity.UserInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 用户表 Mapper 接口
+ * </p>
+ *
+ * @author wang-hai-cheng
+ * @since 2020-01-05
+ */
+public interface UserInfoMapper extends BaseMapper<UserInfo> {
+
+}

+ 4 - 4
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/service/PayService.java

@@ -1,16 +1,16 @@
 package cn.com.ty.lift.quan.pay.service;
 
-import cn.com.ty.lift.quan.pay.dao.entity.Pay;
+import cn.com.ty.lift.quan.pay.dao.entity.UserInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * <p>
- * 用户资金表 服务类
+ * 用户表 服务类
  * </p>
  *
  * @author wang-hai-cheng
- * @since 2019-12-26
+ * @since 2020-01-05
  */
-public interface PayService extends IService<Pay> {
+public interface UserInfoService extends IService<UserInfo> {
 
 }

+ 26 - 38
lift-quan-service/src/main/java/cn/com/ty/lift/quan/pay/service/impl/PayServiceImpl.java

@@ -1,11 +1,11 @@
 package cn.com.ty.lift.quan.pay.service.impl;
 
 import cn.com.ty.lift.common.aliservice.alipay.AlipayUtil;
-import cn.com.ty.lift.quan.pay.dao.entity.Pay;
 import cn.com.ty.lift.quan.pay.dao.entity.PayRecord;
+import cn.com.ty.lift.quan.pay.dao.entity.UserInfo;
 import cn.com.ty.lift.quan.pay.dao.entity.model.PayReq;
-import cn.com.ty.lift.quan.pay.dao.mapper.PayMapper;
-import cn.com.ty.lift.quan.pay.service.PayService;
+import cn.com.ty.lift.quan.pay.dao.mapper.UserInfoMapper;
+import cn.com.ty.lift.quan.pay.service.UserInfoService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.alipay.api.AlipayApiException;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -13,7 +13,6 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -23,32 +22,21 @@ import java.util.Map;
 
 /**
  * <p>
- * 用户资金表 服务实现类
+ * 用户表 服务实现类
  * </p>
  *
  * @author wang-hai-cheng
- * @since 2019-12-26
+ * @since 2020-01-05
  */
-@Transactional
 @Service
 @AllArgsConstructor
-public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PayService {
+public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {
 
     private final PayRecordServiceImpl recordService;
 
-    public RestResponse bind(Pay pay) {
-        //查询用户表,如果用户不存在就返回 "用户不存在"
-        if (this.getBaseMapper().selectUserByUserId(pay.getUserId()).get("count") < 1L) {
-            return RestResponse.fail("用户不存在");
-        }
-        //如果用户资金表不存在这个记录,就新增一个记录
-        Pay byId = this.getById(pay.getUserId());
-        if (byId == null) {
-            byId = new Pay();
-            byId.setUserId(pay.getUserId());
-        }
-        //获取前端传过来的用户账号
-        byId.setAlipayAccount(pay.getAlipayAccount());
+    public RestResponse bind(UserInfo userInfo) {
+        UserInfo byId = this.getById(userInfo.getUserId());
+        //获取前端传过来的支付宝账号
         if (this.saveOrUpdate(byId)) {
             return RestResponse.success(null, "成功");
         }
@@ -63,7 +51,7 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         if (req.getTotalAmount().compareTo(BigDecimal.ZERO) < 1) {
             return RestResponse.fail("金额必须大于0");
         }
-        Pay byId = this.getById(req.getUserId());
+        UserInfo byId = this.getById(req.getUserId());
         String outTradeNo = IdWorker.getIdStr();
         PayRecord record = new PayRecord();
         //设置用户id
@@ -80,8 +68,8 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         record.setStatus(0);
         //设置支付宝订单号
         String tradeNo;
-        //type 1 创建充值订单
-        if (req.getType().equals(1)) {
+        //task 1 创建充值订单
+        if (req.getTask().equals(1)) {
             //向支付宝发创建充值订单请求
             tradeNo = AlipayUtil
                     .create(byId.getAlipayAccount(), outTradeNo, req.getSubject(), req.getBody(), req.getTotalAmount());
@@ -96,9 +84,9 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
             return RestResponse.fail();
         }
 
-        //type 2 创建提现审核订单
-        if (req.getType().equals(2)) {
-            if (req.getTotalAmount().compareTo(byId.getMoney()) > 0) {
+        //task 2 创建提现审核订单
+        if (req.getTask().equals(2)) {
+            if (req.getTotalAmount().compareTo(byId.getBalance()) > 0) {
                 return RestResponse.fail("账号余额不足");
             }
             if (recordService.getOne(new QueryWrapper<PayRecord>()
@@ -114,8 +102,8 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
                 return RestResponse.fail("每天仅支持提现3次");
             }
             //创建提现订单
-            byId.setFreezeMoney(req.getTotalAmount());
-            byId.setMoney(byId.getMoney().subtract(req.getTotalAmount()));
+            byId.setFreezeBalance(req.getTotalAmount());
+            byId.setBalance(byId.getBalance().subtract(req.getTotalAmount()));
             record.setType(2);
             //保存订单信息到数据库
             if (this.updateById(byId) && recordService.save(record)) {
@@ -143,12 +131,12 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         }
         //如果记录是充值
         if (recordByOutTradeNo.getType() == 1) {
-            Pay payById = this.getById(recordByOutTradeNo.getUserId());
+            UserInfo payById = this.getById(recordByOutTradeNo.getUserId());
             //调用支付宝订单查询接口,查询充值订单是否完成
             Map<String, Object> orderInfo = AlipayUtil.order(recordByOutTradeNo.getTradeNo());
             if ((boolean) orderInfo.get("status")) {
                 //完成就设置用户在平台中的余额
-                payById.setMoney(payById.getMoney()
+                payById.setBalance(payById.getBalance()
                         .add(recordByOutTradeNo.getTotalAmount()));
                 //设置订单状态为1完成,订单完成时间为当前
                 if (this.updateById(payById)) {
@@ -166,7 +154,7 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         }
         //如果记录是提现
         if (recordByOutTradeNo.getType() == 2) {
-            Pay byId = this.getById(recordByOutTradeNo.getUserId());
+            UserInfo byId = this.getById(recordByOutTradeNo.getUserId());
             //调用支付宝企业转账到个人 接口
             String tradeNo = AlipayUtil.withdraw(
                     byId.getAlipayId(),
@@ -176,7 +164,7 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
             //如果有订单码说明转账成功
             if (tradeNo != null) {
                 //设置冻结金额为0
-                byId.setFreezeMoney(new BigDecimal(0));
+                byId.setFreezeBalance(new BigDecimal(0));
                 //设置支付宝订单id,订单状态,订单完成时间
                 recordByOutTradeNo.setTradeNo(tradeNo);
                 recordByOutTradeNo.setStatus(1);
@@ -195,7 +183,7 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         List<PayRecord> payRecords = recordService.list(
                 new QueryWrapper<PayRecord>()
                         .eq("user_id", req.getUserId())
-                        .eq(req.getType() != null, "type", req.getType())
+                        .eq(req.getTask() != null, "type", req.getTask())
                         .eq(req.getStatus() != null, "status", req.getStatus()));
         if (payRecords.isEmpty()) {
             return RestResponse.success();
@@ -225,9 +213,9 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
             }
             //如果订单是提现类型
             if (recordByOutTradeNo.getType() == 2) {
-                Pay byId = this.getById(recordByOutTradeNo.getUserId());
-                byId.setMoney(byId.getMoney().add(byId.getFreezeMoney()));
-                byId.setFreezeMoney(BigDecimal.ZERO);
+                UserInfo byId = this.getById(recordByOutTradeNo.getUserId());
+                byId.setBalance(byId.getBalance().add(byId.getFreezeBalance()));
+                byId.setFreezeBalance(BigDecimal.ZERO);
                 recordByOutTradeNo.setStatus(2);
                 if (this.updateById(byId) && recordService.updateById(recordByOutTradeNo)) {
                     return RestResponse.success(null, "成功");
@@ -236,4 +224,4 @@ public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PaySe
         }
         return RestResponse.fail();
     }
-}
+}