From d4a6d65f5e449c3e5464aa18ae97bf8953987217 Mon Sep 17 00:00:00 2001
From: LR-20210131IOQH\Administrator <jackcold@163.com>
Date: 星期二, 10 八月 2021 15:44:14 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/zhengcaioa

---
 zhengcaioa/zhengcaioa/Timer/TimerGetShopUsersService.cs |  374 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 374 insertions(+), 0 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Timer/TimerGetShopUsersService.cs b/zhengcaioa/zhengcaioa/Timer/TimerGetShopUsersService.cs
new file mode 100644
index 0000000..ae5d141
--- /dev/null
+++ b/zhengcaioa/zhengcaioa/Timer/TimerGetShopUsersService.cs
@@ -0,0 +1,374 @@
+锘縰sing DTO;
+using IServices;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Transactions;
+using zhengcaioa.IService;
+using zhengcaioa.Models;
+
+namespace zhengcaioa.Timer
+{
+    public class TimerGetShopUsersService : BackgroundService
+    {
+        private readonly ILogger _logger;
+        private readonly IConfiguration _configuration;
+        private readonly ILiaotianService _liaotianService;
+        private readonly IHttpClientFactory _clientFactory;
+        private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
+
+
+        public TimerGetShopUsersService(ILogger<TimerGetShopUsersService> logger, IServiceScopeFactory factory)
+        {
+            _logger = logger;
+            _configuration = factory.CreateScope().ServiceProvider.GetRequiredService<IConfiguration>();
+            _liaotianService = factory.CreateScope().ServiceProvider.GetRequiredService<ILiaotianService>();
+            _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>();
+            _cooperatecustomCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperatecustomCustomerService>();
+
+
+        }
+
+        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+        {
+            _logger.LogInformation("TimerGetShopUsersService is starting.");
+
+            //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt"));
+
+            DateTime datenow = DateTime.Now;
+            while (!stoppingToken.IsCancellationRequested)
+            {
+                _logger.LogInformation("TimerGetShopUsersService 寮�濮嬫墽琛�");
+                _logger.LogInformation(datenow.ToString("yyyy-MM-dd HH:mm:ss"));
+                //姣忎釜灏忔椂璁$畻涓�娆�
+                if (datenow.Hour == DateTime.Now.Hour)
+                //if (true)
+                {
+
+                    try
+                    {
+                        
+                        await this.huoquhuiyuanAsync();
+
+                    }
+                    catch (Exception ex)
+                    {
+                        _logger.LogInformation(ex.ToString());
+                    }
+
+                    datenow = DateTime.Now.AddHours(1);
+                }
+
+
+                await Task.Delay(TimeSpan.FromMinutes(10), stoppingToken);
+
+                _logger.LogInformation("TimerGetShopUsersService 缁х画鎵ц");
+            }
+
+            _logger.LogInformation("TimerGetShopUsersService background task is stopping.");
+        }
+
+        public override void Dispose()
+        {
+            base.Dispose();
+        }
+      
+
+        public async Task huoquhuiyuanAsync()
+        {
+            string Shuchengurl = _configuration.GetSection("Shuchengurl").Value;
+            string GetShopUsers = _configuration.GetSection("GetShopUsers").Value;
+
+
+            string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
+            string GetDateFirstOrderUser = _configuration.GetSection("GetDateFirstOrderUser").Value;
+            string GetUserinfoAndRule = _configuration.GetSection("GetUserinfoAndRule").Value;
+
+            ResultEntity resultEntity = new ResultEntity();
+            resultEntity.Result = false;
+
+
+
+ //           new TransactionScope(TransactionScopeOption.Required,
+ //    new TransactionOptions
+ //    {
+ //        IsolationLevel = IsolationLevel.ReadCommitted,
+ //        Timeout = TransactionManager.MaximumTimeout
+ //    }
+ //)
+
+
+
+
+
+
+
+            //using (TransactionScope scope = new TransactionScope())
+            //{
+            //鑾峰彇鏈�鍚庢洿鏂版椂闂�
+            DateTime start = DateTime.Now.AddYears(-10);
+                DateTime end = DateTime.Now;
+
+                var ssss = _liaotianService.GetSysUpdatetime("getCustomers");
+
+                if (ssss != null)
+                {
+                    start = ssss.Updatetime;
+                }
+                _logger.LogInformation("start:" + start);
+                _logger.LogInformation("end:" + end);
+
+
+            //鑾峰彇瀹㈡埛骞朵笖淇濆瓨鍒板悎浣滃鎴�
+
+            #region 涔﹀煄
+            string result = string.Empty;
+                Uri getUrl = new Uri(Shuchengurl + GetShopUsers + "?start="+ start.ToString("yyyy-MM-dd HH:mm:ss") + "&end="+ end.ToString("yyyy-MM-dd HH:mm:ss"));
+
+                var httpClient = _clientFactory.CreateClient();
+                httpClient.Timeout = new TimeSpan(0, 0, 10);
+                var Result = await httpClient.GetAsync(getUrl);
+                result = Result.Content.ReadAsStringAsync().Result;
+
+
+                _logger.LogInformation("result:" + result);
+            JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result);
+
+            if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
+            {
+                if(jobjectresult["returnObj"] != null && jobjectresult["returnObj"].ToString() != "")
+                {
+
+
+                    JArray hits = (JArray)jobjectresult["returnObj"];
+                    foreach (var hit in hits)
+                    {
+                        string id = hit["id"].ToString().ToLower();
+                        CooperatecustomCustomerDTO cooperatecustomCustomerDTO = _cooperatecustomCustomerService.GetList(id).FirstOrDefault();
+                        //濡傛灉涓嶅瓨鍦ㄥ叧鑱斿鎴�
+                        if (cooperatecustomCustomerDTO == null)
+                        {
+
+                            string result2 = string.Empty;
+                            Uri postUrl2 = new Uri(huiyuanurl + GetUserinfoAndRule);
+
+                            JObject questions2 = new JObject();
+                            questions2.Add("UserID", id);
+
+                            string requestJson2 = questions2.ToString();
+
+                            using (HttpContent httpContent = new StringContent(requestJson2))
+                            {
+                                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+                                var httpClient2 = _clientFactory.CreateClient();
+                                httpClient2.Timeout = new TimeSpan(0, 0, 10);
+                                var Result2 = await httpClient2.PostAsync(postUrl2, httpContent);
+                                result2 = Result2.Content.ReadAsStringAsync().Result;
+                            }
+
+                            _logger.LogInformation("result2:" + result2);
+
+                            JObject jobjectresult2 = (JObject)JsonConvert.DeserializeObject(result2);
+                            if (jobjectresult2["code"] == null || jobjectresult2["code"].ToString() != "1")
+                            {
+                                throw new Exception(jobjectresult2["msg"].ToString());
+                            }
+
+                            JObject jobjectkehu = (JObject)jobjectresult2["data"];
+                            if (jobjectkehu == null || jobjectkehu["Name"] == null || jobjectkehu["Name"].ToString() == "")
+                            {
+                                throw new Exception("鏈壘鍒板搴旂殑浼氬憳锛�");
+                            }
+
+
+                            cooperatecustomCustomerDTO = _cooperatecustomCustomerService.GetList("", jobjectkehu["Name"].ToString()).FirstOrDefault();
+                            //濡傛灉涓嶅瓨鍦ㄥ綋鍓嶅悕瀛楃殑瀹㈡埛
+                            if (cooperatecustomCustomerDTO == null)
+                            {
+                                cooperatecustomCustomerDTO = new CooperatecustomCustomerDTO();
+                                cooperatecustomCustomerDTO.Name = jobjectkehu["Name"].ToString();
+                                cooperatecustomCustomerDTO.Tel = jobjectkehu["phonecode"].ToString();
+                                cooperatecustomCustomerDTO.Phone = jobjectkehu["phonecode"].ToString();
+
+                                cooperatecustomCustomerDTO.HuiyuanId = id;
+                                //cooperatecustomCustomerDTO.Remark = hit["personal"].ToString() + "涓嬪崟鏃堕棿" + hit["Firsttime"].ToString();
+                                cooperatecustomCustomerDTO.Khly = "01";
+                                cooperatecustomCustomerDTO.Creater = "1";
+                                cooperatecustomCustomerDTO.Createtime = DateTime.Now;
+                                cooperatecustomCustomerDTO.Modifier = cooperatecustomCustomerDTO.Creater;
+                                cooperatecustomCustomerDTO.Modifytime = cooperatecustomCustomerDTO.Createtime;
+
+                                cooperatecustomCustomerDTO.ShrName = hit["accept_name"].ToString();
+                                cooperatecustomCustomerDTO.ShrTel = hit["mobile"].ToString();
+                                cooperatecustomCustomerDTO.ShrAddress = hit["area"].ToString() + hit["address"].ToString();
+
+                                resultEntity = _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
+                                if (!resultEntity.Result)
+                                {
+                                    throw new Exception("淇濆瓨鍚堜綔瀹㈡埛:" + cooperatecustomCustomerDTO.Name + "鍑洪敊锛�");
+                                }
+                            }
+                            else
+                            {
+                                cooperatecustomCustomerDTO.HuiyuanId = id;
+                                cooperatecustomCustomerDTO.ShrName = hit["accept_name"].ToString();
+                                cooperatecustomCustomerDTO.ShrTel = hit["mobile"].ToString();
+                                cooperatecustomCustomerDTO.ShrAddress = hit["area"].ToString() + hit["address"].ToString();
+                                resultEntity = _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
+                                if (!resultEntity.Result)
+                                {
+                                    throw new Exception("淇濆瓨鍚堜綔瀹㈡埛:" + cooperatecustomCustomerDTO.Name + "鍑洪敊锛�");
+                                }
+                            }
+                        }
+                        else
+                        {
+                            cooperatecustomCustomerDTO.HuiyuanId = id;
+                            cooperatecustomCustomerDTO.ShrName = hit["accept_name"].ToString();
+                            cooperatecustomCustomerDTO.ShrTel = hit["mobile"].ToString();
+                            cooperatecustomCustomerDTO.ShrAddress = hit["area"].ToString() + hit["address"].ToString();
+                            resultEntity = _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
+                            if (!resultEntity.Result)
+                            {
+                                throw new Exception("淇濆瓨鍚堜綔瀹㈡埛:" + cooperatecustomCustomerDTO.Name + "鍑洪敊锛�");
+                            }
+                        }
+
+                    }
+
+                }
+            }
+            else
+            {
+                throw new Exception(jobjectresult["error"].ToString());
+            }
+
+
+
+              
+
+            #endregion
+
+
+            #region 浼氬憳
+            string result1 = string.Empty;
+            Uri postUrl = new Uri(huiyuanurl + GetDateFirstOrderUser);
+
+            JObject questions = new JObject();
+            questions.Add("start", start.ToString("yyyy-MM-dd HH:mm:ss"));
+            questions.Add("end", end.ToString("yyyy-MM-dd HH:mm:ss"));
+
+            string requestJson = questions.ToString();
+
+            using (HttpContent httpContent = new StringContent(requestJson))
+            {
+                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+                var httpClient1 = _clientFactory.CreateClient();
+                httpClient1.Timeout = new TimeSpan(0, 0, 10);
+                var Result1 = await httpClient1.PostAsync(postUrl, httpContent);
+                result1 = Result1.Content.ReadAsStringAsync().Result;
+            }
+
+            _logger.LogInformation("result1:" + result1);
+            JObject jobject = (JObject)JsonConvert.DeserializeObject(result1);
+
+            if (jobject["code"] != null && jobject["code"].ToString() == "1")
+            {
+                if (jobject["data"] != null && jobject["data"].ToString() != "")
+                {
+                    JArray hits = (JArray)jobject["data"];
+                    foreach (var hit in hits)
+                    {
+                        CooperatecustomCustomerDTO cooperatecustomCustomerDTO = _cooperatecustomCustomerService.GetList(hit["ID"].ToString()).FirstOrDefault();
+                        //濡傛灉涓嶅瓨鍦ㄥ叧鑱斿鎴�
+                        if (cooperatecustomCustomerDTO == null)
+                        {
+                            cooperatecustomCustomerDTO = _cooperatecustomCustomerService.GetList("", hit["Name"].ToString()).FirstOrDefault();
+                            //濡傛灉涓嶅瓨鍦ㄥ綋鍓嶅悕瀛楃殑瀹㈡埛
+                            if (cooperatecustomCustomerDTO == null)
+                            {
+                                cooperatecustomCustomerDTO = new CooperatecustomCustomerDTO();
+                                cooperatecustomCustomerDTO.Name = hit["Name"].ToString();
+                                cooperatecustomCustomerDTO.Tel = hit["PhoneCode"].ToString();
+                                cooperatecustomCustomerDTO.Phone = hit["PhoneCode"].ToString();
+
+                                cooperatecustomCustomerDTO.HuiyuanId = hit["ID"].ToString();
+                                cooperatecustomCustomerDTO.Remark = hit["personal"].ToString() + "涓嬪崟鏃堕棿" + hit["Firsttime"].ToString();
+                                cooperatecustomCustomerDTO.Khly = "01";
+                                cooperatecustomCustomerDTO.Creater = "1";
+                                cooperatecustomCustomerDTO.Createtime = DateTime.Now;
+                                cooperatecustomCustomerDTO.Modifier = cooperatecustomCustomerDTO.Creater;
+                                cooperatecustomCustomerDTO.Modifytime = cooperatecustomCustomerDTO.Createtime;
+
+                                resultEntity = _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
+                                if (!resultEntity.Result)
+                                {
+                                    throw new Exception("淇濆瓨鍚堜綔瀹㈡埛:" + cooperatecustomCustomerDTO.Name + "鍑洪敊锛�");
+                                }
+                            }
+                            else
+                            {
+                                cooperatecustomCustomerDTO.HuiyuanId = hit["ID"].ToString();
+                                resultEntity = _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
+                                if (!resultEntity.Result)
+                                {
+                                    throw new Exception("淇濆瓨鍚堜綔瀹㈡埛:" + cooperatecustomCustomerDTO.Name + "鍑洪敊锛�");
+                                }
+                            }
+                        }
+
+                    }
+                }
+                    
+            }
+            else
+            {
+                throw new Exception(jobject["msg"].ToString());
+            }
+
+            #endregion
+
+
+            //淇濆瓨鏈�鍚庢洿鏂版椂闂�
+            if (ssss != null)
+                {
+                    ssss.Updatetime = end;
+                }
+                else
+                {
+                    ssss = new SysUpdatetime();
+                    ssss.Updatetime = end;
+                    ssss.Updatename = "getCustomers";
+                }
+                resultEntity = _liaotianService.saveSysUpdatetime(ssss);
+                if (!resultEntity.Result)
+                {
+                    throw new Exception("淇濆瓨鏇存柊鏃堕棿鍑洪敊锛�");
+                }
+
+            //    scope.Complete();
+            //}
+
+             
+
+         
+
+
+
+        }
+    }
+}

--
Gitblit v1.9.1