tangxu
2024-01-09 ddc2780231ea76be74fadb7486401a3d0d17b101
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
namespace Yw.Application
{
    /// <summary>
    /// HealthQuotaEvaluationModelBinding
    /// </summary>
    [Route("Health/Quota/Evaluation/Model/Binding")]
    [ApiDescriptionSettings("Health", Name = "指标评价模型绑定", Order = 8900)]
    public class HealthQuotaEvaluationModelBinding_Controller : IDynamicApiController
    {
        private readonly Service.HealthQuotaEvaluationModelBinding _service = new();
 
        #region Query
 
        /// <summary>
        /// 通过 ModelID 获取有效绑定
        /// </summary>
        [Route("GetValidByModelID@V1.0")]
        [HttpGet]
        public List<HealthQuotaEvaluationModelBindingDto> GetValidByModelID([FromQuery][Required] ModelIDInput input)
        {
            var list = _service.GetValidByModelID(input.ModelID);
            var vm_list = list?.Select(x => new HealthQuotaEvaluationModelBindingDto(x)).ToList();
            return vm_list;
        }
 
        /// <summary>
        /// 通过 ModelIds 获取有效绑定
        /// </summary>
        [Route("GetValidByModelIds@V1.0")]
        [HttpGet]
        public List<HealthQuotaEvaluationModelBindingDto> GetValidByModelIds([FromQuery][Required] ModelIdsInput input)
        {
            var ids = LongListHelper.ToList(input.ModelIds);
            var list = _service.GetValidByModelIds(ids);
            var vm_list = list?.Select(x => new HealthQuotaEvaluationModelBindingDto(x)).ToList();
            return vm_list;
        }
 
        /// <summary>
        /// 通过 SignalID 获取有效绑定
        /// </summary>
        [Route("GetValidBySignalID@V1.0")]
        [HttpGet]
        public HealthQuotaEvaluationModelBindingDto GetValidBySignalID([FromQuery][Required] SignalIDInput input)
        {
            var model = _service.GetValidBySignalID(input.SignalID);
            if (model == null)
                return default;
            return new HealthQuotaEvaluationModelBindingDto(model);
        }
 
        /// <summary>
        /// 通过 SignalIds 获取有效绑定
        /// </summary>
        [Route("GetValidBySignalIds@V1.0")]
        [HttpGet]
        public List<HealthQuotaEvaluationModelBindingDto> GetValidBySignalIds([FromQuery][Required] SignalIdsInput input)
        {
            var ids = LongListHelper.ToList(input.SignalIds);
            var list = _service.GetValidBySignalIds(ids);
            var vm_list = list?.Select(x => new HealthQuotaEvaluationModelBindingDto(x)).ToList();
            return vm_list;
        }
 
 
        #endregion
 
 
        #region Binding
 
        /// <summary>
        /// 绑定
        /// </summary>
        [Route("Binding@V1.0")]
        [HttpPost]
        public bool Binding([Required] BindingHealthQuotaEvaluationModelInput input)
        {
            var model = new Service.HealthQuotaEvaluationModel().GetByID(input.ModelID);
            if (model == null)
            {
                throw Oops.Oh(ErrorCodes.D001, $"ModelID:{input.ModelID}");
            }
            if (_service.IsExistValidBindingBySignalID(input.SignalID))
            {
                throw Oops.Oh(ErrorCodes.V001, $"信号:{input.SignalID}", "已绑定,请解除绑定后重试!");
            }
            var binding = new Model.HealthQuotaEvaluationModelBinding()
            {
                ModelID = input.ModelID,
                SignalID = input.SignalID,
                BindingTime = DateTime.Now
            };
            return _service.Insert(binding) > 0;
        }
 
        /// <summary>
        /// 解绑
        /// </summary>
        [Route("UnBinding@V1.0")]
        [HttpPost]
        public bool UnBinding([Required] UnBindingHealthQuotaEvaluationModelInput input)
        {
            var binding = _service.GetValidBySignalID(input.SignalID);
            if (binding == null)
            {
                throw Oops.Oh(ErrorCodes.V001, $"信号:{input.SignalID}", "未绑定,无法解绑!");
            }
            var rhs = new Model.HealthQuotaEvaluationModelBinding(binding)
            {
                UnBindingTime = DateTime.Now
            };
            return _service.Update(rhs);
        }
 
        #endregion
 
 
 
 
    }
}