Light12306/Web12306/Controllers/CrmController.cs
2015-03-13 19:25:08 +08:00

111 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Web12306.Controllers
{
using System.Net;
using FSLib.Network.Http;
using Web12306.Models;
using Web12306.Models.Entity;
public class CrmController : Controller
{
// GET: Crm
public ActionResult Index()
{
return View();
}
public JsonResult IgnoreReport(int id)
{
var db = new ChatRoomDb();
var item = db.AbuseReports.FirstOrDefault(s => s.Id == id);
if (item == null)
return Json(new { ret = false });
item.Is_Check = 1;
db.SaveChanges();
return Json(new { ret = true });
}
public JsonResult BanReporter(int id)
{
var db = new ChatRoomDb();
var item = db.AbuseReports.FirstOrDefault(s => s.Id == id);
if (item == null)
return Json(new { ret = false });
var user = item.Reporting_Account;
if (BanUser(user, item.Reporting_Name, item.RoomKey))
{
db.MarkAllCheckedByReporter(user);
return Json(new { ret = true, user });
}
else
{
return Json(new { ret = false });
}
}
public JsonResult BanTarget(int id)
{
var db = new ChatRoomDb();
var item = db.AbuseReports.FirstOrDefault(s => s.Id == id);
if (item == null)
return Json(new { ret = false });
var user = item.Alleged_WrongDoer_Account;
if (BanUser(user, item.Alleged_WrongDoer_Name, item.RoomKey))
{
db.MarkAllCheckedByTarget(user);
return Json(new { ret = true, user });
}
else
{
return Json(new { ret = false });
}
}
bool BanUser(string user, string realname, string roomid)
{
var db = new ChatRoomDb();
if (db.ForbiddenUsers.Any(s => s.Name == user))
{
return true;
}
db.ForbiddenUsers.Add(new ForbiddenUser()
{
Name = user,
CreateTime = DateTime.Now.ToJsTicks() / 1000,
Creator = "admin"
});
db.SaveChanges();
var targetServer = new[] { "10.10.17.49", "10.10.17.51" };
var host = "12306.liebao.cn";
var url = "http://{0}/index.php?r=KeyWord/CreateUserKeyWord";
var client = new HttpClient();
foreach (var server in targetServer)
{
var ctx = client.Create(HttpMethod.Post, string.Format(url, server), result: new { resCode = 0 });
ctx.Request.Host = host;
ctx.Send();
if (!ctx.IsValid() || ctx.Result.resCode == 1)
return false;
}
//自动发消息
var data = "{\"action\":\"chatRoomSendMsg\",\"detail\":{\"items\":[{\"text\":\"用户【" + realname + "(" + user + ")】已被封禁。\",\"target\":[]}],\"media\":[],\"from\":{\"realname\":\"系统管理员\",\"username\":\"*\"},\"target\":[],\"time\":" + DateTime.Now.ToJsTicks() + ",\"roomid\":\"" + roomid + "\"}}";
client.Create<string>(HttpMethod.Post, "http://12306.liebao.cn/index.php?r=Api/SentMessage", null, new {data}).Send();
return true;
}
}
}