update
This commit is contained in:
parent
69d7fb2540
commit
f6941b1994
34
b/product/company_category_add.dspy
Normal file
34
b/product/company_category_add.dspy
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
async def company_category_add(ns={}):
|
||||||
|
ns_dic = {
|
||||||
|
'id': uuid(),
|
||||||
|
'company_category': ns.get('company_category')
|
||||||
|
}
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
ns_dic['orgid'] = orgid
|
||||||
|
try:
|
||||||
|
await sor.C('user_publish_company_category', ns_dic)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Company category created successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to create company category, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await company_category_add(params_kw)
|
||||||
|
return ret
|
||||||
18
b/product/company_category_delete.dspy
Normal file
18
b/product/company_category_delete.dspy
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
async def company_category_delete(ns={}):
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
update_sql = """update user_publish_company_category set del_flg = '1' where id = '%s';""" % ns.get('id')
|
||||||
|
await sor.sqlExe(update_sql, {})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Company category deleted successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to delete company category, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await company_category_delete(params_kw)
|
||||||
|
return ret
|
||||||
34
b/product/company_category_search.dspy
Normal file
34
b/product/company_category_search.dspy
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
async def company_category_search(ns={}):
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
ns_dic = {
|
||||||
|
'orgid': orgid,
|
||||||
|
'del_flg': '0'
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
result = await sor.R('user_publish_company_category', ns_dic)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Company categories retrieved successfully',
|
||||||
|
'data': result
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to retrieve company categories, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await company_category_search(params_kw)
|
||||||
|
return ret
|
||||||
18
b/product/company_category_update.dspy
Normal file
18
b/product/company_category_update.dspy
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
async def company_category_update(ns={}):
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
update_sql = """update user_publish_company_category set company_category = '%s' where id = '%s';""" % (ns.get('company_category'), ns.get('id'))
|
||||||
|
await sor.sqlExe(update_sql, {})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Company category updated successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to update company category, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await company_category_update(params_kw)
|
||||||
|
return ret
|
||||||
36
b/product/product_category_add.dspy
Normal file
36
b/product/product_category_add.dspy
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
async def product_category_add(ns={}):
|
||||||
|
ns_dic = {
|
||||||
|
'id': uuid(),
|
||||||
|
'product_category': ns.get('product_category'),
|
||||||
|
'parentid': ns.get('parentid') if ns.get('parentid') else None
|
||||||
|
}
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
ns_dic['orgid'] = orgid
|
||||||
|
try:
|
||||||
|
await sor.C('user_publish_product_category', ns_dic)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'product category created successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
await sor.rollback()
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to create product category, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await product_category_add(params_kw)
|
||||||
|
return ret
|
||||||
18
b/product/product_category_delete.dspy
Normal file
18
b/product/product_category_delete.dspy
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
async def product_category_delete(ns={}):
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
update_sql = """update user_publish_product_category set del_flg = '1' where id = '%s';""" % ns.get('id')
|
||||||
|
await sor.sqlExe(update_sql, {})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'product category deleted successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to delete product category, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await product_category_delete(params_kw)
|
||||||
|
return ret
|
||||||
40
b/product/product_category_search.dspy
Normal file
40
b/product/product_category_search.dspy
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
async def build_tree(parent_id=None, all_cats=None):
|
||||||
|
return [{
|
||||||
|
"id": cat['id'],
|
||||||
|
"name": cat['product_category'],
|
||||||
|
"cart_flag": cat['cart_flag'],
|
||||||
|
"children": await build_tree(cat['id'], all_cats)
|
||||||
|
} for cat in all_cats if cat['parentid'] == parent_id]
|
||||||
|
|
||||||
|
async def product_category_search(ns={}):
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
ns_dic = {'orgid': orgid, 'del_flg': '0'}
|
||||||
|
try:
|
||||||
|
result = await sor.R('user_publish_product_category', ns_dic)
|
||||||
|
# res = await build_tree(parent_id=None, all_cats=result)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'product categories retrieved successfully',
|
||||||
|
'data': result
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to retrieve product categories, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await product_category_search(params_kw)
|
||||||
|
return ret
|
||||||
18
b/product/product_category_update.dspy
Normal file
18
b/product/product_category_update.dspy
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
async def product_category_update(ns={}):
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
update_sql = """update user_publish_product_category set product_category = '%s' where id = '%s';""" % (ns.get('product_category'), ns.get('id'))
|
||||||
|
await sor.sqlExe(update_sql, {})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'product category updated successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to update product category, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await product_category_update(params_kw)
|
||||||
|
return ret
|
||||||
94
b/product/publish_product_add.dspy
Normal file
94
b/product/publish_product_add.dspy
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
async def get_user_role(ns={}):
|
||||||
|
sor = ns['sor']
|
||||||
|
# get role
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
res_role = await sor.R('userrole', ns)
|
||||||
|
if res_role:
|
||||||
|
user_role = res_role[0]
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"status": False,
|
||||||
|
"msg": "userrole table, user id can not find..."
|
||||||
|
}
|
||||||
|
roleid = user_role.get('roleid')
|
||||||
|
# get role name
|
||||||
|
role_name = await sor.R('role', {'id': roleid})
|
||||||
|
if role_name:
|
||||||
|
role = role_name[0].get('role')
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"status": False,
|
||||||
|
"msg": "role table, can not get role name"
|
||||||
|
}
|
||||||
|
return role
|
||||||
|
|
||||||
|
async def publish_product_add(ns={}):
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
domain_name = ns.get('url_link').split("//")[1].split("/")[0]
|
||||||
|
if 'localhost' in domain_name:
|
||||||
|
domain_name = 'dev.opencomputing.cn'
|
||||||
|
product_category = ns.get('product_category')
|
||||||
|
company_type = ns.get('company_type')
|
||||||
|
ns_dic = {
|
||||||
|
"id": uuid(),
|
||||||
|
"orgid": orgid,
|
||||||
|
"img": ns.get('img'),
|
||||||
|
"domain_name": domain_name,
|
||||||
|
"product_name": ns.get("product_name"),
|
||||||
|
"product_category": product_category,
|
||||||
|
"company_name": ns.get("company_name"),
|
||||||
|
"company_type": json.dumps(company_type) if isinstance(company_type, list) else company_type,
|
||||||
|
"contact_person": ns.get("contact_person"),
|
||||||
|
"job_title": ns.get("job_title"),
|
||||||
|
"phone_number": ns.get("phone_number"),
|
||||||
|
"email": ns.get("email"),
|
||||||
|
"cpu": ns.get("cpu"),
|
||||||
|
"memory": ns.get("memory"),
|
||||||
|
"gpu": ns.get("gpu"),
|
||||||
|
"sys_disk": ns.get("sys_disk"),
|
||||||
|
"data_disk": ns.get("data_disk"),
|
||||||
|
"net_card": ns.get("net_card"),
|
||||||
|
"price": ns.get("price"),
|
||||||
|
"priority": ns.get("priority") if ns.get("priority") else 1,
|
||||||
|
"status": ns.get("status") if ns.get("status") else '0',
|
||||||
|
"title": ns.get("title"),
|
||||||
|
"label": ns.get("label"),
|
||||||
|
"first_page": ns.get("first_page") if ns.get("first_page") else '0',
|
||||||
|
"requirement_summary": ns.get("requirement_summary"),
|
||||||
|
"related_parameters": ns.get("related_parameters"),
|
||||||
|
"application_scenario": ns.get("application_scenario"),
|
||||||
|
"audit_status": ns.get('audit_status', 'pending'),
|
||||||
|
}
|
||||||
|
user_role = await get_user_role({'userid': userid, 'sor': sor})
|
||||||
|
# 非客户角色不需要审批
|
||||||
|
if user_role != '客户':
|
||||||
|
ns['status'] = '1'
|
||||||
|
ns_dic['audit_status'] = 'approved'
|
||||||
|
ns_dic['first_page'] = '1'
|
||||||
|
try:
|
||||||
|
await sor.C('user_publish_product', ns_dic)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'publish product created successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to publish product, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await publish_product_add(params_kw)
|
||||||
|
return ret
|
||||||
68
b/product/publish_product_search.dspy
Normal file
68
b/product/publish_product_search.dspy
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
async def publish_product_search(ns={}):
|
||||||
|
"""
|
||||||
|
普通客户查看
|
||||||
|
运营查看自己提交内容
|
||||||
|
运营查看所有用户内容
|
||||||
|
:param ns:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
offset = ns['offset']
|
||||||
|
flag = ns.get('flag')
|
||||||
|
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
org_parentid_li = await sor.R('organization', {'id': orgid})
|
||||||
|
org_parentid = org_parentid_li[0]['parentid']
|
||||||
|
user_role = await get_user_role({'userid': userid, 'sor': sor})
|
||||||
|
try:
|
||||||
|
# 非客户角色
|
||||||
|
if user_role != '客户':
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
|
||||||
|
# 业主机构角色并且是只查看业主机构自己 flag==single
|
||||||
|
if orgid == 'mIWUHBeeDM8mwAFPIQ8pS' and flag == 'single':
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_product AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE org.parentid IS NULL AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % offset
|
||||||
|
# 业主机构角色并且是查看所有(包括业主机构自己) flag!=single
|
||||||
|
elif orgid == 'mIWUHBeeDM8mwAFPIQ8pS':
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_product AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE org.id = '%s' or org.parentid = '%s' AND org.org_type != '1' AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, orgid, offset)
|
||||||
|
# 其他机构非用户角色 只查看自己
|
||||||
|
elif flag == 'single':
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_product AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE org.id = '%s' AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, offset)
|
||||||
|
# 其他机构非用户角色查看所有
|
||||||
|
else:
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_product AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE (org.id = '%s' or org.parentid = '%s') AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, orgid, offset)
|
||||||
|
# 客户角色
|
||||||
|
else:
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
ns['orgid'] = user_list[0]['id']
|
||||||
|
find_sql = """SELECT * FROM user_publish_product WHERE orgid = '%s' AND del_flg = '0' ORDER BY create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, offset)
|
||||||
|
result = await sor.sqlExe(find_sql, {})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Requirements retrieved successfully',
|
||||||
|
'data': result
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to retrieve requirements, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await publish_product_search(params_kw)
|
||||||
|
return ret
|
||||||
44
b/product/publish_product_search_first_page.dspy
Normal file
44
b/product/publish_product_search_first_page.dspy
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
async def publish_product_search_first_page(ns={}):
|
||||||
|
"""
|
||||||
|
普通客户查看
|
||||||
|
运营查看自己提交内容
|
||||||
|
运营查看所有用户内容
|
||||||
|
:param ns:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
domain_name = ns.get('url_link').split("//")[1].split("/")[0]
|
||||||
|
if 'localhost' in domain_name:
|
||||||
|
domain_name = 'dev.opencomputing.cn'
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
find_sql = """SELECT * FROM user_publish_product WHERE domain_name = '%s' AND first_page = '1' AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC;""" % (domain_name,)
|
||||||
|
result = await sor.sqlExe(find_sql, {})
|
||||||
|
category_all = await sor.R('user_publish_product_category', {})
|
||||||
|
product_dic = {}
|
||||||
|
for res in result:
|
||||||
|
res['img'] = 'https://' + domain_name + '/idfile?path=' + res['img']
|
||||||
|
category_id = res['product_category'].split(',')[0]
|
||||||
|
category_name_li = [item['product_category'] for item in category_all if item['id'] == category_id]
|
||||||
|
category_name = category_name_li[0] if category_name_li else '其他'
|
||||||
|
if product_dic.get(category_name):
|
||||||
|
product_dic[category_name].append(res)
|
||||||
|
else:
|
||||||
|
product_dic[category_name] = [res]
|
||||||
|
product_list = []
|
||||||
|
for key, value in product_dic.items():
|
||||||
|
product_list.append({'id': uuid(), 'name': key, 'product_list': value})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Requirements retrieved successfully',
|
||||||
|
'data': product_list
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to retrieve requirements, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await publish_product_search_first_page(params_kw)
|
||||||
|
return ret
|
||||||
35
b/product/requirement_add.dspy
Normal file
35
b/product/requirement_add.dspy
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
async def requirement_add(ns={}):
|
||||||
|
product_category = ns.get('product_category')
|
||||||
|
company_type = ns.get('company_type')
|
||||||
|
ns_dic = {
|
||||||
|
'id': uuid(),
|
||||||
|
'orgid': ns.get('orgid'),
|
||||||
|
'requirement_name': ns.get('requirement_name'),
|
||||||
|
'product_category': json.dumps(product_category) if isinstance(product_category, list) else product_category,
|
||||||
|
'company_name': ns.get('company_name'),
|
||||||
|
'company_type': json.dumps(company_type) if isinstance(company_type, list) else company_type,
|
||||||
|
'contact_person': ns.get('contact_person'),
|
||||||
|
'job_title': ns.get('job_title'),
|
||||||
|
'phone_number': ns.get('phone_number'),
|
||||||
|
'email': ns.get('email'),
|
||||||
|
'requirement_summary': ns.get('requirement_summary'),
|
||||||
|
'related_parameters': ns.get('related_parameters'),
|
||||||
|
'application_scenario': ns.get('application_scenario'),
|
||||||
|
'audit_status': ns.get('audit_status', 'pending')
|
||||||
|
}
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
await sor.C('user_publish_requirement', ns_dic)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Requirement created successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to create requirement, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await requirement_add(params_kw)
|
||||||
|
return ret
|
||||||
21
b/product/requirement_delete.dspy
Normal file
21
b/product/requirement_delete.dspy
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
async def requirement_delete(ns={}):
|
||||||
|
ns_dic = {
|
||||||
|
'id': ns.get('id'),
|
||||||
|
'del_flg': '1'
|
||||||
|
}
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
await sor.U('user_publish_requirement', ns_dic)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Requirement delete successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to delete requirement, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await requirement_delete(params_kw)
|
||||||
|
return ret
|
||||||
93
b/product/requirement_search.dspy
Normal file
93
b/product/requirement_search.dspy
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
async def get_user_role(ns={}):
|
||||||
|
sor = ns['sor']
|
||||||
|
# get role
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
res_role = await sor.R('userrole', ns)
|
||||||
|
if res_role:
|
||||||
|
user_role = res_role[0]
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"status": False,
|
||||||
|
"msg": "userrole table, user id can not find..."
|
||||||
|
}
|
||||||
|
roleid = user_role.get('roleid')
|
||||||
|
# get role name
|
||||||
|
role_name = await sor.R('role', {'id': roleid})
|
||||||
|
if role_name:
|
||||||
|
role = role_name[0].get('role')
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"status": False,
|
||||||
|
"msg": "role table, can not get role name"
|
||||||
|
}
|
||||||
|
return role
|
||||||
|
|
||||||
|
async def requirement_search(ns={}):
|
||||||
|
"""
|
||||||
|
普通客户查看
|
||||||
|
运营查看自己提交内容
|
||||||
|
运营查看所有用户内容
|
||||||
|
:param ns:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
offset = ns['offset']
|
||||||
|
flag = ns.get('flag')
|
||||||
|
|
||||||
|
if ns.get('userid'):
|
||||||
|
userid = ns.get('userid')
|
||||||
|
else:
|
||||||
|
userid = await get_user()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
# 区分运营和普通客户
|
||||||
|
user_list = await sor.R('users', {'id': userid})
|
||||||
|
if not user_list:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': '没有找到匹配的用户'
|
||||||
|
}
|
||||||
|
orgid = user_list[0]['orgid']
|
||||||
|
org_parentid_li = await sor.R('organization', {'id': orgid})
|
||||||
|
org_parentid = org_parentid_li[0]['parentid']
|
||||||
|
user_role = await get_user_role({'userid': userid, 'sor': sor})
|
||||||
|
try:
|
||||||
|
# 非客户角色
|
||||||
|
if user_role != '客户':
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
|
||||||
|
# 业主机构角色并且是只查看业主机构自己 flag==single
|
||||||
|
if orgid == 'mIWUHBeeDM8mwAFPIQ8pS' and flag == 'single':
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_requirement AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE org.parentid IS NULL AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % offset
|
||||||
|
# 业主机构角色并且是查看所有(包括业主机构自己) flag!=single
|
||||||
|
elif orgid == 'mIWUHBeeDM8mwAFPIQ8pS':
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_requirement AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE org.id = '%s' or org.parentid = '%s' AND org.org_type != '1' AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, orgid, offset)
|
||||||
|
# 其他机构非用户角色 只查看自己
|
||||||
|
elif flag == 'single':
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_requirement AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE org.id = '%s' AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, offset)
|
||||||
|
# 其他机构非用户角色查看所有
|
||||||
|
else:
|
||||||
|
find_sql = """SELECT upr.* FROM user_publish_requirement AS upr LEFT JOIN organization AS org ON upr.orgid = org.id
|
||||||
|
WHERE (org.id = '%s' or org.parentid = '%s') AND upr.del_flg = '0' ORDER BY upr.create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, orgid, offset)
|
||||||
|
# 客户角色
|
||||||
|
else:
|
||||||
|
ns['del_flg'] = '0'
|
||||||
|
ns['orgid'] = user_list[0]['id']
|
||||||
|
find_sql = """SELECT * FROM user_publish_requirement WHERE orgid = '%s' AND del_flg = '0' ORDER BY create_at DESC LIMIT 20 OFFSET %s;""" % (orgid, offset)
|
||||||
|
|
||||||
|
result = await sor.sqlExe(find_sql, {})
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Requirements retrieved successfully',
|
||||||
|
'data': result
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to retrieve requirements, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await requirement_search(params_kw)
|
||||||
|
return ret
|
||||||
23
b/product/requirement_update.dspy
Normal file
23
b/product/requirement_update.dspy
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
async def requirement_update(ns={}):
|
||||||
|
product_category = ns.get('product_category')
|
||||||
|
company_type = ns.get('company_type')
|
||||||
|
if product_category:
|
||||||
|
ns['product_category'] = json.dumps(product_category) if isinstance(product_category, list) else product_category
|
||||||
|
if company_type:
|
||||||
|
ns['company_type'] = json.dumps(company_type) if isinstance(company_type, list) else company_type
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
await sor.U('user_publish_requirement', ns)
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'msg': 'Requirement updated successfully'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': False,
|
||||||
|
'msg': 'Failed to update requirement, %s' % str(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = await requirement_update(params_kw)
|
||||||
|
return ret
|
||||||
Loading…
x
Reference in New Issue
Block a user