222
schangxiang@126.com
2025-06-09 51c7ba2285c44af268858099871946e0b91dda55
222
已添加8个文件
517 ■■■■■ 文件已修改
WCS使用方法/WCS使用方法.docx 补丁 | 查看 | 原始文档 | blame | 历史
WCS使用方法/代码/Authorize/AuthorizeHelper.cs 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WCS使用方法/代码/Authorize/Dto/AuthorizeClass.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WCS使用方法/代码/Authorize/Dto/AuthorizeFunRetEntity.cs 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WMS使用方法/VerifyAuthrizeJob.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WMS使用方法/WMS使用方法.docx 补丁 | 查看 | 原始文档 | blame | 历史
WMS使用方法/代码/VerifyAuthorization/AuthorizeFunRetEntity.cs 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WMS使用方法/代码/VerifyAuthorization/VerifyAuthorizationUtil.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WCSʹÓ÷½·¨/WCSʹÓ÷½·¨.docx
Binary files differ
WCSʹÓ÷½·¨/´úÂë/Authorize/AuthorizeHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
using iWare.Authorize;
using iWareCC_WC2CC.Authorize.Dto;
using iWareCCCommon;
using iWareModel;
using Newtonsoft.Json;
using ProjectCode;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace iWareCC_WC2CC.Common.Helper
{
    /// <summary>
    /// æŽˆæƒå¸®åŠ©ç±»
    /// </summary>
    public class AuthorizeHelper
    {
        private static AuthorizeClass authorizeClass = new AuthorizeClass();
        /// <summary>
        /// å¯¹å¤–开放的授权验证方法
        /// </summary>
        /// <returns>false:验证失败,需要终止方法执行</returns>
        public static bool Pul_ValidateLicense()
        {
            try
            {
                //增加授权
                var ret = AuthorizeHelper.ValidateLicense();
                if (ret.result)
                {
                    if (!string.IsNullOrEmpty(ret.warnMsg))
                    {
                        if (AuthorizeHelper.IsHasAuthorizeForToDay() == false)
                        {
                            MessageBox.Show("警告:" + ret.warnMsg);
                            //1天出现一次
                            AuthorizeHelper.SetAuthorizeClass(true);
                        }
                    }
                }
                else
                {
                    AuthorizeHelper.SetAuthorizeClass(false);//重置当天授权
                    MessageBox.Show("授权失败:" + ret.resMsg);
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                AuthorizeHelper.SetAuthorizeClass(false);//重置当天授权
                MessageBox.Show("授权异常:" + ex.Message);
                return false;
            }
        }
        /// <summary>
        /// éªŒè¯æŽˆæƒ
        /// </summary>
        /// <returns></returns>
        public static AuthorizeFunRetEntity ValidateLicense()
        {
            var ret = RequestHelper.GetHttpRequest<AuthorizeFunRetEntity>("http://localhost:7777/", "WareAuthorize?waringDays=10");
            return ret;
        }
        /// <summary>
        /// ä»Šå¤©æ˜¯å¦å·²ç»éªŒè¯è¿‡äº†
        /// </summary>
        /// <returns></returns>
        private static bool IsHasAuthorizeForToDay()
        {
            var curDay = DateTime.Now.ToString("yyyyMMdd");
            if (curDay == authorizeClass.CurDay && authorizeClass.IsHasAuthorize == true)
            {
                return true;
            }
            return false;
        }
        /// <summary>
        /// èµ‹å€¼éªŒè¯å¯¹è±¡
        /// </summary>
        /// <returns></returns>
        private static void SetAuthorizeClass(bool isHasAuthorize)
        {
            var curDay = DateTime.Now.ToString("yyyyMMdd");
            authorizeClass.CurDay = curDay;
            authorizeClass.IsHasAuthorize = isHasAuthorize;
        }
    }
}
WCSʹÓ÷½·¨/´úÂë/Authorize/Dto/AuthorizeClass.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareCC_WC2CC.Authorize.Dto
{
    /// <summary>
    /// æŽˆæƒä¿¡æ¯ç±»
    /// </summary>
    public class AuthorizeClass
    {
        /// <summary>
        /// å½“前天
        /// </summary>
        public string CurDay { get; set; }
        /// <summary>
        /// æ˜¯å¦å·²ç»éªŒè¯è¿‡äº†
        /// </summary>
        public bool IsHasAuthorize { get; set; }
    }
}
WCSʹÓ÷½·¨/´úÂë/Authorize/Dto/AuthorizeFunRetEntity.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWare.Authorize
{
    /// <summary>
    /// æ–¹æ³•返回实体
    /// </summary>
    public class AuthorizeFunRetEntity
    {
        /// <summary>
        /// æ–¹æ³•返回结果
        /// </summary>
        public bool result { get; set; }
        /// <summary>
        /// æ–¹æ³•返回消息
        /// </summary>
        public string resMsg { get; set; }
        /// <summary>
        /// æ–¹æ³•警告消息
        /// </summary>
        public string warnMsg { get; set; }
        public object resData { get; set; }
        /// <summary>
        /// å‰©ä½™å¤©æ•°
        /// </summary>
        public double? remainingDays { get; set; }
        /// <summary>
        /// åˆ°æœŸæ—¥æœŸ
        /// </summary>
        public string expiryDate { get; set; }
        /// <summary>
        /// æŽˆæƒæ—¥æœŸ
        /// </summary>
        public string issueDate { get; set; }
        /// <summary>
        /// é¡¹ç›®åç§°
        /// </summary>
        public string projectId { get; set; }
        /// <summary>
        /// æŽˆæƒç±»åž‹
        /// </summary>
        public string type { get; set; }
        /// <summary>
        /// ç»‘定MAC
        /// </summary>
        public string macAddress { get; set; }
        /// <summary>
        /// è¿”回成功
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Success(string _resMsg, AuthorizeFunRetEntity newFun)
        {
            return new AuthorizeFunRetEntity()
            {
                result = true,
                resMsg = _resMsg,
                expiryDate = newFun.expiryDate,
                issueDate = newFun.issueDate,
                macAddress = newFun.macAddress,
                projectId = newFun.projectId,
                type = newFun.type
            };
        }
        /// <summary>
        /// è¿”回成功
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Success(string _resMsg, double _remainingDays, AuthorizeFunRetEntity newFun)
        {
            return new AuthorizeFunRetEntity()
            {
                result = true,
                resMsg = _resMsg,
                remainingDays = _remainingDays,
                expiryDate = newFun.expiryDate,
                issueDate = newFun.issueDate,
                macAddress = newFun.macAddress,
                projectId = newFun.projectId,
                type = newFun.type
            };
        }
        /// <summary>
        /// è¿”回成功
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Success(string _resMsg, double _remainingDays, string _warnMsg)
        {
            return new AuthorizeFunRetEntity()
            {
                result = true,
                resMsg = _resMsg,
                remainingDays = _remainingDays,
                warnMsg = _warnMsg
            };
        }
        /// <summary>
        /// è¿”回失败
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Fail(string _resMsg, object _resData = null)
        {
            return new AuthorizeFunRetEntity()
            {
                result = false,
                resMsg = _resMsg,
                resData = _resData
            };
        }
        /// <summary>
        /// è¿”回失败
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Fail(string _resMsg, double _remainingDays, AuthorizeFunRetEntity newFun)
        {
            return new AuthorizeFunRetEntity()
            {
                result = false,
                resMsg = _resMsg,
                remainingDays = _remainingDays,
                expiryDate = newFun.expiryDate,
                issueDate = newFun.issueDate,
                macAddress = newFun.macAddress,
                projectId = newFun.projectId,
                type = newFun.type
            };
        }
    }
}
WMSʹÓ÷½·¨/VerifyAuthrizeJob.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
// éº»çœç†å·¥å­¦é™¢è®¸å¯è¯
//
// ç‰ˆæƒæ‰€æœ‰ (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  è”系电话/微信:18020030720  QQ:515096995
//
// ç‰¹æ­¤å…è´¹æŽˆäºˆèŽ·å¾—æœ¬è½¯ä»¶çš„ä»»ä½•äººä»¥å¤„ç†æœ¬è½¯ä»¶çš„æƒåˆ©ï¼Œä½†é¡»éµå®ˆä»¥ä¸‹æ¡ä»¶ï¼šåœ¨æ‰€æœ‰å‰¯æœ¬æˆ–é‡è¦éƒ¨åˆ†çš„è½¯ä»¶ä¸­å¿…é¡»åŒ…æ‹¬ä¸Šè¿°ç‰ˆæƒå£°æ˜Žå’Œæœ¬è®¸å¯å£°æ˜Žã€‚
//
// è½¯ä»¶æŒ‰â€œåŽŸæ ·â€æä¾›ï¼Œä¸æä¾›ä»»ä½•å½¢å¼çš„æ˜Žç¤ºæˆ–æš—ç¤ºçš„ä¿è¯ï¼ŒåŒ…æ‹¬ä½†ä¸é™äºŽå¯¹é€‚é”€æ€§ã€é€‚ç”¨æ€§å’Œéžä¾µæƒçš„ä¿è¯ã€‚
// åœ¨ä»»ä½•情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
using Furion.Schedule;
using Microsoft.AspNetCore.SignalR;
using System.Threading;
using WMS.WC2.Core.Helper;
namespace WMS.WC2.Application;
[JobDetail("job_verify", Description = "验证授权文件", GroupName = "default", Concurrent = false)]
//[PeriodSeconds(3, TriggerId = "trigger_verify", Description = "验证授权文件", RunOnStart = true)]
//正式环境下,要1小时验证一次
[PeriodHours(1, TriggerId = "trigger_verify", Description = "验证授权文件", RunOnStart = true)]
public class VerifyAuthrizeJob : IJob
{
    private readonly IHubContext<OnlineUserHub, IOnlineUserHub> _onlineUserHubContext;
    public VerifyAuthrizeJob(IHubContext<OnlineUserHub, IOnlineUserHub> onlineUserHubContext)
    {
        _onlineUserHubContext = onlineUserHubContext;
    }
    public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
    {
        var checkReault = await VerifyAuthorizationUtil.CheckAuthoriztion();
        if (!checkReault.result)
        {
            await _onlineUserHubContext.Clients.All.VerifyAuth(checkReault.resMsg);
        }
        else
        {
            if (string.IsNullOrEmpty(checkReault.warnMsg)) return;
            await _onlineUserHubContext.Clients.All.VerifyAuth(checkReault.warnMsg);
        }
    }
}
WMSʹÓ÷½·¨/WMSʹÓ÷½·¨.docx
Binary files differ
WMSʹÓ÷½·¨/´úÂë/VerifyAuthorization/AuthorizeFunRetEntity.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWare.Authorize
{
    /// <summary>
    /// æ–¹æ³•返回实体
    /// </summary>
    public class AuthorizeFunRetEntity
    {
        /// <summary>
        /// æ–¹æ³•返回结果
        /// </summary>
        public bool result { get; set; }
        /// <summary>
        /// æ–¹æ³•返回消息
        /// </summary>
        public string resMsg { get; set; }
        /// <summary>
        /// æ–¹æ³•警告消息
        /// </summary>
        public string warnMsg { get; set; }
        public object resData { get; set; }
        /// <summary>
        /// å‰©ä½™å¤©æ•°
        /// </summary>
        public double? remainingDays { get; set; }
        /// <summary>
        /// åˆ°æœŸæ—¥æœŸ
        /// </summary>
        public string expiryDate { get; set; }
        /// <summary>
        /// æŽˆæƒæ—¥æœŸ
        /// </summary>
        public string issueDate { get; set; }
        /// <summary>
        /// é¡¹ç›®åç§°
        /// </summary>
        public string projectId { get; set; }
        /// <summary>
        /// æŽˆæƒç±»åž‹
        /// </summary>
        public string type { get; set; }
        /// <summary>
        /// ç»‘定MAC
        /// </summary>
        public string macAddress { get; set; }
        /// <summary>
        /// è¿”回成功
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Success(string _resMsg, AuthorizeFunRetEntity newFun)
        {
            return new AuthorizeFunRetEntity()
            {
                result = true,
                resMsg = _resMsg,
                expiryDate = newFun?.expiryDate,
                issueDate = newFun?.issueDate,
                macAddress = newFun?.macAddress,
                projectId = newFun?.projectId,
                type = newFun?.type
            };
        }
        /// <summary>
        /// è¿”回成功
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Success(string _resMsg, double _remainingDays, AuthorizeFunRetEntity newFun)
        {
            return new AuthorizeFunRetEntity()
            {
                result = true,
                resMsg = _resMsg,
                remainingDays = Convert.ToDouble(_remainingDays.ToString("0.0")),
                expiryDate = newFun.expiryDate,
                issueDate = newFun.issueDate,
                macAddress = newFun.macAddress,
                projectId = newFun.projectId,
                type = newFun.type
            };
        }
        /// <summary>
        /// è¿”回成功
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Success(string _resMsg, double _remainingDays, string _warnMsg)
        {
            return new AuthorizeFunRetEntity()
            {
                result = true,
                resMsg = _resMsg,
                remainingDays = Convert.ToDouble(_remainingDays.ToString("0.0")),
                warnMsg = _warnMsg
            };
        }
        /// <summary>
        /// è¿”回失败
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Fail(string _resMsg, object _resData = null)
        {
            return new AuthorizeFunRetEntity()
            {
                result = false,
                resMsg = _resMsg,
                resData = _resData
            };
        }
        /// <summary>
        /// è¿”回失败
        /// </summary>
        /// <param name="_resMsg"></param>
        /// <returns></returns>
        public static AuthorizeFunRetEntity Fail(string _resMsg, double _remainingDays, AuthorizeFunRetEntity newFun)
        {
            return new AuthorizeFunRetEntity()
            {
                result = false,
                resMsg = _resMsg,
                remainingDays = Convert.ToDouble(_remainingDays.ToString("0.0")),
                expiryDate = newFun.expiryDate,
                issueDate = newFun.issueDate,
                macAddress = newFun.macAddress,
                projectId = newFun.projectId,
                type = newFun.type
            };
        }
    }
}
WMSʹÓ÷½·¨/´úÂë/VerifyAuthorization/VerifyAuthorizationUtil.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
// éº»çœç†å·¥å­¦é™¢è®¸å¯è¯
//
// ç‰ˆæƒæ‰€æœ‰ (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  è”系电话/微信:18020030720  QQ:515096995
//
// ç‰¹æ­¤å…è´¹æŽˆäºˆèŽ·å¾—æœ¬è½¯ä»¶çš„ä»»ä½•äººä»¥å¤„ç†æœ¬è½¯ä»¶çš„æƒåˆ©ï¼Œä½†é¡»éµå®ˆä»¥ä¸‹æ¡ä»¶ï¼šåœ¨æ‰€æœ‰å‰¯æœ¬æˆ–é‡è¦éƒ¨åˆ†çš„è½¯ä»¶ä¸­å¿…é¡»åŒ…æ‹¬ä¸Šè¿°ç‰ˆæƒå£°æ˜Žå’Œæœ¬è®¸å¯å£°æ˜Žã€‚
//
// è½¯ä»¶æŒ‰â€œåŽŸæ ·â€æä¾›ï¼Œä¸æä¾›ä»»ä½•å½¢å¼çš„æ˜Žç¤ºæˆ–æš—ç¤ºçš„ä¿è¯ï¼ŒåŒ…æ‹¬ä½†ä¸é™äºŽå¯¹é€‚é”€æ€§ã€é€‚ç”¨æ€§å’Œéžä¾µæƒçš„ä¿è¯ã€‚
// åœ¨ä»»ä½•情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
//using static ProjectCode.EnDecode;
using iWare.Authorize;
using WMS.WC2.Core.Service;
namespace WMS.WC2.Core.Helper;
public class VerifyAuthorizationUtil
{
    private static readonly Lazy<Task<string>> _lazyUrl = new Lazy<Task<string>>(async () =>
    {//使用 Lazy<Task<T>> å®žçŽ°çº¿ç¨‹å®‰å…¨çš„å»¶è¿Ÿå¼‚æ­¥åŠ è½½
        var _sysConfigService = App.GetRequiredService<SysConfigService>();
        return await _sysConfigService.GetConfigValue<string>("AuthoriztionUrl");
    });
    public static async Task<AuthorizeFunRetEntity> CheckAuthoriztion()
    {
        try
        {
            var _authorizationUrl = await _lazyUrl.Value; // é¦–次访问时自动执行异步初始化
            var response = HttpHelper.Get($"{_authorizationUrl}WareAuthorize?WaringDays=10&&LicenseFolerName=licwms");
            var verify = JsonConvert.DeserializeObject<AuthorizeFunRetEntity>(response);
            return verify;
        }
        catch (Exception ex)
        {
            return new AuthorizeFunRetEntity { resMsg = "未授权不允许操作" };
        }
    }
}