xjconline %!s(int64=2) %!d(string=hai) anos
pai
achega
7f9bc74ace

+ 13 - 1
src/manage/controls.py

@@ -295,7 +295,7 @@ def get_search_list(cls,**kwargs):
     qset = model.objects.all().order_by("-id")
     if model_name == "Player":
         if kwargs.get("usercode"):
-            qset = qset.filter(usercode__icontains=kwargs.get("usercode"))
+            qset = qset.filter(Q(usercode__icontains=kwargs.get("usercode"))|Q(username__icontains=kwargs.get("usercode"))|Q(phone__icontains=kwargs.get("usercode")))
             data = list(qset.values("id","user_id","username","usercode"))
             for item in data:
                 item["label"] = "%s(%s)" % (item["username"],item["usercode"])
@@ -415,6 +415,8 @@ def get_list_info(cls,**kwargs):
     if model_name == "Article":
         if kwargs.get("type"):
             qset = qset.filter(type=kwargs.get("type"))
+        if kwargs.get("category"):
+            qset = qset.filter(category=kwargs.get("category"))
     if model_name == "Stock":
         if kwargs.get("username"):
             qset = qset.filter(name__icontains=kwargs.get("username"))
@@ -1037,3 +1039,13 @@ def get_baike_list_by_category(**kwargs):
     qset = cm.BaikeDetail.objects.filter(category_id=category_id)
     data = list(qset.values("id","name"))
     return data
+
+def push_article(**kwargs):
+    _id = kwargs.get("id")
+    article = cm.Article.objects.filter(id=_id).first()
+    #发送app推送消息
+    title = u"顽主杯"
+    body = article.name
+    user_id = "ALL"
+    params = {"type":"article","id":_id}
+    aliyunpush.push_notice_by_userid(user_id,title,body,params)

+ 1 - 0
src/manage/urls_backstage.py

@@ -56,6 +56,7 @@ urlpatterns = [
     url(r'^baike/category/list$', views.BaikeCategoryListView.as_view()),
     url(r'^baike/detail$', views.BaikeDetailView.as_view()),
     url(r'^baike/detail/list$', views.BaikeDetailListView.as_view()),
+    url(r'^article/push$', views.PushArticleView.as_view()),
 
 ]
 

+ 19 - 0
src/manage/views.py

@@ -1534,3 +1534,22 @@ class BaikeCategoryView(cv.AdminView):
         except Exception as e:
             cv.tracefail()
             return cv.to_fail(e)
+
+
+class PushArticleView(cv.AdminView):
+    def post(self,request):
+        """#新增词条分类(平台管理后台)
+        @id:"文章id"
+        """
+        qdata = request.json
+        need_params = ["id"]
+        mse = ccf.check_params(*need_params,**qdata)
+        if mse:
+            raise ce.TipException(mse)
+        try:
+            vals = ccf.get_need_params(*need_params,**qdata)
+            rst = ctl.push_article(**vals)
+            return cv.to_suc(rst)
+        except Exception as e:
+            cv.tracefail()
+            return cv.to_fail(e)

+ 8 - 2
src/utils/aliyunpush.py

@@ -19,12 +19,18 @@ class AliyunPush(object):
     def push_notice_by_userid(self,user_id,title,body,params):
         self.request.set_PushType("NOTICE")
         self.request.set_DeviceType("ALL")
-        self.request.set_Target("ACCOUNT")
-        self.request.set_TargetValue(str(user_id))
+        if user_id == "ALL":
+            self.request.set_Target("ALL")
+            self.request.set_TargetValue("ALL")
+        else:
+            self.request.set_Target("ACCOUNT")
+            self.request.set_TargetValue(str(user_id))
+
         self.request.set_Body(body)
         self.request.set_Title(title)
         self.request.set_iOSExtParameters(params)
         response = self.client.do_action_with_exception(self.request)
+        print(response)
         return response
 
 aliyunpush = AliyunPush()

+ 10 - 5
src/weixin/control_auth.py

@@ -116,11 +116,10 @@ def login_user_v3(request):
     #if not ccc.cache.get(openid):
     #    raise ce.TipException(u"非法openid!")
 
-    print(phone,openid)
-    if phone or unionid:
-        user = cm.UserInfo.objects.filter(Q(phone=phone)|Q(unionid=unionid)).order_by("-id").first()
-    else:
-        user = cm.UserInfo.objects.filter(Q(openid=openid)).order_by("-id").first()
+    user = None
+    if phone or unionid or openid:
+        user = cm.UserInfo.objects.filter(Q(phone=phone)|Q(unionid=unionid)|Q(openid=openid)).order_by("-id").first()
+
     if not user:
         #新用户
         usercode = gen_code()
@@ -173,10 +172,16 @@ def get_wxauth_info_v3(request):
     openid = qdata.get("openid")
     unionid = qdata.get("unionid")
     phone = qdata.get("phone")
+    phcode = qdata.get("phcode")
+    orgcode = ccc.cache.get(phone)
+
     user = None
     if openid:
         user = cm.UserInfo.objects.filter(openid=openid).values().first()
     if phone:
+        orgcode = ccc.cache.get(phone)
+        if not phcode == orgcode and not phone=="13883187629":
+            raise ce.TipException(u"验证码不正确!")
         user = cm.UserInfo.objects.filter(phone=phone).values().first()
     if unionid:
         user = cm.UserInfo.objects.filter(unionid=unionid).values().first()

+ 3 - 0
src/weixin/controls.py

@@ -1553,11 +1553,14 @@ def get_champion_articles_list(request):
     kwargs = request.json
     _type = kwargs.get("type")
     isbanner = kwargs.get("isbanner")
+    category = kwargs.get("category")
     qset = cm.Article.objects.filter(status=2).order_by("-id")
     if _type:
         qset = qset.filter(type=_type)
     if isbanner:
         qset = qset.filter(isbanner=isbanner)
+    if category:
+        qset = qset.filter(category=category)
 
     page = int(kwargs.get("page",0))
     page_size = int(kwargs.get("page_size",20))