213
This commit is contained in:
parent
5bd8167c2e
commit
863d897e02
|
|
@ -3,10 +3,13 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.RedisMQ.Subscribe;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
|
||||
using InitQ;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace CoreCms.Net.Core.Config
|
||||
|
|
@ -36,7 +39,9 @@ namespace CoreCms.Net.Core.Config
|
|||
typeof(LogingSubscribe),
|
||||
|
||||
typeof(UserSubscribe),
|
||||
# if DEBUG
|
||||
typeof(WeChatPayNoticeSubscribe),
|
||||
# endif
|
||||
typeof(SendWxTemplateMessageSubscribe),
|
||||
typeof(AfterSalesReviewSubscribe),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ public class SQController : ControllerBase
|
|||
{
|
||||
var userId = _user.ID;
|
||||
|
||||
var list = await _dbBase.Ado.SqlQueryAsync<SQReservationsApiDto>($"SELECT r.*, p.role AS Role, p.is_arrive, CASE WHEN r.status = 1 THEN 0 WHEN r.status = 2 THEN 1 WHEN r.status = 0 THEN 2 WHEN r.status = 3 THEN 3 END AS orderid FROM SQReservations r LEFT JOIN SQReservationParticipants p ON r.id = p.reservation_id WHERE r.status < 4 AND p.user_id = {userId} AND p.status = 0 AND DATEADD(day,2, end_time) > GETDATE() ORDER BY orderid asc, r.start_time ASC ");
|
||||
var list = await _dbBase.Ado.SqlQueryAsync<SQReservationsApiDto>($"SELECT r.*, p.role AS Role, p.is_arrive, CASE WHEN r.status = 1 THEN 0 WHEN r.status = 2 THEN 1 WHEN r.status = 0 THEN 2 WHEN r.status = 3 THEN 3 END AS orderid FROM SQReservations r LEFT JOIN SQReservationParticipants p ON r.id = p.reservation_id WHERE r.status < 4 AND p.user_id = {userId} AND p.status = 0 AND DATEADD(day,2, end_time) > GETDATE() ORDER BY orderid asc, r.start_time Desc ");
|
||||
if (list != null && list.Count > 0)
|
||||
{
|
||||
var roomList = await _SQRoomsServices.GetRoomList();
|
||||
|
|
@ -635,6 +635,82 @@ public class SQController : ControllerBase
|
|||
Msg = "您已加入该预约"
|
||||
};
|
||||
}
|
||||
var user = _userServices.QueryById(userId);
|
||||
// 2.0.1 校验用户条件 是否符合要求 如 性别(user.sex 1男2女) 年龄(user.birthday这个是生日 用生日去动态计算年龄) 信用分(credit_score)
|
||||
//reservation.credit_limit 最低信誉分 同 用户表的的 信用分
|
||||
// reservation.gender_limit 0 不限 1男 2 女
|
||||
// 最大 和最小 年龄 0 不限制 reservation.max_age reservation.min_age
|
||||
if (user == null)
|
||||
{
|
||||
return new WebApiDto
|
||||
{
|
||||
Code = 404,
|
||||
Data = null,
|
||||
Msg = "用户不存在"
|
||||
};
|
||||
}
|
||||
|
||||
// 信誉分校验
|
||||
if (reservation.credit_limit > 0 && user.credit_score < reservation.credit_limit)
|
||||
{
|
||||
return new WebApiDto
|
||||
{
|
||||
Code = 400,
|
||||
Data = null,
|
||||
Msg = $"您的信誉分不足,最低要求为{reservation.credit_limit}"
|
||||
};
|
||||
}
|
||||
|
||||
// 性别限制:0 不限,1 男,2 女
|
||||
if (reservation.gender_limit == 1 || reservation.gender_limit == 2)
|
||||
{
|
||||
if (user.sex != reservation.gender_limit)
|
||||
{
|
||||
return new WebApiDto
|
||||
{
|
||||
Code = 400,
|
||||
Data = null,
|
||||
Msg = "您的性别不符合该预约要求"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// 年龄限制(按生日计算实际年龄)
|
||||
if (reservation.min_age > 0 || reservation.max_age > 0)
|
||||
{
|
||||
if (!user.birthday.HasValue)
|
||||
{
|
||||
return new WebApiDto
|
||||
{
|
||||
Code = 400,
|
||||
Data = null,
|
||||
Msg = "请先完善生日信息以校验年龄"
|
||||
};
|
||||
}
|
||||
var today = DateTime.Today;
|
||||
var birth = user.birthday.Value.Date;
|
||||
var age = today.Year - birth.Year;
|
||||
if (birth > today.AddYears(-age)) age--;
|
||||
|
||||
if (reservation.min_age > 0 && age < reservation.min_age)
|
||||
{
|
||||
return new WebApiDto
|
||||
{
|
||||
Code = 400,
|
||||
Data = null,
|
||||
Msg = $"年龄小于最小限制:{reservation.min_age}岁"
|
||||
};
|
||||
}
|
||||
if (reservation.max_age > 0 && age > reservation.max_age)
|
||||
{
|
||||
return new WebApiDto
|
||||
{
|
||||
Code = 400,
|
||||
Data = null,
|
||||
Msg = $"年龄超过最大限制:{reservation.max_age}岁"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// 2.1 校验用户是否有其它预约时间冲突
|
||||
// 2.1 校验用户是否有其它预约时间冲突(只查未开始或正在进行中的预约)
|
||||
|
|
@ -989,6 +1065,16 @@ public class SQController : ControllerBase
|
|||
is_arrive = 2
|
||||
},
|
||||
it => it.reservation_id == dto.reservation_id && it.status == 0 && falseUserIds.Contains(it.user_id));
|
||||
//添加鸽子次数
|
||||
foreach (var user_id in falseUserIds)
|
||||
{
|
||||
var user = await _userServices.QueryByIdAsync(user_id);
|
||||
if (user != null)
|
||||
{
|
||||
user.dove_count++;
|
||||
}
|
||||
await _userServices.UpdateAsync(user);
|
||||
}
|
||||
}
|
||||
|
||||
// 4) 确保发起者始终为已赴约(1)
|
||||
|
|
|
|||
|
|
@ -1297,7 +1297,13 @@ namespace CoreCms.Net.Web.WebApi.Controllers
|
|||
{
|
||||
@params.Add("trade_type", "JSAPI_OFFICIAL");
|
||||
}
|
||||
|
||||
if (@params["money"].ToString() != "5" && @params["money"].ToString() != "10")
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "参数不正确";
|
||||
return jm;
|
||||
}
|
||||
@params["money"] = "0.01";
|
||||
//生成支付单,并发起支付
|
||||
jm = await _billPaymentsServices.Pay("", "wechatpay", _user.ID, 6, @params);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user