|
|
@@ -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){
|