477 lines
18 KiB
C#
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; }
|
|
//}
|
|
}
|
|
}
|