Example #1
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)
Example #2
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)
Example #3
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)
Example #4
0
    def delete(self):
        rdata = RequestData()
        data = rpc.invbox.delete_user_groups(rdata.array)

        if data["resultCode"]:
            raise HttpError(400, data["resultMsg"])
        return ""
Example #5
0
 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)
Example #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)
Example #7
0
    def delete(self):
        rdata = RequestData()
        data = rpc.invbox.delete_voice_activities(rdata.array)

        if data["resultCode"]:
            raise HttpError(400, data["resultMsg"])
        return ""
Example #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)
Example #9
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"],
    })
Example #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)
Example #11
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)
Example #12
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)
Example #13
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)
Example #14
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)
Example #15
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)
Example #16
0
    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 ""
Example #17
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)
Example #18
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)
Example #19
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)
Example #20
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)
Example #21
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)
Example #22
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)
Example #23
0
    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 ""
Example #24
0
    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)
Example #25
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)
Example #26
0
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)
Example #27
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)
Example #28
0
def involve_device():
    """接入设备"""
    rdata = RequestData()
    id = rdata["id"]
    res = rpc.invbox.involve_device(id,
                                    name=rdata["name"],
                                    province=rdata["province"],
                                    city=rdata["city"],
                                    district=rdata["district"],
                                    address=rdata["address"],
                                    address_type_id=rdata["address_type"],
                                    supplyer_id=rdata["supplyer"])
    if res["resultCode"]:
        raise HttpError(400, res["resultMsg"])
    return ""
Example #29
0
    def put(self):
        rdata = RequestData()

        params = []
        for d in rdata:
            params.append({
                "id": d["id"],
                "name": d["name"].strip(),
            })

        res = rpc.invbox.modify_address_types(params)

        if res["resultCode"]:
            raise HttpError(400, res["resultMsg"])
        return ""
Example #30
0
    def post(self):
        rdata = RequestData()
        new = rpc.invbox.add_advideo(rdata["name"],
                                     rdata["video"],
                                     base_url=app.config["DOMAIN"])

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

        result = {
            "id": new["id"],
            "name": new["name"] or "",
            "video": new["video"],
            "createdAt": new["createdAt"],
        }
        return jsonify(result)