// 角色数据权限修改
// 对应字典：
//[
// 		{
// 			value: '0',  // 本组织id
// 			label: '仅本人数据权限',
// 		},
// 		{
// 			value: '1',  // 所有组织id
// 			label: '全部数据权限',
// 		},
// 		{
// 			value: '2', // 参数组织id
// 			label: '自定数据权限',
// 		},
// 		{
// 			value: '3', // 本组织id
// 			label: '本组织数据权限',
// 		},
// 		{
// 			value: '4', // 不存
// 			label: '本组织及以下数据权限',
// 		},
// 	],

function main() {
	// 验证用户权限
	'use api/user/acl/excerpt.js'

	const data = payload.get().body?.toObject();

	// 更新role表
	const query = `UPDATE sys_roles SET data_scope = ? WHERE role_id = ?`;
	const res = SQL.exec('system_sql', query, data.dataScope, data.roleId);
	let orgRes = true;
	if (!res) {
		return errMsg(507, '更新失败');
	}
	// 更新role_org表
	let orgIds = [];
	if (data.dataScope == '0') {
		// 通过本组织id创建
	} else if (data.dataScope == '1') {
		// 查询所有组织id
		orgIds = SQL.query('system_sql', 'SELECT organization_id FROM sys_organizations ');
	} else if (data.dataScope == '2') {
		// 参数组织id
		orgIds = data.organizationIds;
	} else if (data.dataScope == '3') {
		// 通过本组织id创建
	} else if (data.dataScope == '4') {
		// 不存
		orgIds = [];
	}

	// 删除旧数据
	const delRes = SQL.exec('system_sql', 'DELETE FROM sys_role_organizations_rel WHERE role_id = ?', data.roleId);
	if (orgIds.length) {
		let insertStr = '';
		let valueStrArr = [];
		let valueArr = [];
		for (i = 0; i < orgIds.length; i++) {
			valueStrArr.push(`(?,?,?,?,?)`);
			valueArr.push(ex.suid().base58(), data.roleId, orgIds[i], USER_INFO.user_id, USER_INFO.nickname);
		}

		insertStr += `INSERT INTO sys_role_organizations_rel (rule_id, role_id, organization_id, proprietor_id, proprietor_name) VALUES ${valueStrArr.join(',')};`;
		orgRes = SQL.exec('system_sql', insertStr, ...valueArr);
	}

	if (orgRes) {
		return okMsg(orgRes);
	}
	return errMsg(507, '更新失败');
}
