using CommonUtil; using Microsoft.AspNetCore.Mvc; using Operater.DAL; using Operater.DbModel; using Operater.Service; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using static Operater.DTO.Sms.SmsBusinessModel; namespace Api.Operater.Controllers.sms { [Route(TopConstants.SMSAPI_ROUTE)] [Route(TopConstants.API_ROUTE, Order = 2)] public class SmsBusinessController : BaseController { public SmsBusinessController() { } #region MemberInfo业务 /// /// 获取用户信息 /// /// /// [HttpPost] public IActionResult GetMemberInfo([FromBody] GetMemberInfoRequest request) { var member_where_expression = Expressionable.Create().And(m => m.Openid == request.OpenId).And(m => m.Isblack == 0).ToExpression(); var memberinfo = new SmsMemberDAL().GetSingle(member_where_expression); return Success(memberinfo); } /// /// 用户注册 /// /// /// [HttpPost] public IActionResult AddMemberInfo([FromBody] AddMemberInfoRequest request) { SmsMember smsMember = new SmsMember { Id=Guid.NewGuid().ToString(), Registertime=DateTime.Now, Openid=request.OpenId, Smscount=0, Longintime=DateTime.Now }; bool issuccess = new SmsMemberDAL().Insert(smsMember); return Success(issuccess); } /// /// 修改用户短信条数 /// /// /// [HttpPost] public IActionResult UpdateMemberInfo([FromBody] UpdateMemberInfoRequest request) { SmsMember smsMember = new SmsMember { Smscount=request.SmsCount }; int successcount = new SmsMemberDAL().Update(smsMember,m=>new { m.Smscount},s=>s.Id==request.Memberid); return Success(successcount==0?false:true); } #endregion #region 短信发送业务 /// /// 短信发送 /// /// /// [HttpPost] public IActionResult AddSmsSend([FromBody] AddSmssendRequest request) { SmsSend smsSend = new SmsSend { Id=Guid.NewGuid().ToString(), Createtime=DateTime.Now, Mobile=request.Mobile, Sendcount=1, Smscontent=request.Smscontent, Memberid=request.MemberId, Wantsendtype=request.Wantsendtype, Wantsendtime=request.Wantsendtime, }; bool issuccess = new SmsSendDAL().Insert(smsSend); return Success(issuccess); } /// /// 任务列表 /// /// /// [HttpPost] public IActionResult GetSmsSend([FromBody] GetSmsSendRequest request) { var send_where_expression = Expressionable.Create().And(m => m.Memberid == request.Memberid).And(m => m.Isshowsend == 0).ToExpression(); var smssendlist = new SmsSendDAL().ListGet(send_where_expression, t => t.Createtime, DbEnum.OrderType.Desc); return Success(smssendlist); } /// /// 对话列表 /// /// /// [HttpPost] public IActionResult GetSmsHistory([FromBody] GetSmsSendRequest request) { var send_where_expression = Expressionable.Create().And(m => m.Memberid == request.Memberid).And(m => m.Isshowsend == 0).ToExpression(); var smssendlist = new SmsSendDAL().ListGet(send_where_expression,t=>t.Createtime, DbEnum.OrderType.Desc); var list = smssendlist.GroupBy(t => new { t.Mobile }).Select(t => t.FirstOrDefault()).ToList(); List getSmsSendResponseList = new List(); foreach (var item in list) { GetSmsSendResponse getSmsSendResponse = new GetSmsSendResponse(); getSmsSendResponse.Mobile = item.Mobile; getSmsSendResponse.SmsContent = item.Smscontent; var send_where_expression2 = Expressionable.Create().And(m=>m.Memberid==request.Memberid).And(m => m.Mobile == item.Mobile).ToExpression(); int smscount = new SmsSendhistoryDAL().Count(send_where_expression2); getSmsSendResponse.SmsCount = smscount; var send_where_expression3 = Expressionable.Create().And(m => m.Memberid == request.Memberid).And(m => m.Mobile == item.Mobile).And(m => m.Memo =="2").And(m => m.IsRead == 0).ToExpression(); int unreadcount = new SmsSendhistoryDAL().Count(send_where_expression3); getSmsSendResponse.UnReadCount = unreadcount; getSmsSendResponseList.Add(getSmsSendResponse); } return Success(getSmsSendResponseList); } /// /// 修改回复短信读取状态 /// /// /// [HttpPost] public IActionResult UpdateUnreadSmsHistory([FromBody] UpdateUnreadSmsHistoryRequest request) { SmsSendhistory smsHistory = new SmsSendhistory { IsRead= 1 }; int successcount = new SmsSendhistoryDAL().Update(smsHistory, m => new { m.IsRead }, s => s.Memberid == request.Memberid&&s.Mobile==request.mobile); return Success(successcount == 0 ? false : true); } /// /// 获取对话内容 /// /// /// [HttpPost] public IActionResult GetSingleMobile([FromBody] GetSingleMobileRequest request) { var history_where_expression = Expressionable.Create().And(m => m.Memberid == request.Memberid).And(m => m.Mobile == request.Mobile).ToExpression(); var historylist = new SmsSendhistoryDAL().ListGet(history_where_expression, t => t.Sendtime, DbEnum.OrderType.Asc); return Success(historylist); } /// /// 获取短信设置 /// /// /// [HttpPost] public IActionResult GetSmsSet() { var smsset = new SmsSetDAL().GetFirst(""); if (smsset.Issuffix == 0) { smsset.Suffix = ""; } SmsSet sms = new SmsSet { Smsname=smsset.Smsname, Suffix=smsset.Issuffix==1?"":smsset.Suffix, }; return Success(smsset); } /// /// 获取短信模板类型 /// /// [HttpPost] public IActionResult GetTempleteType() { var where_expression = Expressionable.Create().And(t => t.Isshow == 1).ToExpression(); var templetetypelist = new SmsTempleteTypeDAL().ListGet(where_expression, t => t.Createtime, DbEnum.OrderType.Desc); return Success(templetetypelist); } /// /// 获取短信模板列表 /// /// /// [HttpPost] public IActionResult GetTempleteForTempleteId([FromBody] GetTempleteForTempleteIdRequest request) { var where_expression = Expressionable.Create().AndIF(!string.IsNullOrEmpty(request.TempleteId), t => t.Templeteid == request.TempleteId.ToInt()).AndIF(!string.IsNullOrEmpty(request.Keyword),t=>t.Templetecontent.Contains(request.Keyword)).And(t=>t.Isshow==1).ToExpression(); int totalcount = 0; var templetelist = new SmsTempleteListDAL().ListPageGet(where_expression,t=>t.Createtime , DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalcount); return Success(templetelist, request.PageNo, request.PageSize, totalcount); } #endregion #region 短信充值业务 /// /// 新增充值记录 /// /// /// [HttpPost] public IActionResult AddSmsRecord([FromBody] AddSmsRecordRequest request) { var member_where_expression = Expressionable.Create().And(m => m.Openid == request.OpenId).And(m => m.Isblack == 0).ToExpression(); var memberinfo = new SmsMemberDAL().GetSingle(member_where_expression); string id = string.Empty; if (memberinfo == null || string.IsNullOrEmpty(memberinfo.Id)) { SmsMember smsMember = new SmsMember { Id = Guid.NewGuid().ToString(), Registertime = DateTime.Now, Openid = request.OpenId, Smscount = request.RechargeCount, Longintime = DateTime.Now }; bool issuccess_member = new SmsMemberDAL().Insert(smsMember); if (!issuccess_member) { return Error("注册失败"); } id = smsMember.Id; } else { id = memberinfo.Id; SmsMember smsMember = new SmsMember { Smscount = request.RechargeCount+ memberinfo.Smscount }; int successcount = new SmsMemberDAL().Update(smsMember, m => new { m.Smscount }, s => s.Id == memberinfo.Id); if (successcount == 0) { return Error("充值失败"); } } SmsRecord smsRecord = new SmsRecord { Id = Guid.NewGuid().ToString(), Createtime = DateTime.Now, Rechargecount = request.RechargeCount, Tid = request.Tid, Rechargeamount = request.RechargeAmount, Stype = request.Stype, Memberid=id }; bool issuccess = new SmsRecordDAL().Insert(smsRecord); return Success(issuccess); } /// /// 获取短信充值包 /// /// /// [HttpPost] public IActionResult GetSmsPackage() { var smspackage = new SmsPackageDAL().ListGet(t=>t.Rechargeamount, DbEnum.OrderType.Asc); return Success(smspackage); } #endregion #region 后台管理 /// /// 用户列表 /// /// /// public IActionResult GetSmsMember([FromBody] GetSmsMemberRequest request) { var where_expression = Expressionable.Create().AndIF(!string.IsNullOrEmpty(request.MemberId), m => m.Id == request.MemberId).AndIF(!string.IsNullOrEmpty(request.OpenId), m => m.Openid == request.OpenId).ToExpression(); int totalcount = 0; var memberlist = new SmsMemberDAL().ListPageGet(where_expression, t => t.Registertime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalcount); return Success(memberlist, request.PageNo, request.PageSize, totalcount); } /// /// 设置黑名单 /// /// /// [HttpPost] public IActionResult SetBlackMember([FromBody] HandleSmsSendByIdRequest request) { SmsMember smsMember = new SmsMember { Isblack=1 }; int successcount = new SmsMemberDAL().Update(smsMember, m => new { m.Isblack }, s => s.Id == request.id); return Success(successcount == 0 ? false : true); } /// /// 手工补短信条数 /// /// /// [HttpPost] public IActionResult ChargeMemberSms([FromBody] ChargeMemberSmsRequest request) { var member_where_expression = Expressionable.Create().And(m => m.Id == request.Id).And(m => m.Isblack == 0).ToExpression(); var memberinfo = new SmsMemberDAL().GetSingle(member_where_expression); int successcount = new SmsMemberDAL().ExecuteCommand($"update sms_member set smscount=smscount+{request.RechargeCount} where id='{request.Id}'"); if (successcount == 0) { return Error("充值失败"); } SmsRecord smsRecord = new SmsRecord { Id = Guid.NewGuid().ToString(), Createtime = DateTime.Now, Rechargecount = request.RechargeCount, Tid ="", Rechargeamount = 0, Stype = 1, Memberid = request.Id }; bool issuccess = new SmsRecordDAL().Insert(smsRecord); return Success(issuccess); } /// /// 获取短信任务 /// /// /// [HttpPost] public IActionResult GetAllSmsSend([FromBody] GetAllSmsSendRequest request) { var send_where_expression = Expressionable.Create().And(m => m.Sendstatus >= 0).AndIF(!string.IsNullOrEmpty(request.MemberId),m => m.Memberid == request.MemberId).ToExpression(); int totalcount = 0; var smssendlist = new SmsSendDAL().ListPageGet(send_where_expression, t => t.Createtime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalcount); return Success(smssendlist, request.PageNo, request.PageSize, totalcount); } /// /// 删除任务 /// /// /// [HttpPost] public IActionResult DeleteSmsSend([FromBody] HandleSmsSendByIdRequest request) { SmsSend smssend = new SmsSend { Isshowsend = 1 }; int successcount = new SmsSendDAL().Update(smssend, m => new { m.Isshowsend }, s => s.Id == request.id); return Success(successcount == 0 ? false : true); } /// /// 重新激活短信任务 /// /// /// [HttpPost] public IActionResult ActivateSmsSend([FromBody] HandleSmsSendByIdRequest request) { SmsSend smssend = new SmsSend { Sendstatus = 3 }; int successcount = new SmsSendDAL().Update(smssend, m => new { m.Sendstatus }, s => s.Id == request.id); return Success(successcount == 0 ? false : true); } /// /// 获取审核中的任务 /// /// /// [HttpPost] public IActionResult GetShSmsSend([FromBody] GetSHSmsSendRequest request) { var send_where_expression = Expressionable.Create().AndIF(!string.IsNullOrEmpty(request.SmsStatus),m => m.Sendstatus == request.SmsStatus.ToInt()).AndIF(string.IsNullOrEmpty(request.SmsStatus),m=> new int?[] { 0,2}.Contains(m.Sendstatus)).And(m => m.Isshowsend == 0).AndIF(!string.IsNullOrEmpty(request.MemberId), m => m.Memberid == request.MemberId).ToExpression(); int totalcount = 0; var smssendlist = new SmsSendDAL().ListPageGet(send_where_expression,t=>t.Createtime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalcount); return Success(smssendlist, request.PageNo, request.PageSize, totalcount); } /// /// 修改短信审核状态 /// /// /// [HttpPost] public IActionResult UpdateSmsSendShStatus([FromBody] UpdateSmsSendShStatusRequest request) { SmsSend smssend = new SmsSend { Sendstatus = request.shstatus }; int successcount = new SmsSendDAL().Update(smssend, m => new { m.Sendstatus }, s => s.Id == request.id); return Success(successcount == 0 ? false : true); } /// /// 获取短信设置 /// /// /// [HttpPost] public IActionResult GetSmsSetManage() { var smsset = new SmsSetDAL().GetFirst(""); return Success(smsset); } /// /// 修改短信设置 /// /// /// [HttpPost] public IActionResult UpdateSmsSetManage([FromBody] UpdateSmsSetManageRequest request) { SmsSet smssend = new SmsSet { Smsname=request.smsname, Suffix=request.suffix, Issuffix=request.issuffix, Username=request.username, Pwd=request.pwd, Isautosh=request.isautosh, }; int successcount = new SmsSetDAL().Update(smssend, m => new { m.Smsname,m.Suffix,m.Issuffix,m.Username,m.Pwd,m.Isautosh }, s => s.Id == request.id.ToInt()); return Success(successcount == 0 ? false : true); } /// /// 新增短信充值包 /// /// /// public IActionResult AddSmsPackage([FromBody] AddSmsPackageRequest request) { SmsPackage smsPackage = new SmsPackage { Id = Guid.NewGuid().ToString(), Createtime = DateTime.Now, Rechargecount = request.rechargecount, Rechargeamount = request.rechargeamount, Title = request.title }; bool issuccess = new SmsPackageDAL().Insert(smsPackage); return Success(issuccess); } /// /// 删除短信充值包 /// /// /// public IActionResult DelSmsPackage([FromBody] HandleSmsSendByIdRequest request) { bool issuccess = new SmsPackageDAL().Delete("",request.id); return Success(issuccess); } /// /// 修改短信充值包 /// /// /// public IActionResult UpdateSmsPackage([FromBody] UpdateSmsPackageRequest request) { SmsPackage smsPackage = new SmsPackage { Createtime = DateTime.Now, Rechargecount = request.rechargecount, Rechargeamount = request.rechargeamount, Title = request.title }; int successcount = new SmsPackageDAL().Update(smsPackage, m => new { m.Createtime, m.Rechargecount, m.Rechargeamount, m.Title }, s => s.Id == request.Id); return Success(successcount == 0 ? false : true); } /// /// 新增短信模板类型 /// /// /// [HttpPost] public IActionResult AddTempleteType([FromBody] AddTempleteTypeRequest request) { SmsTempleteType templeteType = new SmsTempleteType { Createtime=DateTime.Now, Typename=request.typename }; bool issuccess = new SmsTempleteTypeDAL().Insert(templeteType); return Success(issuccess); } /// /// 修改短信模板类型 /// /// /// public IActionResult UpdateTempleteType([FromBody] UpdateTempleteTypeRequest request) { SmsTempleteType templeteType = new SmsTempleteType { Typename = request.typename }; int successcount = new SmsTempleteTypeDAL().Update(templeteType, m => new {m.Typename }, s => s.Id == request.id); return Success(successcount == 0 ? false : true); } /// /// 单个删除短信模板类型 /// /// /// [HttpPost] public IActionResult DeleteTempleteType([FromBody] HandleSmsSendByIdRequest request) { SmsTempleteType templeteType = new SmsTempleteType { Isshow = 0 }; int successcount = new SmsTempleteTypeDAL().Update(templeteType, m => new { m.Isshow }, s => s.Id == request.id.ToInt()); return Success(successcount == 0 ? false : true); } /// /// 新增短信模板 /// /// /// [HttpPost] public IActionResult AddTemplete([FromBody] AddTempleteRequest request) { SmsTempleteList templete = new SmsTempleteList { Createtime = DateTime.Now, Templetecontent=request.templetecontent, Templeteid=request.templeteid }; bool issuccess = new SmsTempleteListDAL().Insert(templete); return Success(issuccess); } /// /// 修改短信模板 /// /// /// public IActionResult UpdateTemplete([FromBody] UpdateTempleteRequest request) { SmsTempleteList templete = new SmsTempleteList { Templeteid = request.templeteid, Templetecontent=request.templetecontent }; int successcount = new SmsTempleteListDAL().Update(templete, m => new { m.Templeteid,m.Templetecontent }, s => s.Id == request.id); return Success(successcount == 0 ? false : true); } /// /// 单个删除短信模板 /// /// /// [HttpPost] public IActionResult DeleteTempleteContent([FromBody] HandleSmsSendByIdRequest request) { SmsTempleteList templete = new SmsTempleteList { Isshow = 0 }; int successcount = new SmsTempleteListDAL().Update(templete, m => new { m.Isshow }, s => s.Id == request.id.ToInt()); return Success(successcount == 0 ? false : true); } #endregion } }