he2802 4 жил өмнө
parent
commit
a84159a943

+ 1 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -74,7 +74,7 @@ public class OrderController extends BaseController {
     /**
      * 新增订单
      */
-    @ApiOperation("新增订单")
+    @ApiOperation("金币支付订单")
     @Log(title = "订单", businessType = BusinessType.INSERT)
     @PostMapping()
     public AjaxResult add(@RequestBody OrderAddBo bo) {

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/Order.java

@@ -77,4 +77,5 @@ private static final long serialVersionUID=1L;
     /** 手机号码 */
     @TableField(exist = false)
     private String telphone;
+
 }

+ 54 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.activity.domain.ActivityConfiguration;
@@ -13,6 +14,7 @@ import com.zhongzheng.modules.bank.service.IQuestionBankService;
 import com.zhongzheng.modules.bank.vo.QuestionBankVo;
 import com.zhongzheng.modules.bank.vo.QuestionVo;
 import com.zhongzheng.modules.collect.domain.CollectBank;
+import com.zhongzheng.modules.course.domain.Course;
 import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.exam.service.IExamNoteService;
@@ -21,10 +23,13 @@ import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.Coupon;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderActivity;
+import com.zhongzheng.modules.order.domain.OrderCoupon;
 import com.zhongzheng.modules.order.mapper.OrderMapper;
 import com.zhongzheng.modules.order.service.*;
 import com.zhongzheng.modules.order.vo.CouponVo;
+import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderVo;
+import com.zhongzheng.modules.user.bo.OrderPossessUserAddBo;
 import com.zhongzheng.modules.user.domain.OrderPossessUser;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.service.IOrderPossessUserService;
@@ -216,8 +221,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         String price = "1";
         String out_trade_no = DateUtils.getDateOrderSn();
         add.setOderSn(out_trade_no);
-        add.setPayType(1); //微信支付
-        add.setOrderStatus(0);
+        add.setPayType(3); //金币支付
         BigDecimal totalPrice = new BigDecimal(0);
         Boolean couponBool = true;
         for (OrderGoodsAddBo g : goodsList) {
@@ -320,11 +324,57 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             totalPrice = zero;
         }
         add.setOrderPrice(totalPrice);
+
+        if(userVo.getMoney().compareTo(totalPrice) < 0){
+            throw new CustomException("金币不足");
+        }
+        userVo.setMoney(userVo.getMoney().subtract(totalPrice));
+        add.setOrderStatus(0);
         if(!this.save(add)){
             throw new CustomException("订单数据错误");
         }
-        Map<String, String> result =  iWxPayService.payment(out_trade_no,userVo.getOpenId(),body,price);
-        return result;
+        dealCoinOrder(add.getOderSn());
+    //    Map<String, String> result =  iWxPayService.payment(out_trade_no,userVo.getOpenId(),body,price);
+        return null;
+    }
+
+    //金币支付
+    public Boolean dealCoinOrder(String out_trade_no){
+        Order order = queryByOrderSn(out_trade_no);
+        if(order.getOrderStatus()==0){
+            order.setOrderStatus(1);
+            order.setPayTime(DateUtils.getNowTime());
+            order.setOrderGeneral(out_trade_no);
+            if(updateById(order)){
+                OrderGoodsQueryBo bo = new OrderGoodsQueryBo();
+                bo.setOrderSn(out_trade_no);
+                List<OrderGoodsVo> goodsList = iOrderGoodsService.queryList(bo);
+                for (OrderGoodsVo g : goodsList) {
+                    //扣除金币
+                    UpdateWrapper<User> updateUserWrapper = new UpdateWrapper<>();
+                    updateUserWrapper.setSql("money = money -"+g.getGoodsPrice());
+                    updateUserWrapper.eq("user_id", order.getUserId());
+                    iUserService.update(updateUserWrapper);
+                    //添加入我的学习
+                    OrderPossessUserAddBo addBo = new OrderPossessUserAddBo();
+                    addBo.setUserId(order.getUserId());
+                    addBo.setPossessId(g.getGoodsId());
+                    addBo.setTypeId(g.getGoodsType());
+                    addBo.setSourceId(0);//订单来源
+                    iOrderPossessUserService.insertByAddBo(addBo);
+                }
+                //用优惠券更新状态
+                OrderCoupon orderCoupon = iOrderCouponService.queryBySn(out_trade_no);
+                if(Validator.isNotNull(orderCoupon)){
+                    UpdateWrapper<Course> updateWrapper = new UpdateWrapper<>();
+                    updateWrapper.setSql("user_status = "+1);
+                    updateWrapper.eq("coupon_id", orderCoupon.getCouponId());
+                    iCourseService.update(updateWrapper);
+                }
+                return true;
+            }
+        }
+        return false;
     }
 
     public Map<String, String>  dealGzhOrder(Order add,List<OrderGoodsAddBo> goodsList,String url){

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java

@@ -6,6 +6,8 @@ import com.zhongzheng.common.utils.TelPhoneUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -152,7 +154,7 @@ public class UserVo {
 	/** 余额 */
 	@Excel(name = "余额")
 	@ApiModelProperty("余额")
-	private String money;
+	private BigDecimal money;
 	/** 公众号openid */
 	@Excel(name = "公众号openid")
 	@ApiModelProperty("公众号openid")

+ 0 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -270,7 +270,6 @@ public class WxPayServiceImpl  implements IWxPayService {
                         addBo.setSourceId(0);//订单来源
                         iOrderPossessUserService.insertByAddBo(addBo);
                     }
-
                 }
                 //用优惠券更新状态
                 OrderCoupon orderCoupon = iOrderCouponService.queryBySn(out_trade_no);