123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using Central.Control.Domain;
- using Ant.Service.Common;
- using MES.Production.Service.IService;
- using Ant.Service.Common.Enums;
- using ChangFa.Machinery.WebPage.Controllers;
- namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers
- {
- /// <summary>
- /// 消息控制器
- /// edit huafg by 2015-11-22
- /// </summary>
- public class MsgController : BaseController
- {
- #region 声明容器
- /// <summary>
- /// 消息管理
- /// </summary>
- IMsgManage MsgManage { get; set; }
- /// <summary>
- ///消息章附件管理
- /// </summary>
- IMsgAttachManage MsgAttachManage { get; set; }
- /// <summary>
- /// 接收人管理
- /// </summary>
- IMsgRevManage MsgRevManage { get; set; }
- /// <summary>
- /// 编码
- /// </summary>
- ICodeManage CodeManage { get; set; }
- #endregion
- #region 公共变量
- private string msgtype = string.Empty;
- #endregion
- #region 基本视图
- /// <summary>
- /// 首页加载
- /// </summary>
- [UserAuthorizeAttribute(ModuleAlias = "JSXX", OperaAction = "View")]
- public ActionResult Index()
- {
- try
- {
- ViewBag.Search = base.keywords;
- msgtype = Request["msgtype"] ?? "";
- ViewData["msgtype"] = msgtype;
- ViewData["msgtypelist"] = this.CodeManage.GetCode("XXLX");
- return View(BindList());
- }
- catch(Exception e)
- {
- WriteLog(enumOperator.Select, "消息管理加载首页:", e);
- throw e.InnerException;
- }
- }
- /// <summary>
- /// 详情加载
- /// </summary>
- [UserAuthorizeAttribute(ModuleAlias = "JSXX", OperaAction = "Detail")]
- public ActionResult Detail()
- {
- ViewData["userid"] = Request.QueryString["userid"] ?? "";
- return View(new SYS_MSG());
- }
- /// <summary>
- /// 详情展示页
- /// </summary>
- public ActionResult Show(int? id)
- {
- var entity = this.MsgManage.Get(p => p.ID == id) ?? new SYS_MSG();
- //附件信息
- ViewData["Attach"] = GetAttach(entity.ID, false);
- //接收人
- ViewData["ReadUser"] = GetUser(id);
- return View(entity);
- }
- /// <summary>
- /// 提交保存
- /// </summary>
- [ValidateInput(false)]
- public ActionResult Save(SYS_MSG entity)
- {
- JsonHelper json = new JsonHelper() { Status = "n", Msg = "操作成功" };
- try
- {
- if (entity != null)
- {
- #region 处理Request参数
- //接收人
- string userid = Request["hidsendUserid"] ?? "";
- if (string.IsNullOrEmpty(userid))
- {
- json.Msg = "请选择接收人";
- return Json(json);
- }
- //附件集合
- var attachlist = Request["attchs"] ?? "";
- #endregion
- #region 处理消息
- entity.CREATEPER = this.CurrentUser.Id;
- entity.CREATEDATE = DateTime.Now;
- entity.MSGTYPE = "0";
- if (this.MsgManage.Save(entity))
- {
- #region 处理接收人
- if (this.MsgRevManage.SaveOrgPerson(entity.ID.ToString(), userid.Trim(',')))
- {
- #region 处理消息附件
- if (!string.IsNullOrEmpty(attachlist.Trim(',')))
- {
- this.MsgAttachManage.SaveAttachs(entity.ID.ToString(), attachlist.Trim(','));
- }
- #endregion
- }
- #endregion
- }
- #endregion
- json.Status = "y";
- }
- else
- {
- json.Msg = "未收到要提交的数据";
- }
- WriteLog(enumOperator.Add, "发送消息,结果:" + json.Msg, enumLog4net.INFO);
- return Json(json);
- }
- catch (Exception e)
- {
- json.Msg = e.InnerException.Message;
- WriteLog(enumOperator.Add, "发送消息:", e);
- return Json(json);
- }
- }
- #endregion
- #region 接收人视图
- /// <summary>
- /// 接收人显示页面
- /// </summary>
- /// <returns></returns>
- public ActionResult RevIndex()
- {
- string msg_status = Request["msg_status"] ?? "";
- return View(BindRevList(msg_status));
- }
- /// <summary>
- /// 接收人弹出页
- /// </summary>
- public ActionResult RevShow(int? id)
- {
- var entity = this.MsgManage.Get(p => p.ID == id) ?? new SYS_MSG();
- if (entity.ID>0)
- {
- //已阅读
- var entityRev = this.MsgRevManage.Get(p => p.USERID == CurrentUser.Id && p.MSGID == id);
- if (entityRev != null)
- {
- entityRev.READSTATUS = 1;
- this.MsgRevManage.Update(entityRev);
- }
- }
- //附件信息
- ViewData["Attach"] = GetAttach(entity.ID, false);
- //回复人
- ViewData["RevUser"] = this.UserManage.GetUserName(entity.CREATEPER);
- return View(entity);
- }
- /// <summary>
- /// 转发
- /// </summary>
- /// <returns></returns>
- public ActionResult Transpond(int? id)
- {
- var entity = this.MsgManage.Get(p => p.ID == id) ?? new SYS_MSG();
- //附件信息
- ViewData["Attach"] = GetAttach(entity.ID, false);
- return View(entity);
- }
- /// <summary>
- /// 回复详情加载
- /// </summary>
- /// <returns></returns>
- public ActionResult RevDetail(int? id)
- {
- var entity = this.MsgManage.Get(p => p.ID == id) ?? new SYS_MSG();
- //回复人
- ViewData["RevUser"] = this.UserManage.Get(p => p.ID == entity.CREATEPER) ?? new SYS_USER();
- //附件信息
- ViewData["Attach"] = GetAttach(entity.ID, false);
- return View(entity);
- }
- #endregion
- #region 帮助方法
- /// <summary>
- /// 绑定列表
- /// </summary>
- private PageInfo BindList()
- {
- //where
- var predicate = PredicateBuilder.True<SYS_MSG>().And(p => p.DELETESTATUS == 0 && p.CREATEPER == CurrentUser.Id);
- if (!string.IsNullOrEmpty(base.keywords))
- {
- predicate = predicate.And(p => p.MSGNAME.Contains(keywords));
- }
- if (!string.IsNullOrEmpty(msgtype))
- {
- predicate = predicate.And(p => p.MSGTYPE == msgtype);
- }
- var query = this.MsgManage.LoadAll(predicate).OrderByDescending(p => p.CREATEDATE);
- var codetype=this.CodeManage.GetCode("XXLX");
- //Executed
- var pageInfo = this.MsgManage.Query(query, base.page, base.pagesize);
- var result = pageInfo.List.Select(p => new
- {
- p.ID,
- p.MSGNAME,
- CREATEPER = this.UserManage.GetUserName(p.CREATEPER),
- READUSER = GetUser(p.ID),
- p.CREATEDATE,
- MSGTYPE = (codetype.Find(c => c.CODEVALUE == p.MSGTYPE) != null ? codetype.Find(c => c.CODEVALUE == p.MSGTYPE).NAMETEXT : "")
- }).ToList();
- return new PageInfo(pageInfo.Index, pageInfo.PageSize, pageInfo.Count, JsonConverter.JsonClass(result));
- }
- /// <summary>
- /// 接收人绑定列表
- /// </summary>
- /// <returns></returns>
- private PageInfo BindRevList(string status)
- {
- decimal state = 0m;
- if (!string.IsNullOrEmpty(status))
- {
- state = decimal.Parse(status);
- }
- var config = this.MsgManage.Config;
- var result = (from r in config.SYS_MSG
- join u in config.SYS_MSGREV on r.ID equals u.MSGID into u_join
- from x in u_join.DefaultIfEmpty()
- join s in config.SYS_USER on r.CREATEPER equals s.ID into s_join
- from v in s_join.DefaultIfEmpty()
- where r.DELETESTATUS == 0 && x.USERID == CurrentUser.Id
- orderby x.READSTATUS, r.CREATEDATE
- select new
- {
- r.ID,
- userid = x.USERID,
- r.CREATEDATE,
- r.MSGNAME,
- r.MSGCONTENT,
- r.CREATEPER,
- READSTATUS = x.READSTATUS == 0 ? "未读" : "已读",
- state = x.READSTATUS,
- v.NAME
- });
- //where
- var predicate = PredicateBuilder.True<SYS_MSGREV>().And(p => p.DELETESTATUS == 0 && p.USERID == CurrentUser.Id);
- if (!string.IsNullOrEmpty(base.keywords))
- {
- result = result.Where(p => p.MSGNAME.Contains(keywords));
- }
- //状态
- if (state > 0)
- {
- result = result.Where(p => p.state == state);
- }
- result = result.OrderByDescending(p => p.CREATEDATE);
- //Executed
- var pageInfo = this.MsgManage.Query(result, base.page, base.pagesize);
- return new PageInfo(pageInfo.Index, pageInfo.PageSize, pageInfo.Count, JsonConverter.JsonClass(result));
- }
- /// <summary>
- /// 得到用户
- /// </summary>
- private string GetUser(int? id)
- {
- var config = this.MsgRevManage.Config;
- var result = (from r in config.SYS_MSGREV
- join u in config.SYS_USER on r.USERID equals u.ID
- where r.MSGID == id && r.DELETESTATUS == 0
- select new
- {
- r.ID,
- r.USERID,
- u.NAME,
- r.READSTATUS
- }).ToList();
- return result.Aggregate(string.Empty, (current, t) => current + t.READSTATUS + "|" + t.NAME + ",").Trim(',');
- }
- /// <summary>
- /// 详情页附件信息
- /// </summary>
- /// <param name="id">消息ID</param>
- private dynamic GetAttach(int id, bool isimg)
- {
- var config = this.MsgManage.Config;
- //var query = (from r in config.SYS_MSGATTACH
- // join u in config.COM_UPLOAD
- // on r.FK_UPLOADID equals u.ID
- // where r.MSGID == id
- // select new { r, u });
- //var result = query.Select(p => new
- //{
- // p.r.ID,
- // p.r.MSGID,
- // p.u.FK_USERID,
- // p.u.UPFILEPATH,
- // p.u.UPFILESIZE,
- // p.u.UPNEWNAME,
- // p.u.UPOLDNAME,
- // p.u.UPOPEATOR,
- // p.u.UPFILEUNIT,
- // p.u.UPTIME
- //});
- //return JsonConverter.JsonClass(result.ToList());
- return "";
- }
- #endregion
- #region 其他调用
- #endregion
- }
- }
|