Blame view

netcore/src/Modularity/Extend/NCC.Extend/UavAppUpdateInfoService.cs 4.76 KB
de2bd2f9   “wangming”   项目初始化
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
122
123
124
125
126
127
  using NCC.Common.Core.Manager;
  using NCC.Common.Enum;
  using NCC.Common.Extension;
  using NCC.Common.Filter;
  using NCC.Dependency;
  using NCC.DynamicApiController;
  using NCC.FriendlyException;
  using NCC.Extend.Interfaces.UavAppUpdateInfo;
  using Mapster;
  using Microsoft.AspNetCore.Mvc;
  using SqlSugar;
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Threading.Tasks;
  using NCC.Extend.Entitys;
  using NCC.Extend.Entitys.Dto.UavAppUpdateInfo;
  using Yitter.IdGenerator;
  using NCC.Common.Helper;
  using NCC.JsonSerialization;
  using NCC.Extend.Interfaces.MqttPublisher;
  using Serilog;
  
  namespace NCC.Extend.UavAppUpdateInfo
  {
      /// <summary>
      /// APP版本管理服务
      /// </summary>
      [ApiDescriptionSettings(Tag = "Extend",Name = "UavAppUpdateInfo", Order = 200)]
      [Route("api/Extend/[controller]")]
      public class UavAppUpdateInfoService : IUavAppUpdateInfoService, IDynamicApiController, ITransient
      {
          private readonly ISqlSugarRepository<UavAppUpdateInfoEntity> _uavAppUpdateInfoRepository;
          private readonly SqlSugarScope _db;
          private readonly IUserManager _userManager;
          private readonly IMqttPublisherService _mqttService;
  
          /// <summary>
          /// 初始化一个<see cref="UavAppUpdateInfoService"/>类型的新实例
          /// </summary>
          public UavAppUpdateInfoService(
              ISqlSugarRepository<UavAppUpdateInfoEntity> uavAppUpdateInfoRepository,
              IUserManager userManager,
              IMqttPublisherService mqttService)
          {
              _uavAppUpdateInfoRepository = uavAppUpdateInfoRepository;            
              _db = _uavAppUpdateInfoRepository.Context;
              _userManager = userManager;
              _mqttService = mqttService;
          }
  
          /// <summary>
          /// 获取APP版本管理
          /// </summary>
          /// <param name="id">参数</param>
          /// <returns></returns>
          [HttpGet("{id}")]
          public async Task<dynamic> GetInfo(string id)
          {
              var entity = await _db.Queryable<UavAppUpdateInfoEntity>().FirstAsync(p => p.Id == id);
              var output = entity.Adapt<UavAppUpdateInfoInfoOutput>();
              return output;
          }
  
          /// <summary>
  		/// 获取APP版本管理列表
  		/// </summary>
  		/// <param name="input">请求参数</param>
  		/// <returns></returns>
          [HttpGet("")]
          public async Task<dynamic> GetList([FromQuery] UavAppUpdateInfoListQueryInput input)
          {
              var sidx = input.sidx == null ? "id" : input.sidx;
              var data = await _db.Queryable<UavAppUpdateInfoEntity>()
                  .Select(it=> new UavAppUpdateInfoListOutput
                  {
                      id = it.Id,
                      version=it.Version,
                      createTime=it.CreatedTime,
                      path=it.Path
                  }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
                  return PageResult<UavAppUpdateInfoListOutput>.SqlSugarPageResult(data);
          }
  
          /// <summary>
          /// 新建APP版本管理
          /// </summary>
          /// <param name="input">参数</param>
          /// <returns></returns>
          [HttpPost("")]
          public async Task Create([FromBody] UavAppUpdateInfoCrInput input)
          {
              var userInfo = await _userManager.GetUserInfo();
              var entity = input.Adapt<UavAppUpdateInfoEntity>();
              entity.Id = YitIdHelper.NextId().ToString();
              var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
              if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000);
          }
  
          /// <summary>
          /// 更新APP版本管理
          /// </summary>
          /// <param name="id">主键</param>
          /// <param name="input">参数</param>
          /// <returns></returns>
          [HttpPut("{id}")]
          public async Task Update(string id, [FromBody] UavAppUpdateInfoUpInput input)
          {
              var entity = input.Adapt<UavAppUpdateInfoEntity>();
              var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
              if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001);
          }
  
          /// <summary>
          /// 删除APP版本管理
          /// </summary>
          /// <returns></returns>
          [HttpDelete("{id}")]
          public async Task Delete(string id)
          {
              var entity = await _db.Queryable<UavAppUpdateInfoEntity>().FirstAsync(p => p.Id == id);
              _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);
              var isOk = await _db.Deleteable<UavAppUpdateInfoEntity>().Where(d => d.Id == id).ExecuteCommandAsync();
              if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002);
          }
      }
  }