xjc 2 years ago
parent
commit
7d243c22ba
2 changed files with 39 additions and 5 deletions
  1. 37 3
      src/weixin/controls.py
  2. 2 2
      src/weixin/views.py

+ 37 - 3
src/weixin/controls.py

@@ -1326,7 +1326,8 @@ def get_stock_info(stock_id):
     stock = cm.Stock.objects.filter(id=stock_id).values().first()
     stock["choiced"] = 1
     nbc = cm.StockComments.objects.filter(stock_id=stock_id).order_by("-id").values().first()
-    stock["last_nb_comments"] = nbc
+    if nbc:
+        stock["last_nb_comments"] = nbc
     return stock
     
 
@@ -1472,6 +1473,9 @@ def get_stock_info(_id):
     """
     """
     data = cm.Stock.objects.filter(id=_id).values().first()
+    nbc = cm.StockComments.objects.filter(stock_id=_id).order_by("-id").values().first()
+    if nbc:
+        data["last_nb_comments"] = nbc
     return data
 
 
@@ -2935,10 +2939,34 @@ def get_baike_category_tree(**kwargs):
 	return parents
 
 
+def get_sub_catids(pid,data):
+    """
+    """
+    data = data if data else []
+    qset = cm.BaikeCategory.objects.filter(parent_id=pid)
+    ids = list(qset.values_list("id",flat=True))
+    if ids:
+        data.extend(ids)
+        for _id in ids:
+            get_sub_catids(_id,data)
+    return data
+
+
 def get_baike_list_by_category(**kwargs):
     category_id = kwargs.get("category_id")
-    qset = cm.BaikeDetail.objects.filter(category_id=category_id)
-    data = list(qset.values("id","name"))
+    sub_catids = get_sub_catids(category_id,[])
+    qset = cm.BaikeDetail.objects.filter(category_id__in=sub_catids)
+    data = list(qset.values())
+    
+    page = int(kwargs.get("page",1))
+    page_size = int(kwargs.get("page_size",20))
+
+    if page and page_size:
+        total,data = ccf.get_page_list(data,page,page_size)
+        return total,data
+    else:
+        return len(data),data
+    
     return data
 
 
@@ -3149,4 +3177,10 @@ def get_user_black_user_list(request):
         total = qset.count()
 
     data = list(qset.values("black_user__id","black_user__username","black_user__avatar"))
+    datas = []
+    for item in data:
+        item['id'] = item["black_user__id"]
+        item['username'] = item["black_user__username"]
+        item['avatar']   = item["black_user__avatar"]
+
     return total,data

+ 2 - 2
src/weixin/views.py

@@ -1263,8 +1263,8 @@ class BaikeListView(cv.AuthView):
         """
         qdata = request.json
         try:
-            rst = ctl.get_baike_list_by_category(**qdata)
-            return cv.to_suc(rst)
+            total,rst = ctl.get_baike_list_by_category(**qdata)
+            return cv.to_suc({"total":total,"list":rst})
         except Exception as e:
             cv.tracefail()
             return cv.to_fail(e)