change преди 4 години
родител
ревизия
144566e4aa

+ 14 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -9,6 +9,7 @@ import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderVo;
+import com.zhongzheng.modules.order.vo.UserOrderInFo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -56,6 +57,19 @@ public class OrderController extends BaseController {
         return getDataTable(list);
     }
 
+
+
+    /**
+     * 查询订单列表
+     */
+    @ApiOperation("查询用户订单数据")
+    @PreAuthorize("@ss.hasPermi('system:order:list')")
+    @GetMapping("/listUserOrder")
+    public AjaxResult<UserOrderInFo> listUserOrder(OrderQueryBo bo) {
+        UserOrderInFo list = iOrderService.listUserOrder(bo);
+        return AjaxResult.success(list);
+    }
+
     /**
      * 查询订单列表
      */

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/IActivityConfigurationUseService.java

@@ -60,4 +60,6 @@ public interface IActivityConfigurationUseService extends IService<ActivityConfi
 	boolean receive(ActivityConfigurationUseAddBo bo);
 
     Integer countConfig(Long id);
+
+	Integer queryByCount(Long userId);
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityConfigurationUseServiceImpl.java

@@ -148,6 +148,13 @@ public class ActivityConfigurationUseServiceImpl extends ServiceImpl<ActivityCon
         return num;
     }
 
+    @Override
+    public Integer queryByCount(Long userId) {
+        ActivityConfigurationUseAddBo activityConfigurationUseAddBo = new ActivityConfigurationUseAddBo();
+        activityConfigurationUseAddBo.setUserId(userId);
+        return baseMapper.queryByUse(activityConfigurationUseAddBo);
+    }
+
     public Long afterSixMonthDate(Date currentDate,Integer amount){
         Calendar c = Calendar.getInstance();
         c.setTime(currentDate);

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/ICouponService.java

@@ -6,6 +6,7 @@ import com.zhongzheng.modules.order.bo.CouponQueryBo;
 import com.zhongzheng.modules.order.bo.CouponAddBo;
 import com.zhongzheng.modules.order.bo.CouponEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import io.swagger.models.auth.In;
 
 import java.util.Collection;
 import java.util.List;
@@ -66,4 +67,6 @@ public interface ICouponService extends IService<Coupon> {
 	 * @return Integer
 	 */
     Integer selectCount(Long goodsId, Long couponId);
+
+	List<CouponVo> listUserOrder(Long userId, Integer couponType);
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -7,6 +7,7 @@ import com.zhongzheng.modules.order.bo.OrderEditBo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.vo.OrderVo;
+import com.zhongzheng.modules.order.vo.UserOrderInFo;
 
 import java.util.Collection;
 import java.util.List;
@@ -61,4 +62,6 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    UserOrderInFo listUserOrder(OrderQueryBo bo);
 }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/CouponServiceImpl.java

@@ -126,4 +126,14 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
     public Integer selectCount(Long goodsId, Long couponId) {
         return baseMapper.selectCountCon(goodsId,couponId);
     }
+
+    @Override
+    public List<CouponVo> listUserOrder(Long userId,Integer couponType) {
+        CouponQueryBo couponQueryBo = new CouponQueryBo();
+        couponQueryBo.setUserId(userId);
+        couponQueryBo.setUserStatus(0);
+        couponQueryBo.setCouponType(couponType);
+        List<CouponVo> couponVos = baseMapper.queryIssueListCoupon(couponQueryBo);
+        return couponVos;
+    }
 }

+ 84 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -9,11 +9,18 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.activity.domain.ActivityConfiguration;
 import com.zhongzheng.modules.activity.service.IActivityConfigurationService;
+import com.zhongzheng.modules.activity.service.IActivityConfigurationUseService;
 import com.zhongzheng.modules.activity.vo.ActivityConfigurationVo;
 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.bo.CollectBankQueryBo;
+import com.zhongzheng.modules.collect.bo.CollectCourseQueryBo;
 import com.zhongzheng.modules.collect.domain.CollectBank;
+import com.zhongzheng.modules.collect.service.ICollectBankService;
+import com.zhongzheng.modules.collect.service.ICollectCourseService;
+import com.zhongzheng.modules.collect.vo.CollectBankVo;
+import com.zhongzheng.modules.collect.vo.CollectCourseVo;
 import com.zhongzheng.modules.course.domain.Course;
 import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.course.vo.CourseVo;
@@ -29,12 +36,18 @@ 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.order.vo.UserOrderInFo;
 import com.zhongzheng.modules.user.bo.OrderPossessUserAddBo;
+import com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo;
+import com.zhongzheng.modules.user.bo.RanKingUserQuery;
 import com.zhongzheng.modules.user.domain.OrderPossessUser;
 import com.zhongzheng.modules.user.domain.User;
+import com.zhongzheng.modules.user.mapper.UserMapper;
 import com.zhongzheng.modules.user.service.IOrderPossessUserService;
 import com.zhongzheng.modules.user.service.IUserBankQuestionRecordService;
 import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.user.vo.OrderPossessUserVo;
+import com.zhongzheng.modules.user.vo.RanKingUser;
 import com.zhongzheng.modules.user.vo.UserVo;
 import com.zhongzheng.modules.wx.service.IWxPayService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -91,12 +104,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private IActivityConfigurationService activityConfigurationService;
 
+    @Autowired
+    private IActivityConfigurationUseService activityConfigurationUseService;
+
+
     @Autowired
     private IOrderActivityService oOrderActivityService;
 
     @Autowired
     private OrderMapper orderMapper;
 
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    private ICollectBankService iCollectBankService;
+
+    @Autowired
+    private ICollectCourseService iCollectCourseService;
+
     @Override
     public OrderVo queryById(Long orderId){
         Order db = this.baseMapper.selectById(orderId);
@@ -229,6 +255,64 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return this.removeByIds(ids);
     }
 
+    @Override
+    public UserOrderInFo listUserOrder(OrderQueryBo bo) {
+        if (bo.getUserId() == null){
+            throw new IllegalArgumentException("用户ID为空");
+        }
+        LambdaQueryWrapper<Order> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getUserId() != null, Order::getUserId, bo.getUserId());
+        lqw.eq(Order::getOrderStatus, 1);
+        List<Order> list = this.list(lqw);
+        BigDecimal price = new BigDecimal("0");
+        for (Order order : list) {
+            price = price.add(order.getOrderPrice());
+        }
+        List<CouponVo> couponVos=iCouponService.listUserOrder(bo.getUserId(),0);
+        List<CouponVo> couponDiscounts=iCouponService.listUserOrder(bo.getUserId(),1);
+        UserVo userVo = iUserService.queryById(bo.getUserId());
+        Integer count = activityConfigurationUseService.queryByCount(bo.getUserId());
+        RanKingUserQuery ranKingUserQuery = new RanKingUserQuery();
+        ranKingUserQuery.setUserId(bo.getUserId());
+        RanKingUser ranKingUser = userMapper.selectByRank(ranKingUserQuery);
+        OrderPossessUserQueryBo orderPossessUserQueryBo = new OrderPossessUserQueryBo();
+        orderPossessUserQueryBo.setUserId(bo.getUserId());
+        orderPossessUserQueryBo.setTypeId(1);
+        OrderPossessUserVo cousreList = iOrderPossessUserService.queryList(orderPossessUserQueryBo);
+        orderPossessUserQueryBo.setTypeId(2);
+        OrderPossessUserVo bankList = iOrderPossessUserService.queryList(orderPossessUserQueryBo);
+        CollectBankQueryBo collectBankQueryBo = new CollectBankQueryBo();
+        collectBankQueryBo.setUserId(bo.getUserId());
+        List<CollectBankVo> collectList = iCollectBankService.selectList(collectBankQueryBo);
+        CollectCourseQueryBo collectCourseQueryBo = new CollectCourseQueryBo();
+        collectCourseQueryBo.setUserId(bo.getUserId());
+        List<CollectCourseVo> collectCourseList = iCollectCourseService.selectList(collectCourseQueryBo);
+        UserOrderInFo userOrderInFo = new UserOrderInFo();
+        userOrderInFo.setPrice(price);
+        userOrderInFo.setOrderNum(list.size());
+        userOrderInFo.setCouponDiscount(couponDiscounts.size());
+        userOrderInFo.setCoupon(couponVos.size());
+        userOrderInFo.setUserLevel(userVo.getUserLevel());
+        userOrderInFo.setIntegral(userVo.getIntegral());
+        userOrderInFo.setActivityNum(count);
+        userOrderInFo.setStudyNum(getHour(ranKingUser.getHourse()));
+        userOrderInFo.setCourseNum(cousreList.getCourseVoList().size());
+        userOrderInFo.setBankNum(bankList.getQuestionBankList().size());
+        userOrderInFo.setCollectCourseNum(collectCourseList.size());
+        userOrderInFo.setCollectBankNum(collectList.size());
+        return userOrderInFo;
+    }
+
+    //Util.java
+    public static String getHour(String date) {
+        //秒数
+        Integer dt = Integer.parseInt(date) ;
+        if (dt < 3600) return Math.round(dt / 60) + "m";
+        int hour = Math.round(dt / 3600);
+        int minute = Math.round((dt - (hour * 3600)) / 60);
+        return hour + "h" + (minute == 0 ? "" : minute + "m");
+    }
+
     //购买课程题库重点
     public Map<String, String>  dealOrder(Order add,List<OrderGoodsAddBo> goodsList,Long couponId,Long activity){
         UserVo userVo = iUserService.queryById(add.getUserId());

+ 68 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/UserOrderInFo.java

@@ -0,0 +1,68 @@
+package com.zhongzheng.modules.order.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author change
+ * @date 2021年07月21日 10:38
+ *
+ */
+@Data
+@ApiModel("用户订单信息")
+public class UserOrderInFo {
+
+
+    @Excel(name = "消费金额")
+    @ApiModelProperty("消费金额")
+    private BigDecimal price;
+
+    @Excel(name = "订单数量")
+    @ApiModelProperty("订单数量")
+    private Integer orderNum;
+
+    @Excel(name = "折扣券数量")
+    @ApiModelProperty("折扣券数量")
+    private Integer couponDiscount;
+
+    @Excel(name = "优惠券数量")
+    @ApiModelProperty("优惠券数量")
+    private Integer coupon;
+
+    @Excel(name = "用户等级")
+    @ApiModelProperty("用户等级")
+    private Integer userLevel;
+
+    @Excel(name = "用户经验")
+    @ApiModelProperty("用户经验")
+    private Long integral;
+
+    @Excel(name = "参加活动次数")
+    @ApiModelProperty("参加活动次数")
+    private Integer activityNum;
+
+    @Excel(name = "学习时长")
+    @ApiModelProperty("学习时长")
+    private String studyNum;
+
+    @Excel(name = "课程")
+    @ApiModelProperty("课程")
+    private Integer courseNum;
+
+    @Excel(name = "题库")
+    @ApiModelProperty("题库")
+    private Integer bankNum;
+
+    @Excel(name = "收藏课程")
+    @ApiModelProperty("收藏课程")
+    private Integer collectBankNum;
+
+    @Excel(name = "收藏课程")
+    @ApiModelProperty("收藏课程")
+    private Integer collectCourseNum;
+}

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/OrderPossessUserVo.java

@@ -47,8 +47,8 @@ public class OrderPossessUserVo {
 	private List<ExamNoteVo> examNoteList;
 
 	/** 拥有的考试重点 */
-	@Excel(name = "拥有的考试重点")
-	@ApiModelProperty("拥有的考试重点")
+	@Excel(name = "拥有的题库")
+	@ApiModelProperty("拥有的题库")
 	private List<QuestionBankVo> questionBankList;
 
 }

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -75,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="userId != null and userId != ''">
             AND u.user_id = #{userId}
         </if>
-        <if test="userId != null and userId != ''">
+        <if test="startTime != null and startTime != ''">
             AND s.create_time BETWEEN #{startTime} and #{endTime}
         </if>
         GROUP BY u.user_id