示例#1
0
        /// <summary>
        ///     获取视图模块
        /// </summary>
        /// <param name="context">上下文</param>
        /// <param name="moduleId">The 模块 identifier.</param>
        /// <param name="Id">Id标识</param>
        /// <param name="copy">The copy.</param>
        public ViewModuleConfig GetViewModuleConfig(HttpContext context, Guid moduleId, long Id, int copy)
        {
            var view = new ViewModuleConfig
            {
                ModuleId = moduleId
            };
            var shareModule = Resolve <ITaskModuleConfigService>().GetSingle(context, Id);

            if (shareModule != null)
            {
                view.ShareModule = shareModule;
                if (!string.IsNullOrEmpty(shareModule.ConfigValue))
                {
                    var shareBaseConfig = JsonConvert.DeserializeObject <ShareBaseConfigList>(shareModule.ConfigValue);
                    if (shareBaseConfig != null && shareBaseConfig.RuleItems.Count > 0)
                    {
                        view.ConfigurationValue = shareModule.ConfigValue;
                        // 动态将ShareModel的值复制到视图中
                        view = AutoMapping.SetValue(shareModule, view);
                        view = AutoMapping.SetValue(shareBaseConfig, view);
                        view = AutoMapping.SetValue(shareBaseConfig.OrderUser, view);
                        view = AutoMapping.SetValue(shareBaseConfig.ShareUser, view);
                        view = AutoMapping.SetValue(shareBaseConfig.ProductRule, view);
                        view = AutoMapping.SetValue(shareBaseConfig.BaseRule, view);
                    }
                }

                view.Id = shareModule.Id;
                // 如果是复制模式
                if (copy == 1)
                {
                    view.Id             = 0;
                    view.ShareModule.Id = 0;
                    view.IsLock         = false;
                    view.IsCopy         = true;
                }
            }
            else
            {
                view.ShareModule = new ShareModule();
                IList <AssetsRule> ruleItems = new List <AssetsRule>();
                var rule = new AssetsRule
                {
                    MoneyTypeId = Currency.Cny.GetCustomAttr <FieldAttribute>().GuidId.ToGuid(),
                    Ratio       = 0.8m
                };
                ruleItems.Add(rule);
                var moneyType = Resolve <IAutoConfigService>().GetList <MoneyTypeConfig>().FirstOrDefault(r =>
                                                                                                          r.Id != Currency.Cny.GetCustomAttr <FieldAttribute>().GuidId.ToGuid() && r.Status == Status.Normal);
                rule = new AssetsRule
                {
                    MoneyTypeId = moneyType.Id,
                    Ratio       = 0.2m
                };
                ruleItems.Add(rule);
                view.RuleItems = ruleItems;
            }

            return(view);
        }
示例#2
0
        public Tuple <ServiceResult, RewardRuleOutput> GetEditView(Guid moduleId, ObjectId id)
        {
            #region 安全验证

            var taskModuleAttribute = Resolve <ITaskQueueService>().GetTaskModuleAttribute(moduleId);
            if (taskModuleAttribute == null)
            {
                return(new Tuple <ServiceResult, RewardRuleOutput>(ServiceResult.FailedWithMessage("类型不存在,请确定Id是否输入正确"),
                                                                   null));
            }

            #endregion 安全验证

            var view = new RewardRuleOutput
            {
                AutoForm = AutoFormMapping.Convert(taskModuleAttribute.ConfigurationType.FullName),
                Base     = new RewardEditOutputBase
                {
                    Name    = taskModuleAttribute.Name,
                    Title   = taskModuleAttribute.Name,
                    Intro   = taskModuleAttribute.Intro,
                    Summary = $"{taskModuleAttribute.Name}的简要说明"
                },
                ModuleId = moduleId
            };

            IList <AssetsRule> ruleItems = new List <AssetsRule>();
            var rule = new AssetsRule
            {
                MoneyTypeId = Currency.Cny.GetCustomAttr <FieldAttribute>().GuidId.ToGuid(),
                Ratio       = 0.8m
            };
            ruleItems.Add(rule);
            var moneyType = Resolve <IAutoConfigService>().GetList <MoneyTypeConfig>().FirstOrDefault(r =>
                                                                                                      r.Id != Currency.Cny.GetCustomAttr <FieldAttribute>().GuidId.ToGuid() && r.Status == Status.Normal);
            rule = new AssetsRule
            {
                MoneyTypeId = moneyType.Id,
                Ratio       = 0.2m
            };
            ruleItems.Add(rule);
            view.RuleItems = ruleItems;

            return(new Tuple <ServiceResult, RewardRuleOutput>(ServiceResult.Success, view));
        }