!8342 !8341 手机抽奖接口

Merge pull request !8342 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-01-26 12:45:40 +00:00
committed by Gitee
7 changed files with 108 additions and 3 deletions
+1
View File
@@ -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': {
+66 -1
View File
@@ -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)})
+2 -1
View File
@@ -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 -1
View File
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_system_version system_version model_system_version base.group_system 1 1 1 1
3 access_ir_cron_type ir.cron.type model_ir_cron_type base.group_system 1 1 1 1
4 access_yuthon_timed_tasks yuthon.timed.tasks model_yuthon_timed_tasks base.group_system 1 1 1 1
5 access_users_home_batch_wizard access_users_home_batch_wizard model_users_home_batch_wizard base.group_user 1 1 1 1
6 access_phone_lottery phone.lottery model_phone_lottery base.group_user 1 1 1 1
+5
View File
@@ -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>
+21
View File
@@ -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>