MeiRiYiCheng_1_old/YBDevice.NApi/Application/DeviceInfo/DeviceService.cs

477 lines
18 KiB
C#

using Furion.DependencyInjection;
using Furion.DistributedIDGenerator;
using Mapster;
using Nirvana.Common;
using Nirvana.Common.ApiBase;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using YBDevice.Entity;
using YBDevice.NApi.Application.UserInfo;
namespace YBDevice.NApi.Application.DeviceInfo
{
public class DeviceService : IDeviceService, ITransient
{
private readonly ISqlSugarRepository<YB_Device> repository;
private readonly SqlSugarClient dbClient;
public DeviceService(ISqlSugarRepository<YB_Device> sqlSugarRepository)
{
repository = sqlSugarRepository;
dbClient = repository.Context;
}
/// <summary>
/// 获取设备信息
/// </summary>
/// <param name="facecode">设备序列号</param>
/// <returns></returns>
public async Task<YB_Device> GetDeviceAsync(string facecode)
{
return await dbClient.Queryable<YB_Device>().FirstAsync(x => x.FacCode == facecode);
}
/// <summary>
/// 获取设备信息
/// </summary>
/// <param name="ecode">设备机器码</param>
/// <returns></returns>
public async Task<YB_Device> GetDeviceByEcodeAsync(string ecode)
{
return await dbClient.Queryable<YB_Device>().FirstAsync(x => x.Ecode == ecode);
}
/// <summary>
/// 获取设备
/// </summary>
/// <param name="ecode"></param>
/// <returns></returns>
public async Task<DeviceAndTypeModel> GetEquAsync(string ecode)
{
var data = await dbClient.Queryable<YB_Device>().FirstAsync(x => x.Ecode == ecode);
var types = await dbClient.Queryable<YB_DeviceType>().ToListAsync();
return new DeviceAndTypeModel
{
equ = data,
types = types
};
}
/// <summary>
/// 设备列表
/// </summary>
/// <returns></returns>
public async Task<List<YB_Device>> GetListAsync()
{
return await dbClient.Queryable<YB_Device>().ToListAsync();
}
/// <summary>
/// 根据设备确定要使用的公众号或者小程序
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public async Task<string> GetOfficeByDeviceAsync(YB_Device data)
{
var devicetype = await dbClient.Queryable<YB_DeviceType>().FirstAsync(x => x.Code == data.Type);
if(devicetype.VerType == (int)DeviceVerType.Base)
{
return "gh_e2e73d281def"; //每日一称
}
return "gh_5efb6d7330a5";
}
/// <summary>
/// 获取设备类型列表
/// </summary>
/// <returns></returns>
public async Task<ResultInfo> GetTypeListAsync()
{
var list = await dbClient.Queryable<YB_DeviceTypeExt>().Where(x => x.Status == 1).ToListAsync();
var returnlist = list.Adapt<List<UserDevTypeS2CDto>>();
return new ResultInfo(ResultState.SUCCESS, "success", returnlist);
}
/// <summary>
/// 设备注册
/// </summary>
/// <param name="yB_Device">设备资料</param>
/// <returns></returns>
public async Task<ResultInfo> RegAsync(YB_Device yB_Device)
{
yB_Device.Ecode = yB_Device.Ecode.ToStr();
yB_Device.FacCode = yB_Device.FacCode.ToStr();
if (await dbClient.Queryable<YB_Device>().AnyAsync(x => x.Ecode == yB_Device.Ecode))
{
return new ResultInfo(ResultState.FAIL, "此机器码已存在");
}
if (await dbClient.Queryable<YB_Device>().AnyAsync(x => x.FacCode == yB_Device.FacCode))
{
return new ResultInfo(ResultState.FAIL, "此序列号已存在");
}
//注册设备
yB_Device.Name = yB_Device.FacCode;
yB_Device.BusinessId = 0;
yB_Device.Status = (int)DeviceStatus.UnActive;
yB_Device.Remark = string.Empty;
yB_Device.CreateTime = DateTime.Now;
await dbClient.Insertable(yB_Device).ExecuteCommandAsync();
return new ResultInfo(ResultState.SUCCESS, "注册成功");
}
/// <summary>
/// YB_Result迁移到YB_nResult
/// </summary>
public void Result2NewResult()
{
//获取所有的YB_ResultExt,YB_Measure,YB_BodyMeasure
//var starttime = DateTime.Parse("2021-09-06 07:37:01");
//var list = dbClient.Queryable<YB_ResultExt, YB_Measure, YB_BodyMeasure>((r, m, s) => new JoinQueryInfos(
// JoinType.Left, r.ResultId == m.ResultId,
// JoinType.Left, m.ResultId == s.ResultId
// ))
// .Where((r, m, s) => r.CreateTime > starttime)
// .Select((r, m,s) => new ttt
// {
// Id=r.Id,
// ResultId = r.ResultId,
// sfr = m.sfr,
// Sex=m.Sex,
// SfrVal=s.SfrVal,
// SkeletalMuscle=s.SkeletalMuscle,
// SourceType=r.SourceType,
// TakeStatus=1,
// Age=m.Age,
// bmi=m.bmi,
// cmi=m.cmi,
// body=m.body,
// bodyage=m.bodyage,
// BodyFat=s.BodyFat,
// BodyFatVal=s.BodyFatVal,
// BodyMuscle=s.BodyMuscle,
// BodyMuscleVal=s.BodyMuscleVal,
// bone=m.bone,
// BusinessId=r.BusinessId,
// createtime=r.CreateTime,
// CreateTime=r.CreateTime,
// Ecode=r.Ecode,
// EquId=r.EquId,
// FacEcode=r.FacEcode,
// FamilyId=m.FamilyId,
// FansId=r.FansId,
// fatlevel=m.fatlevel,
// fat_r=m.fat_r,
// fat_w=m.fat_w,
// Height=m.Height,
// IdealWeight=s.IdealWeight,
// Imp=r.Imp,
// kcal=m.kcal,
// lbm=m.lbm,
// LeftFootFat=s.LeftFootFat,
// LeftFootFatVal=s.LeftFootFatVal,
// LeftFootMuscle=s.LeftFootMuscle,
// LeftFootMuscleVal=s.LeftFootMuscleVal,
// LeftHandFat=s.LeftHandFat,
// LeftHandFatVal=s.LeftHandFatVal,
// LeftHandMuscle=s.LeftHandMuscle,
// LeftHandMuscleVal=s.LeftHandMuscleVal,
// LevelJson=s.LevelJson,
// Month=m.Month,
// muscle=m.muscle,
// muscleval=m.muscleval,
// OrderId=r.OrderId,
// protein=m.protein,
// proteinval=m.proteinval,
// PublicId=r.PublicId,
// RightFootFat=s.RightFootFat,
// RightFootFatVal=s.RightFootFatVal,
// RightFootMuscle=s.RightFootMuscle,
// RightFootMuscleVal=s.RightFootMuscleVal,
// RightHandFat=s.RightHandFat,
// RightHandFatVal=s.RightHandFatVal,
// RightHandMuscle=s.RightHandMuscle,
// RightHandMuscleVal=s.RightHandMuscleVal,
// UserId=r.UserId,
// visceral= m.visceral,
// water = m.water,
// Weight = m.Weight
// })
// .ToList();
//List<YB_nResult> rlist = new List<YB_nResult>();
//List<YB_nMeasureResult> mlist = new List<YB_nMeasureResult>();
//List<YB_nUserResult> ulist = new List<YB_nUserResult>();
//List<YB_nResultAdd> alist = new List<YB_nResultAdd>();
//list.ForEach(x => {
// //添加yb_nresult
// var equ = dbClient.Queryable<YB_Device>().First(e => e.Id == x.EquId);
// var ybresult = new YB_nResult
// {
// Id = IDGen.NextID(),
// SourceType = x.SourceType,
// BusinessId = x.BusinessId,
// CreateTime = x.CreateTime,
// DevType = equ !=null?equ.Type:1,
// EquId = x.EquId,
// Height = x.Height,
// Imp = x.Imp,
// LeftArmImp = 0,
// LeftLegImp =0,
// RightArmImp = 0,
// RightLegImp =0,
// Weight = x.Weight
// };
// rlist.Add(ybresult);
// //添加yb_nmeasureresult
// var measureresult = new YB_nMeasureResult {
// Id = ybresult.Id,
// DevType = ybresult.DevType,
// sfr = x.sfr,
// Sex = x.Sex,
// SfrVal =x.SfrVal,
// SkeletalMuscle = x.SkeletalMuscle,
// Age = x.Age,
// bmi = x.bmi,
// body = x.body.ToStr(),
// bodyage = x.bodyage,
// BodyFat = x.BodyFat,
// BodyFatVal = x.BodyFatVal,
// BodyMuscle =x.BodyMuscle,
// BodyMuscleVal =x.BodyMuscleVal,
// bone = x.bone,
// cmi = x.cmi,
// createtime = x.createtime,
// fatlevel = x.fatlevel.ToStr(),
// fat_r = x.fat_r,
// fat_w = x.fat_w,
// Height = x.Height,
// IdealWeight = x.IdealWeight,
// kcal = x.kcal,
// lbm = x.lbm,
// LeftFootFat =x.LeftFootFat,
// LeftFootFatVal = x.LeftFootFatVal,
// LeftFootMuscle = x.LeftFootMuscle,
// LeftFootMuscleVal =x.LeftFootMuscleVal,
// LeftHandFat =x.LeftHandFat,
// LeftHandFatVal =x.LeftHandFatVal,
// LeftHandMuscle = x.LeftHandMuscle,
// LeftHandMuscleVal = x.LeftHandMuscleVal,
// Month = x.Month,
// muscle = x.muscle,
// muscleval = x.muscleval,
// protein = x.protein,
// proteinval = x.proteinval,
// RightFootFat = x.RightFootFat,
// RightFootFatVal = x.RightFootFatVal,
// RightFootMuscle = x.RightFootMuscle,
// RightFootMuscleVal = x.RightFootMuscleVal,
// RightHandFat = x.RightHandFat,
// RightHandFatVal = x.RightHandFatVal,
// RightHandMuscle = x.RightHandMuscle,
// RightHandMuscleVal = x.RightHandMuscleVal,
// visceral = x.visceral,
// water = x.water,
// Weight = x.Weight
// };
// mlist.Add(measureresult);
// //添加yb_nuserreasult
// var userresult = new YB_nUserResult {
// CreateTime = x.CreateTime,
// DevType = ybresult.DevType,
// FamilyId = x.FamilyId,
// FansId = !string.IsNullOrEmpty(x.FansId)?Guid.Parse(x.FansId):null,
// Id = ybresult.Id,
// UserId = x.UserId
// };
// ulist.Add(userresult);
//});
//if (rlist.Count > 0)
//{
// dbClient.Insertable(rlist).ExecuteCommand();
//}
//if (mlist.Count > 0)
//{
// dbClient.Insertable(mlist).ExecuteCommand();
//}
//if (ulist.Count > 0)
//{
// dbClient.Insertable(ulist).ExecuteCommand();
//}
}
//public class ttt:YB_Measure
//{
// /// <summary>
// /// 躯干肌肉率
// /// </summary>
// public System.Decimal BodyMuscle { get; set; }
// /// <summary>
// /// 左脚肌肉率
// /// </summary>
// public System.Decimal LeftFootMuscle { get; set; }
// /// <summary>
// /// 右脚肌肉率
// /// </summary>
// public System.Decimal RightFootMuscle { get; set; }
// /// <summary>
// /// 左手肌肉率
// /// </summary>
// public System.Decimal LeftHandMuscle { get; set; }
// /// <summary>
// /// 右手肌肉率
// /// </summary>
// public System.Decimal RightHandMuscle { get; set; }
// /// <summary>
// /// 躯干脂肪率
// /// </summary>
// public System.Decimal BodyFat { get; set; }
// /// <summary>
// /// 左脚脂肪率
// /// </summary>
// public System.Decimal LeftFootFat { get; set; }
// /// <summary>
// /// 右脚脂肪率
// /// </summary>
// public System.Decimal RightFootFat { get; set; }
// /// <summary>
// /// 左手脂肪率
// /// </summary>
// public System.Decimal LeftHandFat { get; set; }
// /// <summary>
// /// 右手脂肪率
// /// </summary>
// public System.Decimal RightHandFat { get; set; }
// /// <summary>
// /// 躯干肌肉量
// /// </summary>
// public System.Decimal BodyMuscleVal { get; set; }
// /// <summary>
// /// 左脚肌肉量
// /// </summary>
// public System.Decimal LeftFootMuscleVal { get; set; }
// /// <summary>
// /// 右脚肌肉量
// /// </summary>
// public System.Decimal RightFootMuscleVal { get; set; }
// /// <summary>
// /// 左手肌肉量
// /// </summary>
// public System.Decimal LeftHandMuscleVal { get; set; }
// /// <summary>
// /// 右手肌肉量
// /// </summary>
// public System.Decimal RightHandMuscleVal { get; set; }
// /// <summary>
// /// 躯干脂肪量
// /// </summary>
// public System.Decimal BodyFatVal { get; set; }
// /// <summary>
// /// 左脚脂肪量
// /// </summary>
// public System.Decimal LeftFootFatVal { get; set; }
// /// <summary>
// /// 右脚脂肪量
// /// </summary>
// public System.Decimal RightFootFatVal { get; set; }
// /// <summary>
// /// 左手脂肪量
// /// </summary>
// public System.Decimal LeftHandFatVal { get; set; }
// /// <summary>
// /// 右手脂肪量
// /// </summary>
// public System.Decimal RightHandFatVal { get; set; }
// /// <summary>
// /// 皮下脂肪量,kg
// /// </summary>
// public System.Decimal SfrVal { get; set; }
// /// <summary>
// /// 理想体重
// /// </summary>
// public System.Decimal IdealWeight { get; set; }
// /// <summary>
// /// 骨骼肌量,kg
// /// </summary>
// public System.Decimal SkeletalMuscle { get; set; }
// /// <summary>
// /// 等级标准
// /// </summary>
// public System.String LevelJson { get; set; }
// /// <summary>
// /// 阻抗值
// /// </summary>
// public System.Decimal Imp { get; set; }
// /// <summary>
// /// 设备ID
// /// </summary>
// public System.Int32 EquId { get; set; }
// /// <summary>
// /// 设备机器码
// /// </summary>
// public System.String Ecode { get; set; }
// /// <summary>
// /// 设备序列号
// /// </summary>
// public System.String FacEcode { get; set; }
// /// <summary>
// /// 来源,1-蓝牙传输,2-手动记录,3-扫码记录
// /// </summary>
// public System.Int32 SourceType { get; set; }
// /// <summary>
// /// 使用的订单ID
// /// </summary>
// public System.Guid OrderId { get; set; }
// /// <summary>
// /// 所属的公众号/小程序
// /// </summary>
// public System.String PublicId { get; set; }
// /// <summary>
// /// 扫码时使用的用户唯一标识
// /// </summary>
// public System.String FansId { get; set; }
// /// <summary>
// /// 用户ID
// /// </summary>
// public System.Int32 UserId { get; set; }
// /// <summary>
// /// 客户ID
// /// </summary>
// public System.Int32 BusinessId { get; set; }
// /// <summary>
// /// 创建时间
// /// </summary>
// public System.DateTime CreateTime { get; set; }
//}
}
}