129 lines
5.0 KiB
C#
129 lines
5.0 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;
|
|
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 usersettinglist = await _dal.Query(e => e.CustomerId == request.CustomerId);
|
|
if (usersettinglist.Any())
|
|
{
|
|
usersettinglist.ForEach(a =>
|
|
{
|
|
a.ScoreCount = 1;
|
|
a.SearchCount = 9999;
|
|
a.ShowCount = 9999;
|
|
});
|
|
await _dal.Update(usersettinglist);
|
|
}
|
|
else
|
|
{
|
|
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 : 1,
|
|
ShowCount = customerinfo.FirstOrDefault().IsVIP ? 9999 : 1,
|
|
};
|
|
|
|
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 : 1,
|
|
ShowCount = customerinfo.FirstOrDefault().IsVIP ? 9999 : 1,
|
|
};
|
|
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(c =>
|
|
{
|
|
userbaselist.Where(e => e.CustomerId == c.Id).ToList().ForEach(models =>
|
|
{
|
|
models.ScoreCount = c.IsVIP ? 1 : 3;
|
|
models.SearchCount = c.IsVIP ? 9999 : 1;
|
|
models.ShowCount = c.IsVIP ? 9999 : 1;
|
|
models.ModifyTime = DateTime.Now;
|
|
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);
|
|
});
|
|
|
|
}
|
|
}
|
|
} |