def driver_review_ban(): """封禁驾驶员""" form = forms.DriverReview(request.args).validate_() form.driver.verify = -2 core_api.clear_token(uuid=form.driver.uuid, port=config.driver_port) form.driver.direct_update_() return result_format()
def upload_credentials(): """腾讯cos上传凭证 文档:https://github.com/tencentyun/qcloud-cos-sts-sdk/tree/master/python """ result = cos_sts.get_credential() data = result['credentials'] data.update({'expiredTime': result['expiredTime']}) return ordinary.result_format(data=data)
def driver_review_prevent(): """不同意驾驶员申请""" form = forms.DriverReview(request.args).validate_() form.driver.verify = -1 form.driver.direct_update_() core_api.clear_token(uuid=form.driver.uuid, port=config.driver_port) core_api.batch_sms(phone_list=[form.driver.phone], params=["申请失败"], template_id=config.SMS_TEMPLATE_REGISTERED['review']) return result_format()
def token_clear(): """清除其他应用用户token""" form = forms.TokenClearForm(request.args).validate_() redis = apps_redis.get_redis(port=form.port.data) redis_key = f'UserInfo_{form.uuid.data}' redis.delete(redis_key) return ordinary.result_format()
def position_distance(): """计算位置距离 origin原点只支持单点 destinations目标点支持多点 :return: """ form = forms.PositionDistanceForm().validate_() result = position.distance(origin=form.origin.data, destinations=form.destinations.data) return ordinary.result_format(data=result)
def driver_order_list(): """驾驶员订单列表""" form = forms.DriverOrderListForm(request.args).validate_() query = DriverOrder.query.filter_by(driver_uuid=form.driver.uuid) paginate = query.paginate(form.page.data, form.limit.data, error_out=False) data = paginate_info(paginate, items=[item.customize_serialization() for item in paginate.items]) return result_format(data=data)
def factory_list(): """厂家列表""" form = forms.FactoryListFrom(request.args).validate_() query = Factory.query paginate = query.paginate(form.page.data, form.limit.data, error_out=False) data = paginate_info( paginate, items=[item.serialization() for item in paginate.items]) return result_format(data=data)
def send_sms(): """发送短信接口 params:统一规范 验证码 + 时效(分钟) """ form = forms.SMSCodeForm().validate_() sms.send(template_id=form.template_id.data, phone_number=form.phone.data, sms_sign=config.SMS_SIGN, params=[form.code.data, 5]) return ordinary.result_format()
def batch_sms(): """批量发送短信""" form = forms.SMSBatchForm().validate_() tasks.batch_sms.apply_async( kwargs={ 'template_id': form.template_id.data, 'phone_list': form.phone_list.data, 'params': form.params.data }) return ordinary.result_format()
def notice_manager(): """通知管理员""" form = forms.NoticeManagerForm().validate_() admins = Admin.query.filter_by(sms_status=1).all() phone_numbers = [admin.phone for admin in admins] if phone_numbers: sms.multi_send(template_id=form.template_id.data, phone_numbers=phone_numbers, params=form.params.data, sms_sign=config.SMS_SIGN) return ordinary.result_format()
def driver_list(): """驾驶员列表""" form = forms.DriverListFrom(request.args).validate_() query = Driver.query if form.verify_status.data != 99: query = query.filter_by(verify=form.verify_status.data) paginate = query.paginate(form.page.data, form.limit.data, error_out=False) data = paginate_info(paginate, items=[item.serialization() for item in paginate.items]) return result_format(data=data)
def upload_url(): """获取上传图片授权地址""" form = forms.UploadUrlForm(request.args).validate_() if not form.genre.data and not form.suffix.data: raise ViewException(error_code=5005, message='<genre>图片用途类型或<suffix>图片文件类型,不能为空.') name = uuid.uuid1().hex path = f'/test/{name}.{form.suffix.data}' url = client.get_presigned_url(config.Bucket, path, Method='POST') image_url = f'{config.cos_base_url}{path}' Images(user_uuid=form.user_uuid.data, url=image_url, genre=form.genre.data, status=1).direct_commit_() return ordinary.result_format(data={ 'upload_url': url, 'image_url': image_url })
def factory_get_token(): """获取厂家端token 写入随机码,以此验证请求. 参数: factory_uuid:str """ form = forms.GetFactoryToken(request.args).validate_() try: random = generate_verify_code(12) redis = apps_redis.get_redis('8091') redis.set(f"CoreRandom_{random}", "1", ex=10) resp = requests.get( url= f'https://factory.tzhjyysyxgs.com/user/token/internal_use/?factory_uuid={form.factory_uuid.data}&random={random}' ) return jsonify(json.loads(resp.content.decode())) except Exception: return ordinary.result_format(error_code=5000, message='服务器未知错误')
def factory_order_list(): """厂家订单列表""" form = forms.FactoryOrderListForm(request.args).validate_() query = FactoryOrder.query if form.factory_uuid.data: query = query.filter_by(factory_uuid=form.factory.uuid) if form.schedule.data is not None: query = query.filter_by(schedule=form.schedule.data) query = query.order_by(FactoryOrder.id.desc()) paginate = query.paginate(form.page.data, form.limit.data, error_out=False) data = paginate_info( paginate, items=[item.serialization() for item in paginate.items]) return result_format(data=data)
def factory_order_info(): """订单详情""" form = forms.FactoryOrderInfoForm(request.args).validate_() return result_format(data=form.order.factory_serialization())
def driver_info(): """驾驶员详情""" form = forms.DriverInfoForm(request.args).validate_() return result_format(data=form.driver.serialization())
def order_info(): """订单详情""" form = forms.FactoryOrderInfoForm(request.args).validate_() return result_format(data=form.order.serialization(remove={"id"}))
def factory_info(): """厂家详情""" form = forms.FactoryInfoForm(request.args).validate_() return result_format(data=form.factory.serialization())
def get_open_id(): """获取open_id""" form = forms.GetOpenIdForm(request.args).validate_() return ordinary.result_format( data=wechat_api.get_open_id(form.code.data, port=form.port.data))