Files
juipnet/Services/Hncore.Pass.Sells/Controllers/CouponController.cs
“wanyongkang” b562aba2b1 忽略dll文件git
2023-07-29 10:19:42 +08:00

161 lines
5.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Hncore.Infrastructure.Extension;
using Hncore.Infrastructure.WebApi;
using Hncore.Pass.Sells.Domain;
using Hncore.Pass.Sells.Model;
using Hncore.Pass.Sells.Request.RedeemCode;
using Hncore.Pass.Sells.Service;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace Hncore.Pass.Live.Controllers
{
[ApiVersion("1.0")]
[Route("api/sells/v{version:apiVersion}/coupon/[action]")]
public class CouponController : HncoreControllerBase
{
CouponService m_CouponService;
CouponResourceService m_CouponResource;
public CouponController(CouponService _CouponService
, CouponResourceService _CouponResource)
{
m_CouponService = _CouponService;
m_CouponResource = _CouponResource;
}
[HttpPost]
public async Task<ApiResult> Post([FromBody]PostCouponRequest request)
{
var entity = request.MapTo<CouponEntity>();
if (entity.Name.NotHas())
{
return Error("<22><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>");
}
if (m_CouponService.Exist(m => m.Name == entity.Name))
{
return Error("<22><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
var ret = await m_CouponService.Add(entity);
return Success();
}
[HttpPost]
public async Task<ApiResult> Put([FromBody]PostCouponRequest request)
{
var entity = await m_CouponService.GetById(request.Id);
if (entity == null)
{
return Error("<22>Ż<EFBFBD>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
if (request.Name.NotHas())
{
return Error("<22><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>");
}
if (m_CouponService.Exist(m => m.Id != request.Id && m.Name == request.Name))
{
return Error("<22><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
entity.Name = request.Name;
entity.AllowMinAmount = request.AllowMinAmount;
entity.CouponType = request.CouponType;
entity.CouponValue = request.CouponValue;
entity.DateRule = request.DateRule;
if (entity.DateRule == ECouponDateRule.BenginEnd)
{
entity.EndDate = request.EndDate;
entity.StartDate = request.StartDate;
}
else
{
entity.ValidDay = request.ValidDay;
}
await m_CouponService.Update(entity);
return Success();
}
[HttpPost]
public async Task<ApiResult> Disabled([FromQuery]int Id)
{
var redeemCode = await m_CouponService.GetById(Id);
if (redeemCode == null)
{
return Error("<22><><EFBFBD>Ż<EFBFBD>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
redeemCode.Disabled = 1;
await m_CouponService.Update(redeemCode);
return Success();
}
[HttpPost]
public async Task<ApiResult> Delete([FromQuery]int id)
{
await m_CouponService.DeleteById(id);
return Success();
}
[HttpPost]
public ApiResult Deletes([FromBody] List<int> ids)
{
ids.ForEach(async m => await m_CouponService.DeleteById(m));
return Success();
}
[HttpGet]
public async Task<ApiResult> Get([FromQuery] int id)
{
var ret = await m_CouponService.GetById(id);
return Success(ret);
}
/// <summary>
/// <20><>ѯ
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet]
public async Task<ApiResult> Page([FromQuery]PageRequestBase request)
{
Expression<Func<CouponEntity, bool>> expr = m =>
string.IsNullOrEmpty(request.KeyWord)
|| (m.Name.Contains(request.KeyWord));
var ret = await m_CouponService.Page(request.PageIndex, request.PageSize, expr);
var data = ret.ToApiResult();
return data;
}
[HttpPost]
public async Task<ApiResult> Give([FromBody]GiveCouponModelRequest request)
{
if (request.CouponId==0)
{
return Error("<22><>ѡ<EFBFBD><D1A1><EFBFBD>Ż<EFBFBD>ȯ");
}
if (request.UserId == 0)
{
return Error("<22><>ѡ<EFBFBD><D1A1><EFBFBD>û<EFBFBD>");
}
await this.m_CouponService.Give(request.CouponId, this.Request.GetManageUserInfo().OperaterId.ToString(), request.UserId, 1);
return Success();
}
[HttpPost]
public async Task<ApiResult> Freeze([FromQuery]int originId)
{
await m_CouponService.Freeze(originId);
return Success();
}
[HttpGet,UserAuth]
public async Task<ApiResult> GetAvailableCoupon()
{
var userId = this.Request.GetUserInfo().UserId;
var ret = await m_CouponService.GetUserAvailableCoupon(userId);
return Success(ret);
}
}
}