mirror of
https://github.com/project-redbud/FunGame-Server.git
synced 2025-12-16 05:18:21 +00:00
添加 InventoryController
This commit is contained in:
parent
8c6d125c96
commit
d322a97712
@ -1435,7 +1435,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case OfferActionType.OffereeReject:
|
case OfferActionType.OffereeReject:
|
||||||
if (offer.Status == OfferState.Sent || offer.Status == OfferState.Negotiating)
|
if (offer.Status == OfferState.Sent || offer.Status == OfferState.Negotiating || offer.Status == OfferState.NegotiationAccepted)
|
||||||
{
|
{
|
||||||
SQLHelper.UpdateOfferStatus(offerId, OfferState.Rejected);
|
SQLHelper.UpdateOfferStatus(offerId, OfferState.Rejected);
|
||||||
SQLHelper.UpdateOfferFinishTime(offerId, DateTime.Now);
|
SQLHelper.UpdateOfferFinishTime(offerId, DateTime.Now);
|
||||||
@ -1465,6 +1465,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
if (offeree.Inventory.Items.FirstOrDefault(i => i.Guid == itemGuid) is Item item)
|
if (offeree.Inventory.Items.FirstOrDefault(i => i.Guid == itemGuid) is Item item)
|
||||||
{
|
{
|
||||||
offeree.Inventory.Items.Remove(item);
|
offeree.Inventory.Items.Remove(item);
|
||||||
|
item.EntityState = EntityState.Deleted;
|
||||||
|
|
||||||
Item newItem = item.Copy();
|
Item newItem = item.Copy();
|
||||||
newItem.User = offeror;
|
newItem.User = offeror;
|
||||||
newItem.IsSellable = false;
|
newItem.IsSellable = false;
|
||||||
@ -1472,6 +1474,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
newItem.NextSellableTime = DateTimeUtility.GetTradableTime();
|
newItem.NextSellableTime = DateTimeUtility.GetTradableTime();
|
||||||
newItem.NextTradableTime = DateTimeUtility.GetTradableTime();
|
newItem.NextTradableTime = DateTimeUtility.GetTradableTime();
|
||||||
offeror.Inventory.Items.Add(newItem);
|
offeror.Inventory.Items.Add(newItem);
|
||||||
|
newItem.EntityState = EntityState.Added;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach (Guid itemGuid in offer.OfferorItems)
|
foreach (Guid itemGuid in offer.OfferorItems)
|
||||||
@ -1479,6 +1482,8 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
if (offeror.Inventory.Items.FirstOrDefault(i => i.Guid == itemGuid) is Item item)
|
if (offeror.Inventory.Items.FirstOrDefault(i => i.Guid == itemGuid) is Item item)
|
||||||
{
|
{
|
||||||
offeror.Inventory.Items.Remove(item);
|
offeror.Inventory.Items.Remove(item);
|
||||||
|
item.EntityState = EntityState.Deleted;
|
||||||
|
|
||||||
Item newItem = item.Copy();
|
Item newItem = item.Copy();
|
||||||
newItem.User = offeree;
|
newItem.User = offeree;
|
||||||
newItem.IsSellable = false;
|
newItem.IsSellable = false;
|
||||||
@ -1486,6 +1491,7 @@ namespace Milimoe.FunGame.Server.Controller
|
|||||||
newItem.NextSellableTime = DateTimeUtility.GetTradableTime();
|
newItem.NextSellableTime = DateTimeUtility.GetTradableTime();
|
||||||
newItem.NextTradableTime = DateTimeUtility.GetTradableTime();
|
newItem.NextTradableTime = DateTimeUtility.GetTradableTime();
|
||||||
offeree.Inventory.Items.Add(newItem);
|
offeree.Inventory.Items.Add(newItem);
|
||||||
|
newItem.EntityState = EntityState.Added;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SQLHelper.UpdateInventory(offeror.Inventory);
|
SQLHelper.UpdateInventory(offeror.Inventory);
|
||||||
|
|||||||
137
FunGame.WebAPI/Controllers/InventoryController.cs
Normal file
137
FunGame.WebAPI/Controllers/InventoryController.cs
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
|
||||||
|
using Milimoe.FunGame.WebAPI.Models;
|
||||||
|
|
||||||
|
namespace Milimoe.FunGame.WebAPI.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("[controller]")]
|
||||||
|
[Authorize]
|
||||||
|
public class InventoryController(RESTfulAPIModel model, ILogger<InventoryController> logger) : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly ILogger<InventoryController> _logger = logger;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取交易报价
|
||||||
|
/// </summary>
|
||||||
|
[HttpGet("getoffer")]
|
||||||
|
public async Task<IActionResult> GetOffer([FromQuery] long offerId)
|
||||||
|
{
|
||||||
|
PayloadModel<DataRequestType> response = new()
|
||||||
|
{
|
||||||
|
Event = "inventory_getoffer",
|
||||||
|
RequestType = DataRequestType.Inventory_GetOffer
|
||||||
|
};
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Dictionary<string, object> data = new()
|
||||||
|
{
|
||||||
|
{ OffersQuery.Column_Id, offerId },
|
||||||
|
{ "apiQuery", true }
|
||||||
|
};
|
||||||
|
Dictionary<string, object> result = await model.DataRequestController.GetResultData(DataRequestType.Inventory_GetOffer, data);
|
||||||
|
response.StatusCode = 200;
|
||||||
|
response.Data = result;
|
||||||
|
return Ok(response);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError("Error: {e}", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
response.StatusCode = 500;
|
||||||
|
response.Message = "服务器暂时无法处理此请求。";
|
||||||
|
return StatusCode(500, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建交易报价
|
||||||
|
/// </summary>
|
||||||
|
[HttpPost("makeoffer")]
|
||||||
|
public async Task<IActionResult> MakeOffer([FromBody] Dictionary<string, object> data)
|
||||||
|
{
|
||||||
|
PayloadModel<DataRequestType> response = new()
|
||||||
|
{
|
||||||
|
Event = "inventory_makeoffer",
|
||||||
|
RequestType = DataRequestType.Inventory_MakeOffer
|
||||||
|
};
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Dictionary<string, object> result = await model.DataRequestController.GetResultData(DataRequestType.Inventory_MakeOffer, data);
|
||||||
|
response.StatusCode = 200;
|
||||||
|
response.Data = result;
|
||||||
|
return Ok(response);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError("Error: {e}", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
response.StatusCode = 500;
|
||||||
|
response.Message = "服务器暂时无法处理此请求。";
|
||||||
|
return StatusCode(500, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修改交易报价
|
||||||
|
/// </summary>
|
||||||
|
[HttpPost("reviseoffer")]
|
||||||
|
public async Task<IActionResult> ReviseOffer([FromBody] Dictionary<string, object> data)
|
||||||
|
{
|
||||||
|
PayloadModel<DataRequestType> response = new()
|
||||||
|
{
|
||||||
|
Event = "inventory_reviseoffer",
|
||||||
|
RequestType = DataRequestType.Inventory_ReviseOffer
|
||||||
|
};
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Dictionary<string, object> result = await model.DataRequestController.GetResultData(DataRequestType.Inventory_ReviseOffer, data);
|
||||||
|
response.StatusCode = 200;
|
||||||
|
response.Data = result;
|
||||||
|
return Ok(response);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError("Error: {e}", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
response.StatusCode = 500;
|
||||||
|
response.Message = "服务器暂时无法处理此请求。";
|
||||||
|
return StatusCode(500, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 回应交易报价
|
||||||
|
/// </summary>
|
||||||
|
[HttpPost("respondoffer")]
|
||||||
|
public async Task<IActionResult> RespondOffer([FromBody] Dictionary<string, object> data)
|
||||||
|
{
|
||||||
|
PayloadModel<DataRequestType> response = new()
|
||||||
|
{
|
||||||
|
Event = "inventory_respondoffer",
|
||||||
|
RequestType = DataRequestType.Inventory_RespondOffer
|
||||||
|
};
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Dictionary<string, object> result = await model.DataRequestController.GetResultData(DataRequestType.Inventory_RespondOffer, data);
|
||||||
|
response.StatusCode = 200;
|
||||||
|
response.Data = result;
|
||||||
|
return Ok(response);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError("Error: {e}", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
response.StatusCode = 500;
|
||||||
|
response.Message = "服务器暂时无法处理此请求。";
|
||||||
|
return StatusCode(500, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user