121 lines
4.1 KiB
C#
121 lines
4.1 KiB
C#
using Microsoft.Extensions.Caching.Distributed;
|
|
using Newtonsoft.Json.Serialization;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Admin.NET.Core.Service;
|
|
using Flurl.Http;
|
|
|
|
namespace Admin.NET.Application.Service;
|
|
|
|
|
|
/// <summary>
|
|
/// vip卡服务
|
|
/// </summary>
|
|
[ApiDescriptionSettings(ApplicationConst.ZYGroupName, Order = 900)]
|
|
[Route("api/Zyvip")]
|
|
public class ZYVipService : IDynamicApiController, ITransient
|
|
{
|
|
private readonly UserManager _userManager;
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
private readonly SqlSugarRepository<BusVipCardInfo> _vipCardInfo;
|
|
private readonly SqlSugarRepository<SysDictData> _dictdata;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
private readonly SqlSugarRepository<SysWeChatUserExtend> _wechatUserExtend;
|
|
public ZYVipService(UserManager userManager, IHttpContextAccessor httpContextAccessor, SqlSugarRepository<SysWeChatUserExtend> wechatUserExtend, SqlSugarRepository<BusVipCardInfo> vipCardInfo, SqlSugarRepository<SysDictData> dictdata)
|
|
{
|
|
_userManager = userManager;
|
|
_httpContextAccessor = httpContextAccessor;
|
|
_wechatUserExtend = wechatUserExtend;
|
|
_vipCardInfo = vipCardInfo;
|
|
_dictdata = dictdata;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 绑定vip
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<bool> Bind([FromBody] VipBindInput dto)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(dto.CardPwd) || string.IsNullOrWhiteSpace(dto.CardCode))
|
|
{
|
|
throw Oops.Oh("必填信息为空");
|
|
}
|
|
|
|
var cardinfo = await _vipCardInfo.AsQueryable().FirstAsync(e => e.Code == dto.CardCode && e.Pwd == dto.CardPwd);
|
|
if (cardinfo == null)
|
|
throw Oops.Oh("卡号或密码错误");
|
|
if (cardinfo.IsBind == 1)
|
|
throw Oops.Oh("卡号已被绑定");
|
|
//更新用户拓展信息表状态
|
|
if (cardinfo != null)
|
|
{
|
|
var single = await _wechatUserExtend.GetSingleAsync(e => e.WxId == _userManager.UserId);
|
|
single.VipCode = dto.CardCode;
|
|
single.IsVIP = true;
|
|
single.UpdateTime = DateTime.Now;
|
|
single.UpdateUserId = _userManager.UserId;
|
|
cardinfo.IsBind = 1;
|
|
cardinfo.UpdateTime = DateTime.Now;
|
|
cardinfo.UpdateUserId = _userManager.UserId;
|
|
cardinfo.UpdateUserName = _userManager.RealName;
|
|
await _vipCardInfo.UpdateAsync(cardinfo);
|
|
return await _wechatUserExtend.UpdateAsync(single);
|
|
}
|
|
else
|
|
{
|
|
throw Oops.Oh("卡号或密码错误");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw Oops.Oh("卡号或密码错误");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取用户VIP绑定信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<UserVipBindDto> GetBingInfo()
|
|
{
|
|
var userbindinfo = new UserVipBindDto();
|
|
//var single = await _wechatUserExtend.GetFirstAsync(e => e.WxId == _userManager.UserId && e.IsVIP == false);
|
|
//if (single == null)
|
|
//{
|
|
// throw Oops.Oh("用户未绑定");
|
|
//}
|
|
var cardinfo = await _vipCardInfo.GetFirstAsync(e => e.IsBind == 1 && e.UpdateUserId == _userManager.UserId);
|
|
if (cardinfo == null)
|
|
{
|
|
throw Oops.Oh("用户未绑定");
|
|
}
|
|
var cardtypeinfo = await _dictdata.GetFirstAsync(e => e.Id == cardinfo.CardTypeId);
|
|
userbindinfo.CarTypeName = cardtypeinfo.Name;
|
|
userbindinfo.CardCode = cardinfo.Code;
|
|
userbindinfo.EndTime = cardinfo.EndTime;
|
|
userbindinfo.CreateTime = cardinfo.UpdateTime.Value;
|
|
userbindinfo.Money = cardinfo.Money;
|
|
userbindinfo.Day = (cardinfo.EndTime - cardinfo.CreateTime.Value).Days;
|
|
return userbindinfo;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|