using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using MadRunFabric.Common; using MessageApi.IRepositories; using Microsoft.Extensions.Logging; using MadRunFabric.Model.MessageApi; using System.Security.Claims; using MongoDB.Driver; using Microsoft.AspNetCore.Authorization; namespace MessageApi.Controllers.Application { /// /// 3D版本 - 升级提示接口 /// [Authorize] [ApiVersion("6.0")] [Produces("application/json")] [Route("api/[controller]")] public class AppVersion3DController : BaseController { private readonly ILogger _logger; private readonly IApp_Version3DRepository _app_version3DRepository; public AppVersion3DController( ILogger logger, IApp_Version3DRepository app_version3DRepository ) { _logger = logger; _app_version3DRepository = app_version3DRepository; } /// /// 获取3D版本分页 /// [HttpGet("getlistbypage")] public IActionResult GetListsByPageAsync(int apptype, string projectid, string keyword, string stime, string etime, int pageindex = 1, int pagesize = 10) { int recordCount = 0; var result = _app_version3DRepository.GetListsByPage(apptype, projectid, keyword, stime, etime, pageindex, pagesize, out recordCount); var obj = new { rows = result.ToList(), total = recordCount }; return Success("获取成功", obj); } /// /// 获取3D版本详情 /// /// /// [HttpGet("getdetailes")] public IActionResult GetDetailsAsync(string id) { var model = _app_version3DRepository.GetDetails(id); return Success("获取成功", model); } /// /// 添加3D版本信息 /// /// /// /// /// /// /// /// [HttpPost("add")] public async Task AddAsync(int apptype, string projectid, string versionname, string versioncode, List downurl, string note) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; if (string.IsNullOrEmpty(versionname)) return Error("版本名称不能为空"); if (string.IsNullOrEmpty(versioncode)) return Error("版本号不能为空"); var model = new App_Version3D(); model.apptype = apptype; model.projectid = projectid; model.versionname = versionname; model.versioncode = versioncode; model.createby = usercode; model.createtime = DateTime.Now.ToLocalTime(); model.downurl = downurl.ToList(); model.note = note; model.isdelete = 0; bool b = await _app_version3DRepository.Add(model); if (b) return Success("添加成功"); //日志 _logger.LogError($"版本名称:{versionname},版本号:{versioncode}添加失败"); return Error("添加失败"); } /// /// 修改3D版本信息 /// /// /// /// /// /// /// /// /// /// [HttpPost("update")] public async Task UpdateAsync(string id,int apptype, string projectid, string versionname, string versioncode, int ordernum, List downurl, string httpurl, string note) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; if (string.IsNullOrEmpty(id)) return Error("参数错误"); if (string.IsNullOrEmpty(versionname)) return Error("版本名称不能为空"); if (string.IsNullOrEmpty(versioncode)) return Error("版本号不能为空"); var model = new App_Version3D(); model = await _app_version3DRepository.GetSingle(id); if (model == null) return Error("操作失败"); model.apptype = apptype; model.projectid = projectid; model.versionname = versionname; model.versioncode = versioncode; model.createby = usercode; model.updatetime = DateTime.Now.ToLocalTime(); model.downurl = downurl.ToList(); model.note = note; bool b = await _app_version3DRepository.Update(model); if (b) return Success("保存成功"); //日志 _logger.LogError($"版本名称:{versionname},版本号:{versioncode}修改失败"); return Error("保存失败"); } /// /// 删除3D版本信息 by ids /// /// string[] id /// [HttpPost("delete")] public async Task DeleteAsync(string[] ids) { int num = 0; if (ids == null && ids.Length <= 0) return Error("请选择要删除的记录"); foreach (var item in ids) { var model = await _app_version3DRepository.GetSingle(item); model.isdelete = -1; if (await _app_version3DRepository.Update(model)) num += 1; } if (num == ids.Length) return Success("删除成功"); if (num > 0 && num < ids.Length) return Error("部分删除失败,请查看后重新操作"); return Error("删除失败,请查看后重新操作"); } #region App版本升级提示 /// /// 获取最新3D版本详情 /// /// [HttpGet("getnewdetailes")] public async Task GetNewDetailsAsync(string projectid, int apptype = 1) { #region 判断验证 if (string.IsNullOrEmpty(projectid)) return Error("参数错误"); #endregion //排序字段 var sort = Builders.Sort.Descending("createtime"); var model = await _app_version3DRepository.GetSingle(x => x.isdelete == 0 && x.projectid == projectid && x.apptype == apptype, sort); //其他方法 //Task> list = _app_version3DRepository.Get(null, null, sort); //var model = list.Result.SingleOrDefault(); if (model != null) { var result = new { id = model.id, apptype = model.apptype, projectid = model.projectid, versionname = model.versionname, versioncode = model.versioncode, downurl = model.downurl, createby = model.createby, createtime = model.createtime, updatetime = model.updatetime, note = model.note }; return Success("获取成功!", result); } return Success("获取成功!", null); } #endregion } }