コード例 #1
0
def wechat_auth_redirect():
    rdata = RequestData()
    code = rdata.get("code", default="")
    if not code:
        raise HttpError(400, "授权失败")

    url = "https://api.weixin.qq.com/sns/oauth2/access_token"
    params = {
        "appid": APPID,
        "secret": APPSECRET,
        "code": code,
        "grant_type": "authorization_code"
    }
    url = "%s?%s" % (url, urllib.urlencode(params))

    r = requests.get(url, timeout=15)
    data = r.json()
    if "access_token" not in data:
        raise HttpError(400, data["errmsg"])

    # access_token = data["access_token"]
    openid = data["openid"]
    info = rpc.invbox.get_user(openid)
    return jsonify({
        "openid": openid,
        "mobile": info["mobile"],
    })
コード例 #2
0
 def init_params(self):
     rdata = RequestData()
     self.stype = rdata["type"]
     self.start_date = rdata["startDate"]
     self.end_date = rdata["endDate"]
     self.item = rdata.get("item", default=None)
     self.device = rdata.get("device", default=None)
     self.user_group = rdata.get("userGroup", default=None)
コード例 #3
0
    def post(self):
        if current_user["role"] != 0:
            return {"resultCode": 1, "resultMsg": "您没有操作权限"}
        rdata = RequestData()

        name = rdata.get('name', type=str)
        mobile = rdata.get('mobile', type=str)
        password = rdata.get('password', type=str)
        com_pwd = rdata.get('comPwd', type=str)
        role = rdata.get('role')
        admin_range = rdata.get('range')
        info_list = rdata.get('infoList')
        if not name:
            raise HttpError(400, "用户名不能为空")
        if not is_mobile(mobile):
            raise HttpError(400, "手机号码格式不正确")
        if not password == com_pwd:
            raise HttpError(400, "两次输入密码不一致")
        if not role:
            raise HttpError(400, "请输入用户角色")
        if str(role) not in ["1", "2", "3"]:
            raise HttpError(400, "不存在的用户角色")
        if not admin_range:
            raise HttpError(400, "请输入管理范围")

        # TODO:检查修改添加人的管理员权限
        # privilege =

        new_account = rpc.invbox.add_account(name, mobile, password, int(role),
                                             admin_range, info_list)
        if new_account.get("resultCode"):
            raise HttpError(400, "%s" % new_account.get("resultMsg"))
        return jsonify(new_account)
コード例 #4
0
    def post(self):
        rdata = RequestData()
        name = rdata.get("name", type=str)
        if not name:
            raise HttpError(400, "名称不能为空")
        new = rpc.invbox.add_device_category(name, rdata["roadList"])

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])
        del new["resultCode"]
        del new["resultMsg"]
        return jsonify(new)
コード例 #5
0
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_address_type(rdata.get("name", type=str))

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        result = {
            "id": new["id"],
            "name": new["name"] or "",
            "createdAt": new["createdAt"],
        }
        return jsonify(result)
コード例 #6
0
 def get(self):
     if current_user["role"] != 0:
         return {"resultCode": 1, "resultMsg": "您没有操作权限"}
     rdata = RequestData()
     accounts = rpc.invbox.get_accounts(page=rdata.page,
                                        page_size=rdata.page_size)
     return jsonify(accounts)
コード例 #7
0
ファイル: item_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
 def get(self):
     rdata = RequestData()
     data = rpc.invbox.get_items(page=rdata.page,
                                 page_size=rdata.page_size,
                                 query=rdata.condition,
                                 base_url=app.config["DOMAIN"])
     return jsonify(data)
コード例 #8
0
def uninvolved_device_list():
    """获取待接入设备列表"""
    rdata = RequestData()
    devices = rpc.invbox.get_uninvolved_devices(page=rdata.page,
                                                page_size=rdata.page_size,
                                                query=rdata.condition)
    return jsonify(devices)
コード例 #9
0
def get_user_info():
    rdata = RequestData()
    openid = rdata["openid"]
    info = rpc.invbox.get_user(openid)
    del info["resultCode"]
    del info["resultMsg"]
    return jsonify(info)
コード例 #10
0
def export(item):
    if item not in data_mapping.keys():
        return jsonify({"resultCode": 1, "resultMsg": "错误的参数%s" % item})
    rdata = RequestData()
    data = data_mapping[item](rdata)

    role = current_user.get("role")
    username = current_user.get("username")

    if not username:
        username = ""

    if role in [0, 1, 2, 3]:
        role_string = "role" + str(role)
    else:
        role_string = ""
    timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M_")

    filename = timestamp + username + "_" + role_string + "_" + xlsx.xslx_mapping[
        item].get("filename")
    # output = xlsx.run(data=data, item=item, filename=filename)
    output = xlsx.run(data=data, item=item)
    if not output:
        return jsonify({"resultCode": 1, "resultMsg": "无数据"})

    return send_file(
        output,
        mimetype=
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        as_attachment=True,
        attachment_filename="%s.xlsx" % filename)
コード例 #11
0
    def delete(self):
        rdata = RequestData()
        data = rpc.invbox.delete_voice_activities(rdata.array)

        if data["resultCode"]:
            raise HttpError(400, data["resultMsg"])
        return ""
コード例 #12
0
def device_list():
    rdata = RequestData()
    condition = rdata.condition
    devices = rpc.invbox.get_involved_devices(page=rdata.page,
                                              page_size=rdata.page_size,
                                              query=condition)
    return jsonify(devices)
コード例 #13
0
    def delete(self):
        rdata = RequestData()
        data = rpc.invbox.delete_user_groups(rdata.array)

        if data["resultCode"]:
            raise HttpError(400, data["resultMsg"])
        return ""
コード例 #14
0
ファイル: item_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
    def post(self):
        rdata = RequestData()

        basic_price = rdata.get("basicPrice", type=int)
        cost_price = rdata.get("costPrice", type=int)
        if basic_price <= 0 or cost_price <= 0:
            raise HttpError(400, "价格必须为正数")

        new = rpc.invbox.add_item(rdata["name"], rdata["no"] or "",
                                  rdata["category"], rdata["brand"],
                                  rdata["thumbnails"], basic_price, cost_price)

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        del new["resultCode"]
        del new["resultMsg"]
        return jsonify(new)
コード例 #15
0
def send_wechat_sms():
    "发送手机验证码"
    rdata = RequestData()
    mobile = rdata["mobile"]
    res = rpc.invbox.send_message_for_wechat(mobile)

    if res["resultCode"]:
        raise HttpError(400, res["resultMsg"])
    return jsonify(res)
コード例 #16
0
def send_code_sms():
    "发送登录验证码"
    rdata = RequestData()
    mobile = rdata["mobile"]
    res = rpc.invbox.send_login_message(mobile)

    if res["resultCode"]:
        raise HttpError(400, res["resultMsg"])
    return jsonify(res)
コード例 #17
0
ファイル: item_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_category(rdata["name"].strip(),
                                      rdata.get("thumbnail", default=None),
                                      rdata.get("image", default=None),
                                      base_url=app.config["DOMAIN"])

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        result = {
            "id": new["id"],
            "name": new["name"] or "",
            "thumbnail": new["thumbnail"],
            "image": new["image"],
            "createdAt": new["createdAt"],
        }
        return jsonify(result)
コード例 #18
0
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_device_group(rdata["name"], rdata["condition"])

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        del new["resultCode"]
        del new["resultMsg"]
        return jsonify(new)
コード例 #19
0
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_supplylist(rdata["device"], rdata["itemInfo"])

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        del new["resultCode"]
        del new["resultMsg"]
        return jsonify(new)
コード例 #20
0
    def delete(self):
        if current_user["role"] != 0:
            print(current_user["role"])
            return jsonify({"resultCode": 1, "resultMsg": "您没有操作权限"})
        rdata = RequestData()
        data = rpc.invbox.delete_account(rdata.array)

        if data["resultCode"]:
            raise HttpError(400, data["resultMsg"])

        return jsonify(data)
コード例 #21
0
    def post(self):
        rdata = RequestData()
        limit = rdata.get("limit", type=int)

        if limit <= 0:
            raise HttpError(400, "上限值只能输入正数")

        new = rpc.invbox.add_voice_activity(rdata["code"],
                                            rdata["deviceGroup"],
                                            rdata["validStartAt"],
                                            rdata["validEndAt"], limit,
                                            rdata["item"])

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        del new["resultCode"]
        del new["resultMsg"]

        return jsonify(new)
コード例 #22
0
ファイル: ads_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
    def put(self):
        rdata = RequestData()

        params = []
        for d in rdata:
            params.append(d)
        res = rpc.invbox.modify_ads(params)

        if res["resultCode"]:
            raise HttpError(400, res["resultMsg"])
        return ""
コード例 #23
0
def bind_mobile():
    rdata = RequestData()
    openid = rdata["openid"]
    mobile = rdata["mobile"]
    code = rdata["code"]
    info = rpc.invbox.modify_user(openid, mobile, code)
    if info["resultCode"]:
        raise HttpError(400, info["resultMsg"])
    del info["resultCode"]
    del info["resultMsg"]
    return jsonify(info)
コード例 #24
0
def configurable_road_list():
    "可配置货道"
    rdata = RequestData()
    condition = rdata.condition
    condition.append([{"operator": "=", "attribute": "fault", "value": 0}])
    condition.append([{"operator": "=", "attribute": "status", "value": 10}])
    devices = rpc.invbox.get_roads(page=rdata.page,
                                   page_size=rdata.page_size,
                                   query=condition,
                                   base_url=app.config["DOMAIN"])
    return jsonify(devices)
コード例 #25
0
    def get(self):
        rdata = RequestData()
        if current_user.get("role") == 1:
            return jsonify({"resultCode": 1, "resultMsg": "补货员没有订单查看权限"})
        admin_info = {"id": current_user["id"], "role": current_user["role"]}

        data = rpc.invbox.get_orders(page=rdata.page,
                                     page_size=rdata.page_size,
                                     query=rdata.condition,
                                     base_url=app.config["DOMAIN"],
                                     admin_info=admin_info)
        return jsonify(data)
コード例 #26
0
def day_device_stats():
    rdata = RequestData()
    if current_user.get("role") == 1 or current_user.get("role") == 2:
        return jsonify({"resultCode": 1, "resultMsg": "补货员和场地方没有流量查看权限"})
    admin_info = {"id": current_user["id"], "role": current_user["role"]}

    data = rpc.invbox.get_flow_stats(page=rdata.page,
                                     page_size=rdata.page_size,
                                     query=rdata.condition,
                                     base_url=current_app.config["DOMAIN"],
                                     admin_info=admin_info)
    return jsonify(data)
コード例 #27
0
ファイル: item_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
    def put(self):
        rdata = RequestData()

        params = []
        for d in rdata:
            if int(d["basicPrice"]) <= 0 or int(d["costPrice"]) <= 0:
                raise HttpError(400, "价格必须为正数")
            params.append(d)
        res = rpc.invbox.modify_items(params)

        if res["resultCode"]:
            raise HttpError(400, res["resultMsg"])
        return ""
コード例 #28
0
ファイル: item_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_brand(rdata["name"].strip())

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        result = {
            "id": new["id"],
            "name": new["name"] or "",
            "createdAt": new["createdAt"],
        }
        return jsonify(result)
コード例 #29
0
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_redeem_activity(rdata["name"], rdata["userGroup"],
                                             rdata["validStartAt"],
                                             rdata["validEndAt"],
                                             rdata["item"])

        if new["resultCode"]:
            raise HttpError(400, new["resultMsg"])

        del new["resultCode"]
        del new["resultMsg"]

        return jsonify(new)
コード例 #30
0
ファイル: file_api.py プロジェクト: tonyfromsz/G-Invbox-Admin
def post_video():
    rdata = RequestData()
    md5 = rdata["md5"]
    url = rdata["url"]

    if not md5 or not url:
        raise HttpError(400, "非法参数")

    res = rpc.invbox.get_video_detail(md5)
    if res:
        raise HttpError(400, "添加失败,已存在md5为%s的视频" % md5)

    res = rpc.invbox.add_video(md5, url)
    return jsonify(res)