using CommonUtil;
|
using CommonUtil.Web;
|
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业务
|
/// <summary>
|
/// 获取用户信息
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetMemberInfo([FromBody] GetMemberInfoRequest request)
|
{
|
|
var member_where_expression = Expressionable.Create<SmsMember>().And(m => m.Openid == request.OpenId).And(m => m.Isblack == 0).ToExpression();
|
var memberinfo = new SmsMemberDAL().GetSingle(member_where_expression);
|
return Success(memberinfo);
|
}
|
|
/// <summary>
|
/// 用户注册
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 修改用户短信条数
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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 短信发送业务
|
/// <summary>
|
/// 短信发送
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
//发送待审核消息
|
string shCount = "1";
|
string warStr = "您有待审核的任务\n>类型:待审核\n>数量:" + shCount + "\n>查看:[点击处理](https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7a9a40880081340d&redirect_uri=https%3A%2F%2Fsms.ushopvip.com%2Fpages%2Fad_page%2Ftrans&response_type=code&scope=snsapi_base&state=gzh#wechat_redirect)";
|
SendQwGroup.SendMessage(warStr);
|
return Success(issuccess);
|
}
|
|
/// <summary>
|
/// 任务列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetSmsSend([FromBody] GetSmsSendRequest request)
|
{
|
|
var send_where_expression = Expressionable.Create<SmsSend>().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);
|
}
|
|
/// <summary>
|
/// 对话列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetSmsHistory([FromBody] GetSmsSendRequest request)
|
{
|
|
var send_where_expression = Expressionable.Create<SmsSend>().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<GetSmsSendResponse> getSmsSendResponseList = new List<GetSmsSendResponse>();
|
foreach (var item in list)
|
{
|
GetSmsSendResponse getSmsSendResponse = new GetSmsSendResponse();
|
getSmsSendResponse.Mobile = item.Mobile;
|
getSmsSendResponse.SmsContent = item.Smscontent;
|
var send_where_expression2 = Expressionable.Create<SmsSendhistory>().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<SmsSendhistory>().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);
|
}
|
|
|
/// <summary>
|
/// 修改回复短信读取状态
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 获取对话内容
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetSingleMobile([FromBody] GetSingleMobileRequest request)
|
{
|
|
var history_where_expression = Expressionable.Create<SmsSendhistory>().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);
|
}
|
|
/// <summary>
|
/// 获取短信设置
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 获取短信模板类型
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetTempleteType()
|
{
|
var where_expression = Expressionable.Create<SmsTempleteType>().And(t => t.Isshow == 1).ToExpression();
|
var templetetypelist = new SmsTempleteTypeDAL().ListGet(where_expression, t => t.Createtime, DbEnum.OrderType.Desc);
|
return Success(templetetypelist);
|
}
|
|
/// <summary>
|
/// 获取短信模板列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetTempleteForTempleteId([FromBody] GetTempleteForTempleteIdRequest request)
|
{
|
var where_expression = Expressionable.Create<SmsTempleteList>().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 短信充值业务
|
|
/// <summary>
|
/// 新增充值记录
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult AddSmsRecord([FromBody] AddSmsRecordRequest request)
|
{
|
var member_where_expression = Expressionable.Create<SmsMember>().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);
|
}
|
|
|
/// <summary>
|
/// 获取短信充值包
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetSmsPackage()
|
{
|
var smspackage = new SmsPackageDAL().ListGet(t=>t.Rechargeamount, DbEnum.OrderType.Asc);
|
return Success(smspackage);
|
}
|
|
#endregion
|
|
|
#region 后台管理
|
|
/// <summary>
|
/// 用户列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
public IActionResult GetSmsMember([FromBody] GetSmsMemberRequest request)
|
{
|
var where_expression = Expressionable.Create<SmsMember>().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);
|
}
|
|
/// <summary>
|
/// 设置黑名单
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 手工补短信条数
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ChargeMemberSms([FromBody] ChargeMemberSmsRequest request)
|
{
|
var member_where_expression = Expressionable.Create<SmsMember>().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);
|
}
|
|
/// <summary>
|
/// 获取短信任务
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetAllSmsSend([FromBody] GetAllSmsSendRequest request)
|
{
|
|
var send_where_expression = Expressionable.Create<SmsSend>().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);
|
}
|
|
/// <summary>
|
/// 删除任务
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 重新激活短信任务
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 获取审核中的任务
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetShSmsSend([FromBody] GetSHSmsSendRequest request)
|
{
|
var send_where_expression = Expressionable.Create<SmsSend>().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);
|
}
|
|
/// <summary>
|
/// 修改短信审核状态
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
|
/// <summary>
|
/// 获取短信设置
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetSmsSetManage()
|
{
|
var smsset = new SmsSetDAL().GetFirst("");
|
return Success(smsset);
|
}
|
|
|
/// <summary>
|
/// 修改短信设置
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
/// <summary>
|
/// 新增短信充值包
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 删除短信充值包
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
public IActionResult DelSmsPackage([FromBody] HandleSmsSendByIdRequest request)
|
{
|
bool issuccess = new SmsPackageDAL().Delete("",request.id);
|
return Success(issuccess);
|
}
|
|
/// <summary>
|
/// 修改短信充值包
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 新增短信模板类型
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 修改短信模板类型
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 单个删除短信模板类型
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 新增短信模板
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 修改短信模板
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 单个删除短信模板
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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
|
|
|
|
}
|
}
|