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.Asc, 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
}
}