Procházet zdrojové kódy

add 控制台订单数据

he2802 před 3 roky
rodič
revize
5a80d3cdc8

+ 7 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/ConsoleController.java

@@ -32,10 +32,16 @@ public class ConsoleController extends BaseController {
     private final IConsoleService iConsoleService;
 
     @ApiOperation("控制台学员数据")
-    @PreAuthorize("@ss.hasPermi('system:areas:city_list')")
     @GetMapping("/studentData")
     public AjaxResult<Map<String,Object>> studentData(ConsoleQueryBo bo) {
         Map<String,Object> numMap = iConsoleService.getStudentData(bo);
         return AjaxResult.success(numMap);
     }
+
+    @ApiOperation("控制台订单数据")
+    @GetMapping("/orderData")
+    public AjaxResult<Map<String,Object>> orderData(ConsoleQueryBo bo) {
+        Map<String,Object> numMap = iConsoleService.getOrderData(bo);
+        return AjaxResult.success(numMap);
+    }
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/IConsoleService.java

@@ -10,5 +10,8 @@ import java.util.Map;
 
 
 public interface IConsoleService {
+
     Map<String,Object> getStudentData(ConsoleQueryBo bo);
+
+    Map<String,Object> getOrderData(ConsoleQueryBo bo);
 }

+ 70 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ConsoleServiceImpl.java

@@ -5,6 +5,7 @@ import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.base.service.IConsoleService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserUpdateService;
 import com.zhongzheng.modules.user.vo.UserUpdateVo;
@@ -59,4 +60,73 @@ public class ConsoleServiceImpl implements IConsoleService {
         map.put("lastUpdateList",list);
         return map;
     }
+
+    @Override
+    public Map<String, Object> getOrderData(ConsoleQueryBo bo) {
+        Map<String, Object> map = new HashMap<>();
+        List<OrderListVo> allList = iOrderService.getConsoleOrder(bo);
+        countNum(map,"all",allList); //总的
+        Integer allRebuyNum = iOrderService.getConsoleRebuyNum(bo); //冲突总数
+        Calendar cal = Calendar.getInstance();
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        Long todZero = cal.getTimeInMillis() / 1000;  //今天凌晨
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0);
+        Long ytdZero = cal.getTimeInMillis() / 1000;   //昨天凌晨
+        Calendar cal7 = new GregorianCalendar();
+        cal7.add(Calendar.DATE,-6); //7天内
+        cal7.set(cal7.get(Calendar.YEAR), cal7.get(Calendar.MONTH), cal7.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        Long sevenZero = cal7.getTimeInMillis() / 1000;   //7日内凌晨
+
+        bo.setStartTime(todZero);
+        bo.setEndTime(DateUtils.getNowTime());
+        List<OrderListVo> todList = iOrderService.getConsoleOrder(bo);
+        countNum(map,"tod",todList); //今天
+        Integer todRebuyNum = iOrderService.getConsoleRebuyNum(bo); //今天冲突
+
+        bo.setStartTime(ytdZero);
+        bo.setEndTime(todZero);
+        List<OrderListVo> ytdList = iOrderService.getConsoleOrder(bo);
+        countNum(map,"ytd",ytdList); //昨天
+        Integer ytdRebuyNum = iOrderService.getConsoleRebuyNum(bo); //昨天冲突
+
+        bo.setEndTime(DateUtils.getNowTime());
+        bo.setStartTime(sevenZero);
+        Integer sevenRebuyNum = iOrderService.getConsoleRebuyNum(bo); //7天冲突
+        map.put("allRebuyNum",allRebuyNum);
+        map.put("todRebuyNum",todRebuyNum);
+        map.put("ytdRebuyNum",ytdRebuyNum);
+        map.put("sevenRebuyNum",sevenRebuyNum);
+        return map;
+    }
+
+    private void countNum(Map<String, Object> map,String tag,List<OrderListVo> allList){
+        Integer allNum = allList.size();
+        map.put(tag+"Num",allNum);
+        Integer onVideoNum = 0;
+        Integer onBankNum = 0;
+        Integer offVideoNum = 0;
+        Integer offBankNum = 0;
+        for(OrderListVo vo : allList){
+            if(vo.getOrderFrom()==1||vo.getOrderFrom()==5){
+                if(vo.getGoodsType()==1){
+                    offVideoNum++;
+                }
+                if(vo.getGoodsType()==2){
+                    offBankNum++;
+                }
+            }else{
+                if(vo.getGoodsType()==1){
+                    onVideoNum++;
+                }
+                if(vo.getGoodsType()==2){
+                    onBankNum++;
+                }
+            }
+        }
+        map.put(tag+"OnVideoNum",onVideoNum);
+        map.put(tag+"OnBankNum",onBankNum);
+        map.put(tag+"OffVideoNum",offVideoNum);
+        map.put(tag+"OffBankNum",offBankNum);
+
+    }
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -32,4 +32,8 @@ public interface OrderMapper extends BaseMapper<Order> {
     Integer getConsoleStudentNum(ConsoleQueryBo bo);
 
     Integer getConsoleInfoUpdateNum(ConsoleQueryBo bo);
+
+    List<OrderListVo> getConsoleOrder(ConsoleQueryBo bo);
+
+    Integer getConsoleRebuyNum(ConsoleQueryBo bo);
 }

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

@@ -88,4 +88,8 @@ public interface IOrderService extends IService<Order> {
 	Integer getConsoleStudentNum(ConsoleQueryBo bo);
 
 	Integer getConsoleInfoUpdateNum(ConsoleQueryBo bo);
+
+	List<OrderListVo> getConsoleOrder(ConsoleQueryBo bo);
+
+	Integer getConsoleRebuyNum(ConsoleQueryBo bo);
 }

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

@@ -1038,6 +1038,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return baseMapper.getConsoleInfoUpdateNum(bo);
     }
 
+    @Override
+    public List<OrderListVo> getConsoleOrder(ConsoleQueryBo bo) {
+        return baseMapper.getConsoleOrder(bo);
+    }
+
+    @Override
+    public Integer getConsoleRebuyNum(ConsoleQueryBo bo) {
+        return baseMapper.getConsoleRebuyNum(bo);
+    }
+
     //判断视频商品是否购买过且服务期是否过期
     public Long getHaveBuyGoods(Long goodsId, Long userId) {
         OrderGoodsQueryBo orderGoodsQueryBo = new OrderGoodsQueryBo();

+ 45 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -393,5 +393,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
     </select>
 
+    <select id="getConsoleOrder" parameterType="com.zhongzheng.modules.base.bo.ConsoleQueryBo" resultMap="OrderResultVo">
+        SELECT
+        o.order_from,g.goods_type
+        FROM
+        `order` o
+        LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
+        WHERE
+        og.pay_status IN ( 2, 3, 4 )
+        AND og.refund_status != 2
+        <if test="businessId != null">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="startTime != null">
+            AND og.create_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND #{endTime} >= og.create_time
+        </if>
+    </select>
+
+    <select id="getConsoleRebuyNum" parameterType="com.zhongzheng.modules.base.bo.ConsoleQueryBo" resultType="Integer">
+        SELECT
+            count( og.*)
+        FROM
+            `order` o
+                LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+                LEFT JOIN goods g ON og.goods_id = g.goods_id
+                LEFT JOIN order_goods og2 ON og.rebuy_order_goods_id = og2.order_goods_id
+                LEFT JOIN class_grade_user cgu on cgu.grade_id = og2.grade_id and cgu.user_id = o.user_id
+        WHERE 1=1
+          AND og.pay_status IN ( 2, 3, 4 )
+          AND og.refund_status != 2
+          AND og.rebuy_order_goods_id >0
+          AND cgu.period_plush = 1
+        <if test="businessId != null">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="startTime != null">
+            AND og.create_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND #{endTime} >= og.create_time
+        </if>
+    </select>
 
 </mapper>