手机抽奖接口
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
'views/ir_cron_act_views.xml',
|
||||
'views/yuthon_timed_tasks_views.xml',
|
||||
'views/yuthon_timed_tasks_views.xml',
|
||||
'views/yuthon_phone_lotter.xml',
|
||||
'views/menu.xml',
|
||||
],
|
||||
'assets': {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import json
|
||||
from odoo import http, fields
|
||||
from odoo.http import request, Response
|
||||
import logging
|
||||
from odoo import http, fields
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -100,3 +100,68 @@ class YuThonPhone(http.Controller):
|
||||
'sex': kw.get('sex'),
|
||||
}
|
||||
return json.dumps({'data': data, 'code': 200, 'message': ''})
|
||||
|
||||
# 抽签项目列表接口
|
||||
@http.route('/phone/lottery/list', type='http', auth="none", csrf=False, cors='*', methods=['GET'])
|
||||
def lottery_list(self, **kw):
|
||||
"""
|
||||
获取抽签项目列表
|
||||
返回:id、项目名称、人员列表、人数
|
||||
"""
|
||||
try:
|
||||
lottery_records = request.env['phone.lottery'].sudo().search([])
|
||||
data_list = []
|
||||
for record in lottery_records:
|
||||
employee_list = [{
|
||||
'id': emp.id,
|
||||
'name': emp.name,
|
||||
} for emp in record.employee_ids]
|
||||
|
||||
data_list.append({
|
||||
'id': record.id,
|
||||
'name': record.name,
|
||||
'employees': employee_list,
|
||||
'employee_count': len(record.employee_ids),
|
||||
})
|
||||
|
||||
return json.dumps({'data': data_list, 'code': 200, 'message': ''})
|
||||
except Exception as e:
|
||||
_logger.error(f"获取抽签项目列表失败: {e}")
|
||||
return json.dumps({'data': [], 'code': 500, 'message': str(e)})
|
||||
|
||||
# 创建抽签结果接口
|
||||
@http.route('/phone/lottery/result', type='http', auth="none", csrf=False, cors='*', methods=['POST'])
|
||||
def lottery_create_result(self, **kw):
|
||||
"""
|
||||
创建抽签结果
|
||||
参数:lottery_id (项目ID), result (结果文本)
|
||||
"""
|
||||
|
||||
lottery_id = kw.get('lottery_id')
|
||||
result = kw.get('result')
|
||||
|
||||
if not lottery_id:
|
||||
return json.dumps({'data': {}, 'code': 400, 'message': '缺少项目ID参数'})
|
||||
|
||||
if not result:
|
||||
return json.dumps({'data': {}, 'code': 400, 'message': '缺少结果参数'})
|
||||
|
||||
try:
|
||||
lottery_record = request.env['phone.lottery'].sudo().browse(int(lottery_id))
|
||||
if not lottery_record.exists():
|
||||
return json.dumps({'data': {}, 'code': 404, 'message': '项目不存在'})
|
||||
|
||||
# 更新结果
|
||||
lottery_record.write({'outcome': result})
|
||||
|
||||
return json.dumps({
|
||||
'data': {
|
||||
'id': lottery_record.id,
|
||||
'name': lottery_record.name,
|
||||
'outcome': lottery_record.outcome,
|
||||
},
|
||||
'code': 200,
|
||||
'message': '结果保存成功'
|
||||
})
|
||||
except Exception as e:
|
||||
return json.dumps({'data': {}, 'code': 500, 'message': str(e)})
|
||||
|
||||
@@ -4,4 +4,5 @@ from . import system_version
|
||||
from . import fields_piyin
|
||||
from . import ir_cron_act
|
||||
from . import yuthon_timed_tasks
|
||||
# from . import res_partner
|
||||
from . import yuthon_phone_lottery
|
||||
from . import res_partner
|
||||
@@ -0,0 +1,11 @@
|
||||
from odoo import models, fields, api, _
|
||||
|
||||
class PhoneLottery(models.Model):
|
||||
_name = 'phone.lottery'
|
||||
_description = '手机抽签配置'
|
||||
_order = 'sequence, id'
|
||||
|
||||
sequence = fields.Integer(string="序号", default=10)
|
||||
name = fields.Char(string="项目名称")
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
outcome = fields.Text(string="结果")
|
||||
@@ -2,4 +2,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_system_version,system_version,model_system_version,base.group_system,1,1,1,1
|
||||
access_ir_cron_type,ir.cron.type,model_ir_cron_type,base.group_system,1,1,1,1
|
||||
access_yuthon_timed_tasks,yuthon.timed.tasks,model_yuthon_timed_tasks,base.group_system,1,1,1,1
|
||||
access_users_home_batch_wizard,access_users_home_batch_wizard,model_users_home_batch_wizard,base.group_user,1,1,1,1
|
||||
access_users_home_batch_wizard,access_users_home_batch_wizard,model_users_home_batch_wizard,base.group_user,1,1,1,1
|
||||
access_phone_lottery,phone.lottery,model_phone_lottery,base.group_user,1,1,1,1
|
||||
|
@@ -28,4 +28,9 @@
|
||||
parent="cron_type_menu_root"
|
||||
action="base.reports_action"
|
||||
sequence="5"/>
|
||||
<menuitem id="yuthon_base_lottery"
|
||||
name="手机抽签配置"
|
||||
parent="cron_type_menu_root"
|
||||
action="view_yuthon_lottery_action"
|
||||
sequence="10"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="view_yuthon_lottery_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.lottery.tree</field>
|
||||
<field name="model">phone.lottery</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="手机抽签配置" editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="employee_ids" widget="many2many_tags"/>
|
||||
<field name="outcome"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_yuthon_lottery_action" model="ir.actions.act_window">
|
||||
<field name="name">手机抽签配置</field>
|
||||
<field name="res_model">phone.lottery</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_yuthon_lottery_tree"/>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user