def edit_project(self, name=None, pid=None, user=None, status=None): update = [] where = [] param = dict() if name is not None: where.append("p.name=%(name)s") param['name'] = name elif pid is not None: where.append("p.id=%(pid)s") param['pid'] = pid if user is not None: update.append("p.user=%(user)s") param['user'] = user if status is not None: update.append("p.status=%(status)s") param['status'] = status pj = yield self.get_project(name=name, pid=pid) if where and update and pj: sql = 'UPDATE t_projects p SET {} WHERE {}'.format( ', '.join(update), ' AND '.join(where)) tx = yield pool.begin() try: yield tx.execute(sql, param) except pymysql.Error as e: log.error('项目 {} 编辑失败#{}'.format(pj.name, e)) yield tx.rollback() flag, msg = False, '项目 {} 编辑失败#{}'.format(pj.name, e) else: yield tx.commit() log.info('项目 {} 编辑成功'.format(pj.name)) flag, msg = True, '项目 {} 编辑成功'.format(pj.name) return flag, msg else: log.error('编辑项目参数不对') return False, '编辑项目参数不对'
def delete_project(self, name=None, pid=None): pj = yield self.get_project(name=name, pid=pid) if pj: sql = "DELETE FROM t_projects" where = [] param = dict() if name is not None: where.append("name=%(name)s") param['name'] = name elif pid is not None: where.append("id=%(pid)s") param['pid'] = pid if where: sql += ' WHERE {}'.format(' AND '.join(where)) tx = yield pool.begin() try: yield tx.execute(sql, param) except Exception as e: yield tx.rollback() log.error('删除项目 {} 失败#{}'.format(pj.name, e)) flag, msg = False, '项目 {} 有关联设置, 请先删除该项目下的所有设置后再删除该项目'.format( pj.name) else: yield tx.commit() log.info('删除项目 {} 成功'.format(pj.name)) flag, msg = True, '删除项目 {} 成功'.format(pj.name) else: flag, msg = False, '请指定删除项目条件, 不能删除所有项目' else: log.error('没有指定删除的项目') flag, msg = False, '没有指定删除的项目' return flag, msg
def edit_user(self, email, password=None, username=None, nickname=None, last_login_time=None, role=None, status=None): user = yield self.get_user_info(email) if user: update = [] param = dict(email=email) if password is not None: update.append("password=%(password)s") param['password'] = self.func.encode_password(password) if username is not None: sql = "SELECT username FROM t_users u WHERE u.email != %(email)s AND u.username = %(username)s" param['username'] = username cursor = yield pool.execute(sql, param) user_info = cursor.fetchone() if user_info: log.error('用户名 {} 已存在'.format(username)) return False, '用户名 {} 已存在'.format(username) else: update.append("username=%(username)s") if nickname is not None: update.append("nickname=%(nickname)s") param['nickname'] = nickname if last_login_time is not None: update.append("lastLoginTime=%(lastLoginTime)s") param['lastLoginTime'] = last_login_time if role is not None: update.append('role=%(role)s') param['role'] = role if status is not None: update.append('status=%(status)s') param['status'] = status if update: sql = "UPDATE t_users SET {} WHERE email=%(email)s".format( ', '.join(update)) tx = yield pool.begin() try: yield tx.execute(sql, param) except pymysql.Error as e: yield tx.rollback() log.error('编辑用户失败#{}'.format(e)) flag, msg = False, '用户 {} 资料修改失败'.format(email) else: yield tx.commit() log.info('用户 {} 资料修改成功'.format(email)) flag, msg = True, '用户 {} 资料修改成功'.format(email) return flag, msg else: log.error('没有可更新的项') return False, '没有可更新的项' else: log.error('没有可编辑的用户#{}'.format(email)) return False, '没有可编辑的用户#{}'.format(email)
def delete_settings_list(self, s_type, status=None): setting = yield self.get_settings_list(s_type=s_type, status=status) if setting: if status: sql = 'DELETE FROM t_settings WHERE type=%(s_type)s AND status=%(status)s' else: sql = 'DELETE FROM t_settings WHERE type=%(s_type)s' tx = yield pool.begin() try: yield tx.execute(sql, dict(s_type=s_type, status=status)) except pymysql.Error as e: yield tx.rollback() log.error('批量删除设置项 {} 失败#{}'.format(s_type, e)) flag, msg = False, '批量删除设置项 {} 失败#{}'.format(s_type, e) else: yield tx.commit() log.info('批量删除设置项 {} 成功'.format(s_type)) flag, msg = True, '批量删除设置项 {} 成功'.format(s_type) else: flag, msg = False, '不存在指定的设置项' return flag, msg
def delete_setting(self, sid): setting = yield self.get_setting_by_id(sid=sid) if setting: sql = 'DELETE FROM t_settings WHERE id=%(sid)s' tx = yield pool.begin() try: yield tx.execute(sql, dict(sid=sid)) except pymysql.Error as e: yield tx.rollback() log.error('删除 {} 设置项 {} 失败#{}'.format(setting.type, setting.name, e)) flag, msg = False, '删除 {} 设置项 {} 失败#{}'.format( setting.type, setting.name, e) else: yield tx.commit() log.info('删除 {} 设置项 {} 成功'.format(setting.type, setting.name)) flag, msg = True, '删除 {} 设置项 {} 成功'.format( setting.type, setting.name) else: flag, msg = False, '不存在指定的设置项' return flag, msg
def edit_setting(self, sid, status=None, name=None, value=None, sort=None): update = [] param = dict(sid=sid) if status is not None: update.append('s.status=%(status)s') param['status'] = status if name is not None: update.append("s.name=%(name)s") param['name'] = name if value is not None: update.append("s.value=%(value)s") param['value'] = value if sort is not None: update.append('s.sort=%(sort)s') param['sort'] = sort setting = yield self.get_setting_by_id(sid=sid) if update and setting: sql = 'UPDATE t_settings s SET {} WHERE id=%(sid)s'.format( ', '.join(update)) tx = yield pool.begin() try: yield tx.execute(sql, param) except pymysql.Error as e: yield tx.rollback() log.error('更新 {} 配置项 {} 失败#{}'.format(setting.type, setting.name, e)) flag, msg = False, '更新 {} 配置项 {} 失败#{}'.format( setting.type, setting.name, e) else: yield tx.commit() log.info('更新 {} 配置项 {} 成功'.format(setting.type, setting.name)) flag, msg = True, '更新 {} 配置项 {} 成功'.format( setting.type, setting.name) return flag, msg else: log.error('没有指定编辑的配置项') return False, '没有指定编辑的配置项'