using System.Collections.Generic;
using System.Linq;
using AdminDomain.BeautifulNumber;
using AdminDomain.Entity;
using AdminService.BeautifulNumber;
using Common;
using CommonInfrastructure;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using UserDomain.Entity;
namespace AdminApi.BeautifulNumber
{
[ApiController, Route("adminapi/[controller]")]
[Authorize]
public class BeautifulNumberController : BaseController
{
private readonly IBeautifulNumberService _beautifulNumberService;
public BeautifulNumberController(IBeautifulNumberService beautifulNumberService)
{
_beautifulNumberService = beautifulNumberService;
}
///
/// 获取靓号列表
///
[HttpGet("list")]
public async Task> GetList([FromQuery] BeautifulNumberListParam param)
{
param.page = param.page > 0 ? param.page : 1;
param.size = param.size > 0 ? param.size : 20;
var result = await _beautifulNumberService.GetList(param);
var dtos = result.list.Select(MapToDto).ToList();
return this.ToPageResult(dtos, (int)result.count);
}
///
/// 获取可购买的靓号列表
///
[HttpGet("available")]
public async Task> GetAvailableList([FromQuery] BeautifulNumberListParam param)
{
param.page = param.page > 0 ? param.page : 1;
param.size = param.size > 0 ? param.size : 20;
param.status = (int)BeautifulNumberStatus.Available;
var result = await _beautifulNumberService.GetList(param);
var dtos = result.list.Select(MapToDto).ToList();
return this.ToPageResult(dtos, (int)result.count);
}
///
/// 查询靓号信息
///
[HttpGet("check/{number}")]
public async Task> CheckNumber(string number)
{
var result = await _beautifulNumberService.CheckNumber(number);
return this.ToResult(MapToDto(result));
}
private static BeautifulNumberDto MapToDto(BeautifulNumberConfig entity)
{
if (entity == null) return new BeautifulNumberDto();
return new BeautifulNumberDto
{
Id = entity.Id ?? "",
Number = entity.Number ?? "",
RuleName = entity.RuleName ?? "",
Level = entity.Level ?? "",
Price = entity.Price,
Status = (int)entity.Status,
SaleTime = entity.SaleTime,
BuyerUserId = entity.BuyerUserId ?? "",
UserId = entity.UserId ?? "",
Remark = entity.Remark ?? "",
CreateTime = entity.CreateTime
};
}
///
/// 删除靓号
///
[HttpPost("delete")]
public async Task> Delete([FromBody] DeleteBeautifulNumberParam param)
{
var result = await _beautifulNumberService.Delete(param.Id);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 设置为普通号
///
[HttpPost("set-normal")]
public async Task> SetToNormal([FromBody] DeleteBeautifulNumberParam param)
{
var result = await _beautifulNumberService.SetToNormal(param.Id);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 冻结靓号
///
[HttpPost("freeze")]
public async Task> Freeze([FromBody] DeleteBeautifulNumberParam param)
{
var result = await _beautifulNumberService.Freeze(param.Id);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 解冻靓号
///
[HttpPost("unfreeze")]
public async Task> Unfreeze([FromBody] DeleteBeautifulNumberParam param)
{
var result = await _beautifulNumberService.Unfreeze(param.Id);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 修改价格
///
[HttpPost("update-price")]
public async Task> UpdatePrice([FromBody] UpdateBeautifulNumberPriceParam param)
{
var result = await _beautifulNumberService.UpdatePrice(param.Id, param.Price);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 修改靓号(等级和价格)
///
[HttpPost("update-number")]
public async Task> UpdateNumber([FromBody] UpdateBeautifulNumberParam param)
{
var result = await _beautifulNumberService.UpdateNumber(param.Id, param.Level, param.Price);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 获取靓号规则列表
///
[HttpGet("rules")]
public async Task>> GetRules()
{
var result = await _beautifulNumberService.GetRules();
var dtos = result.Select(MapRuleToDto).ToList();
return this.ToResult(dtos);
}
private static BeautifulNumberRuleDto MapRuleToDto(BeautifulNumberRule entity)
{
if (entity == null) return new BeautifulNumberRuleDto();
return new BeautifulNumberRuleDto
{
Id = entity.Id ?? "",
RuleName = entity.RuleName ?? "",
Level = entity.Level ?? "",
Price = entity.Price,
Sort = entity.Sort,
IsEnable = entity.IsEnable
};
}
///
/// 更新靓号规则
///
[HttpPost("update-rules")]
public async Task> UpdateRules([FromBody] List paramList)
{
var rules = new List();
foreach (var param in paramList)
{
rules.Add(new BeautifulNumberRule
{
Id = param.Id,
RuleName = param.RuleName,
Level = param.Level,
Price = param.Price,
Sort = param.Sort,
IsEnable = param.IsEnable
});
}
var result = await _beautifulNumberService.UpdateRules(rules);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 初始化靓号规则
///
[HttpPost("init-rules")]
public async Task> InitRules()
{
var result = await _beautifulNumberService.InitRules();
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 添加规则
///
[HttpPost("add-rule")]
public async Task> AddRule([FromBody] BeautifulNumberRule rule)
{
var result = await _beautifulNumberService.AddRule(rule);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 更新规则
///
[HttpPost("update-rule")]
public async Task> UpdateRule([FromBody] BeautifulNumberRule rule)
{
var result = await _beautifulNumberService.UpdateRule(rule);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 删除规则
///
[HttpPost("delete-rule")]
public async Task> DeleteRule([FromBody] DeleteBeautifulNumberRuleParam param)
{
var result = await _beautifulNumberService.DeleteRule(param.Id);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 赠送靓号给用户
///
[HttpPost("give-to-user")]
public async Task> GiveToUser([FromBody] GiveBeautifulNumberParam param)
{
var result = await _beautifulNumberService.GiveToUser(param.Number, param.UserId);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 初始化靓号(已售出不删除)
///
[HttpPost("init-numbers")]
public async Task> InitNumbers()
{
var result = await _beautifulNumberService.InitBeautifulNumbers();
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 添加单个靓号
///
[HttpPost("add-number")]
public async Task> AddNumber([FromBody] AddBeautifulNumberParam param)
{
var result = await _beautifulNumberService.AddNumber(param.Number, param.Level, param.Price);
if (result.isok)
return this.ToResult(result.msg);
else
return this.ToFailResult(result.msg);
}
///
/// 批量添加靓号
///
[HttpPost("batch-add-numbers")]
public async Task> BatchAddNumbers([FromBody] BatchAddBeautifulNumbersParam param)
{
var result = await _beautifulNumberService.BatchAddNumbers(param.Numbers, param.Level, param.Price);
return this.ToResult(new BatchAddResult { SuccessCount = result.successCount, FailCount = result.failCount, Message = result.msg });
}
}
public class BatchAddResult
{
public int SuccessCount { get; set; }
public int FailCount { get; set; }
public string Message { get; set; }
}
public class BeautifulNumberDto
{
public string Id { get; set; }
public string Number { get; set; }
public string RuleName { get; set; }
public string Level { get; set; }
public long Price { get; set; }
public int Status { get; set; }
public long SaleTime { get; set; }
public string BuyerUserId { get; set; }
public string UserId { get; set; }
public string Remark { get; set; }
public long CreateTime { get; set; }
}
public class BeautifulNumberRuleDto
{
public string Id { get; set; }
public string RuleName { get; set; }
public string Level { get; set; }
public long Price { get; set; }
public int Sort { get; set; }
public bool IsEnable { get; set; }
}
public class BatchAddBeautifulNumbersParam
{
public List Numbers { get; set; }
public string Level { get; set; }
public long Price { get; set; }
}
public class GiveBeautifulNumberParam
{
public string Number { get; set; }
public string UserId { get; set; }
}
public class AddBeautifulNumberParam
{
public string Number { get; set; }
public string Level { get; set; }
public long Price { get; set; }
public int Sort { get; set; }
public string Remark { get; set; }
}
public class UpdateBeautifulNumberParam
{
public string Id { get; set; }
public string Level { get; set; }
public long Price { get; set; }
}
public class DeleteBeautifulNumberParam
{
public string Id { get; set; }
}
public class UpdateBeautifulNumberPriceParam
{
public string Id { get; set; }
public long Price { get; set; }
}
public class UpdateBeautifulNumberRuleParam
{
public string Id { get; set; }
public string RuleName { get; set; }
public string Level { get; set; }
public long Price { get; set; }
public int Sort { get; set; }
public bool IsEnable { get; set; }
}
public class AddBeautifulNumberRuleParam
{
public string RuleName { get; set; }
public string Level { get; set; }
public long Price { get; set; }
public int Sort { get; set; }
public bool IsEnable { get; set; }
}
public class UpdateSingleBeautifulNumberRuleParam
{
public string Id { get; set; }
public string RuleName { get; set; }
public string Level { get; set; }
public long Price { get; set; }
public int Sort { get; set; }
public bool IsEnable { get; set; }
}
public class DeleteBeautifulNumberRuleParam
{
public string Id { get; set; }
}
}