Exemple #1
0
async def update_auto_replay(self, **kwargs):
    state = kwargs.get('id')
    if not state:
        return {
            'status': False,
            'msg': '数据入参验证失败',
            "code": StatusCode.params_error.value
        }
    try:
        row = AuthReplyModel.by_id(kwargs.get('id'))
        for k, v in kwargs.items():
            if k not in ['updateTime', 'createTime']:
                setattr(row, k, v)
        row.updateTime = datetime.now()
        self.db.commit()
        return {
            'status': True,
            'msg': '更新成功',
            "code": StatusCode.success.value
        }
    except Exception as e:
        logger.error(f"apply update Error: {str(e)}")
        self.db.rollback()
        return {
            'status': False,
            'msg': '更新失败',
            "code": StatusCode.db_error.value
        }
Exemple #2
0
async def add_auto_replay(self, **kwargs):
    keys = ['EventKey', 'EventType', 'ApplyType', 'MsgType', 'EventValue']
    state, msg = validate(keys, kwargs)
    if not state:
        return {
            'status': False,
            'msg': '数据入参验证失败',
            "code": StatusCode.params_error.value
        }
    try:
        apply = AuthReplyModel(EventKey=kwargs.get('EventKey').strip(),
                               EventType=kwargs.get('EventType').strip(),
                               ApplyType=kwargs.get('ApplyType').strip(),
                               MsgType=kwargs.get('MsgType').strip(),
                               EventValue=kwargs.get('EventValue').strip())
        self.db.add(apply)
        self.db.commit()
        return {
            'status': True,
            'msg': '添加成功',
            "code": StatusCode.success.value
        }
    except Exception as e:
        logger.error(f"apply insert Error: {str(e)}")
        self.db.rollback()
        return {
            'status': False,
            'msg': '添加失败',
            "code": StatusCode.db_error.value
        }
Exemple #3
0
async def get_auto_replay(self, page, page_size):
    rows = AuthReplyModel.paginate(page, page_size)
    return {
        "status": True,
        "code": StatusCode.success.value,
        "msg": "获取成功",
        "data": to_json(rows)
    }
Exemple #4
0
async def robot_ctrl(self, xml):
    msg_type = xml.get('MsgType')
    if msg_type == 'text':
        content = xml.get('Content')
        row = AuthReplyModel.get_one(content, 'TEXT', msg_type)
        if row:
            return await replay_msg(row, xml)
        else:
            return await text_apply(xml, "很抱歉, 没有找到您想要的信息")
    elif msg_type == 'event':
        event = xml.get('Event')
        if event == 'subscribe':
            return await text_apply(xml, "感谢您关注本平台")
        elif event == 'unsubscribe':
            return await text_apply(xml, "期待您的再次关注")
        else:
            row = AuthReplyModel.get_one(xml.get('EventKey'), event, msg_type)
            if row:
                return await replay_msg(row, xml)
            else:
                return await text_apply(xml, "很抱歉, 没有找到您想要的信息")
    else:
        return await text_apply(xml, "很抱歉, 该公众号暂不支持此项内容 ")
Exemple #5
0
async def delete_auto_replay(self, _id):
    row = AuthReplyModel.by_id(_id)
    if row:
        try:
            self.db.delete(row)
            self.db.commit()
            return {
                'status': True,
                'msg': '删除成功',
                "code": StatusCode.success.value
            }
        except Exception as e:
            self.db.rollback()
            logger.error(f"news delete Error: {str(e)}")
            return {
                'status': False,
                'msg': '删除失败',
                "code": StatusCode.db_error.value
            }
    return {
        'status': False,
        'msg': '未找到该配置',
        "code": StatusCode.not_found_error.value
    }