Blame view

netcore/src/Modularity/Extend/NCC.Extend/LqMdXdbhsjService.cs 8.71 KB
00486d53   “wangming”   更新多个.DS_Store文件,优...
1
2
3
4
5
6
7
8
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Threading.Tasks;
  using Mapster;
  using Microsoft.AspNetCore.Mvc;
  using NCC.ClayObject;
  using NCC.Common.Configuration;
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
9
10
11
12
  using NCC.Common.Core.Manager;
  using NCC.Common.Enum;
  using NCC.Common.Extension;
  using NCC.Common.Filter;
00486d53   “wangming”   更新多个.DS_Store文件,优...
13
14
15
  using NCC.Common.Helper;
  using NCC.Common.Model.NPOI;
  using NCC.DataEncryption;
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
16
17
  using NCC.Dependency;
  using NCC.DynamicApiController;
00486d53   “wangming”   更新多个.DS_Store文件,优...
18
19
  using NCC.Extend.Entitys.Dto.LqMdXdbhsj;
  using NCC.Extend.Entitys.lq_md_xdbhsj;
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
20
  using NCC.Extend.Interfaces.LqMdXdbhsj;
00486d53   “wangming”   更新多个.DS_Store文件,优...
21
22
  using NCC.FriendlyException;
  using NCC.JsonSerialization;
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
23
  using SqlSugar;
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
24
  using Yitter.IdGenerator;
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
25
26
27
28
29
30
  
  namespace NCC.Extend.LqMdXdbhsj
  {
      /// <summary>
      /// 门店新店保护时间服务
      /// </summary>
d7925aaa   “wangming”   星期五了,下班咯
31
      [ApiDescriptionSettings(Tag = "绿纤门店信息服务", Name = "LqMdXdbhsj", Order = 201)]
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
32
33
34
35
36
37
38
39
40
41
      [Route("api/Extend/[controller]")]
      public class LqMdXdbhsjService : ILqMdXdbhsjService, IDynamicApiController, ITransient
      {
          private readonly ISqlSugarRepository<LqMdXdbhsjEntity> _lqMdXdbhsjRepository;
          private readonly SqlSugarScope _db;
          private readonly IUserManager _userManager;
  
          /// <summary>
          /// 初始化一个<see cref="LqMdXdbhsjService"/>类型的新实例
          /// </summary>
9e55866f   “wangming”   优化代码格式,合并多行表达式,提升...
42
          public LqMdXdbhsjService(ISqlSugarRepository<LqMdXdbhsjEntity> lqMdXdbhsjRepository, IUserManager userManager)
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
43
44
45
46
47
48
          {
              _lqMdXdbhsjRepository = lqMdXdbhsjRepository;
              _db = _lqMdXdbhsjRepository.Context;
              _userManager = userManager;
          }
  
d7925aaa   “wangming”   星期五了,下班咯
49
          #region 门店新店保护时间信息
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
50
51
52
53
54
55
56
57
58
59
60
61
          /// <summary>
          /// 获取门店新店保护时间信息
          /// </summary>
          /// <param name="id">参数</param>
          /// <returns></returns>
          [HttpGet("{id}")]
          public async Task<dynamic> GetInfo(string id)
          {
              var entity = await _db.Queryable<LqMdXdbhsjEntity>().FirstAsync(p => p.Id == id);
              var output = entity.Adapt<LqMdXdbhsjInfoOutput>();
              return output;
          }
d7925aaa   “wangming”   星期五了,下班咯
62
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
63
  
d7925aaa   “wangming”   星期五了,下班咯
64
          #region 门店新店保护时间列表
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
          /// <summary>
          /// 获取门店新店保护时间列表
          /// </summary>
          /// <param name="input">请求参数</param>
          /// <returns></returns>
          [HttpGet("")]
          public async Task<dynamic> GetList([FromQuery] LqMdXdbhsjListQueryInput input)
          {
              var sidx = input.sidx == null ? "F_Id" : input.sidx;
              var data = await _db.Queryable<LqMdXdbhsjEntity>()
                  .WhereIF(!string.IsNullOrEmpty(input.mdid), p => p.Mdid.Contains(input.mdid))
                  .WhereIF(input.bhkssj.HasValue, p => p.Bhkssj >= input.bhkssj)
                  .WhereIF(input.bhjssj.HasValue, p => p.Bhjssj <= input.bhjssj)
                  .WhereIF(input.sfqy.HasValue, p => p.Sfqy == input.sfqy)
                  .Select(it => new LqMdXdbhsjListOutput
                  {
                      F_Id = it.Id,
                      mdid = it.Mdid,
                      bhkssj = it.Bhkssj,
                      bhjssj = it.Bhjssj,
                      sm = it.Sm,
                      cjsj = it.Cjsj,
00486d53   “wangming”   更新多个.DS_Store文件,优...
87
                      sfqy = it.Sfqy,
ce74473f   “wangming”   feat: 新增门店类别枚举和耗卡...
88
                      stage = it.Stage,
00486d53   “wangming”   更新多个.DS_Store文件,优...
89
90
91
92
                  })
                  .MergeTable()
                  .OrderBy(sidx + " " + input.sort)
                  .ToPagedListAsync(input.currentPage, input.pageSize);
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
93
94
              return PageResult<LqMdXdbhsjListOutput>.SqlSugarPageResult(data);
          }
d7925aaa   “wangming”   星期五了,下班咯
95
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
96
  
d7925aaa   “wangming”   星期五了,下班咯
97
          #region 新建门店新店保护时间
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
98
99
100
101
102
103
104
105
106
107
108
109
          /// <summary>
          /// 新建门店新店保护时间
          /// </summary>
          /// <param name="input">参数</param>
          /// <returns></returns>
          [HttpPost("")]
          public async Task Create([FromBody] LqMdXdbhsjCrInput input)
          {
              var userInfo = await _userManager.GetUserInfo();
              var entity = input.Adapt<LqMdXdbhsjEntity>();
              entity.Id = YitIdHelper.NextId().ToString();
              entity.Cjsj = DateTime.Now;
00486d53   “wangming”   更新多个.DS_Store文件,优...
110
  
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
111
112
113
              // 验证时间逻辑
              if (entity.Bhkssj >= entity.Bhjssj)
              {
d7925aaa   “wangming”   星期五了,下班咯
114
                  throw NCCException.Oh("保护开始时间必须早于保护结束时间");
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
115
              }
00486d53   “wangming”   更新多个.DS_Store文件,优...
116
  
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
117
118
119
              // 检查是否存在重叠的保护时间
              var exists = await _db.Queryable<LqMdXdbhsjEntity>()
                  .Where(p => p.Mdid == entity.Mdid && p.Sfqy == 1)
ce74473f   “wangming”   feat: 新增门店类别枚举和耗卡...
120
                  .Where(p => (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) || (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) || (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj))
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
121
                  .AnyAsync();
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
122
123
              if (exists)
              {
d7925aaa   “wangming”   星期五了,下班咯
124
                  throw NCCException.Oh("该门店在指定时间段内已存在保护时间设置");
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
125
              }
9e55866f   “wangming”   优化代码格式,合并多行表达式,提升...
126
              var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
00486d53   “wangming”   更新多个.DS_Store文件,优...
127
128
              if (!(isOk > 0))
                  throw NCCException.Oh(ErrorCode.COM1000);
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
129
          }
d7925aaa   “wangming”   星期五了,下班咯
130
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
131
  
d7925aaa   “wangming”   星期五了,下班咯
132
          #region 更新门店新店保护时间
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
133
134
135
136
137
138
139
140
141
142
143
          /// <summary>
          /// 更新门店新店保护时间
          /// </summary>
          /// <param name="id">参数</param>
          /// <param name="input">参数</param>
          /// <returns></returns>
          [HttpPut("{id}")]
          public async Task Update(string id, [FromBody] LqMdXdbhsjUpInput input)
          {
              var entity = input.Adapt<LqMdXdbhsjEntity>();
              entity.Id = id;
00486d53   “wangming”   更新多个.DS_Store文件,优...
144
  
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
145
146
147
148
149
              // 验证时间逻辑
              if (entity.Bhkssj >= entity.Bhjssj)
              {
                  throw NCCException.Oh(ErrorCode.COM1000, "保护开始时间必须早于保护结束时间");
              }
00486d53   “wangming”   更新多个.DS_Store文件,优...
150
  
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
151
152
153
              // 检查是否存在重叠的保护时间(排除当前记录)
              var exists = await _db.Queryable<LqMdXdbhsjEntity>()
                  .Where(p => p.Mdid == entity.Mdid && p.Sfqy == 1 && p.Id != id)
00486d53   “wangming”   更新多个.DS_Store文件,优...
154
                  .Where(p =>
9e55866f   “wangming”   优化代码格式,合并多行表达式,提升...
155
                      (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) || (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) || (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj)
00486d53   “wangming”   更新多个.DS_Store文件,优...
156
                  )
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
157
                  .AnyAsync();
00486d53   “wangming”   更新多个.DS_Store文件,优...
158
  
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
159
160
161
162
              if (exists)
              {
                  throw NCCException.Oh(ErrorCode.COM1000, "该门店在指定时间段内已存在保护时间设置");
              }
00486d53   “wangming”   更新多个.DS_Store文件,优...
163
  
9e55866f   “wangming”   优化代码格式,合并多行表达式,提升...
164
              var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
00486d53   “wangming”   更新多个.DS_Store文件,优...
165
166
              if (!(isOk > 0))
                  throw NCCException.Oh(ErrorCode.COM1001);
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
167
          }
d7925aaa   “wangming”   星期五了,下班咯
168
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
169
  
d7925aaa   “wangming”   星期五了,下班咯
170
          #region 删除门店新店保护时间
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
171
172
173
174
175
176
177
178
179
          /// <summary>
          /// 删除门店新店保护时间
          /// </summary>
          /// <returns></returns>
          [HttpDelete("{id}")]
          public async Task Delete(string id)
          {
              var entity = await _db.Queryable<LqMdXdbhsjEntity>().FirstAsync(p => p.Id == id);
              _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);
9e55866f   “wangming”   优化代码格式,合并多行表达式,提升...
180
              var isOk = await _db.Deleteable<LqMdXdbhsjEntity>().Where(d => d.Id == id).ExecuteCommandAsync();
00486d53   “wangming”   更新多个.DS_Store文件,优...
181
182
              if (!(isOk > 0))
                  throw NCCException.Oh(ErrorCode.COM1002);
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
183
          }
d7925aaa   “wangming”   星期五了,下班咯
184
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
185
  
d7925aaa   “wangming”   星期五了,下班咯
186
          #region 获取门店新店保护时间下拉选择数据
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
187
188
189
190
191
192
193
194
195
          /// <summary>
          /// 获取门店新店保护时间下拉选择数据
          /// </summary>
          /// <returns></returns>
          [HttpGet("Selector")]
          public async Task<dynamic> GetSelector()
          {
              var list = await _db.Queryable<LqMdXdbhsjEntity>()
                  .Where(p => p.Sfqy == 1)
00486d53   “wangming”   更新多个.DS_Store文件,优...
196
197
198
199
200
                  .Select(it => new
                  {
                      id = it.Id,
                      fullName = it.Mdid,
                      enCode = it.Id,
ce74473f   “wangming”   feat: 新增门店类别枚举和耗卡...
201
                      stage = it.Stage,
00486d53   “wangming”   更新多个.DS_Store文件,优...
202
                  })
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
203
204
205
                  .ToListAsync();
              return new { list = list };
          }
d7925aaa   “wangming”   星期五了,下班咯
206
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
207
  
d7925aaa   “wangming”   星期五了,下班咯
208
          #region 根据门店ID获取当前有效的保护时间
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
209
210
211
212
213
214
215
216
217
          /// <summary>
          /// 根据门店ID获取当前有效的保护时间
          /// </summary>
          /// <param name="mdid">门店ID</param>
          /// <returns></returns>
          [HttpGet("GetByStoreId/{mdid}")]
          public async Task<dynamic> GetByStoreId(string mdid)
          {
              var now = DateTime.Now;
9e55866f   “wangming”   优化代码格式,合并多行表达式,提升...
218
              var entity = await _db.Queryable<LqMdXdbhsjEntity>().Where(p => p.Mdid == mdid && p.Sfqy == 1).Where(p => p.Bhkssj <= now && p.Bhjssj >= now).FirstAsync();
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
219
220
221
222
              if (entity == null)
              {
                  return new { hasProtection = false, message = "该门店当前无保护时间设置" };
              }
00486d53   “wangming”   更新多个.DS_Store文件,优...
223
  
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
224
225
226
              var output = entity.Adapt<LqMdXdbhsjInfoOutput>();
              return new { hasProtection = true, data = output };
          }
d7925aaa   “wangming”   星期五了,下班咯
227
          #endregion
efde7d04   “wangming”   更新多个文件,删除不再使用的CSS...
228
229
      }
  }