init commit

This commit is contained in:
路 范
2022-03-30 17:54:33 +08:00
parent df01841625
commit 904bdd16cd
500 changed files with 217251 additions and 0 deletions

View File

@@ -0,0 +1,265 @@
using Ewide.Core;
using Ewide.RoadFlowLite.Utility;
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using RoadFlow.Data;
using RoadFlow.Utility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.RoadFlowLite.Serivce.Message
{
[Route("/api/roadflow/Message/")]
[ApiDescriptionSettings("RoadFlow")]
public class MessageService : IDynamicApiController, ITransient
{
private readonly ILog _log;
private readonly IUserManager _userManager;
private readonly IMessage _message;
private readonly IOrganize _organize;
private readonly IMessageUser _messageUser;
IRepository<SysUser> _sysUserRep;
public MessageService(
ILog log,
IUserManager userManager,
IMessage message,
IOrganize organize,
IMessageUser messageUser,
// IUserDummy userDummy,
IRepository<SysUser> sysUserRep)
{
_log = log;
_userManager = userManager;
_message = message;
_organize = organize;
_messageUser = messageUser;
//_userDummy = userDummy;
_sysUserRep = sysUserRep;
}
/// <summary>
/// 发送消息
/// </summary>
/// <returns></returns>
[HttpPost("Send")]
public string Send([FromBody] JObject args)
{
string ReceiverIdString = args.GetJsonValue("ReceiverIdString");
string SendType = args.GetJsonValue("SendType");
string Contents = args.GetJsonValue("Contents");
if (ReceiverIdString.IsNullOrWhiteSpace() || SendType.IsNullOrWhiteSpace() || Contents.IsNullOrWhiteSpace())
{
throw Oops.Oh("参数错误");
//return RoadFlowCommon.Tools.GetReturnJsonString(false, localizer["ValidEmpty"].Value);
}
var userModel = _userManager.User;
RoadFlow.Model.rf_message messageModel = new RoadFlow.Model.rf_message
{
Contents = Contents,
Id = GuidExtensions.NewGuid().ToString(),
ReceiverIdString = ReceiverIdString,
SenderId = userModel.Id,
SenderName = userModel.Name,
SendType = SendType,
SendTime = DateExtensions.Now,
Type = 1
};
string msg = _message.VueSend(messageModel);
if (msg == "1")
return "发送成功";
else
throw Oops.Oh(msg);
//RoadFlowCommon.Tools.GetReturnJsonString("1".Equals(msg), "1".Equals(msg) ? localizer["SendSuccessfully"].Value : msg);
}
/// <summary>
/// 得到记录
/// </summary>
/// <returns></returns>
[HttpPost("GetMessageList")]
public dynamic GetMessageList([FromBody]JObject args)
{
string Contents = args.GetJsonValue("Contents");
string SendTime1 = args.GetJsonValue("SendTime1");
string SendTime2 = args.GetJsonValue("SendTime2");
string status = args.GetJsonValue("status");//0自己发送的消息 1未读消息 2已读消息
int number = args.GetJsonValue("number").ToInt(1);
int size = args.GetJsonValue("size").ToInt();
string order = args.GetJsonValue("order");
if (order.IsNullOrWhiteSpace())
{
order = "SendTime desc";
}
string userId = _userManager.UserId;
var dt = _message.GetSendList(out int total, size, number, userId.ToString(), Contents, SendTime1, SendTime2, status, order);
JArray jArray = new JArray();
List<string> userids = new List<string>();
foreach (var dr in dt)
{
JObject jObject = new JObject()
{
{ "Id", dr.Id },
{ "Contents", dr.Contents.RemoveHTML() },
{ "SenderName", dr.SenderName +","+dr.SenderId } ,//(dr.SenderId.IsGuid() ? "<span style=\"color:#999;\">-" + _organize.GetOrganizeMainShowHtml(dr.SenderId, false) + "</span>" : "") },
{ "SendType", _message.GetSendTypeString(dr.SendType,null) },// localizer) },
{ "SendTime", dr.SendTime.ToShortDateTimeString() },
{ "LinkUrl", dr.Files},
{ "Type", dr.Type},
//{ "showLink", !dr["Files"].ToString().IsNullOrWhiteSpace() }
};
jArray.Add(jObject);
userids.Add(dr.SenderId);
}
var dic =_organize.GetOrganizeMainShowHtml(userids, false);
foreach (JObject obj in jArray)
{
string[] vals=obj["SenderName"].ToString().Split(",");
if (!dic.ContainsKey(vals[1]))
obj["SenderName"] = vals[0];
else
obj["SenderName"] = vals[0] + "<span style=\"color:#999;\">-" + dic[vals[1]] + "</span>";
}
JObject json = new JObject() {
{ "total", total },
};
json.Add("rows", jArray);
return json;
//RoadFlowCommon.Tools.GetReturnJsonString(jObject: json);
}
/// <summary>
/// 得到阅读记录
/// </summary>
/// <returns></returns>
[HttpPost("GetMessageUserList")]
public dynamic GetMessageUserList([FromBody] JObject args )
{
string msgId = args.GetJsonValue("msgid");
string order = args.GetJsonValue("order");
if (order.IsNullOrWhiteSpace())
{
order = "IsRead asc";
}
var dt = _messageUser.GetReadUserList(out int total, 100000, 1, msgId, order);
JArray jArray = new JArray();
int i = 0;
List<string> userids = new List<string>();
foreach (var dr in dt)
{
JObject jObject = new JObject()
{
{ "Id", i++.ToString() },
{ "UserId", dr.UserId },//+ "<span style=\"color:#999;\"> - "+_organize.GetOrganizeMainShowHtml(dr.UserId,false)+"</span>" },
{ "ReadTime", dr.ReadTime!=null ? dr.ReadTime.ToShortDateTimeString() : "<span class=\"roadui_liststatus roadui_liststatusdisabled\">未读</span>" },
};
jArray.Add(jObject);
userids.Add(dr.UserId);
}
var usrList=_sysUserRep.DetachedEntities.Where(x => userids.Contains(x.Id)).ToList();
var dic = _organize.GetOrganizeMainShowHtml(userids, false);
foreach (JObject obj in jArray)
{
string id = obj["UserId"].ToString();
obj["UserId"] = usrList.FirstOrDefault(x => x.Id == id).Name?? "" + (dic.ContainsKey(id)?"<span style=\"color:#999;\"> - " + dic[id]+ "</span>":"") ;
}
JObject json = new JObject() {
{ "total", total },
};
json.Add("rows", jArray);
return json;
//RoadFlowCommon.Tools.GetReturnJsonString(jObject: json);
}
/// <summary>
/// 查询一条消息
/// </summary>
/// <returns></returns>
[HttpGet("GetMessage")]
public dynamic GetMessage(string msgId, int type)
{
var msgModel = _message.GetOneById(msgId);
JObject jObject = new JObject();
if (msgModel != null)
{
if (type == 1)//更新状态为已读
{
_messageUser.UpdateIsRead(msgModel.Id, _userManager.UserId);
}
jObject.Add("SenderName", msgModel.SenderName + (!msgModel.SenderId.IsNullOrWhiteSpace() ? "" + _organize.GetOrganizeMainShowHtml(msgModel.SenderId, false) + "" : ""));
jObject.Add("SendTime", msgModel.SendTime.ToShortDateTimeString());
jObject.Add("Contents", msgModel.Contents);
}
return jObject;
//RoadFlowCommon.Tools.GetReturnJsonString(jObject: jObject);
}
/// <summary>
/// 标记一条消息为已读
/// </summary>
/// <returns></returns>
[HttpGet("MarkAsReadOne")]
public string MarkAsReadOne(string id)
{
if (!id.IsGuid(out Guid guid))
{
throw Oops.Oh("ID 错误");
//return RoadFlowCommon.Tools.GetReturnJsonString(false, localizer["IdError"].Value);
}
_messageUser.UpdateIsRead(id,_userManager.UserId);
return "标记成功";
//RoadFlowCommon.Tools.GetReturnJsonString(true, localizer["MarkSuccessfully"].Value);
}
/// <summary>
/// 标记为已读
/// </summary>
/// <returns></returns>
[HttpGet("MarkAsRead")]
public string MarkAsRead()
{
_messageUser.UpdateAllIsRead();
return "标注成功";
//RoadFlowCommon.Tools.GetReturnJsonString(true, localizer["MarkSuccessfully"].Value);
}
/// <summary>
/// 删除消息
/// </summary>
/// <returns></returns>
[HttpPost("Delete")]
public string Delete([FromBody] JObject args)
{
string ids = args.GetJsonValue("ids");
List<string> guids = new List<string>();
foreach (string id in ids.Split(','))
{
if (id.IsGuid())
{
guids.Add(id);
}
}
_messageUser.Delete(guids, _userManager.UserId);
return "删除成功";
//RoadFlowCommon.Tools.GetReturnJsonString(true, localizer["DeleteSuccessfully"].Value);
}
}
}