117 lines
4.4 KiB
C#
117 lines
4.4 KiB
C#
|
|
using New_College.IServices;
|
|
using New_College.Model.Models;
|
|
using New_College.Services.BASE;
|
|
using New_College.IRepository.Base;
|
|
using System.Threading.Tasks;
|
|
using New_College.Model.ViewModels;
|
|
using New_College.IRepository;
|
|
using New_College.Common.WebApiClients.HttpApis;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using Senparc.NeuChar.Helpers;
|
|
|
|
namespace New_College.Services
|
|
{
|
|
public class D_UserSettingBaseServices : BaseServices<D_UserSettingBase>, ID_UserSettingBaseServices
|
|
{
|
|
private readonly IBaseRepository<D_UserSettingBase> _dal;
|
|
private readonly ID_UserSettingBaseRepository _userSettingBaseRepository;
|
|
private readonly IV_CustomerInfoRepository _CustomerInfoRepository;
|
|
public D_UserSettingBaseServices(IBaseRepository<D_UserSettingBase> dal, IV_CustomerInfoRepository v_CustomerInfoRepository, ID_UserSettingBaseRepository userSettingBaseRepository)
|
|
{
|
|
this._dal = dal;
|
|
base.BaseDal = dal;
|
|
_CustomerInfoRepository = v_CustomerInfoRepository;
|
|
_userSettingBaseRepository = userSettingBaseRepository;
|
|
}
|
|
|
|
public async Task<List<UserBaseSettingDto>> GetUserBaseSettings(UserSettingBaseRequest request)
|
|
{
|
|
return (await _dal.Query(c => c.CustomerId == request.CustomerId)).Select(c => new UserBaseSettingDto()
|
|
{
|
|
CustomerId = request.CustomerId,
|
|
PType = c.PType,
|
|
ScoreCount = c.ScoreCount,
|
|
SearchCount = c.SearchCount,
|
|
}).ToList();
|
|
}
|
|
|
|
public async Task<bool> SyncBaseInfo(UserSettingBaseRequest request)
|
|
{
|
|
var customerinfo = await _CustomerInfoRepository.Query(c => c.Id == request.CustomerId);
|
|
if (customerinfo == null)
|
|
{
|
|
|
|
return false;
|
|
}
|
|
var basesettinginfo = new D_UserSettingBase()
|
|
{
|
|
CustomerId = request.CustomerId,
|
|
CreateTime = DateTime.Now,
|
|
IsDelete = false,
|
|
OrderSort = 0,
|
|
PType = 0,
|
|
ScoreCount = customerinfo.FirstOrDefault().IsVIP ? 10 : 3,
|
|
SearchCount = customerinfo.FirstOrDefault().IsVIP ? 9999 : 10,
|
|
|
|
};
|
|
|
|
var basesettingtypeinfo = new D_UserSettingBase()
|
|
{
|
|
CustomerId = request.CustomerId,
|
|
CreateTime = DateTime.Now,
|
|
IsDelete = false,
|
|
OrderSort = 0,
|
|
PType = 1,
|
|
ScoreCount = customerinfo.FirstOrDefault().IsVIP ? 10 : 3,
|
|
SearchCount = customerinfo.FirstOrDefault().IsVIP ? 9999 : 10,
|
|
};
|
|
await _dal.Add(basesettinginfo);
|
|
await _dal.Add(basesettingtypeinfo);
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public async Task UpdateBaseInit()
|
|
{
|
|
var modelslist = new List<D_UserSettingBase>();
|
|
var customerlist = await _CustomerInfoRepository.Query(c => c.IsDelete == false);
|
|
var userbaselist = await _userSettingBaseRepository.Query(c => c.IsDelete == false);
|
|
customerlist.ForEach(async c =>
|
|
{
|
|
var userbaseinfo = userbaselist.Where(e => e.CustomerId == c.Id);
|
|
if (userbaselist.Any())
|
|
{
|
|
var models = userbaselist.FirstOrDefault();
|
|
models.ScoreCount = c.IsVIP ? 10 : 3;
|
|
models.SearchCount = c.IsVIP ? 9999 : 10;
|
|
modelslist.Add(models);
|
|
}
|
|
});
|
|
await _userSettingBaseRepository.UpdateAllBaseInfo(modelslist);
|
|
}
|
|
|
|
public async Task UpdateSingleCustomerSetting(UserBaseSettingUpdateDTO request)
|
|
{
|
|
var basesettinglist = await _userSettingBaseRepository.Query(c => c.CustomerId == request.CustomerId);
|
|
basesettinglist.ForEach(async a =>
|
|
{
|
|
if (request.UType == 0)
|
|
{
|
|
a.ScoreCount = a.ScoreCount > 0 ? a.ScoreCount - 1 : 0;
|
|
}
|
|
if (request.UType == 1)
|
|
{
|
|
a.SearchCount = a.SearchCount > 0 ? a.SearchCount - 1 : 0;
|
|
}
|
|
await _userSettingBaseRepository.Update(a);
|
|
});
|
|
|
|
}
|
|
}
|
|
} |