From 1571dee924ea10cdcb55300cf02f70c6208c0333 Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期二, 27 八月 2024 16:37:28 +0800
Subject: [PATCH] 增加人脸验证逻辑,支付接口,和逻辑

---
 cylsg/EzWechat/WechatConfig.json                        |    5 
 cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs         |    6 
 cylsg/cylsg.Application/Users/UserAppService.cs         |    2 
 cylsg/EzInitQ/Mapper.cs                                 |   21 
 .gitignore                                              |    8 
 cylsg/cylsg.Web.Core/cylsg.Web.Core.csproj              |    4 
 cylsg/EzInitqMessageDef/MsqModels.cs                    |   24 
 cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs |  249 +++++++
 cylsg/EzInitQ/Startup.cs                                |   36 +
 cylsg/cylsg.redis/IEzCoreNetRedisService.cs             |   11 
 cylsg/Cylsg.Filter/LimitFilterAttribute.cs              |  121 +++
 cylsg/cylsg.sln                                         |   28 
 cylsg/cylsg.Core/Attributes/CoderFirstAttribute.cs      |    1 
 cylsg/EzInitQ/PayServiceMessageQ.cs                     |  195 +++++
 cylsg/EzInitqMessageDef/InitQMessages.cs                |   46 +
 cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs         |   12 
 cylsg/EzJob/EzJob.csproj                                |   17 
 cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs |   31 
 cylsg/EzUpFile/UpFileController.cs                      |    2 
 cylsg/cylsg.Application/cylsg.Application.xml           |  786 +++++++++++++++++++++++
 cylsg/EzInitQ/EzInitQ.csproj                            |   24 
 cylsg/EzInitqMessageDef/EzInitqMessageDef.csproj        |   17 
 cylsg/EzJob/WeChatJob.cs                                |  100 +++
 cylsg/cylsg.redis/EzCoreNetRedisService.cs              |   22 
 cylsg/cylsg.Application/cylsg.Application.csproj        |    2 
 cylsg/EzJob/StartUpcs.cs                                |   30 
 cylsg/cylsg.Application/applicationsettings.json        |    5 
 cylsg/EzInitQ/InitQConfig.json                          |    8 
 cylsg/Cylsg.Filter/Cylsg.Filter.csproj                  |   14 
 cylsg/cylsg.Application/LogoInController.cs             |    2 
 cylsg/EzWechat/WecharPayServicecs.cs                    |   20 
 cylsg/EzTencentCloud/TencentCloudService.cs             |    6 
 cylsg/EzWechat/IWecharPayServicecs.cs                   |   14 
 cylsg/cylsg.Application/Transfer/UserTransfer.cs        |   58 +
 34 files changed, 1,913 insertions(+), 14 deletions(-)

diff --git a/.gitignore b/.gitignore
index 324afb0..117cf69 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,11 @@
 cylsg/EzUpFile/bin/
 cylsg/cylsg.Web.Entry/wwwroot/wechartKey/
 cylsg/cylsg.Web.Entry/wwwroot/1669018589_20240820_cert.zip
+cylsg/Cylsg.Filter/bin/
+cylsg/Cylsg.Filter/obj/
+cylsg/EzInitQ/bin/
+cylsg/EzInitQ/obj/
+cylsg/EzInitqMessageDef/bin/
+cylsg/EzInitqMessageDef/obj/
+cylsg/EzJob/bin/
+cylsg/EzJob/obj/
diff --git a/cylsg/Cylsg.Filter/Cylsg.Filter.csproj b/cylsg/Cylsg.Filter/Cylsg.Filter.csproj
new file mode 100644
index 0000000..b7cfb2e
--- /dev/null
+++ b/cylsg/Cylsg.Filter/Cylsg.Filter.csproj
@@ -0,0 +1,14 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\cylsg.Core\cylsg.Core.csproj" />
+    <ProjectReference Include="..\cylsg.redis\cylsg.redis.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/cylsg/Cylsg.Filter/LimitFilterAttribute.cs b/cylsg/Cylsg.Filter/LimitFilterAttribute.cs
new file mode 100644
index 0000000..ea35a0a
--- /dev/null
+++ b/cylsg/Cylsg.Filter/LimitFilterAttribute.cs
@@ -0,0 +1,121 @@
+锘�
+using EzCoreNet.Redis;
+using Furion;
+using Furion.FriendlyException;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cylsg.Filter
+{
+
+    public enum Limttype
+    {
+        /// <summary>
+        ///鍏辩敤闄愭祦
+        /// </summary>
+        All,
+        /// <summary>
+        /// 鐢ㄦ埛绾ч檺娴�
+        /// </summary>
+       User
+    }
+
+    /// <summary>
+    /// 闄愭祦
+    /// </summary>
+    
+    public class LimitFilterAttribute : Attribute,IAsyncActionFilter
+    {
+
+        /// <summary>
+        /// redis闄愭祦鏂囦欢澶瑰悕绉�
+        /// </summary>
+        private const string DirKey = "UserRateLimit:";
+        /// <summary>
+        /// 闄愭祦鍙戠敓鏃� 杩斿洖鐨勬彁绀�
+        /// </summary>
+        public string ResponseMeg { get; set; } = "璇蜂笉瑕佸湪鐭椂闂村唴閲嶅璁块棶璇ヨ祫婧�";
+
+        /// <summary>
+        ///  闄愭祦鏃堕暱 鍗曚綅绉�  榛樿涓�1绉�
+        /// </summary>
+        public int  timespan { get; set; } = 1;
+        /// <summary>
+        /// 闄愭祦娆℃暟 榛樿涓�1娆�
+        /// </summary>
+        public int InCount { get; set; } = 1;
+
+        /// <summary>
+        /// 榛樿涓虹敤鎴风骇
+        /// </summary>
+        public Limttype LimiType { get; set; }= Limttype.All;
+
+        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
+        {
+         var redisHelper =    App.GetService<IEzCoreNetRedisService>();
+            if(redisHelper == null)
+            {
+                throw Oops.Oh("鍐呭瓨鏈嶅姟寮傚父锛岃姹傜粓姝�");
+            }
+
+            var path = context.HttpContext?.Request?.Path.Value;
+            if (string.IsNullOrEmpty(path))
+            {
+                //闈濧PI鎺у埗鍣紝鐩存帴鏀捐  娌℃湁鎵惧埌璺緞
+                await next.Invoke();
+                return;
+            }
+            string key = "";
+            if (LimiType == Limttype.User)
+            {
+                if (App.User?.FindFirstValue("UserID") == null)
+                {
+                    //娌℃湁鐢ㄦ埛鐩存帴鏀捐
+                    await next.Invoke();
+                    return;
+                }
+
+                 key = $"{DirKey}:{path}:{App.User?.FindFirstValue("UserID")}";
+            }
+            else
+                if(LimiType == Limttype.All)
+            {
+                key = $"{DirKey}:{path}:All";
+            }
+            else
+            {
+                await next.Invoke();
+                return;
+            }
+
+
+            long? count = redisHelper.Get<int>(key);
+            if (count == null || count == 0)
+            {
+                redisHelper.Incrby(key);
+                redisHelper.SetTtl(key, timespan);
+            }
+            else
+            if (count >= (InCount))
+            {
+                throw Oops.Oh(ResponseMeg);
+            
+            }
+            else
+            {
+                redisHelper.Incrby(key);
+            }
+
+            await next.Invoke();
+
+           
+        }
+    }
+}
diff --git a/cylsg/EzInitQ/EzInitQ.csproj b/cylsg/EzInitQ/EzInitQ.csproj
new file mode 100644
index 0000000..89ed748
--- /dev/null
+++ b/cylsg/EzInitQ/EzInitQ.csproj
@@ -0,0 +1,24 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\cylsg.Core\cylsg.Core.csproj" />
+    <ProjectReference Include="..\cylsg.Model\cylsg.Model.csproj" />
+    <ProjectReference Include="..\cylsg.redis\cylsg.redis.csproj" />
+    <ProjectReference Include="..\cylsg.services\cylsg.services.csproj" />
+    <ProjectReference Include="..\EzInitqMessageDef\EzInitqMessageDef.csproj" />
+    <ProjectReference Include="..\EzWechat\EzWechat.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="InitQConfig.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+
+</Project>
diff --git a/cylsg/EzInitQ/InitQConfig.json b/cylsg/EzInitQ/InitQConfig.json
new file mode 100644
index 0000000..92e1732
--- /dev/null
+++ b/cylsg/EzInitQ/InitQConfig.json
@@ -0,0 +1,8 @@
+{
+  //璇蜂繚鎸乺edis涓烘甯稿彲鐢�
+  "InitQRedisConfig": {
+    // 濡傛灉閲囩敤瀹瑰櫒鍖栭儴缃睸ervice 瑕佸啓鎴恟edis鐨勬湇鍔″悕锛屽惁鍒欏啓鍦板潃
+    "ConnectionString": "127.0.0.1:6379,password=,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=3" //redis鏁版嵁搴撹繛鎺ュ瓧绗︿覆
+
+  }
+}
diff --git a/cylsg/EzInitQ/Mapper.cs b/cylsg/EzInitQ/Mapper.cs
new file mode 100644
index 0000000..51ef636
--- /dev/null
+++ b/cylsg/EzInitQ/Mapper.cs
@@ -0,0 +1,21 @@
+锘縰sing cylsg.Model.TransferOrder;
+using cylsg.Model.UserModel;
+using Mapster;
+using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace EzInitQ
+{
+    public class Mapper : IRegister
+    {
+        public void Register(TypeAdapterConfig config)
+        {
+            config.ForType<CreateTransferBatchRequest, WeChatTransferOrder>();
+       
+        }
+    }
+}
diff --git a/cylsg/EzInitQ/PayServiceMessageQ.cs b/cylsg/EzInitQ/PayServiceMessageQ.cs
new file mode 100644
index 0000000..a4224b7
--- /dev/null
+++ b/cylsg/EzInitQ/PayServiceMessageQ.cs
@@ -0,0 +1,195 @@
+锘縰sing cylsg.Core;
+using cylsg.Model.TransferOrder;
+using cylsg.Model.UserModel;
+using cylsg.utility.Extend;
+using EzCoreNet.Redis;
+using EzInitqMessageDef;
+using EzWechat;
+using Furion;
+using Furion.DatabaseAccessor;
+using Furion.FriendlyException;
+using InitQ.Abstractions;
+using InitQ.Attributes;
+using Mapster;
+using MapsterMapper;
+using Newtonsoft.Json;
+using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
+using SqlSugar.Extensions;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace EzInitQ
+{
+
+
+    public class PayServiceMessageQ: IRedisSubscribe
+    {
+        private  IEzCoreNetRedisService _ezCoreNetRedisService;
+        private   IWecharPayServicecs _wecharPayServicecs;
+        private  IMapper _mapper;
+        //public PayServiceMessageQ(IEzCoreNetRedisService ezCoreNetRedisService,IWecharPayServicecs wecharPayServicecs,IMapper mapper) {
+
+        //    _ezCoreNetRedisService = ezCoreNetRedisService;
+        //    _wecharPayServicecs = wecharPayServicecs;
+        //     _mapper = mapper;
+        
+        //}
+
+        /// <summary>
+        /// 寰俊杞处闃熷垪澶勭悊
+        /// </summary>
+        [Subscribe(InitQMessages.WxTransferMSQ)]
+        public async void  WxTransferMSQInit(string msg)
+        {
+            _ezCoreNetRedisService = App.GetService<IEzCoreNetRedisService>();
+            _wecharPayServicecs = App.GetService<IWecharPayServicecs>();
+            _mapper = App.GetService<IMapper>();
+
+            var userdata=  JsonConvert.DeserializeObject<WxTransferMsqModels>(msg);
+            if( userdata != null ) {
+
+                throw Oops.Oh($"闃熷垪WxTransferMSQInit 澶勭悊澶辫触锛屾病鏈夎幏鍙栧埌鐢ㄦ埛淇℃伅+++++++++{msg}");
+            }
+            var UserRs = new BaseRepository<User>();
+            var user  = await UserRs.GetByIdAsync(userdata.UserID);
+            if(user !=null)
+            {
+                throw Oops.Oh($"闃熷垪WxTransferMSQInit 澶勭悊澶辫触锛屾病鏈夎幏鍙栧埌鐢ㄦ埛淇℃伅++++++++{msg}");
+            }  
+            if(string.IsNullOrEmpty( user.WxOpenId))
+            {
+                throw Oops.Oh($"闃熷垪WxTransferMSQInit 澶勭悊澶辫触锛屾病鏈夎幏鍙栧埌openID+++++++++{msg}");
+            }
+            var uWorkRs = new BaseRepository<UserWorker>();
+         
+
+            var UserTiXianDetailwork = new BaseRepository<UserTiXianDetail>();
+
+            var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
+            var uWork = await uWorkRs.GetFirstAsync(x=>x.UserId==user.Id);
+            if((uWork != null)& ((uWork.TiXianZonge - uWork.YiTiXianJine) > userdata.money))
+            {
+                var TransferOrder = new WeChatTransferOrder
+                {
+                    CreateBy = uWork.UserId.ToString(),
+                    CreateTime = DateTime.Now,
+                    BatchId = _ezCoreNetRedisService.Get32sn(),
+                    OutBatchNumber = _ezCoreNetRedisService.Get32sn(),
+                    Remake = "宸濆嵃宸ヨ祫鏀粯",
+                    TransferDetailList = new List<WeChatTransferItem>()
+
+
+                };
+                try
+                {
+                    //婊¤冻鏉′欢锛屽彂璧锋敮浠�
+                 await    UserTiXianDetailwork.AsTenant().BeginTranAsync();
+
+
+
+                  
+                     var moneylist= userdata.money;
+                    if(moneylist<=0.3m)
+                    {
+                        //鏀惧純澶勭悊锛屼綆浜�0.3姣涗笉鑳藉彂璧疯浆璐�
+                        throw Oops.Oh($"闃熷垪WxTransferMSQInit 澶勭悊澶辫触锛岃浆璐﹂噾棰濅綆浜�0.3鍏�+++++++++{msg}");
+                    }
+                    var maxPayItem =   Convert.ToDecimal(App.Configuration["WechartPay:PayMoneyMax"].toInt()); ;
+                    while ((moneylist > maxPayItem))
+                    {
+                        TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+                        {
+                            CreateBy = uWork.UserId.ToString(),
+                            CreateTime = TransferOrder.CreateTime,
+                            IsEn = true,
+                            OpenId = user.WxOpenId,
+                            OutDetailNumber = _ezCoreNetRedisService.Get32sn(),
+                             
+                            TransferAmount = (int )maxPayItem * 100,
+                             TransferRemark="宸濆嵃宸ヨ祫鏀粯",
+                              
+                        });
+
+                        moneylist -= maxPayItem;
+                    }
+                    if (moneylist <= 0.3m)
+                    {
+                        //濡傛灉杩欓噷浣庝簬0.3姣涳紝灏嗙ぞ鍖洪妫�锛岀暀涓嬫澶勭悊
+                        userdata.money -= moneylist;
+                    }
+                    else
+
+                    {
+                        TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+                        {
+                            CreateBy = uWork.UserId.ToString(),
+                            CreateTime = TransferOrder.CreateTime,
+                            IsEn = true,
+                            OpenId = user.WxOpenId,
+                            OutDetailNumber = _ezCoreNetRedisService.Get32sn(),
+
+                            TransferAmount = (int)(moneylist * 100),
+                            TransferRemark = "宸濆嵃宸ヨ祫鏀粯",
+
+                        });
+                    }
+
+                    TransferOrder = await   WeChatTransferOrderwork.AsSugarClient().InsertNav(TransferOrder).Include(x=>x.TransferDetailList).ExecuteReturnEntityAsync();
+                    await UserTiXianDetailwork.InsertAsync(new UserTiXianDetail
+                    {
+                        CreateBy = uWork.UserId.ToString(),
+                         CreateTime = DateTime.Now,
+                          UserId = user.Id,
+                           ZhiChuShouRu= 0,
+                            YiTiXianJine=userdata.money,
+                             WeChatTransferOrderID= TransferOrder.Id,
+                              
+                             
+
+                    });
+
+
+
+                    //閽卞寘浣欓璋冩暣
+
+                    uWork.YiTiXianJine += userdata.money;
+                    uWork.UpDataBy = uWork.UserId.ToString();
+                    uWork.UpDataTime = DateTime.Now;
+                   await  uWorkRs.UpdateAsync(uWork);
+
+
+                  await    UserTiXianDetailwork.AsTenant().CommitTranAsync();
+
+
+                }
+                catch (Exception)
+                {
+                    await UserTiXianDetailwork.AsTenant().RollbackTranAsync();
+                    throw;
+                }
+                // 鍙戣捣鏀粯
+
+                var requit = _mapper.Map<CreateTransferBatchRequest>(TransferOrder);
+              var ret=   await _wecharPayServicecs.Transfer(requit);
+                if (ret.IsSuccessful())
+                {
+                  var retdata= await  WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id);
+                    retdata.BatchId = ret.BatchId;
+                    retdata.BatchStatus= ret.BatchStatus;
+                    retdata.UpDataBy = "寰俊浠樻璇锋眰涔嬪悗";
+                     retdata.UpDataTime= DateTime.Now;
+                      await WeChatTransferOrderwork.UpdateAsync(retdata);
+                }
+                else
+                    throw Oops.Oh($"寰俊璇锋眰浠樻澶辫触+++++++++++++{ret.ToString()}+++++++++++msg{msg}");
+                        
+
+            }
+
+
+        }
+    }
+}
diff --git a/cylsg/EzInitQ/Startup.cs b/cylsg/EzInitQ/Startup.cs
new file mode 100644
index 0000000..4ce942f
--- /dev/null
+++ b/cylsg/EzInitQ/Startup.cs
@@ -0,0 +1,36 @@
+锘縰sing Furion;
+using InitQ;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace EzInitQ
+{
+
+    public class Startup : AppStartup
+    {
+        public void ConfigureServices(IServiceCollection services)
+        {
+            services.AddInitQ(m =>
+            {
+                m.SuspendTime = 1000;
+                m.IntervalTime = 1000;
+                m.ConnectionString = App.Configuration["InitQRedisConfig:ConnectionString"];
+                m.ListSubscribe = new List<Type>() { typeof(PayServiceMessageQ) };
+                m.ShowLog = false;
+
+            });
+
+        }
+
+        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
+        {
+
+        }
+    }
+}
diff --git a/cylsg/EzInitqMessageDef/EzInitqMessageDef.csproj b/cylsg/EzInitqMessageDef/EzInitqMessageDef.csproj
new file mode 100644
index 0000000..21b908a
--- /dev/null
+++ b/cylsg/EzInitqMessageDef/EzInitqMessageDef.csproj
@@ -0,0 +1,17 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="InitQ" Version="1.0.0.19" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\cylsg.Core\cylsg.Core.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/cylsg/EzInitqMessageDef/InitQMessages.cs b/cylsg/EzInitqMessageDef/InitQMessages.cs
new file mode 100644
index 0000000..531a373
--- /dev/null
+++ b/cylsg/EzInitqMessageDef/InitQMessages.cs
@@ -0,0 +1,46 @@
+锘縰sing Furion;
+using InitQ.Cache;
+using Newtonsoft.Json;
+using StackExchange.Redis;
+
+namespace EzInitqMessageDef
+{
+    /// <summary>
+    /// 闃熷垪娑堟伅瀹氫箟
+    /// </summary>
+    public static class InitQMessages
+    {
+        /// <summary>
+        /// 杞处
+        /// </summary>
+         public const  string WxTransferMSQ = "WxTransferMSQ";
+
+        /// <summary>
+        /// 鍚戝爢鏍堜腑鍘嬪叆涓�涓秷鎭�
+        /// </summary>
+        /// <typeparam name="T"> 绫诲瀷</typeparam>
+        /// <param name="MessageName"> 娑堟伅鍚嶇О</param>
+        /// <param name="msg">绫诲瀷</param>
+        /// <returns></returns>
+       public static async Task<bool> SendMessageAsync<T>(string MessageName,T msg)
+        {
+         var _redis=   App.GetService<ICacheService>();
+      
+            await _redis.ListRightPushAsync(MessageName, JsonConvert.SerializeObject(msg));
+            return true;
+        }
+        /// <summary>
+        /// 鍚戝爢鏍堜腑鍘嬪叆涓�涓秷鎭�
+        /// </summary>
+        /// <param name="MessageName"></param>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        public static async Task<bool> SendMessageAsync(string MessageName, string msg)
+        {
+            var _redis = App.GetService<ICacheService>();
+
+            await _redis.ListRightPushAsync(MessageName, msg);
+            return true;
+        }
+    }
+}
diff --git a/cylsg/EzInitqMessageDef/MsqModels.cs b/cylsg/EzInitqMessageDef/MsqModels.cs
new file mode 100644
index 0000000..c368608
--- /dev/null
+++ b/cylsg/EzInitqMessageDef/MsqModels.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace EzInitqMessageDef
+{
+    /// <summary>
+    /// 寰俊鎻愮幇璇锋眰
+    /// </summary>
+    public class WxTransferMsqModels
+    {
+        /// <summary>
+        /// 浣撶幇閲戦
+        /// </summary>
+        public decimal money { get; set; }
+
+        /// <summary>
+        /// 鎻愮幇鐢ㄦ埛
+        /// </summary>
+        public int  UserID { get; set; }
+    }
+}
diff --git a/cylsg/EzJob/EzJob.csproj b/cylsg/EzJob/EzJob.csproj
new file mode 100644
index 0000000..5d6e03f
--- /dev/null
+++ b/cylsg/EzJob/EzJob.csproj
@@ -0,0 +1,17 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\cylsg.Core\cylsg.Core.csproj" />
+    <ProjectReference Include="..\cylsg.Model\cylsg.Model.csproj" />
+    <ProjectReference Include="..\cylsg.redis\cylsg.redis.csproj" />
+    <ProjectReference Include="..\cylsg.services\cylsg.services.csproj" />
+    <ProjectReference Include="..\EzWechat\EzWechat.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/cylsg/EzJob/StartUpcs.cs b/cylsg/EzJob/StartUpcs.cs
new file mode 100644
index 0000000..8659fdd
--- /dev/null
+++ b/cylsg/EzJob/StartUpcs.cs
@@ -0,0 +1,30 @@
+锘縰sing Furion;
+using Furion.Schedule;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace EzJob
+{
+    public class Startup : AppStartup
+    {
+        public void ConfigureServices(IServiceCollection services)
+        {
+
+            services.AddSchedule(options =>
+            {
+                options.AddJob<WeChatJob>(concurrent: false, Triggers.Hourly()); // 涓茶
+            });
+        }
+
+        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
+        {
+
+        }
+    }
+}
diff --git a/cylsg/EzJob/WeChatJob.cs b/cylsg/EzJob/WeChatJob.cs
new file mode 100644
index 0000000..60c5e9a
--- /dev/null
+++ b/cylsg/EzJob/WeChatJob.cs
@@ -0,0 +1,100 @@
+锘縰sing cylsg.Core;
+using cylsg.Model.TransferOrder;
+using EzWechat;
+using Furion;
+using Furion.FriendlyException;
+using Furion.Schedule;
+using Microsoft.AspNetCore.Http.HttpResults;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace EzJob
+{
+    public class WeChatJob : IJob
+    {
+
+
+        /// <summary>
+        /// 鏌ヨ璁㈠崟瀹屾垚鎯呭喌
+        /// </summary>
+        /// <param name="context"></param>
+        /// <param name="stoppingToken"></param>
+        /// <returns></returns>
+        public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
+        {
+           var payServices=  App.GetService<IWecharPayServicecs>();
+            if(payServices == null)
+            {
+                throw Oops.Oh($"瀹氭椂浠诲姟WeChatJob 澶勭悊澶辫触锛屾湭鑳借幏鍙朓WecharPayServicecs 鏈嶅姟");
+            }
+
+            var WeChatTransferOrderRs = new BaseRepository<WeChatTransferOrder>();
+            var OderList = await WeChatTransferOrderRs.AsQueryable().Includes(x=>x.TransferDetailList).Where(x => (x.BatchId != null && x.BatchId != "") || x.BatchStatus == "ACCEPTED" || x.BatchStatus == "PROCESSING").ToListAsync();
+
+            foreach( var o in OderList )
+            {
+             var ret  =    await payServices.TransferBatches(new SKIT.FlurlHttpClient.Wechat.TenpayV3.Models.GetTransferBatchByBatchIdRequest
+                {
+                    BatchId = o.BatchId
+
+                });
+                if(ret != null)
+                {
+                    if(ret.IsSuccessful())
+                    {
+                       
+                        
+                        if (ret.TransferBatch.BatchStatus == "FINISHED")
+                        {
+                            //宸茬粡鍏ㄩ儴瀹屾垚
+                            o.BatchStatus= ret.TransferBatch.BatchStatus;
+                            o.UpDataBy = "ExecuteAsync";
+                            o.UpDataTime=DateTime.Now;
+                            o.CloseReason = ret.TransferBatch.CloseReason;
+                            o.FailAmount= ret.TransferBatch.FailAmount;
+                            o.FailNum = ret.TransferBatch.FailNumber;
+                            o.SuccessNum = ret.TransferBatch.SuccessNumber;
+                            o.SuccessAmount= ret.TransferBatch.SuccessAmount;
+                            foreach (var item in o.TransferDetailList)
+                            {
+                                var del =ret.TransferDetailList.Where(x=>x.OutDetailNumber==item.OutDetailNumber).FirstOrDefault();
+                                item.DetailStatus = del?.DetailStatus;
+                                switch (item.DetailStatus)
+                                {
+                                    case "FAIL":
+                                        //澶辫触锛岃幏鍙栧け璐ュ師鍥�
+                                        var retde = await payServices.TransferBatchesDetails(new SKIT.FlurlHttpClient.Wechat.TenpayV3.Models.GetTransferBatchDetailByDetailIdRequest
+                                        {
+                                            BatchId = o.BatchId,
+                                            DetailId = del.DetailId,
+
+                                        });
+
+                                        item.FailReason = retde?.FailReason;
+                                        break;
+                                    case "SUCCESS":
+                                        item.DetailStatus = "SUCCESS";
+
+                                        break;
+
+                                    default:
+                                        item.DetailStatus = del?.DetailStatus;
+                                        break;
+                                }
+                               
+                                
+
+                            }
+
+                        
+
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/cylsg/EzTencentCloud/TencentCloudService.cs b/cylsg/EzTencentCloud/TencentCloudService.cs
index ceafd97..a276174 100644
--- a/cylsg/EzTencentCloud/TencentCloudService.cs
+++ b/cylsg/EzTencentCloud/TencentCloudService.cs
@@ -138,7 +138,7 @@
                 httpProfile.Endpoint = ("ocr.tencentcloudapi.com");
                 clientProfile.HttpProfile = httpProfile;
 
-                var _ocrClient = new OcrClient(cred, "ap-chengdu", clientProfile);
+                var _ocrClient = new OcrClient(cred, "ap-shanghai", clientProfile);
           
                 var ret = _ocrClient.BizLicenseOCRSync(new BizLicenseOCRRequest()
                 {
@@ -256,7 +256,7 @@
 
             httpProfile.Endpoint = ("iai.tencentcloudapi.com");
             clientProfile.HttpProfile = httpProfile;
-            var iaiClient = new IaiClient(cred, "ap-chengdu", clientProfile);
+            var iaiClient = new IaiClient(cred, "ap-shanghai", clientProfile);
             var ret = iaiClient.CreateFace( new TencentCloud.Iai.V20200303.Models.CreateFaceRequest
             {
               
@@ -291,7 +291,7 @@
 
             httpProfile.Endpoint = ("iai.tencentcloudapi.com");
             clientProfile.HttpProfile = httpProfile;
-            var iaiClient = new IaiClient(cred, "ap-chengdu", clientProfile);
+            var iaiClient = new IaiClient(cred, "ap-shanghai", clientProfile);
             var ret = iaiClient.VerifyFaceSync(new  TencentCloud.Iai.V20200303.Models.VerifyFaceRequest
             {
 
diff --git a/cylsg/EzUpFile/UpFileController.cs b/cylsg/EzUpFile/UpFileController.cs
index a3ee514..108fdf1 100644
--- a/cylsg/EzUpFile/UpFileController.cs
+++ b/cylsg/EzUpFile/UpFileController.cs
@@ -78,7 +78,7 @@
         public async Task<object> IaiAddPersoBase64([FromServices] IEzFileUploadService fileUploadService, UpDataFileData param)
         {
             if (string.IsNullOrEmpty(param.imgBase64))
-                throw Oops.Oh("娌℃湁鏂囦欢绫诲");
+                throw Oops.Oh("娌℃湁鏂囦欢鍐呭");
             if (string.IsNullOrEmpty(param.Name))
                 throw Oops.Oh("娌℃湁濮撳悕");
             if (string.IsNullOrEmpty(param.CordId))
diff --git a/cylsg/EzWechat/IWecharPayServicecs.cs b/cylsg/EzWechat/IWecharPayServicecs.cs
index 21173bd..6f973fa 100644
--- a/cylsg/EzWechat/IWecharPayServicecs.cs
+++ b/cylsg/EzWechat/IWecharPayServicecs.cs
@@ -14,6 +14,18 @@
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
-       Task<CreateTransferBatchResponse> PayOderAsync(CreateTransferBatchRequest request);
+       Task<CreateTransferBatchResponse> Transfer(CreateTransferBatchRequest request);
+        /// <summary>
+        /// 閫氳繃寰俊 BatchId 鏌ヨ鏀粯鐘舵��
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        Task<GetTransferBatchByBatchIdResponse> TransferBatches(GetTransferBatchByBatchIdRequest request);
+        /// <summary>
+        /// 鏍规嵁Detail id 鏌ヨ鍚嶅崟璇︾粏
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        Task<GetTransferBatchDetailByDetailIdResponse> TransferBatchesDetails(GetTransferBatchDetailByDetailIdRequest request);
     }
 }
diff --git a/cylsg/EzWechat/WecharPayServicecs.cs b/cylsg/EzWechat/WecharPayServicecs.cs
index e4a37ab..a679bee 100644
--- a/cylsg/EzWechat/WecharPayServicecs.cs
+++ b/cylsg/EzWechat/WecharPayServicecs.cs
@@ -32,12 +32,26 @@
              _V3Client = WechatTenpayClientBuilder.Create(options).Build();
         }
 
-        public async Task<CreateTransferBatchResponse> PayOderAsync(CreateTransferBatchRequest request)
+        public async Task<CreateTransferBatchResponse> Transfer(CreateTransferBatchRequest request)
         {
-
-            var response = await _V3Client.ExecuteCreateTransferBatchAsync(request);
+          
+               var response = await _V3Client.ExecuteCreateTransferBatchAsync(request);
             return response;
 
         }
+
+        public async Task<GetTransferBatchByBatchIdResponse> TransferBatches(GetTransferBatchByBatchIdRequest request)
+        {
+
+            var response = await _V3Client.ExecuteGetTransferBatchByBatchIdAsync(request);
+            return response;
+
+        }
+
+        public async Task<GetTransferBatchDetailByDetailIdResponse> TransferBatchesDetails(GetTransferBatchDetailByDetailIdRequest request)
+        {
+            var response = await _V3Client.ExecuteGetTransferBatchDetailByDetailIdAsync(request);
+            return response;
+        }
     }
 }
diff --git a/cylsg/EzWechat/WechatConfig.json b/cylsg/EzWechat/WechatConfig.json
index a7d7366..2072927 100644
--- a/cylsg/EzWechat/WechatConfig.json
+++ b/cylsg/EzWechat/WechatConfig.json
@@ -10,7 +10,10 @@
     "MerchantV3Secret": "lojdhuqyt5648dikunm623ddsl2543a5",
     "MerchantId": "1669018589",
     "MerchantCertificateSerialNumber": "49FFE8CB27B5EDD026BFF23C41F0DAA83405EB10",
-    "apiclient_keyFile": "wwwroot\\wechartKey\\apiclient_key.pem"
+    "apiclient_keyFile": "wwwroot\\wechartKey\\apiclient_key.pem",
+    "PayMoneyMax": 200
+
+
 
   }
 }
\ No newline at end of file
diff --git a/cylsg/cylsg.Application/LogoInController.cs b/cylsg/cylsg.Application/LogoInController.cs
index a97ec29..92d8070 100644
--- a/cylsg/cylsg.Application/LogoInController.cs
+++ b/cylsg/cylsg.Application/LogoInController.cs
@@ -105,7 +105,7 @@
             }
             var jwt = new EzJwtModel()
             {
-                ITCode = user.ItCode,
+               // ITCode = user.ItCode,
                 NickName = user.Nickname,
                 UserID = user.Id,
 
diff --git a/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs b/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
index c524481..09e9b61 100644
--- a/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
+++ b/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
@@ -222,6 +222,12 @@
         public string CheckPhoto { get; set; }
 
 
+        /// <summary>
+        /// 浜鸿劯鍥剧墖
+        /// </summary>
+        public string FaceImg { get; set; }
+
+
 
     }
 
diff --git a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
index 3f658a3..d8731ba 100644
--- a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
+++ b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
@@ -3,9 +3,11 @@
 using cylsg.Core;
 using cylsg.Model.OrderModel;
 using cylsg.Model.UserModel;
+using EzTencentCloud;
 using Furion.LinqBuilder;
 using MapsterMapper;
 using Org.BouncyCastle.Asn1.X509;
+using SqlSugar.Extensions;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -26,11 +28,13 @@
         private readonly ISystemService _systemService;
         private ISqlSugarClient _sqlSugarClient;
         private IMapper _mapper;
-        public OrderWorkerAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper)
+        private readonly ITencentCloudService _tencentCloudService;
+        public OrderWorkerAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper,ITencentCloudService tencentCloudService)
         {
             _systemService = systemService;
             _sqlSugarClient = sqlSugarClient;
             _mapper = mapper;
+            _tencentCloudService = tencentCloudService;
         }
 
 
@@ -176,6 +180,7 @@
 
             return result;
         }
+
 
 
 
@@ -416,6 +421,30 @@
             {
                 throw Oops.Oh("璇ユ墦鍗¤褰曞凡缁忓鎵癸紝涓嶈兘鎵撳崱锛�");
             }
+            //浜鸿劯璇嗗埆
+            if (App.Configuration["VerifyFace:Enable"].ObjToBool())
+            {
+                if (string.IsNullOrWhiteSpace(dakaDto.FaceImg))
+                {
+                    throw Oops.Oh("鏈瘑鍒汉鑴�");
+                }
+
+                var UserWorkRes = await new BaseRepository<UserWorker>().GetFirstAsync(x => x.UserId == userid);
+                if (UserWorkRes == null)
+                {
+                    throw Oops.Oh("鍛樺伐鏈敞鍐屾垚宸ヤ汉");
+                }
+                var faseres = _tencentCloudService.VerifyFace(dakaDto.FaceImg, UserWorkRes.IAIPersonId);
+
+                if (faseres.IsMatch != true)
+                {
+                    throw Oops.Oh("涓嶆槸鏈汉");
+                }
+            }
+
+
+
+
             if(orderBiddingDetail == null)
             {
                 orderBiddingDetail = new OrderBiddingDetail();
diff --git a/cylsg/cylsg.Application/Transfer/UserTransfer.cs b/cylsg/cylsg.Application/Transfer/UserTransfer.cs
new file mode 100644
index 0000000..a5dcbdf
--- /dev/null
+++ b/cylsg/cylsg.Application/Transfer/UserTransfer.cs
@@ -0,0 +1,58 @@
+锘縰sing cylsg.Core;
+using cylsg.Model.UserModel;
+using Cylsg.Filter;
+using EzInitqMessageDef;
+using SKIT.FlurlHttpClient.Wechat.Api.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Transfer
+{
+    /// <summary>
+    ///     鎻愮幇鏈嶅姟绋嬪簭
+    /// </summary>
+    /// 
+    [DynamicApiController]
+    [Authorize]
+    public class UserTransfer
+    {
+
+       
+        public UserTransfer() { }
+        /// <summary>
+        /// 鎻愮幇
+        /// </summary>
+        /// <param name="Money"></param>
+        [LimitFilter(LimiType = Limttype.User,timespan =10,ResponseMeg ="璇峰嬁鍦�10绉掑唴閲嶅璇锋眰")]
+        public async Task  GetTransferMoney( [FromQuery]decimal Money)
+        {
+           var rs=   new BaseRepository<UserWorker>();
+            var UserID = App.User?.FindFirstValue("UserID");
+            int userid = 0;
+            if (!string.IsNullOrEmpty(UserID))
+            {
+                userid = int.Parse(UserID);
+            }
+            else
+            {
+
+                throw Oops.Oh("娌℃湁璇嗗埆鍒扮敤鎴锋敹鍏�");
+            }
+           var  uw=  await rs.GetByIdAsync(userid);
+            if((uw.TiXianZonge-uw.YiTiXianJine)< Money)
+            {
+                throw Oops.Oh("鐢ㄦ埛浣欓涓嶈冻");
+            }
+            var b = await InitQMessages.SendMessageAsync(InitQMessages.WxTransferMSQ, Money.ToString());
+            if (b)
+                return;
+           else
+                throw Oops.Oh("璇锋眰澶辫触");
+        }
+
+    }
+}
diff --git a/cylsg/cylsg.Application/Users/UserAppService.cs b/cylsg/cylsg.Application/Users/UserAppService.cs
index baf8708..d7312b8 100644
--- a/cylsg/cylsg.Application/Users/UserAppService.cs
+++ b/cylsg/cylsg.Application/Users/UserAppService.cs
@@ -202,5 +202,7 @@
             return userDto;
         }
 
+
+      
     }
 }
diff --git a/cylsg/cylsg.Application/applicationsettings.json b/cylsg/cylsg.Application/applicationsettings.json
index 47b488e..d20414e 100644
--- a/cylsg/cylsg.Application/applicationsettings.json
+++ b/cylsg/cylsg.Application/applicationsettings.json
@@ -21,6 +21,11 @@
       }
     ]
   },
+
+  "VerifyFace": {
+    "Enable": true
+  },
+
   "CorsAccessorSettings": {
     "WithExposedHeaders": [
       "access-token",
diff --git a/cylsg/cylsg.Application/cylsg.Application.csproj b/cylsg/cylsg.Application/cylsg.Application.csproj
index 0d6e2b3..c961b51 100644
--- a/cylsg/cylsg.Application/cylsg.Application.csproj
+++ b/cylsg/cylsg.Application/cylsg.Application.csproj
@@ -24,9 +24,11 @@
 	<ItemGroup>
 		<ProjectReference Include="..\cylsg.Authorization\cylsg.Authorization.csproj" />
 		<ProjectReference Include="..\cylsg.Core\cylsg.Core.csproj" />
+		<ProjectReference Include="..\Cylsg.Filter\Cylsg.Filter.csproj" />
 		<ProjectReference Include="..\cylsg.Model\cylsg.Model.csproj" />
 		<ProjectReference Include="..\cylsg.redis\cylsg.redis.csproj" />
 		<ProjectReference Include="..\cylsg.utility\cylsg.utility.csproj" />
+		<ProjectReference Include="..\EzInitqMessageDef\EzInitqMessageDef.csproj" />
 		<ProjectReference Include="..\EzTencentCloud\EzTencentCloud.csproj" />
 		<ProjectReference Include="..\EzUpFile\EzUpFile.csproj" />
 		<ProjectReference Include="..\EzWechat\EzWechat.csproj" />
diff --git a/cylsg/cylsg.Application/cylsg.Application.xml b/cylsg/cylsg.Application/cylsg.Application.xml
index b9d8279..1aa58f3 100644
--- a/cylsg/cylsg.Application/cylsg.Application.xml
+++ b/cylsg/cylsg.Application/cylsg.Application.xml
@@ -62,6 +62,586 @@
             jscode
             </summary>
         </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.Id">
+            <summary>
+            鎷涘伐Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.OrderUserId">
+            <summary>
+            鎷涘伐鐢ㄦ埛id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.OrderName">
+            <summary>
+            鎷涘伐鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WordStartTime">
+            <summary>
+            宸ヤ綔寮�濮嬫椂闂�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WordEndTime">
+            <summary>
+            宸ヤ綔缁撴潫鏃堕棿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.Demand">
+            <summary>
+            闇�姹�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WorderCount">
+            <summary>
+            鎷涘伐浜烘暟
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WorderCounted">
+            <summary>
+            宸叉嫑宸ヤ汉鏁�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WorderAddress">
+            <summary>
+            宸ヤ綔鍦扮偣
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.ContactPhone">
+            <summary>
+            鑱旂郴鐢佃瘽
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WorkerType">
+            <summary>
+            宸ヤ綔鏂瑰紡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.WorkPrice">
+            <summary>
+            宸ヤ环
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.OrderStatus">
+            <summary>
+            鎷涘伐鐘舵��
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.OrderStatusName">
+            <summary>
+            鏄惁閫変腑
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.IsSelected">
+            <summary>
+            鏄惁閫変腑
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.IsSelectedName">
+            <summary>
+            鏄惁閫変腑
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDto.orderBidding">
+            <summary>
+            鎷涘伐鏄庣粏
+            </summary>
+        </member>
+        <member name="T:cylsg.Application.Orders.Dtos.OrderBiddingDto">
+            <summary>
+            鎷涘伐鏄庣粏
+            </summary>
+        </member>
+        <member name="M:cylsg.Application.Orders.Dtos.OrderBiddingDto.#ctor">
+            <summary>
+            鎷涘伐鏄庣粏
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.Id">
+            <summary>
+            宸ヤ汉鎶曢�扞d
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.WorkerUserId">
+            <summary>
+            鐢ㄦ埛id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.WorkerName">
+            <summary>
+            鐢ㄦ埛鏄电О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.WorkerAvatar">
+            <summary>
+            鐢ㄦ埛鏄电О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.OrderId">
+            <summary>
+            鎷涘伐id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.IsSelected">
+            <summary>
+            鏄惁閫変腑
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.IsSelectedName">
+            <summary>
+            鏄惁閫変腑
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.Selectedtime">
+            <summary>
+            閫変腑鏃堕棿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.Remark">
+            <summary>
+            澶囨敞
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDto.Salary">
+            <summary>
+            宸ヨ祫鎬婚
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.BaoMingDto.OrderId">
+            <summary>
+            鎷涘伐OrderId
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.QueRenDto.OrderBiddingId">
+            <summary>
+            鎷涘伐鏄庣粏OrderBiddingId
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaDetailDto.OrderBiddingDetailId">
+            <summary>
+            鎷涘伐鏄庣粏OrderBiddingId
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaDto.OrderBiddingId">
+            <summary>
+            鎷涘伐鏄庣粏OrderBiddingId
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaDto.CheckPhoto">
+            <summary>
+            鎵撳崱鐓х墖
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaDto.FaceImg">
+            <summary>
+            浜鸿劯鍥剧墖
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.OrderBiddingDetailId">
+            <summary>
+            宸ヤ汉宸ヤ綔鏄庣粏琛↖d
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.OrderBiddingId">
+            <summary>
+            宸ヤ汉鎶曢�抜d
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.WorkDate">
+            <summary>
+            宸ヤ綔鏃ユ湡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.WorkTime">
+            <summary>
+            宸ヤ綔鏃堕暱
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.WorkCount">
+            <summary>
+            璁′欢鏁伴噺
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.TodaySalary">
+            <summary>
+            褰撴棩宸ヨ祫
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.IsShenPi">
+            <summary>
+            瀹℃壒鐘舵��
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.ShenPitime">
+            <summary>
+            瀹℃壒鏃堕棿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.IsTiXian">
+            <summary>
+            鏄惁鎻愮幇
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.TiXiantime">
+            <summary>
+            鎻愮幇鏃堕棿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailDto.orderBiddingDetailCheck">
+            <summary>
+            鎵撳崱鏄庣粏
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailCheckDto.OrderBiddingDetailCheckId">
+            <summary>
+            鎵撳崱璁板綍琛↖d
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailCheckDto.OrderBiddingDetailId">
+            <summary>
+            宸ヤ汉宸ヤ綔鏄庣粏琛↖d
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailCheckDto.CheckPhoto">
+            <summary>
+            鎵撳崱鐓х墖
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderBiddingDetailCheckDto.Checktime">
+            <summary>
+            鎵撳崱鏃堕棿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.OrderBiddingDetailId">
+            <summary>
+            鎷涘伐鎵撳崱Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.OrderName">
+            <summary>
+            鎷涘伐鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.WorkDate">
+            <summary>
+            宸ヤ綔鏃ユ湡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.WorkTime">
+            <summary>
+            宸ヤ綔鏃堕暱
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.WorkerType">
+            <summary>
+            宸ヤ綔鏂瑰紡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.WorkerTypeName">
+            <summary>
+            宸ヤ綔鏂瑰紡鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.WorkPrice">
+            <summary>
+            宸ヤ环
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.WorkCount">
+            <summary>
+            璁′欢鏁伴噺
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.TodaySalary">
+            <summary>
+            褰撴棩宸ヨ祫
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.IsShenPi">
+            <summary>
+            瀹℃壒鐘舵��
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.IsShenPiName">
+            <summary>
+            瀹℃壒鐘舵�佸悕绉�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaDto.DakaMingxi">
+            <summary>
+            鎵撳崱鏄庣粏
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.OrderBiddingDetailId">
+            <summary>
+            鎷涘伐鎵撳崱Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.OrderName">
+            <summary>
+            鎷涘伐鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkDate">
+            <summary>
+            宸ヤ綔鏃ユ湡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkTime">
+            <summary>
+            宸ヤ綔鏃堕暱
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkerType">
+            <summary>
+            宸ヤ綔鏂瑰紡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkerTypeName">
+            <summary>
+            宸ヤ綔鏂瑰紡鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkPrice">
+            <summary>
+            宸ヤ环
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkCount">
+            <summary>
+            璁′欢鏁伴噺
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.TodaySalary">
+            <summary>
+            褰撴棩宸ヨ祫
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.IsShenPi">
+            <summary>
+            瀹℃壒鐘舵��
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.IsShenPiName">
+            <summary>
+            瀹℃壒鐘舵�佸悕绉�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkerUserId">
+            <summary>
+            鐢ㄦ埛id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkerUserName">
+            <summary>
+            鐢ㄦ埛鏄电О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.WorkerUserAvatar">
+            <summary>
+            鐢ㄦ埛澶村儚
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaMingxiDto.orderBiddingDetailCheck">
+            <summary>
+            鎵撳崱鏄庣粏
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaQuerenDetailDto.OrderBiddingDetailId">
+            <summary>
+            鎷涘伐鎵撳崱Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaQuerenDetailDto.WorkTime">
+            <summary>
+            宸ヤ綔鏃堕暱
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaQuerenDetailDto.WorkCount">
+            <summary>
+            璁′欢鏁伴噺
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.DakaQuerenDetailDto.TodaySalary">
+            <summary>
+            褰撴棩宸ヨ祫
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageBaseSearch.PageIndex">
+            <summary>
+            椤电爜
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageBaseSearch.PageSize">
+            <summary>
+            鍒嗛〉澶у皬
+            </summary>
+        </member>
+        <member name="T:cylsg.Application.Orders.Dtos.PageResult`1">
+            <summary>
+            鍒嗛〉鏁版嵁淇℃伅
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageResult`1.PageIndex">
+            <summary>
+            椤电爜
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageResult`1.PageSize">
+            <summary>
+            鍒嗛〉澶у皬
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageResult`1.TotalCount">
+            <summary>
+            璁板綍鎬绘暟
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageResult`1.Items">
+            <summary>
+            璁板綍闆嗗悎
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.PageResult`1.TotalPage">
+            <summary>
+            鎬婚〉鏁�
+            </summary>
+        </member>
+        <member name="T:cylsg.Application.Orders.Dtos.OrderPageSearch">
+            <summary>
+            鎷涘伐璁㈠崟鍒嗛〉鏌ヨ
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderPageSearch.OrderName">
+            <summary>
+            鎷涘伐鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderPageSearch.WordStartTime">
+            <summary>
+            宸ヤ綔寮�濮嬫椂闂�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderPageSearch.WordEndTime">
+            <summary>
+            宸ヤ綔缁撴潫鏃堕棿
+            </summary>
+        </member>
+        <member name="T:cylsg.Application.Orders.Dtos.OrderDakaPageSearch">
+            <summary>
+            鎷涘伐璁㈠崟鍒嗛〉鏌ヨ
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaPageSearch.WordDate">
+            <summary>
+            宸ヤ綔鏃ユ湡
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Orders.Dtos.OrderDakaPageSearch.IsJieSuan">
+            <summary>
+            鏄惁缁撶畻
+            </summary>
+        </member>
+        <member name="T:cylsg.Application.Orders.OrderCompanyAppService">
+            <summary>
+            璁㈠崟鍏徃鎺ュ彛
+            </summary>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderCompanyAppService.PostMyListPage(cylsg.Application.Orders.Dtos.OrderPageSearch)">
+            <summary>
+            鏌ヨ鍏徃宸茬粡鍙戝竷鐨勬嫑宸ヨ鍗�
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderCompanyAppService.saveOrder(cylsg.Application.Orders.Dtos.OrderDto)">
+            <summary>
+            淇濆瓨鎷涘伐淇℃伅锛堟柊澧�/淇敼锛�
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderCompanyAppService.saveQueRen(cylsg.Application.Orders.Dtos.QueRenDto)">
+            <summary>
+            鍏徃閫夋嫨宸ヤ汉
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderCompanyAppService.PostMyComDakaListPage(cylsg.Application.Orders.Dtos.OrderDakaPageSearch)">
+            <summary>
+            鏌ヨ鍏徃涓嬪伐浜虹殑鎵撳崱璁板綍
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderCompanyAppService.saveDakaDetail(cylsg.Application.Orders.Dtos.DakaQuerenDetailDto)">
+            <summary>
+            鍏徃纭宸ヤ汉褰撳ぉ鎵撳崱璇︽儏
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:cylsg.Application.Orders.OrderWorkerAppService">
+            <summary>
+            璁㈠崟宸ヤ汉鎺ュ彛
+            </summary>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.PostListPage(cylsg.Application.Orders.Dtos.OrderPageSearch)">
+            <summary>
+            鏌ヨ宸ヤ汉鍙互鎶曢�掔殑鎷涘伐璁㈠崟
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.PostMyListPage(cylsg.Application.Orders.Dtos.OrderPageSearch)">
+            <summary>
+            鏌ヨ宸ヤ汉宸茬粡鎶曢�掔殑鎷涘伐璁㈠崟
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.getOrder(System.Int32)">
+            <summary>
+            鏍规嵁Id鏌ヨ鎷涘伐鏄庣粏
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.saveBaoMing(cylsg.Application.Orders.Dtos.BaoMingDto)">
+            <summary>
+            宸ヤ汉鎶曢��
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.getDaka(cylsg.Application.Orders.Dtos.BaoMingDto)">
+            <summary>
+            杩涘叆鎵撳崱椤甸潰
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.saveDaka(cylsg.Application.Orders.Dtos.DakaDto)">
+            <summary>
+            宸ヤ汉鎵撳崱
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.PostMyDakaListPage(cylsg.Application.Orders.Dtos.OrderDakaPageSearch)">
+            <summary>
+            鏌ヨ宸ヤ汉鐨勬墦鍗¤褰�
+            </summary>
+            <param name="page"></param>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.getDakaDetail(cylsg.Application.Orders.Dtos.DakaDetailDto)">
+            <summary>
+            杩涘叆濉啓/瀹℃壒宸ヤ环椤甸潰
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Orders.OrderWorkerAppService.saveDakaDetail(cylsg.Application.Orders.Dtos.DakaQuerenDetailDto)">
+            <summary>
+            宸ヤ汉纭褰撳ぉ鎵撳崱璇︽儏
+            </summary>
+            <returns></returns>
+        </member>
         <member name="T:cylsg.Application.SystemAppService">
             <summary>
             绯荤粺鏈嶅姟鎺ュ彛
@@ -73,5 +653,211 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="T:cylsg.Application.Transfer.UserTransfer">
+            <summary>
+                鎻愮幇鏈嶅姟绋嬪簭
+            </summary>
+            
+        </member>
+        <member name="M:cylsg.Application.Transfer.UserTransfer.GetTransferMoney(System.Decimal)">
+            <summary>
+            鎻愮幇
+            </summary>
+            <param name="Money"></param>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.Id">
+            <summary>
+            鐢ㄦ埛Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.Phone">
+            <summary>
+            鐢佃瘽
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.name">
+            <summary>
+            鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.ItCode">
+            <summary>
+            鐢佃瘽鍙风爜
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.Nickname">
+            <summary>
+            鏄电О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.PassWord">
+            <summary>
+            瀵嗙爜
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.Avatar">
+            <summary>
+            澶村儚鍦板潃
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.WxOpenId">
+            <summary>
+            寰俊WxOpenId
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.userWorker">
+            <summary>
+            鐢ㄦ埛宸ヤ汉淇℃伅
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserDto.userCompany">
+            <summary>
+            鐢ㄦ埛鍏徃淇℃伅
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.Id">
+            <summary>
+            鐢ㄦ埛宸ヤ汉Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.UserId">
+            <summary>
+            鐢ㄦ埛id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.IdCardFace">
+            <summary>
+            韬唤璇佹闈㈣矾寰�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.IdCardBack">
+            <summary>
+            韬唤璇佸弽闈㈣矾寰�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.name">
+            <summary>
+            濮撳悕
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.Phone">
+            <summary>
+            鐢佃瘽鍙风爜
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.IdCode">
+            <summary>
+            韬唤璇佸彿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.Address">
+            <summary>
+            鑱旂郴鍦板潃
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.Resume">
+            <summary>
+            绠�鍘嗘弿杩�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.TiXianZonge">
+            <summary>
+            鎻愮幇鎬婚
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserWorkerDto.YiTiXianJine">
+            <summary>
+            宸叉彁鐜伴噾棰�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Id">
+            <summary>
+            鐢ㄦ埛鍏徃Id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.UserId">
+            <summary>
+            鐢ㄦ埛id
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.BusinessLicense">
+            <summary>
+            钀ヤ笟鎵х収璺緞
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Suppliername">
+            <summary>
+            浼佷笟鍚嶇О
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Regtime">
+            <summary>
+            娉ㄥ唽鏃堕棿
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Address">
+            <summary>
+            鑱旂郴鍦板潃
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Suppliercode">
+            <summary>
+            浼佷笟娉ㄥ唽鍙�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Contact">
+            <summary>
+            鑱旂郴浜�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Phone">
+            <summary>
+            鑱旂郴鐢佃瘽
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.Resume">
+            <summary>
+            鍏徃绠�浠�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.ChongZhiYue">
+            <summary>
+            鍏呭�间綑棰�
+            </summary>
+        </member>
+        <member name="P:cylsg.Application.Users.Dtos.UserCompanyDto.IsTiXian">
+            <summary>
+            鏄惁鍙互鍏呭�硷紝宸ヤ汉鎻愮幇
+            </summary>
+        </member>
+        <member name="T:cylsg.Application.Users.UserAppService">
+            <summary>
+            鐢ㄦ埛鎺ュ彛
+            </summary>
+        </member>
+        <member name="M:cylsg.Application.Users.UserAppService.getUser">
+            <summary>
+            鏌ヨ褰撳墠鐢ㄦ埛
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Users.UserAppService.saveUserWorker(cylsg.Application.Users.Dtos.UserWorkerDto)">
+            <summary>
+            淇濆瓨鐢ㄦ埛宸ヤ汉淇℃伅
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Users.UserAppService.saveUserCompany(cylsg.Application.Users.Dtos.UserCompanyDto)">
+            <summary>
+            淇濆瓨鐢ㄦ埛鍏徃淇℃伅
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:cylsg.Application.Users.UserAppService.getUser(System.Int32)">
+            <summary>
+            鏍规嵁Id鏌ヨ鐢ㄦ埛
+            </summary>
+            <returns></returns>
+        </member>
     </members>
 </doc>
diff --git a/cylsg/cylsg.Core/Attributes/CoderFirstAttribute.cs b/cylsg/cylsg.Core/Attributes/CoderFirstAttribute.cs
index e7facf9..53a82fb 100644
--- a/cylsg/cylsg.Core/Attributes/CoderFirstAttribute.cs
+++ b/cylsg/cylsg.Core/Attributes/CoderFirstAttribute.cs
@@ -12,5 +12,6 @@
     [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
     public class CoderFirstAttribute : Attribute
     {
+
     }
 }
diff --git a/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs b/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs
new file mode 100644
index 0000000..697153d
--- /dev/null
+++ b/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs
@@ -0,0 +1,249 @@
+锘縰sing cylsg.Core;
+using cylsg.Core.Attributes;
+using Newtonsoft.Json;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+namespace cylsg.Model.TransferOrder
+{
+    /// <summary>
+    /// 杞处鍗曡处妯″瀷
+    /// </summary>
+    [SugarTable(TableDescription = "杞处鍗曡处妯″瀷")]
+    [CoderFirst]
+    public class WeChatTransferOrder: BaseModel
+    {
+        /// <summary>
+        /// ID
+        /// </summary>
+        [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true)]
+        public int Id { get; set; }
+        /// <summary>
+        /// 鑾峰彇鎴栬缃晢鎴锋壒娆″崟鍙枫��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃晢鎴锋壒娆″崟鍙�")]
+        public string OutBatchNumber { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃井淇℃壒娆″崟鍙枫��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃井淇℃壒娆″崟鍙�")]
+        public string BatchId { get; set; }
+
+      
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆$姸鎬併��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$姸鎬�")]
+        public string? BatchStatus { get; set; }
+
+
+
+
+
+
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆$殑鍚嶇О銆�
+        /// 绀轰緥: "2019骞�1鏈堟繁鍦冲垎閮ㄦ姤閿�鍗�"
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$殑鍚嶇О", IsNullable = true)]
+        public string? BatchName { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆$殑澶囨敞銆�
+        /// 绀轰緥: "2019骞�1鏈堟繁鍦冲垎閮ㄦ姤閿�鍗�"
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$殑澶囨敞", IsNullable = true)]
+        public string? BatchRemark { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃叧闂壒娆$殑鍘熷洜銆�
+        /// 绀轰緥: "OVERDUE_CLOSE"
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃叧闂壒娆$殑鍘熷洜", IsNullable = true)]
+        public string? CloseReason { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆′腑鐨勬�婚噾棰濄��
+        /// 绀轰緥: 4000000
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆′腑鐨勬�婚噾棰�", IsNullable = true)]
+        public int? TotalAmount { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆′腑鐨勯」鐩�绘暟銆�
+        /// 绀轰緥: 200
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆′腑鐨勯」鐩�绘暟", IsNullable = true)]
+        public int? TotalNum { get; set; }
+
+
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熸�婚噾棰濄��
+        /// 绀轰緥: 3900000
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熸�婚噾棰�", IsNullable = true)]
+        public int? SuccessAmount { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熼」鐩暟銆�
+        /// 绀轰緥: 199
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熼」鐩暟", IsNullable = true)]
+        public int? SuccessNum { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ユ�婚噾棰濄��
+        /// 绀轰緥: 100000
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ユ�婚噾棰�", IsNullable = true)]
+        public int? FailAmount { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ラ」鐩暟銆�
+        /// 绀轰緥: 1
+        /// </summary>
+        /// 
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ラ」鐩暟", IsNullable = true)]
+        public int? FailNum { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃浆璐﹀満鏅爣璇嗙銆�
+        /// 绀轰緥: "1000"
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃浆璐﹀満鏅爣璇嗙", IsNullable = true)]
+        public string? TransferSceneId { get; set; }
+    
+
+
+
+    /// <summary>
+    /// 鑾峰彇鎴栬缃壒娆′腑鐨勮缁嗚浆璐﹀垪琛ㄣ��
+    /// </summary>
+    [Navigate(NavigateType.OneToMany,nameof(WeChatTransferItem.WeChatTransferOrderID))]
+        public List<WeChatTransferItem> TransferDetailList { get; set; }
+    }
+
+
+    /// <summary>
+    /// 杞处鍗曞垪琛�
+    /// </summary>
+    [SugarTable(TableDescription = "杞处鍗曡处璇︾粏鍒楄〃妯″瀷")]
+    public class WeChatTransferItem:BaseModel
+    {
+        /// <summary>
+        /// ID
+        /// </summary>
+        [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true)]
+        public int Id { get; set; }
+
+
+        /// <summary>
+        /// WeChatTransferOrderID
+        /// </summary>       
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$姸鎬�")]
+        public int WeChatTransferOrderID { get; set; }
+        /// <summary>
+        /// 鑾峰彇鎴栬缃晢鎴锋槑缁嗗崟鍙枫��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$姸鎬�")]
+        public string OutDetailNumber { get; set; }
+
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃浆璐﹂噾棰濓紙鍗曚綅锛氬垎锛夈��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$姸鎬�")]
+        public int TransferAmount { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃浆璐﹀娉ㄣ��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃壒娆$姸鎬�")]
+        public string TransferRemark { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃敹娆剧敤鎴风殑 OpenId銆�
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃敹娆剧敤鎴风殑 OpenId")]
+        public string OpenId { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃敹娆剧敤鎴峰鍚嶏紙闇�浣跨敤骞冲彴鍏挜/璇佷功鍔犲瘑锛夈��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃敹娆剧敤鎴峰鍚�",IsNullable =true)]
+        public string? UserName { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃敹娆剧敤鎴疯韩浠借瘉鍙凤紙闇�浣跨敤骞冲彴鍏挜/璇佷功鍔犲瘑锛夈��
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃敹娆剧敤鎴疯韩浠借瘉鍙�",IsNullable =true)]
+        public string? UserIdCardNumber { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃槑缁嗙姸鎬併��
+        /// INIT: 鍒濆鎬併�傜郴缁熻浆璐︽牎楠屼腑
+        /// WAIT_PAY: 寰呯‘璁ゃ�傚緟鍟嗘埛纭, 绗﹀悎鍏嶅瘑鏉′欢鏃�, 绯荤粺浼氳嚜鍔ㄦ壄杞负杞处涓�
+        /// PROCESSING: 杞处涓�傛鍦ㄥ鐞嗕腑锛岃浆璐︾粨鏋滃皻鏈槑纭�
+        /// SUCCESS: 杞处鎴愬姛
+        /// FAIL: 杞处澶辫触銆傞渶瑕佺‘璁ゅけ璐ュ師鍥犲悗锛屽啀鍐冲畾鏄惁閲嶆柊鍙戣捣瀵硅绗旀槑缁嗗崟鐨勮浆璐︼紙骞堕潪鏁翠釜杞处鎵规鍗曪級
+        /// 鏈�澶ч暱搴�: 32
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃槑缁嗙姸鎬�", IsNullable = true)]
+        public string? DetailStatus { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃槑缁嗗け璐ュ師鍥犮��
+        /// 濡傛灉杞处澶辫触鍒欐湁澶辫触鍘熷洜銆�
+        /// 鍙�夊彇鍊硷細
+        /// ACCOUNT_FROZEN: 璇ョ敤鎴疯处鎴疯鍐荤粨
+        /// REAL_NAME_CHECK_FAIL: 鏀舵浜烘湭瀹炲悕璁よ瘉锛岄渶瑕佺敤鎴峰畬鎴愬井淇″疄鍚嶈璇�
+        /// NAME_NOT_CORRECT: 鏀舵浜哄鍚嶆牎楠屼笉閫氳繃锛岃鏍稿疄淇℃伅
+        /// OPENID_INVALID: Openid鏍煎紡閿欒鎴栬�呬笉灞炰簬鍟嗗鍏紬璐﹀彿
+        /// TRANSFER_QUOTA_EXCEED: 瓒呰繃鐢ㄦ埛鍗曠瑪鏀舵棰濆害锛屾牳瀹炰骇鍝佽缃槸鍚﹀噯纭�
+        /// DAY_RECEIVED_QUOTA_EXCEED: 瓒呰繃鐢ㄦ埛鍗曟棩鏀舵棰濆害锛屾牳瀹炰骇鍝佽缃槸鍚﹀噯纭�
+        /// MONTH_RECEIVED_QUOTA_EXCEED: 瓒呰繃鐢ㄦ埛鍗曟湀鏀舵棰濆害锛屾牳瀹炰骇鍝佽缃槸鍚﹀噯纭�
+        /// DAY_RECEIVED_COUNT_EXCEED: 瓒呰繃鐢ㄦ埛鍗曟棩鏀舵娆℃暟锛屾牳瀹炰骇鍝佽缃槸鍚﹀噯纭�
+        /// PRODUCT_AUTH_CHECK_FAIL: 鏈紑閫氳鏉冮檺鎴栨潈闄愯鍐荤粨锛岃鏍稿疄浜у搧鏉冮檺鐘舵��
+        /// OVERDUE_CLOSE: 瓒呰繃绯荤粺閲嶈瘯鏈燂紝绯荤粺鑷姩鍏抽棴
+        /// ID_CARD_NOT_CORRECT: 鏀舵浜鸿韩浠借瘉鏍¢獙涓嶉�氳繃锛岃鏍稿疄淇℃伅
+        /// ACCOUNT_NOT_EXIST: 璇ョ敤鎴疯处鎴蜂笉瀛樺湪
+        /// TRANSFER_RISK: 璇ョ瑪杞处鍙兘瀛樺湪椋庨櫓锛屽凡琚井淇℃嫤鎴�
+        /// OTHER_FAIL_REASON_TYPE: 鍏跺畠澶辫触鍘熷洜
+        /// REALNAME_ACCOUNT_RECEIVED_QUOTA_EXCEED: 鐢ㄦ埛璐︽埛鏀舵鍙楅檺锛岃寮曞鐢ㄦ埛鍦ㄥ井淇℃敮浠樻煡鐪嬭鎯�
+        /// RECEIVE_ACCOUNT_NOT_PERMMIT: 鏈厤缃鐢ㄦ埛涓鸿浆璐︽敹娆句汉锛岃鍦ㄤ骇鍝佽缃腑璋冩暣锛屾坊鍔犺鐢ㄦ埛涓烘敹娆句汉
+        /// PAYEE_ACCOUNT_ABNORMAL: 鐢ㄦ埛璐︽埛鏀舵寮傚父锛岃鑱旂郴鐢ㄦ埛瀹屽杽鍏跺湪寰俊鏀粯鐨勮韩浠戒俊鎭互缁х画鏀舵
+        /// PAYER_ACCOUNT_ABNORMAL: 鍟嗘埛璐︽埛浠樻鍙楅檺锛屽彲鍓嶅線鍟嗘埛骞冲彴鑾峰彇瑙i櫎鍔熻兘闄愬埗鎸囧紩
+        /// TRANSFER_SCENE_UNAVAILABLE: 璇ヨ浆璐﹀満鏅殏涓嶅彲鐢紝璇风‘璁よ浆璐﹀満鏅疘D鏄惁姝g‘
+        /// TRANSFER_SCENE_INVALID: 浣犲皻鏈幏鍙栬杞处鍦烘櫙锛岃纭杞处鍦烘櫙ID鏄惁姝g‘
+        /// TRANSFER_REMARK_SET_FAIL: 杞处澶囨敞璁剧疆澶辫触锛� 璇疯皟鏁村悗閲嶆柊鍐嶈瘯
+        /// RECEIVE_ACCOUNT_NOT_CONFIGURE: 璇峰墠寰�鍟嗘埛骞冲彴-鍟嗗杞处鍒伴浂閽�-鍓嶅線鍔熻兘-杞处鍦烘櫙涓坊鍔�
+        /// BLOCK_B2C_USERLIMITAMOUNT_BSRULE_MONTH: 瓒呭嚭鐢ㄦ埛鍗曟湀杞处鏀舵20w闄愰锛屾湰鏈堜笉鏀寔缁х画鍚戣鐢ㄦ埛浠樻
+        /// BLOCK_B2C_USERLIMITAMOUNT_MONTH: 鐢ㄦ埛璐︽埛瀛樺湪椋庨櫓鏀舵鍙楅檺锛屾湰鏈堜笉鏀寔缁х画鍚戣鐢ㄦ埛浠樻
+        /// MERCHANT_REJECT: 鍟嗘埛鍛樺伐锛堣浆璐﹂獙瀵嗕汉锛夊凡椹冲洖杞处
+        /// MERCHANT_NOT_CONFIRM: 鍟嗘埛鍛樺伐锛堣浆璐﹂獙瀵嗕汉锛夎秴鏃舵湭楠屽瘑
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鑾峰彇鎴栬缃槑缁嗗け璐ュ師鍥�", IsNullable = true)]
+        public string? FailReason {  get; set; }
+    }
+
+
+
+}
diff --git a/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs b/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs
index f867e3f..30a5b4d 100644
--- a/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs
+++ b/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs
@@ -1,5 +1,6 @@
 锘縰sing cylsg.Core;
 using cylsg.Core.Attributes;
+using cylsg.Model.TransferOrder;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -52,6 +53,17 @@
         public string Remark { get; set; }
 
 
+        /// <summary>
+        /// 寰俊鏀粯璁板綍
+        /// </summary>
+        [SugarColumn(ColumnDescription = "澶囨敞",IsNullable = true)]
+        public int? WeChatTransferOrderID {  get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(  WeChatTransferOrderID))]
+        public WeChatTransferOrder? WeChatTransferOrderInfo { get; set; }
+
     }
 
     /// <summary>
diff --git a/cylsg/cylsg.Web.Core/cylsg.Web.Core.csproj b/cylsg/cylsg.Web.Core/cylsg.Web.Core.csproj
index 76cc66d..4b36e83 100644
--- a/cylsg/cylsg.Web.Core/cylsg.Web.Core.csproj
+++ b/cylsg/cylsg.Web.Core/cylsg.Web.Core.csproj
@@ -16,7 +16,11 @@
 	<ItemGroup>
 		<ProjectReference Include="..\cylsg.Application\cylsg.Application.csproj" />
 		<ProjectReference Include="..\cylsg.Authorization\cylsg.Authorization.csproj" />
+		<ProjectReference Include="..\EzInitqMessageDef\EzInitqMessageDef.csproj" />
+		<ProjectReference Include="..\EzInitQ\EzInitQ.csproj" />
+		<ProjectReference Include="..\EzJob\EzJob.csproj" />
 		<ProjectReference Include="..\EzUpFile\EzUpFile.csproj" />
+		<ProjectReference Include="..\EzWechat\EzWechat.csproj" />
 	</ItemGroup>
 
 </Project>
diff --git a/cylsg/cylsg.redis/EzCoreNetRedisService.cs b/cylsg/cylsg.redis/EzCoreNetRedisService.cs
index ba679b1..5137422 100644
--- a/cylsg/cylsg.redis/EzCoreNetRedisService.cs
+++ b/cylsg/cylsg.redis/EzCoreNetRedisService.cs
@@ -1,5 +1,6 @@
 锘縰sing Furion;
 using Furion.DependencyInjection;
+using Microsoft.AspNetCore.DataProtection.KeyManagement;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -99,6 +100,25 @@
             return Data;
         }
 
-        
+        public long Incrby(string key)
+        {
+         return  RedisHelper.IncrBy(key);
+        }
+
+        public string Get32sn()
+        {
+            string formattedDate = DateTime.Now.ToString("yyyyMMdd");
+
+
+            var sn = Incrby($"CreatSnKey:{formattedDate}");
+            if(sn<1)
+            {
+                //璁剧疆鏈夋晥鏈熼檺涓�24灏忔椂
+                SetTtl($"CreatSnKey:{formattedDate}", 24 * 60 * 60);
+            }
+            string re = "Ez" + formattedDate + sn.ToString();
+
+            return re;
+        }
     }
 }
diff --git a/cylsg/cylsg.redis/IEzCoreNetRedisService.cs b/cylsg/cylsg.redis/IEzCoreNetRedisService.cs
index 853b9d2..e92bb05 100644
--- a/cylsg/cylsg.redis/IEzCoreNetRedisService.cs
+++ b/cylsg/cylsg.redis/IEzCoreNetRedisService.cs
@@ -76,5 +76,16 @@
         /// <param name="Prefix"></param>
         /// <returns></returns>
         Task<long> delegateAllKeyWith(string Prefix);
+        /// <summary>
+        /// 鍔犱竴
+        /// </summary>
+        /// <param name="key"></param>
+        long  Incrby(string key);
+
+        /// <summary>
+        /// 鑾峰彇32浣峴n
+        /// </summary>
+        string Get32sn();
+     
     }
 }
diff --git a/cylsg/cylsg.sln b/cylsg/cylsg.sln
index 963e45a..e2b0e88 100644
--- a/cylsg/cylsg.sln
+++ b/cylsg/cylsg.sln
@@ -23,9 +23,17 @@
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "cylsg.Authorization", "cylsg.Authorization\cylsg.Authorization.csproj", "{1197C9BB-C73D-42FB-A114-AFB0A7466615}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EzTencentCloud", "EzTencentCloud\EzTencentCloud.csproj", "{8E2530EC-45FE-4EC6-A29A-1B8F25E0F94B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EzTencentCloud", "EzTencentCloud\EzTencentCloud.csproj", "{8E2530EC-45FE-4EC6-A29A-1B8F25E0F94B}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EzUpFile", "EzUpFile\EzUpFile.csproj", "{040F7EE0-B57B-4134-8538-20B9599FB898}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EzUpFile", "EzUpFile\EzUpFile.csproj", "{040F7EE0-B57B-4134-8538-20B9599FB898}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EzInitQ", "EzInitQ\EzInitQ.csproj", "{5C84DC88-9B0E-475F-9D20-C7608FDF6B37}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EzInitqMessageDef", "EzInitqMessageDef\EzInitqMessageDef.csproj", "{A17A010E-238D-4C7C-B1F5-5F2B0DFCC619}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cylsg.Filter", "Cylsg.Filter\Cylsg.Filter.csproj", "{2A3AF5AA-E3BE-4C98-A3A7-185ED6F938FE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EzJob", "EzJob\EzJob.csproj", "{EB4CED81-7245-4477-9541-8167BD522CC6}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -81,6 +89,22 @@
 		{040F7EE0-B57B-4134-8538-20B9599FB898}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{040F7EE0-B57B-4134-8538-20B9599FB898}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{040F7EE0-B57B-4134-8538-20B9599FB898}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5C84DC88-9B0E-475F-9D20-C7608FDF6B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5C84DC88-9B0E-475F-9D20-C7608FDF6B37}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5C84DC88-9B0E-475F-9D20-C7608FDF6B37}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5C84DC88-9B0E-475F-9D20-C7608FDF6B37}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A17A010E-238D-4C7C-B1F5-5F2B0DFCC619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A17A010E-238D-4C7C-B1F5-5F2B0DFCC619}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A17A010E-238D-4C7C-B1F5-5F2B0DFCC619}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A17A010E-238D-4C7C-B1F5-5F2B0DFCC619}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2A3AF5AA-E3BE-4C98-A3A7-185ED6F938FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2A3AF5AA-E3BE-4C98-A3A7-185ED6F938FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2A3AF5AA-E3BE-4C98-A3A7-185ED6F938FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2A3AF5AA-E3BE-4C98-A3A7-185ED6F938FE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EB4CED81-7245-4477-9541-8167BD522CC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EB4CED81-7245-4477-9541-8167BD522CC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EB4CED81-7245-4477-9541-8167BD522CC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EB4CED81-7245-4477-9541-8167BD522CC6}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

--
Gitblit v1.9.1