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"], })
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)
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)
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)
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)
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)
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)
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)
def get_user_info(): rdata = RequestData() openid = rdata["openid"] info = rpc.invbox.get_user(openid) del info["resultCode"] del info["resultMsg"] return jsonify(info)
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)
def delete(self): rdata = RequestData() data = rpc.invbox.delete_voice_activities(rdata.array) if data["resultCode"]: raise HttpError(400, data["resultMsg"]) return ""
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)
def delete(self): rdata = RequestData() data = rpc.invbox.delete_user_groups(rdata.array) if data["resultCode"]: raise HttpError(400, data["resultMsg"]) return ""
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)
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)
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)
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)
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)
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)
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)
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)
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 ""
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)
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)
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)
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)
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 ""
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)
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)
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)