李昊 5 年之前
父節點
當前提交
5e11a04f16

File diff suppressed because it is too large
+ 13 - 9
gx_api/GxPress/Api/GxPress.Api/AdminControllers/AdminUtilsController.cs


+ 40 - 0
gx_api/GxPress/Api/GxPress.Api/AdminControllers/AdminVipEquityController.cs

@@ -0,0 +1,40 @@
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using GxPress.Repository.Interface.VipEquity;
+using GxPress.Request.VipEquity;
+using GxPress.Result.VipEquity;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace GxPress.Api.AdminControllers
+{
+    /// <summary>
+    /// VIP权益
+    /// </summary>
+    [Route("api/admin/vip-equity")]
+    [ApiController]
+    [Authorize]
+    public class AdminVipEquityController : Controller
+    {
+        private readonly IVipEquityRepository vipEquityRepository;
+        public AdminVipEquityController(IVipEquityRepository vipEquityRepository)
+        {
+            this.vipEquityRepository = vipEquityRepository;
+        }
+        [HttpGet]
+        public async Task<IEnumerable<VipEquityResult>> GetAllAsync()
+        {
+            return await vipEquityRepository.GetAllAsync();
+        }
+        [HttpPut]
+        public async Task<bool> UpdateAsync(VipEquityUpdateRequest request)
+        {
+            return await vipEquityRepository.UpdateAsync(request);
+        }
+        [HttpPost]
+        public async Task<bool> InsertAsync(Entity.tede2.VipEquity.VipEquity model)
+        {
+            return await vipEquityRepository.InsertAsync(model);
+        }
+    }
+}

+ 30 - 0
gx_api/GxPress/Model/GxPress.Entity/tede2/VipEquity/VipEquity.cs

@@ -0,0 +1,30 @@
+using Datory.Annotations;
+
+namespace GxPress.Entity.tede2.VipEquity
+{
+    /// <summary>
+    /// Vip权益
+    ///</summary>
+    [DataTable("tede_vip_equity")]
+    public class VipEquity : Datory.Entity
+    {
+        /// <summary>
+        /// IOS价格
+        /// </summary>
+        /// <value></value>
+        [DataColumn]
+        public decimal IosPrice { get; set; }
+        /// <summary>
+        /// 其他价格
+        /// </summary>
+        /// <value></value>
+        [DataColumn]
+        public decimal OtherPrice { get; set; }
+        /// <summary>
+        /// 1 月 2 季度 3 年 4连续月
+        /// </summary>
+        /// <value></value>
+        [DataColumn]
+        public int VipType { get; set; }
+    }
+}

+ 6 - 4
gx_api/GxPress/Model/GxPress.EnumConst/VipTypeConst.cs

@@ -7,12 +7,14 @@ namespace GxPress.EnumConst
     /// </summary>
     public enum VipCardTypeConst
     {
-        //月卡
+        [Description("月费会员")]
         Month = 1,
-        //季卡
+        [Description("季度会员")]
         Season = 2,
-        //年卡
-        Year = 3
+        [Description("年费会员")]
+        Year = 3,
+        [Description("连续月费会员")]
+        ContinuousMonth = 4
     }
     /// <summary>
     /// 终端

+ 14 - 0
gx_api/GxPress/Model/GxPress.Mappings/VipEquityMapping.cs

@@ -0,0 +1,14 @@
+using AutoMapper;
+using GxPress.Entity.tede2.VipEquity;
+using GxPress.Result.VipEquity;
+
+namespace GxPress.Mappings
+{
+    public class VipEquityMapping : Profile
+    {
+        public VipEquityMapping()
+        {
+            CreateMap<VipEquity, VipEquityResult>();
+        }
+    }
+}

+ 41 - 0
gx_api/GxPress/Model/GxPress.Request/VipEquity/VipEquityRequest.cs

@@ -0,0 +1,41 @@
+namespace GxPress.Request.VipEquity
+{
+    public class VipEquityRequest
+    {
+
+    }
+    /// <summary>
+    /// VIP权益修改
+    /// </summary>
+    public class VipEquityUpdateRequest
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <value></value>
+        public int Id{get;set;}
+        /// <summary>
+        /// IOS价格
+        /// </summary>
+        /// <value></value>
+
+        public decimal IosPrice { get; set; }
+        /// <summary>
+        /// 其他价格
+        /// </summary>
+        /// <value></value>
+
+        public decimal OtherPrice { get; set; }
+        /// <summary>
+        /// 1 月 2 季度 3 年 4连续月
+        /// </summary>
+        /// <value></value>
+
+        public int VipType { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <value></value>
+        public string VipTypeVlue { get; set; }
+    }
+}

+ 28 - 0
gx_api/GxPress/Model/GxPress.Result/VipEquity/VipEquityResult.cs

@@ -0,0 +1,28 @@
+namespace GxPress.Result.VipEquity
+{
+    /// <summary>
+    /// Vip权益
+    /// </summary>
+    public class VipEquityResult
+    {
+        /// <summary>
+        /// IOS价格
+        /// </summary>
+        /// <value></value>
+
+        public decimal IosPrice { get; set; }
+        /// <summary>
+        /// 其他价格
+        /// </summary>
+        /// <value></value>
+
+        public decimal OtherPrice { get; set; }
+        /// <summary>
+        /// 1 月 2 季度 3 年 4连续月
+        /// </summary>
+        /// <value></value>
+
+        public int VipType { get; set; }
+        public string VipTypeValue { get; set; }
+    }
+}

+ 56 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/VipEquity/VipEquityRepository.cs

@@ -0,0 +1,56 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using AutoMapper;
+using Datory;
+using GxPress.Common.AppOptions;
+using GxPress.Common.Tools;
+using GxPress.Repository.Interface.VipEquity;
+using GxPress.Request.VipEquity;
+using GxPress.Result.VipEquity;
+using Microsoft.Extensions.Options;
+
+namespace GxPress.Repository.Implement.VipEquity
+{
+    public class VipEquityRepository : IVipEquityRepository
+    {
+        private readonly Repository<Entity.tede2.VipEquity.VipEquity> _repository;
+        private readonly IMapper _mapper;
+        private readonly string _connectionString;
+        private readonly string _databaseTypestr;
+        public VipEquityRepository(IOptionsMonitor<DatabaseOptions> dbOptionsAccessor, IMapper mapper)
+        {
+            _databaseTypestr = dbOptionsAccessor.CurrentValue.DatabaseType;
+            _connectionString = dbOptionsAccessor.CurrentValue.ConnectionString;
+            var databaseType = StringUtils.ToEnum<DatabaseType>(dbOptionsAccessor.CurrentValue.DatabaseType, DatabaseType.MySql);
+            var database = new Database(databaseType, dbOptionsAccessor.CurrentValue.ConnectionString);
+            _repository = new Repository<Entity.tede2.VipEquity.VipEquity>(database);
+            _mapper = mapper;
+        }
+        public IDatabase Database => _repository.Database;
+        public string TableName => _repository.TableName;
+        public List<TableColumn> TableColumns => _repository.TableColumns;
+
+        public async Task<IEnumerable<VipEquityResult>> GetAllAsync()
+        {
+            var result = await _repository.GetAllAsync(Q.OrderByDesc(nameof(Entity.tede2.VipEquity.VipEquity.CreatedDate)));
+            return result.Select(n => _mapper.Map<VipEquityResult>(n));
+        }
+
+        public async Task<bool> UpdateAsync(VipEquityUpdateRequest request)
+        {
+            var model = await _repository.GetAsync(request.Id);
+            if (request.IosPrice > 0)
+                model.IosPrice = request.IosPrice;
+            if (request.OtherPrice > 0)
+                model.OtherPrice = request.OtherPrice;
+            if (request.VipType > 0)
+                model.VipType = request.VipType;
+            return await _repository.UpdateAsync(model);
+        }
+        public async Task<bool> InsertAsync(Entity.tede2.VipEquity.VipEquity model)
+        {
+            return await _repository.InsertAsync(model) > 0;
+        }
+    }
+}

+ 16 - 0
gx_api/GxPress/Repository/GxPress.Repository.Interface/VipEquity/IVipEquityRepository.cs

@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Datory;
+using GxPress.Request.VipEquity;
+using GxPress.Result.VipEquity;
+
+namespace GxPress.Repository.Interface.VipEquity
+{
+    public interface IVipEquityRepository : IRepository
+    {
+        Task<IEnumerable<VipEquityResult>> GetAllAsync();
+
+        Task<bool> UpdateAsync(VipEquityUpdateRequest request);
+        Task<bool> InsertAsync(Entity.tede2.VipEquity.VipEquity model);
+    }
+}