username@email.com
2024-04-12 5f4384bdab4697cc0a678fb17e55603a91a4750b
Merge branch 'master' of http://47.108.235.38:8080/r/baifenbaishop

# Conflicts:
# CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs
40个文件已修改
801 ■■■■ 已修改文件
CoreCms.Net.Configuration/GlobalEnumVars.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.DTO/ComponentsDTO/GoodListDTO.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/User/CoreCmsUserPartial.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributor.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/ViewModels/DTO/ProductDto.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.RedisMQ/OrderAgentOrDistributionSubscribe.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Repository/Good/CoreCmsGoodsRepository.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Cart/CoreCmsCartServices.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Shop/CoreCmsPagesServices.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/baifenbingfa/OfflineDistributorServices.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Uni-App/obj/CoreCms.Net.Uni-App.csproj.nuget.g.props 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/NLog.config 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/create.html 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/details.html 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/edit.html 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/index.html 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/create.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/details.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/edit.html 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/liao.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/temp.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/edit.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/Controllers/GoodController.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/Controllers/PageController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/NLog.config 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/wwwroot/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Configuration/GlobalEnumVars.cs
@@ -2325,6 +2325,12 @@
            /// </summary>
            [Description("审核拒绝")]
            VerifyRefuse = 3,
            /// <summary>
            /// 审核拒绝
            /// </summary>
            [Description("取消资格")]
            VerifyCancel = 4,
        }
        /// <summary>
        /// 经销商订单记录表是否结算状态
CoreCms.Net.DTO/ComponentsDTO/GoodListDTO.cs
@@ -120,6 +120,20 @@
        public System.Decimal price { get; set; }
        /// <summary>
        /// 经销商价格
        /// </summary>
        public System.Decimal distributionPrice { get; set; }
        /// <summary>
        /// 经销商购买提成
        /// </summary>
        public System.Decimal distributionCutMoney { get; set; }
        /// <summary>
        /// 普通商户购买提成
        /// </summary>
        public System.Decimal cutMoney { get; set; }
        /// <summary>
        /// 货品市场价
        /// </summary>
CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs
@@ -18,6 +18,13 @@
        /// <param name="s"></param>
        /// <returns></returns>
        Task<List<SearchUserData>> SearchUserData(string s);
        /// <summary>
        /// 检查用户是否是经销商
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        Task<bool> IsDictionary(int UserId);
    }
CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
@@ -8,6 +8,7 @@
 *        Description: 暂无
 ***********************************************************************/
using Chuanyin.Attribute;
using SqlSugar;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
@@ -17,6 +18,7 @@
    /// <summary>
    /// 货品表
    /// </summary>
    public partial class CoreCmsProducts
    {
        /// <summary>
@@ -100,6 +102,30 @@
        public System.Decimal costprice  { get; set; }
        
        
        /// <summary>
        /// 经销商价格
        /// </summary>
        [Display(Name = "经销商价格")]
        [Required(ErrorMessage = "请输入{0}")]
        public System.Decimal distributionPrice { get; set; }
        /// <summary>
        /// 经销商提成
        /// </summary>
        [Display(Name = "经销商提成")]
        [Required(ErrorMessage = "请输入{0}")]
        [SugarColumn( DefaultValue ="0",ColumnDescription = "经销商提成")]
        public System.Decimal distributionCutMoney{ get; set; }
        /// <summary>
        /// 普通商户提成
        /// </summary>
        [Display(Name = "普通商户提成")]
        [Required(ErrorMessage = "请输入{0}")]
        [SugarColumn(DefaultValue = "0",ColumnDescription = "普通商户提成")]
        public System.Decimal cutMoney { get; set; }
        /// <summary>
        /// 货品市场价
        /// </summary>
CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs
@@ -29,7 +29,11 @@
        [SugarColumn(IsIgnore = true)]
        public int reshipedNums { get; set; } = 0;
        /// <summary>
        /// 货品信息
        /// </summary>
        [Navigate(NavigateType.OneToOne, nameof(productId))]
        public CoreCmsProducts productInfo { get; set; }
        /// <summary>
        ///     当前退货数量
        /// </summary>
CoreCms.Net.Model/Entities/User/CoreCmsUserPartial.cs
@@ -34,6 +34,11 @@
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public string parentNickName { get; set; }
        /// <summary>
        /// 用户等级
        /// </summary>
        [Navigate(NavigateType.OneToOne, nameof(grade))]//一对一 SchoolId是StudentA类里面的
        public CoreCmsUserGrade gradeInfo {  get; set; }
    }
}
CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributor.cs
@@ -75,7 +75,7 @@
        /// <summary>
        /// 店招图片地址
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "店招图片地址")]
        [SugarColumn(IsNullable = false, ColumnDescription = "店招图片地址",Length =65535)]
        public string StoreLogoUrl { get; set; }
        /// <summary>
CoreCms.Net.Model/ViewModels/DTO/ProductDto.cs
@@ -102,6 +102,15 @@
        /// </summary>
        public decimal mktPrice { get; set; }
        /// <summary>
        /// 普通经销商分成
        /// </summary>
        public decimal cutMoney { get; set; }
        /// <summary>
        /// 普通经销商分成
        /// </summary>
        public decimal distributionCutMoney { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> sku_name_arr { get; set; }
CoreCms.Net.RedisMQ/OrderAgentOrDistributionSubscribe.cs
@@ -2,6 +2,7 @@
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.UI;
@@ -29,8 +30,10 @@
        private readonly ICoreCmsUserServices _userServices;
        private readonly ICoreCmsAgentOrderServices _agentOrderServices;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        public OrderAgentOrDistributionSubscribe(ICoreCmsBillPaymentsServices billPaymentsServices, ICoreCmsDistributionOrderServices distributionOrderServices, ICoreCmsDistributionServices distributionServices, ICoreCmsSettingServices settingServices, ICoreCmsUserServices userServices, ICoreCmsAgentOrderServices agentOrderServices)
        public OrderAgentOrDistributionSubscribe(ICoreCmsBillPaymentsServices billPaymentsServices, ICoreCmsDistributionOrderServices distributionOrderServices, ICoreCmsDistributionServices distributionServices, ICoreCmsSettingServices settingServices, ICoreCmsUserServices userServices, ICoreCmsAgentOrderServices agentOrderServices ,IBfbfComAPIService bfbfComAPIService)
        {
            _billPaymentsServices = billPaymentsServices;
            _distributionOrderServices = distributionOrderServices;
@@ -38,6 +41,8 @@
            _settingServices = settingServices;
            _userServices = userServices;
            _agentOrderServices = agentOrderServices;
            _bfbfComAPIService= bfbfComAPIService;
        }
        /// <summary>
@@ -77,7 +82,10 @@
                            var jm = await _distributionOrderServices.AddData(order); //添加分享关联订单日志
                            //判断是否可以成为经销商
                            //先判断是否已经是经销商了。
                            //百分兵法同意判决经销商
                            bool check = await _distributionServices.ExistsAsync(p => p.userId == order.userId);
                                //bool check = await _bfbfComAPIService.IsDictionary( order.userId);
                            var distributionType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DistributionType).ObjectToInt(0);
                            if (distributionType == 3)  //无需审核,但是要满足提交
                            {
CoreCms.Net.Repository/Good/CoreCmsGoodsRepository.cs
@@ -16,6 +16,7 @@
using CoreCms.Net.DTO.ComponentsDTO;
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.FromBody;
@@ -23,6 +24,7 @@
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Newtonsoft.Json;
using NPOI.POIFS.Properties;
using SqlSugar;
namespace CoreCms.Net.Repository
@@ -32,8 +34,10 @@
    /// </summary>
    public class CoreCmsGoodsRepository : BaseRepository<CoreCmsGoods>, ICoreCmsGoodsRepository
    {
        public CoreCmsGoodsRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
        private readonly IBfbfComAPIService _bfbfComAPIService;
        public CoreCmsGoodsRepository(IUnitOfWork unitOfWork,IBfbfComAPIService bfbfComAPIService) : base(unitOfWork)
        {
             _bfbfComAPIService = bfbfComAPIService;
        }
@@ -181,6 +185,7 @@
                        obj.goodsId = id;
                        obj.barcode = goods.bn;
                        obj.sn = p.sn;
                        obj.price = p.price;
                        obj.costprice = p.costprice;
                        obj.mktprice = p.mktprice;
@@ -194,6 +199,10 @@
                        obj.isDefalut = p.isDefalut;
                        obj.isDel = false;
                        obj.images = p.images;
                        //百分兵法添加
                        obj.distributionCutMoney = p.distributionCutMoney;
                        obj.cutMoney = p.cutMoney;
                        obj.distributionPrice= p.distributionPrice;
                        products.Add(obj);
                        var pd = new CoreCmsProductsDistribution();
@@ -202,6 +211,7 @@
                        pd.levelOne = p.levelOne;
                        pd.levelTwo = p.levelTwo;
                        pd.levelThree = p.levelThree;
                        pds.Add(pd);
                    });
@@ -244,6 +254,9 @@
                    obj.isDefalut = true;
                    obj.isDel = false;
                    obj.images = oldObj.images;
                    obj.distributionCutMoney = oldObj.distributionCutMoney;
                    obj.cutMoney = oldObj.cutMoney;
                    obj.distributionPrice = oldObj.distributionPrice;
                    if (string.IsNullOrEmpty(obj.images))
                    {
@@ -535,6 +548,9 @@
                                    p.points = child.points;
                                    p.stock = child.stock;
                                    p.weight = child.weight;
                                    p.distributionPrice = child.distributionPrice;
                                    p.cutMoney = child.cutMoney;
                                    p.distributionCutMoney = child.distributionCutMoney;
                                }
                            });
@@ -618,6 +634,9 @@
                            obj.points = p.points;
                            obj.isDefalut = p.isDefalut;
                            obj.images = p.images;
                            obj.distributionPrice = p.distributionPrice;
                            obj.cutMoney = p.cutMoney;
                            obj.distributionCutMoney = p.distributionCutMoney;
                            if (string.IsNullOrEmpty(p.images))
                            {
                                obj.images = oldModel.image;
@@ -675,6 +694,9 @@
                            obj.images = newObj.images;
                            obj.isDefalut = true;
                            obj.isDel = false;
                            obj.distributionPrice = newObj.distributionPrice;
                            obj.cutMoney = newObj.cutMoney;
                            obj.distributionCutMoney = newObj.distributionCutMoney;
                            if (string.IsNullOrEmpty(newObj.images))
                            {
                                obj.images = oldModel.image;
@@ -707,6 +729,9 @@
                        obj.spesDesc = "";
                        obj.isDefalut = true;
                        obj.isDel = false;
                        obj.distributionPrice = newObj.distributionPrice;
                        obj.cutMoney = newObj.cutMoney;
                        obj.distributionCutMoney = newObj.distributionCutMoney;
                        if (string.IsNullOrEmpty(newObj.images))
                        {
                            obj.images = oldModel.image;
@@ -1709,6 +1734,9 @@
                        isRecommend = good.isRecommend,
                        isHot = good.isHot,
                        price = pd.price,
                        distributionCutMoney = pd.distributionCutMoney,
                        cutMoney = pd.cutMoney,
                        distributionPrice = pd.distributionPrice,
                        mktprice = pd.mktprice,
                        stock = pd.stock,
                        pointsDeduction = pd.pointsDeduction,
@@ -1751,6 +1779,9 @@
                        createTime = good.createTime,
                        isRecommend = good.isRecommend,
                        isHot = good.isHot,
                        distributionCutMoney = pd.distributionCutMoney,
                        cutMoney = pd.cutMoney,
                        distributionPrice = pd.distributionPrice,
                        price = pd.price,
                        mktprice = pd.mktprice,
                        stock = pd.stock,
@@ -2216,6 +2247,9 @@
                        labelIds = good.labelIds,
                        createTime = good.createTime,
                        isRecommend = good.isRecommend,
                        distributionPrice = pd.distributionPrice,
                        distributionCutMoney = pd.distributionCutMoney,
                         cutMoney = pd.cutMoney,
                        isHot = good.isHot,
                        price = pd.price,
                        mktprice = pd.mktprice,
@@ -2262,6 +2296,9 @@
                        isRecommend = good.isRecommend,
                        isHot = good.isHot,
                        price = pd.price,
                        distributionPrice = pd.distributionPrice,
                        distributionCutMoney = pd.distributionCutMoney,
                        cutMoney = pd.cutMoney,
                        mktprice = pd.mktprice,
                        stock = pd.stock,
                        pointsDeduction = pd.pointsDeduction,
@@ -2322,6 +2359,9 @@
                        labelIds = good.labelIds,
                        createTime = good.createTime,
                        isRecommend = good.isRecommend,
                        distributionCutMoney = pd.distributionCutMoney,
                        cutMoney = pd.cutMoney,
                        distributionPrice=pd.distributionPrice,
                        isHot = good.isHot,
                        price = pd.price,
                        mktprice = pd.mktprice,
@@ -2368,6 +2408,9 @@
                        isRecommend = good.isRecommend,
                        isHot = good.isHot,
                        price = pd.price,
                        distributionCutMoney = pd.distributionCutMoney,
                        cutMoney = pd.cutMoney,
                        distributionPrice = pd.distributionPrice,
                        mktprice = pd.mktprice,
                        stock = pd.stock,
                        pointsDeduction = pd.pointsDeduction,
CoreCms.Net.Services/Cart/CoreCmsCartServices.cs
@@ -12,10 +12,12 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CoreCms.Net.Auth.HttpContextUser;
using CoreCms.Net.Configuration;
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
@@ -57,6 +59,8 @@
        private readonly ICoreCmsSolitaireServices _solitaireServices;
        private readonly ICoreCmsUserShipServices _userShipServices;
        private readonly ICoreCmsStoreServices _storeServices;
        private readonly IBfbfComAPIService  _bfbfComAPIService;
        private readonly IHttpContextUser _user;
        public CoreCmsCartServices(
            ICoreCmsCartRepository dal
@@ -69,7 +73,17 @@
            , ICoreCmsUserServices userServices
            , ICoreCmsSettingServices settingServices
            , ICoreCmsProductsServices productsServices
            , ICoreCmsPinTuanGoodsServices pinTuanGoodsServices, ICoreCmsPromotionConditionServices promotionConditionServices, ICoreCmsGoodsServices goodsServices, ICoreCmsGoodsCategoryServices goodsCategoryServices, ICoreCmsPromotionResultServices promotionResultServices, ICoreCmsPinTuanRecordServices pinTuanRecordServices, ICoreCmsSolitaireServices solitaireServices, ICoreCmsUserShipServices userShipServices, ICoreCmsStoreServices storeServices)
            , ICoreCmsPinTuanGoodsServices pinTuanGoodsServices
            , IBfbfComAPIService bfbfComAPIService
            ,ICoreCmsPromotionConditionServices promotionConditionServices
            , ICoreCmsGoodsServices goodsServices
            , ICoreCmsGoodsCategoryServices goodsCategoryServices
            , ICoreCmsPromotionResultServices promotionResultServices
            , ICoreCmsPinTuanRecordServices pinTuanRecordServices
            , ICoreCmsSolitaireServices solitaireServices
            , ICoreCmsUserShipServices userShipServices
            , ICoreCmsStoreServices storeServices
            ,IHttpContextUser user)
        {
            this._dal = dal;
            base.BaseDal = dal;
@@ -92,6 +106,8 @@
            _solitaireServices = solitaireServices;
            _userShipServices = userShipServices;
            _storeServices = storeServices;
            _bfbfComAPIService = bfbfComAPIService;
            _user   = user;
        }
        #region 设置购物车商品数量====================================================
@@ -515,6 +531,16 @@
            {
                case (int)GlobalEnumVars.OrderType.Common:
                    //标准模式不需要修改订单数据和商品数据
                    {
                        if(await _bfbfComAPIService.IsDictionary(_user.ID))
                        {
                            foreach (var item in cartDto.list)
                            {
                                item.products.price=item.products.distributionPrice;
                            }
                        }
                    }
                    break;
                case (int)GlobalEnumVars.OrderType.PinTuan:
                    //拼团模式走拼团价,去修改商品价格
CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs
@@ -17,6 +17,7 @@
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.Basics;
@@ -45,10 +46,11 @@
        private readonly ICoreCmsGoodsServices _goodsServices;
        private readonly ICoreCmsDistributionOrderDetailsServices _distributionOrderDetailsServices;
        private readonly ICoreCmsSettingServices _settingServices;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        private readonly IUnitOfWork _unitOfWork;
        public CoreCmsDistributionOrderServices(IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
        public CoreCmsDistributionOrderServices(IBfbfComAPIService bfbfComAPIService, IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
        {
            this._dal = dal;
            _distributionServices = distributionServices;
@@ -63,6 +65,7 @@
            _settingServices = settingServices;
            base.BaseDal = dal;
            _unitOfWork = unitOfWork;
            _bfbfComAPIService = bfbfComAPIService;
        }
@@ -101,7 +104,8 @@
            if (user is { parentId: > 0 })
            {
                //获取购物明细
                var orderItems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
                var orderItems = await _unitOfWork.GetDbClient().Queryable<CoreCmsOrderItem>().Where(p => p.orderId == order.orderId).Includes(x => x.productInfo).ToListAsync();
                    //await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
                var goodIds = orderItems.Select(p => p.goodsId).ToList();
                var productIds = orderItems.Select(p => p.productId).ToList();
                //获取货品数据
@@ -142,6 +146,7 @@
            var user = await _userServices.QueryByClauseAsync(p => p.id == userId);
            if (user != null)
            {
                var commission = await _distributionServices.GetGradeAndCommission(user.id);
                if (commission.status && commission.data != null) //不是经销商的,不返利。
                {
@@ -149,7 +154,8 @@
                    //直返本级
                    decimal amount = 0;
                    var distributionOrderDetails = new List<CoreCmsDistributionOrderDetails>();
                    //百分兵法判断订单用户是否是经销商
                    bool OderUserIsDic = await _bfbfComAPIService.IsDictionary(order.userId);
                    foreach (var item in orderItems)
                    {
                        var orderDetails = new CoreCmsDistributionOrderDetails();
@@ -197,6 +203,8 @@
                            //如果去掉优惠需要负了,就为0
                            if (itemAmount < 0) itemAmount = 0;
                            mathMoney = level switch
                            {
                                //一级分销
@@ -230,17 +238,37 @@
                            {
                                continue;
                            }
                            mathMoney = level switch
                            //百分兵法基数按
                            switch (level)
                            {
                                1 when productsDistribution.levelOne > 0 => Math.Round(
                                    productsDistribution.levelOne * item.nums, 2),
                                2 when productsDistribution.levelTwo > 0 => Math.Round(
                                    productsDistribution.levelTwo * item.nums, 2),
                                3 when productsDistribution.levelThree > 0 => Math.Round(
                                    productsDistribution.levelThree * item.nums, 2),
                                _ => mathMoney
                            };
                                case 1 :
                                       if(OderUserIsDic)
                                        //是经销商购买
                                        mathMoney = item.productInfo.distributionCutMoney;
                                       else
                                        //非经销商购买
                                        mathMoney= item.productInfo.cutMoney    ;
                                    break;
                                case 2 when productsDistribution.levelTwo > 0:
                                    break;
                                case 3 when productsDistribution.levelThree>0:
                                    break;
                                default:
                                    break;
                            }
                            //原佣金计算方法
                            //mathMoney = level switch
                            //{
                            //    1 when productsDistribution.levelOne > 0 => Math.Round(
                            //        productsDistribution.levelOne * item.nums, 2),
                            //    2 when productsDistribution.levelTwo > 0 => Math.Round(
                            //        productsDistribution.levelTwo * item.nums, 2),
                            //    3 when productsDistribution.levelThree > 0 => Math.Round(
                            //        productsDistribution.levelThree * item.nums, 2),
                            //    _ => mathMoney
                            //};
                        }
                        amount += mathMoney;
CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs
@@ -17,6 +17,7 @@
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.baifenbingfa.apply;
@@ -54,8 +55,11 @@
        private readonly IUnitOfWork _unitOfWork;
        private readonly ICoreCmsUserBalanceServices _userBalanceServices;
        private readonly ICoreCmsUserServices _coreCmsUserServices;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        public CoreCmsDistributionServices(IUnitOfWork unitOfWork, ICoreCmsDistributionRepository dal, ICoreCmsDistributionOrderRepository distributionOrderRepository, ICoreCmsUserRepository userRepository, ICoreCmsGoodsRepository goodsRepository, ICoreCmsUserGradeRepository userGradeRepository, ICoreCmsSettingServices settingServices, ICoreCmsOrderRepository orderRepository, ICoreCmsDistributionGradeRepository distributionGradeRepository, ICoreCmsDistributionResultRepository distributionResultRepository, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices, ICoreCmsUserBalanceServices userBalanceServices
        public CoreCmsDistributionServices(IBfbfComAPIService bfbfComAPIService, IUnitOfWork unitOfWork, ICoreCmsDistributionRepository dal, ICoreCmsDistributionOrderRepository distributionOrderRepository, ICoreCmsUserRepository userRepository, ICoreCmsGoodsRepository goodsRepository, ICoreCmsUserGradeRepository userGradeRepository, ICoreCmsSettingServices settingServices, ICoreCmsOrderRepository orderRepository, ICoreCmsDistributionGradeRepository distributionGradeRepository, ICoreCmsDistributionResultRepository distributionResultRepository, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices, ICoreCmsUserBalanceServices userBalanceServices
            , ICoreCmsUserServices coreCmsUserServices) 
        {
            this._dal = dal;
@@ -73,6 +77,8 @@
            _userBalanceServices = userBalanceServices;
            _coreCmsUserServices = coreCmsUserServices;
            _bfbfComAPIService = bfbfComAPIService;
        }
@@ -418,6 +424,12 @@
        public async Task<WebApiCallBack> GetGradeAndCommission(int userId)
        {
            var jm = new WebApiCallBack();
            //百分兵法判断是否是经销商
             if(await _bfbfComAPIService.IsDictionary(userId))
            {
                jm.msg = "不是经销商的,不返利";
                return jm;
            }
            var info = await _dal.QueryByClauseAsync(p => p.userId == userId);
            if (info == null)
@@ -824,7 +836,7 @@
         var da=  await  _dal.GetCountAsync(x=>x.userId== Parma.UserID && x.verifyStatus== (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes,isDataCache:true,cacheTimes:1);
            if (da == 0)
                return true;
            var oder = new DistributionAchievementOrder
            DistributionAchievementOrder oder = new DistributionAchievementOrder
            {
                achievementTotal = Parma.Money,
                createBy = "经销商业绩写入",
CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs
@@ -19,6 +19,7 @@
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
@@ -53,6 +54,7 @@
        private readonly ICoreCmsOrderItemServices _orderItemServices;
        private readonly ICoreCmsUserServices _userServices;
        private readonly ICoreCmsUserGradeServices _userGradeServices;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        private readonly IServiceProvider _serviceProvider;
@@ -64,7 +66,7 @@
            , ICoreCmsPromotionServices promotionServices
            , ICoreCmsGoodsCollectionServices goodsCollectionServices
            , ICoreCmsBrandServices brandServices
            , ICoreCmsOrderItemServices orderItemServices, ICoreCmsUserServices userServices, ICoreCmsUserGradeServices userGradeServices, IServiceProvider serviceProvider)
            , ICoreCmsOrderItemServices orderItemServices, ICoreCmsUserServices userServices, ICoreCmsUserGradeServices userGradeServices, IServiceProvider serviceProvider, IBfbfComAPIService bfbfComAPIService)
        {
            this._dal = dal;
            base.BaseDal = dal;
@@ -79,6 +81,8 @@
            _userServices = userServices;
            _userGradeServices = userGradeServices;
            _serviceProvider = serviceProvider;
            _bfbfComAPIService = bfbfComAPIService;
        }
@@ -609,6 +613,8 @@
            //获取会员级别优惠价
            //获取会员等级优惠价格体系
            decimal gradePrice = 0;
            //百分兵法增加
            bool IsDictionary = await _bfbfComAPIService.IsDictionary(userId);
            if (userId > 0 && type == "goods")
            {
                //获取用户信息
@@ -616,6 +622,8 @@
                if (userInfo != null)
                {
                    var goodsGrades = await _goodsGradeServices.QueryByClauseAsync(p => p.goodsId == good.id && p.gradeId == userInfo.grade);
                   //对接经销商会员
                    if (goodsGrades != null)
                    {
                        gradePrice = goodsGrades.gradePrice;
@@ -818,9 +826,14 @@
                    item.goods_id = good.id.ToString();
                    item.goods_name = good.name;
                    item.image = o.images;
                    if(!IsDictionary)
                    item.price = o.price - gradePrice; //减去会员等级价格
                    else
                        item.price = o.distributionPrice;
                    item.sku_name_arr = o.spesDesc.Split(",").Select(s => s.Split(":")[1]).ToList();
                    item.stock = o.stock;
                    item.cutMoney = o.cutMoney;
                    item.distributionCutMoney = o.distributionCutMoney;
                    item.mktPrice = o.mktprice;
                    item.selPrice = o.price;
                    if (type == GlobalEnumVars.OrderType.PinTuan.ToString().ToLowerInvariant())
@@ -868,9 +881,15 @@
                    item.goods_id = good.id.ToString();
                    item.goods_name = good.name;
                    item.image = o.images;
                    if (!IsDictionary)
                    item.price = o.price - gradePrice; //减去会员等级价格
                    else
                        item.price = o.distributionPrice;
                    //item.price = o.price - gradePrice; //减去会员等级价格
                    item.sku_name_arr = new List<string> { "默认" };
                    item.stock = o.stock;
                    item.cutMoney = o.cutMoney;
                    item.distributionCutMoney = o.distributionCutMoney;
                    item.mktPrice = o.mktprice;
                    item.selPrice = o.price;
                    if (type == GlobalEnumVars.OrderType.PinTuan.ToString().ToLowerInvariant())
CoreCms.Net.Services/Shop/CoreCmsPagesServices.cs
@@ -12,11 +12,13 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CoreCms.Net.Auth.HttpContextUser;
using CoreCms.Net.Configuration;
using CoreCms.Net.DTO.ComponentsDTO;
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
@@ -53,12 +55,25 @@
        private readonly ICoreCmsPinTuanRuleServices _pinTuanRuleServices;
        private readonly ICoreCmsServicesServices _servicesServices;
        private readonly ICoreCmsGoodsCategoryExtendServices _goodsCategoryExtendServices;
        private readonly IHttpContextUser _contextUser;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        private readonly IUnitOfWork _unitOfWork;
        public CoreCmsPagesServices(IUnitOfWork unitOfWork
            , ICoreCmsPagesRepository dal
            , ICoreCmsPagesItemsRepository pagesItemsRepository, ICoreCmsPromotionServices promotionServices, ICoreCmsNoticeServices noticeServices, ICoreCmsGoodsCategoryServices goodsCategoryServices, ICoreCmsSettingServices settingServices, ICoreCmsGoodsServices goodsServices, ICoreCmsArticleServices articleServices, ICoreCmsPromotionConditionServices promotionConditionServices, ICoreCmsPinTuanRuleServices pinTuanRuleServices, ICoreCmsServicesServices servicesServices, ICoreCmsArticleTypeServices articleTypeServices, ICoreCmsGoodsCategoryExtendServices goodsCategoryExtendServices)
            , ICoreCmsPagesItemsRepository pagesItemsRepository,
            ICoreCmsPromotionServices promotionServices,
            ICoreCmsNoticeServices noticeServices,
            ICoreCmsGoodsCategoryServices goodsCategoryServices,
            ICoreCmsSettingServices settingServices,
            ICoreCmsGoodsServices goodsServices,
            ICoreCmsArticleServices articleServices,
            ICoreCmsPromotionConditionServices promotionConditionServices,
            ICoreCmsPinTuanRuleServices pinTuanRuleServices,
            ICoreCmsServicesServices servicesServices,
            ICoreCmsArticleTypeServices articleTypeServices,
            ICoreCmsGoodsCategoryExtendServices goodsCategoryExtendServices,
            IHttpContextUser httpContextUser,
                 IBfbfComAPIService bfbfComAPIService)
        {
            this._dal = dal;
            _pagesItemsRepository = pagesItemsRepository;
@@ -75,6 +90,8 @@
            _goodsCategoryExtendServices = goodsCategoryExtendServices;
            base.BaseDal = dal;
            _unitOfWork = unitOfWork;
            _contextUser= httpContextUser;
            _bfbfComAPIService = bfbfComAPIService;
        }
@@ -138,6 +155,7 @@
        /// <returns></returns>
        public async Task<WebApiCallBack> GetPageConfig(string code)
        {
          var userID=   _contextUser.ID;
            var jm = new WebApiCallBack();
@@ -265,6 +283,7 @@
                        break;
                    case "goodTabBar":
                        {
                            bool isDic = await _bfbfComAPIService.IsDictionary(_contextUser.ID);
                            var parameters = (JObject)JsonConvert.DeserializeObject(item.parameters);
                            if (parameters != null && parameters.ContainsKey("list"))
                            {
@@ -305,7 +324,17 @@
                                        limit = limit > 0 ? limit : 10;
                                        var goods = await _goodsServices.QueryListByComponentsAsync(where, limit, p => p.createTime, OrderByType.Desc, true, true, 60);
                                        if(goods!=null)
                                        {
                                            //百分兵法经销商修改价格
                                            if(isDic)
                                            {
                                                foreach (var gd in goods)
                                                {
                                                    gd.price = gd.distributionPrice;
                                                }
                                            }
                                        }
                                        if (goods != null && goods.Any())
                                        {
                                            var result = JArray.FromObject(goods);
@@ -431,6 +460,18 @@
                                limit = limit > 0 ? limit : 10;
                                var goods = await _goodsServices.QueryListByComponentsAsync(where, limit, " sort asc,id asc ", true, true, 60);
                                if (goods != null)
                                {
                                    bool isDic = await _bfbfComAPIService.IsDictionary(_contextUser.ID);
                                    //百分兵法经销商修改价格
                                    if (isDic)
                                    {
                                        foreach (var gd in goods)
                                        {
                                            gd.price = gd.distributionPrice;
                                        }
                                    }
                                }
                                if (goods != null && goods.Any())
                                {
                                    var result = JArray.FromObject(goods);
@@ -477,6 +518,18 @@
                                    count = goodids.Count;
                                }
                                var goods = await _goodsServices.QueryListByComponentsAsync(where, count, orderBy, true, true, 60);
                                if (goods != null)
                                {
                                    bool isDic = await _bfbfComAPIService.IsDictionary(_contextUser.ID);
                                    //百分兵法经销商修改价格
                                    if (isDic)
                                    {
                                        foreach (var gd in goods)
                                        {
                                            gd.price = gd.distributionPrice;
                                        }
                                    }
                                }
                                if (goods != null && goods.Any())
                                {
                                    var result = JArray.FromObject(goods);
CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs
@@ -1,7 +1,9 @@
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.Configuration;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Utility.Helper;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -18,11 +20,12 @@
        
        private readonly ICoreCmsUserServices _userServices;
        private readonly IUnitOfWork _unitOfWork;
       public   BfbfComAPIService(ICoreCmsUserServices userServices,IUnitOfWork unitOfWork)
        private readonly ICoreCmsSettingServices _coreCmsSettingServices;
        public   BfbfComAPIService(ICoreCmsUserServices userServices,IUnitOfWork unitOfWork,   ICoreCmsSettingServices coreCmsSettingServices)
        {
            _userServices = userServices;
            _unitOfWork = unitOfWork;
            _coreCmsSettingServices = coreCmsSettingServices;
        }
        public async Task<List<SearchUserData>> SearchUserData(string s)
        {
@@ -38,5 +41,22 @@
            }
            return ListData.Where(x => x.name.Contains(s)).ToList();
        }
        public async Task<bool> IsDictionary(int UserId)
        {
            if (UserId == 0)
                return false;
           var user=await  _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Includes(x=>x.gradeInfo).Where(x=>x.id== UserId).WithCache(10).SingleAsync();
            if (user == null)
                return false;
            if(user.gradeInfo==null)
                return false;
            var allConfigs = await _coreCmsSettingServices.GetConfigDictionaries();
            var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryUserGroupKey);
            if (user.gradeInfo.valueKey == kc)
                return true;
            return false;
        }
    }
}
CoreCms.Net.Services/baifenbingfa/OfflineDistributorServices.cs
@@ -168,7 +168,7 @@
            }
            oldmod.Oders = entity.Oders;
            foreach (var meetin in entity.meetings)
            foreach (OfflineDistributorMeeting meetin in entity.meetings)
            {
                if (meetin.id == 9999999)
                {
CoreCms.Net.Uni-App/obj/CoreCms.Net.Uni-App.csproj.nuget.g.props
@@ -4,12 +4,13 @@
    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">E:\NUGET\</NuGetPackageRoot>
    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">E:\NUGET\</NuGetPackageFolders>
    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Administrator\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.10.0</NuGetToolVersion>
    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.9.2</NuGetToolVersion>
  </PropertyGroup>
  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
    <SourceRoot Include="E:\NUGET\" />
    <SourceRoot Include="C:\Users\Administrator\.nuget\packages\" />
    <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
  </ItemGroup>
</Project>
CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs
@@ -174,6 +174,15 @@
            {
                where = where.And(p => p.grade == grade);
            }
            //用户等级 int
            var isBaifenPromotion = Request.Form["isBaifenPromotion"].FirstOrDefault();
            if (!string.IsNullOrEmpty(isBaifenPromotion))
            {
                if(isBaifenPromotion=="1")
                where = where.And(p => p.IsBaifenPromotion == true);
                else
                    where = where.And(p => p.IsBaifenPromotion == false);
            }
            //创建时间 datetime
            var createTime = Request.Form["createTime"].FirstOrDefault();
            if (!string.IsNullOrEmpty(createTime))
CoreCms.Net.Web.Admin/NLog.config
@@ -14,7 +14,7 @@
    dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"
    connectionString="Server=127.0.0.1;Database=BaseMIS;User ID=sa;Password=123456"
    -->
    <target name="log_database" xsi:type="Database" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" connectionString="Server=localhost\SQLEXPRESS;User ID=sa;Password=123456;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;">
    <target name="log_database" xsi:type="Database" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" connectionString="Server=MS-FSEUTNLCXFDB\SQLEXPRESS;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;Trusted_Connection=True; ">
      <commandText>
        INSERT INTO SysNLogRecords
        (LogDate,LogLevel,LogType,LogTitle,Logger,Message,MachineName,MachineIp,NetRequestMethod
CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js
@@ -20,7 +20,7 @@
        container: 'LAY_app', // 容器ID
        entry: 'index', // 默认视图文件名
        engine: '.html', // 视图文件后缀名
        pageTabs: true, // 是否开启页面选项卡功能。单页版不推荐开启
        pageTabs: false, // 是否开启页面选项卡功能。单页版不推荐开启
        refreshCurrPage: true, // 当跳转页面 url 与当前页 url 相同时,是否自动执行刷新
        name: '百分兵法',
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/create.html
@@ -120,13 +120,21 @@
        <div class="layui-inline">
            <label class="layui-form-label" for="storeLogoUrl">店招</label>
            <div class="layui-input-inline layui-inline-6">
                <input name="storeLogoUrl" id="storeLogoUrl" size="15" autocomplete="off" class="layui-input" lay-reqText="请输入【缩略图】"  />
                <input name="storeLogoUrl1" type="hidden" id="storeLogoUrlc1" size="15" autocomplete="off" class="layui-input" lay-reqText="请输入【缩略图】" />
                <input name="storeLogoUrl2" type="hidden" id="storeLogoUrlc2" size="15" autocomplete="off" class="layui-input" lay-reqText="请输入【缩略图】"  />
            </div>
            <div class="layui-input-inline">
                <button type="button" class="layui-btn" id="upBtnOriginalCreat">上传图像</button>
                <button type="button" class="layui-btn" id="upBtnOriginalCreat1">上传图像</button>
                <div class="layui-input-inline">
                    <img class="layui-upload-img" id="viewImgBox" src="{{ layui.setter.noImagePicUrl }}">
                    <p id="viewTextBox"></p>
                    <img class="layui-upload-img" id="viewImgBox1" src="{{ layui.setter.noImagePicUrl }}">
                    <p id="viewTextBox1"></p>
                </div>
            </div>
            <div class="layui-input-inline">
              <button type="button" class="layui-btn" id="upBtnOriginalCreat2">上传图像</button>
              <div class="layui-input-inline">
                  <img class="layui-upload-img" id="viewImgBox2" src="{{ layui.setter.noImagePicUrl }}">
                  <p id="viewTextBox2"></p>
                </div>
            </div>
        </div>
@@ -170,20 +178,41 @@
        formatUserSelInPut(coreHelper, form, "CreatOfflinedisSelUserID");
       //普通图片上传
       upload.render({
                    elem: '#upBtnOriginalCreat'
                    elem: '#upBtnOriginalCreat1'
                    , url: layui.setter.apiUrl + 'Api/Tools/UploadFiles'
                    , before: function (obj) {
                        obj.preview(function (index, file, result) {
                            $('#viewImgBox').attr('src', result);
                            $('#viewImgBox1').attr('src', result);
                        });
                    }
                    , done: function (res) {
                        if (res.code > 0) { return layer.msg('上传失败'); }
                        layer.msg('上传成功');
                        $("#storeLogoUrl").val(res.data.fileUrl);
                        $("#storeLogoUrlc1").val(res.data.fileUrl);
                    }
                    , error: function () {
                        var viewTextBox = $('#viewTextBox');
                        var viewTextBox = $('#viewTextBox1');
                        viewTextBox.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                        viewTextBox.find('.demo-reload').on('click', function () {
                            uploadInst.upload();
                        });
                    }
                });
                upload.render({
                    elem: '#upBtnOriginalCreat2'
                    , url: layui.setter.apiUrl + 'Api/Tools/UploadFiles'
                    , before: function (obj) {
                        obj.preview(function (index, file, result) {
                            $('#viewImgBox2').attr('src', result);
                        });
                    }
                    , done: function (res) {
                        if (res.code > 0) { return layer.msg('上传失败'); }
                        layer.msg('上传成功');
                        $("#storeLogoUrlc2").val(res.data.fileUrl);
                    }
                    , error: function () {
                        var viewTextBox = $('#viewTextBox2');
                        viewTextBox.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                        viewTextBox.find('.demo-reload').on('click', function () {
                            uploadInst.upload();
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/details.html
@@ -198,14 +198,20 @@
              </div>
              <div class="layui-input-inline">
              
                <div class="layui-input-inline" style="padding-left: 100px;" >
                <div style="display: flex;" >
                  {{# layui.each(d.params.data.storeLogoUrl.split(','), function(index, item){ }}
                  <img
                    class="layui-upload-img"
                    id="viewImgBoxEdit"
                    src="{{ d.params.data.storeLogoUrl || layui.setter.noImagePicUrl ||''}}"
                    style="  margin-left: 5px;"
                    src="{{ item || layui.setter.noImagePicUrl ||''}}"
                  />
              
                  {{#})}}
                </div>
              </div>
            </div>
  
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/edit.html
@@ -198,26 +198,53 @@
            <label for="StoreLogoUrl" class="layui-form-label  ">店招</label>
            <div class="layui-input-inline" style="width: 300px;">
              <input
                name="storeLogoUrl"
                name="storeLogoUrl1"
                lay-verType="tips"
                class="layui-input"
                placeholder="请输入店招图片地址"
                lay-reqText="请输入店招图片地址"
                value="{{d.params.data.storeLogoUrl || '' }}"
                value="{{d.params.data.storeLogoUrl1 || '' }}"
                id="viewTextBoxEdittext"
                type="hidden"
              />
              <input
              name="storeLogoUrl2"
              lay-verType="tips"
              class="layui-input"
              placeholder="请输入店招图片地址"
              lay-reqText="请输入店招图片地址"
              value="{{d.params.data.storeLogoUrl2 || '' }}"
              id="viewTextBoxEdittext2"
              type="hidden"
              />
            </div>
            <div class="layui-input-inline">
              <button type="button" class="layui-btn" id="upBtnOriginalEdit">
                上传图像
                修改图片
              </button>
              <div class="layui-input-inline">
                <img
                  class="layui-upload-img"
                  id="viewImgBoxEdit"
                  src="{{ d.params.data.storeLogoUrl || layui.setter.noImagePicUrl ||''}}"
                  src="{{ d.params.data.storeLogoUrl1|| ''}}"
                />
                <div class="layui-input-inline">
                  <div id="viewTextBoxEdit"></div>
                </div>
              </div>
            </div>
            <div class="layui-input-inline">
              <button type="button" class="layui-btn" id="upBtnOriginalEdit2">
                修改图片
              </button>
              <div class="layui-input-inline">
                <img
                  class="layui-upload-img"
                  id="viewImgBoxEdit2"
                  src="{{ d.params.data.storeLogoUrl2 ||''}}"
                />
                <div class="layui-input-inline">
                  <div id="viewTextBoxEdit2"></div>
                </div>
              </div>
            </div>
@@ -335,6 +362,29 @@
          table = layui.table,
          coreHelper = layui.coreHelper;
         if( d.params.data.storeLogoUrl!=null&&d.params.data.storeLogoUrl!=undefined&&d.params.data.storeLogoUrl!="")
         {
          // 拆分storeLogoUrl
          var storeLogoUrl=d.params.data.storeLogoUrl.split(",");
          for (let index = 0; index < storeLogoUrl.length; index++) {
            if(index>1)
             break;
            if(index==0)
              {d.params.data.storeLogoUrl1 = storeLogoUrl[index];
              $("#viewImgBoxEdit").attr("src", d.params.data.storeLogoUrl1);
              $("#viewTextBoxEdittext").val(d.params.data.storeLogoUrl1);
              }
            else
           { d.params.data.storeLogoUrl2 = storeLogoUrl[index];
            $("#viewImgBoxEdit2").attr("src", d.params.data.storeLogoUrl2);
            $("#viewTextBoxEdittext2").val(d.params.data.storeLogoUrl2);
           }
          }
         }
        formatAreaInPut(
          coreHelper,
          "editOfflinedisRegion",
@@ -360,7 +410,7 @@
              return layer.msg("上传失败");
            }
            layer.msg("上传成功");
            $("#upBtnOriginalEdit").val(res.data.fileUrl);
            $("#viewTextBoxEdittext").val(res.data.fileUrl);
          },
          error: function () {
            var viewTextBox = $("#viewTextBoxEdit");
@@ -372,6 +422,32 @@
            });
          },
        });
        //普通图片上传
        upload.render({
          elem: "#upBtnOriginalEdit2",
          url: layui.setter.apiUrl + "Api/Tools/UploadFiles",
          before: function (obj) {
            obj.preview(function (index, file, result) {
              $("#viewImgBoxEdit2").attr("src", result);
            });
          },
          done: function (res) {
            if (res.code > 0) {
              return layer.msg("上传失败");
            }
            layer.msg("上传成功");
            $("#viewTextBoxEdittext2").val(res.data.fileUrl);
          },
          error: function () {
            var viewTextBox = $("#viewTextBoxEdit2");
            viewTextBox.html(
              '<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'
            );
            viewTextBox.find(".demo-reload").on("click", function () {
              uploadInst.upload();
            });
          },
        });
        dropdown.render({
          elem: "#EditCooperationIntent",
          data: [
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/index.html
@@ -251,14 +251,35 @@
                sort: false,
                width: 105,
              },
              { field: "school", title: "学校名称", sort: false, width: 105 },
              { field: "dealerName", title: "经销商名称", sort: false ,width: 105},
              {
                                field: 'storeLogoUrl', title: '店招', width: 120, sort: false,
                                templet: function (d) {
                                    if (d.storeLogoUrl) {
                                      var listimg= d.storeLogoUrl.split(",")
                                      var str="";
                                      listimg.forEach((value,index)=>
                                      {
                                        str+= '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + value + '")><image style="max-width:30px;max-height:30px;  margin-left: 5px;" src="' + value + '" /></a>'
                                      })
                                        return str;
                                    } else {
                                        return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + setter.noImagePicUrl + '")><image style="max-width:30px;max-height:30px;   margin-left: 5px;" src="' + setter.noImagePicUrl + '" /></a>';
                                    }
                                }
                            },
              {
                field: "contactPerson",
                title: "联系人姓名",
                sort: false,
                width: 105,
              },
              {
                field: "phoneNumber",
                title: "联系电话",
@@ -279,6 +300,7 @@
                width: 105,
                templet: "#OffdismeetingCountTmp",
              },
              {
                field: "money",
                title: "订货记录",
@@ -414,8 +436,23 @@
                          "submit(LAY-app-OfflineDistributor-createForm-submit)",
                          function (data) {
                            var field = data.field; //获取提交的字段
                            field.storeLogoUrl="";
                            field.isdelete = field.isdelete == "on";
                            if((!!field.storeLogoUrl1)&&(!!field.storeLogoUrl2))
                            {
                              field.storeLogoUrl=field.storeLogoUrl1+","+field.storeLogoUrl2;
                            }
                            else
                             if(!!field.storeLogoUrl1)
                            {
                              field.storeLogoUrl=field.storeLogoUrl1;
                            }
                            else if(!!field.storeLogoUrl2)
                            {
                              field.storeLogoUrl=field.storeLogoUrl2;
                            };
                            field.region = GetAreaCodeFormFileid(
                              field,
                              "CreatofflinedisRegion"
@@ -487,6 +524,24 @@
                          "submit(LAY-app-OfflineDistributor-editForm-submit)",
                          function (data) {
                            var field = data.field; //获取提交的字段
                            debugger
                            field.storeLogoUrl="";
                            if((!!field.storeLogoUrl1)&&(!!field.storeLogoUrl2))
                            {
                              field.storeLogoUrl=field.storeLogoUrl1+","+field.storeLogoUrl2;
                            }
                            else
                             if(!!field.storeLogoUrl1)
                            {
                              field.storeLogoUrl=field.storeLogoUrl1;
                            }
                            else if(!!field.storeLogoUrl2)
                            {
                              field.storeLogoUrl=field.storeLogoUrl2;
                            };
                            
                            field.isdelete = field.isdelete == "on";
                            field.region = GetAreaCodeFormFileid(
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/create.html
@@ -200,11 +200,11 @@
        </div>
        
      </div>
      <div class="layui-inline">
      <div class="layui-form-item">
        <label for="reMaker" class="layui-form-label"
          >备注</label
        >
        <div class="layui-input-inline">
        <div class="layui-input-block">
          <input
            name="reMaker"
            lay-verType="tips"         
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/details.html
@@ -115,7 +115,7 @@
        <div class="layui-form-item">
            <label for="PromoteMoney" class="layui-form-label  layui-form-required">推广费用</label>
            <div class="layui-input-inline">
                <input name="PromoteMoney"   disabled lay-verType="tips" lay-verify="required|number" class="layui-input" placeholder="请输入推广费用" lay-reqText="请输入推广费用"  value="{{d.params.data.promoteMoney || '' }}" />
                <input name="promoteMoney"   disabled lay-verType="tips" lay-verify="required|number" class="layui-input" placeholder="请输入推广费用" lay-reqText="请输入推广费用"  value="{{d.params.data.promoteMoney || '' }}" />
            </div>
            <span class="layui-form-mid layui-word-aux">元</span>
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/edit.html
@@ -219,7 +219,7 @@
            </div>
          </div>
        </div>
        <div class="layui-inline">
        <div class="layui-form-item">
          <label for="reMaker" class="layui-form-label "
            >备注</label
          >
@@ -550,29 +550,5 @@
    );
  };
  Date.prototype.Format = function (fmt) {
    //author: meizz
    var o = {
      "M+": this.getMonth() + 1, //月份
      "d+": this.getDate(), //日
      "h+": this.getHours(), //小时
      "m+": this.getMinutes(), //分
      "s+": this.getSeconds(), //秒
      "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    };
    if (/(y+)/.test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        (this.getFullYear() + "").substr(4 - RegExp.$1.length)
      );
    for (var k in o)
      if (new RegExp("(" + k + ")").test(fmt))
        fmt = fmt.replace(
          RegExp.$1,
          RegExp.$1.length == 1
            ? o[k]
            : ("00" + o[k]).substr(("" + o[k]).length)
        );
    return fmt;
  };
</script>
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html
@@ -284,6 +284,7 @@
              },
              { field: "platforms", title: "入住平台", sort: false, with: 300 },
              { field: "areaCodeName", title: "区域", sort: false, with: 300 },
              { field: "promoteMoney", title: "推广费用", sort: false, with: 300 },
              { field: "createBy", title: "信息录入", sort: false, width: 100 },
              {
                field: "mangerName",
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html
@@ -229,10 +229,22 @@
                            <div class="layui-form" id="batchSetting" style="display:none;">
                                <div class="layui-tab" lay-filter="batchSetting-hash">
                                    <ul class="layui-tab-title">
                                        <li lay-id="22">SKU选择</li>
                                        <li class="layui-this" lay-id="11">参数设置</li>
                                        <li lay-id="22">图片设置</li>
                                    </ul>
                                    <div class="layui-tab-content">
                                        <div class="layui-tab-item">
                                            <div class="layui-form-item">
                                                <label class="layui-form-label">SKU选择</label>
                                                <div class="layui-input-block" id="skuSetImage"></div>
                                            </div>
                                            <div class="layui-form-item layui-center">
                                                <button class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs" onclick="SellAll()">全选</button>
                                                <button class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs" onclick="SellNoOne()">全不选</button>
                                            </div>
                                        </div>
                                        <div class="layui-tab-item layui-show">
                                            <div class="layui-form-item">
@@ -241,7 +253,7 @@
                                                    <input class="layui-input" id="oneKeySetWeight">
                                                </div>
                                                <div class="layui-input-inline layui-inline-2">
                                                    <button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(4)">
                                                    <button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySetByName('product[weight]')">
                                                        <i class="layui-icon layui-icon-set"></i>确定
                                                    </button>
                                                </div>
@@ -285,7 +297,7 @@
                                                        <i class="layui-icon layui-icon-set"></i>确定
                                                    </button>
                                                </div>
                                                <label class="layui-form-label">经销商返现</label>
                                                <label class="layui-form-label">普通用户购买返现</label>
                                                <div class="layui-input-inline layui-inline-2">
                                                    <input class="layui-input" id="oneKeySetLevelOne">
                                                </div>
@@ -338,10 +350,7 @@
                                        </div>
                                        <div class="layui-tab-item">
                                            <div class="layui-form-item">
                                                <label class="layui-form-label">SKU选择</label>
                                                <div class="layui-input-block" id="skuSetImage"></div>
                                            </div>
                                            <div class="layui-form-item">
                                                <label class="layui-form-label" for="avatarImage">图片:</label>
                                                <div class="layui-input-inline" style="margin-left:20px;">
@@ -454,9 +463,12 @@
                <th>积分最大<br />可抵金额</th> -->
                <th>库存</th>
                <th><i class="required-color">*</i>销售价</th>
                <th>经销商价格</th>
                <th>成本价</th>
                <th>指导零售价</th>
                <th>经销商返现</th>
                <th>经销商用户购买返现</th>
                <th>普通用户购买返现</th>
                <!-- <th>二级返现</th>
                <th>三级返现</th> -->
                <th>操作</th>
@@ -512,13 +524,19 @@
                    <input type="text" name="product[price][]" value="{{item.price}}" placeholder="销售价" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[distributionPrice][]" value="{{item.distributionPrice||'0'}}" placeholder="经销商价格" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[costprice][]" value="{{item.costprice}}" placeholder="成本价" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="指导零售价" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[levelOne][]" value="{{item.levelOne}}" placeholder="经销商返现" class="layui-input layui-inline-1">
                    <input type="text" name="product[distributionCutMoney][]" value="{{item.distributionCutMoney||'0'}}" placeholder="经销商购买返现" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[cutMoney][]" value="{{item.cutMoney||'0'}}" placeholder="普通用户购买返现" class="layui-input layui-inline-1">
                </td>
                <!-- <td>
                    <input type="text" name="product[levelTwo][]" value="{{item.levelTwo}}" placeholder="二级返现" class="layui-input layui-inline-1">
@@ -600,11 +618,11 @@
                <div class="layui-input-inline">
                    <button type="button" class="layui-btn  layui-btn-warm layui-btn-sm" lay-active="getGenerateSpecBtn"><i class="layui-icon layui-icon-export"></i>生成SKU货品列表</button>
                </div>
                <div class="layui-input-inline">
                <!-- <div class="layui-input-inline">
                    <button type="button" class="aKeySetBtn layui-btn layui-btn-warm layui-btn-sm">
                        <i class="layui-icon layui-icon-set"></i>一键设置
                    </button>
                </div>
                </div> -->
            </div>
        </div>
        <div id="more_spec"></div>
@@ -631,10 +649,10 @@
    </select>
</script>
<script src="/views/liao.js"></script>
<!--//一键设置SKU图片时自动生成选中的SKU-->
<!--一键设置SKU图片时自动生成选中的SKU-->
<script id="imageSetMoreSku_tpl" type="text/html">
    {{# layui.each(d, function(index, item){  }}
    <input type="checkbox" name="skuAttrValue" value="{{item}}" title="{{item}}" lay-filter="skuAttrValue-filter">
    <input type="checkbox" name="skuAttrValue" value="{{item}}" title="{{item}}"  class="class_onkeySet_checkbox_creat" lay-filter="skuAttrValue-filter">
    {{#  }); }}
</script>
@@ -1602,6 +1620,7 @@
                                            view2.innerHTML = html;
                                        });
                                        form.render("radio");
                                    }
                                    //赋值数据
@@ -1843,6 +1862,7 @@
                        //多参数产品库生成列表集合
                        var products = [];
                        var productsCount = parseInt(field['productsCount']);
                        debugger
                        for (var i = 0; i < productsCount; i++) {
                            var productModel = {};
                            productModel.costprice = field['product[costprice][' + i + ']'];
@@ -1863,6 +1883,10 @@
                            productModel.levelThree = field['product[levelThree][' + i + ']'];
                            productModel.pointsDeduction = field['product[pointsDeduction][' + i + ']'];
                            productModel.points = field['product[points][' + i + ']'];
                            //百分兵法添加
                            productModel.distributionPrice = field['product[distributionPrice][' + i + ']'];
                            productModel.distributionCutMoney = field['product[distributionCutMoney][' + i + ']'];
                            productModel.cutMoney = field['product[cutMoney][' + i + ']'];
                            products.push(productModel);
                        }
                        //会员价格模型
@@ -1916,7 +1940,65 @@
        }
        $('#imageIds').val(imgs);
    }
    function SellAll()
    {
        // 选取ID为ID_onkeySet_checkbox_creat的checkbox元素
var checkBoxes = $(".class_onkeySet_checkbox_creat");
// 设置选中状态
checkBoxes.prop("checked", true);
// 如果使用了Layui Form模块,刷新表单状态
if (typeof layui.form !== 'undefined') {
    layui.form.render();
}
    }
    function SellNoOne()
    {
        // 选取ID为ID_onkeySet_checkbox_creat的checkbox元素
var checkBoxes = $(".class_onkeySet_checkbox_creat");
// 设置选中状态
checkBoxes.prop("checked", false);
// 如果使用了Layui Form模块,刷新表单状态
if (typeof layui.form !== 'undefined') {
    layui.form.render();
}
    }
    function setInputsValueTo(element, prefix, value) {
        // 使用querySelectorAll获取所有input元素,其中name属性以prefix开头
        const inputs = element.querySelectorAll(`input[name^="${prefix}["]`);
        // 遍历所有找到的input元素
        inputs.forEach(input => {
          // 检查name属性是否与prefix匹配
          if (new RegExp(`^${prefix}\\[\\d+\\]$`).test(input.name)) {
            // 设置input的值为指定的value
            input.value = value;
          }
        });
      }
  function oneKeySetByName(name)
  {
    debugger
    setInputsValueTo(document.getElementById('productsTbody'),name,12);
    // 调用递归函数,开始遍历指定父元素及其子孙元素
 //   setValuesRecursively($("#yourParentElementId")); // 替换为实际父元素的ID
    // 定义要遍历的父元素(例如:一个div)
//var parentElement = $("#productsTbody tr"); // 替换为实际父元素的ID
// 使用正则表达式匹配name属性为scol[1-4]的input元素
//parentElement.find(`input[${name}^='scol['][${name}$=']']`).val(12);
  }
    function oneKeySet(tag) {
        var curValue = 0;
        if (tag == 4) {
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html
@@ -316,11 +316,14 @@
                <th>积分最大<br />可抵金额</th> -->
                <th>库存</th>
                <th><i class="required-color">*</i>销售价</th>
                <th>经销商价格</th>
                <th>成本价</th>
                <th>指导零售价</th>
                <th>一级返现</th>
                <th>经销商用户购买返现</th>
                <th>普通用户购买返现</th>
                <!-- <th>二级返现</th>
                <th>三级返现</th> -->
                <!-- <th>三级返现</th> --> -->
                <th>冻结库存</th>
                <th>操作</th>
            </tr>
@@ -375,13 +378,20 @@
                    <input type="text" name="product[price][]" value="{{item.price}}" placeholder="销售价" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[distributionPrice][]" value="{{item.distributionPrice||'0'}}" placeholder="经销商价格" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[costprice][]" value="{{item.costprice}}" placeholder="成本价" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="指导零售价" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[levelOne][]" value="{{item.levelOne}}" placeholder="经销商返现" class="layui-input layui-inline-1">
                    <input type="text" name="product[distributionCutMoney][]" value="{{item.distributionCutMoney||'0'}}" placeholder="经销商购买返现" class="layui-input layui-inline-1">
                </td>
                <td>
                    <input type="text" name="product[cutMoney][]" value="{{item.cutMoney||'0'}}" placeholder="普通用户购买返现" class="layui-input layui-inline-1">
                </td>
                <!-- <td>
                    <input type="text" name="product[levelTwo][]" value="{{item.levelTwo}}" placeholder="二级返现" class="layui-input layui-inline-1">
@@ -468,11 +478,11 @@
                <div class="layui-input-inline">
                    <button type="button" class="layui-btn  layui-btn-warm layui-btn-sm" lay-active="getGenerateSpecBtn"><i class="layui-icon layui-icon-export"></i>生成SKU货品列表</button>
                </div>
                <div class="layui-input-inline">
                <!-- <div class="layui-input-inline">
                    <button type="button" class="aKeySetBtn layui-btn layui-btn-warm layui-btn-sm">
                        <i class="layui-icon layui-icon-set"></i>一键设置
                    </button>
                </div>
                </div> -->
            </div>
        </div>
        <div id="more_spec"></div>
@@ -1981,7 +1991,12 @@
                            productModel.levelThree = field['product[levelThree][' + i + ']'];
                            productModel.pointsDeduction = field['product[pointsDeduction][' + i + ']'];
                            productModel.points = field['product[points][' + i + ']'];
                            //添加 百分兵法
                            productModel.distributionPrice = field['product[distributionPrice][' + i + ']'];
                            productModel.distributionCutMoney = field['product[distributionCutMoney][' + i + ']'];
                            productModel.cutMoney = field['product[cutMoney][' + i + ']'];
                            products.push(productModel);
                        }
                        //会员价格模型
                        var gradePrice = [];
CoreCms.Net.Web.Admin/wwwroot/views/liao.js
@@ -3,7 +3,7 @@
 * @Author: 小飞侠
 * @Date: 2024-03-01 09:11:24
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2024-04-01 12:39:54
 * @LastEditTime: 2024-04-10 13:37:35
 * Copyright: 2024  MinTinge CO.,LTD. All Rights Reserved.
 * @Descripttion: 写入你的描述
 */
@@ -78,6 +78,7 @@
 */
function formatAreaInPut(coreHelper, idname, areaid = "") {
    let area = 0;
    if ((areaid !== "")&&(areaid!==null) &&(areaid!==0))
        area = areaid.split(",").reverse()[0];
@@ -87,6 +88,9 @@
        $.each(data, function (i, n) {
            str += `<select lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
            str += "<option value='' >请选择</option>";
            if(n?.list?.length>0)
            {
            $.each(n.list, function (h, z) {
                if (n.hasOwnProperty('info') && n.info?.id == z.id) {
                    str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>";
@@ -94,13 +98,27 @@
                    str += "<option value='" + z.id + "' >" + z.name + "</option>";
                }
            });
            }
            else
            {
                $.each(n.thisList, function (h, z) {
                    if (n.hasOwnProperty('info') && n.info?.id == z.id) {
                        str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>";
                    } else {
                        str += "<option value='" + z.id + "' >" + z.name + "</option>";
                    }
                });
            }
            str += "</select>";
        });
        $(`input[name='${idname}']`).after(str);
        //以上数据输出完,以下绑定事件
        $.each(data, function (i, n) {
            if (i < (data.length)) {
                $(`select[name='${idname}_` + (i + 1) + "']").change(function () {
                // $(`select[name='${idname}_` + (i + 1) + "']").change(function () {
                //     changeareaIdArea(i + 1, data.length, idname);
                // });
                $(`select[name='${idname}_` + (i + 1) + "']").click(function () {
                    changeareaIdArea(i + 1, data.length, idname);
                });
            }
CoreCms.Net.Web.Admin/wwwroot/views/temp.html
@@ -58,3 +58,4 @@
    });
</script>
CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/edit.html
@@ -4,7 +4,7 @@
<script type="text/html" template lay-done="layui.data.sendParams(d);">
    <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsUser-editForm" id="LAY-app-CoreCmsUser-editForm">
        <input type="hidden" name="id" id="id" value="{{d.params.data.model.id || '' }}" />
        <input type="hidden" name="isBaifenPromotion" id="IsBaifenPromotion" value="{{d.params.data.model.isBaifenPromotion || 'false' }}" />
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">手机号:</label>
CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html
@@ -108,6 +108,17 @@
                </div>
            </div>
            <div class="layui-inline layui-input-wrap layui-input-wrap-prefix">
                <div class="layui-input-inline" style="width: 200px;">
                    <select name="isBaifenPromotion" id="isBaifenPromotion">
                        <option value="">请选择是否是推广人员</option>
                        <option value="1">是推广人员</option>
                        <option value="0">不是推广人员</option>
                    </select>
                </div>
            </div>
            <div class="layui-inline layui-input-wrap layui-input-wrap-prefix">
                <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-CoreCmsUser-search"><i class="layui-icon layui-icon-search"></i>筛选</button>
            </div>
        </div>
CoreCms.Net.Web.WebApi/Controllers/GoodController.cs
@@ -19,6 +19,7 @@
using CoreCms.Net.Configuration;
using CoreCms.Net.DTO.ComponentsDTO;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
using CoreCms.Net.Model.FromBody;
@@ -63,6 +64,7 @@
        private ICoreCmsAgentGradeServices _agentGradeServices;
        private ICoreCmsGoodsCategoryExtendServices _goodsCategoryExtendServices;
        private readonly ICoreCmsAreaServices _coreCmsAreaServices;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        /// <summary>
        /// 构造函数
@@ -83,7 +85,8 @@
            ICoreCmsAgentProductsServices agentProductsServices, 
            ICoreCmsAgentGradeServices agentGradeServices, 
            ICoreCmsGoodsCategoryExtendServices goodsCategoryExtendServices,
            ICoreCmsAreaServices areaServices
            ICoreCmsAreaServices areaServices,
            IBfbfComAPIService bfbfComAPIService
            )
        {
@@ -104,6 +107,7 @@
            _agentGradeServices = agentGradeServices;
            _goodsCategoryExtendServices = goodsCategoryExtendServices;
            _coreCmsAreaServices = areaServices;
            _bfbfComAPIService = bfbfComAPIService;
        }
        //公共接口====================================================================================================
@@ -165,6 +169,13 @@
            var jm = new WebApiCallBack();
            var where = PredicateBuilder.True<GoodListDTO>();
            //是否是经销商
            bool isDic = false;
            if (_user.ID > 0)
            {
                isDic = await _bfbfComAPIService.IsDictionary(_user.ID);
            };
            var className = string.Empty;
            if (!string.IsNullOrWhiteSpace(entity.where))
@@ -262,6 +273,7 @@
            //获取数据
            var list = await _goodsServices.QueryPageByDTOAsync(where, entity.page, entity.limit, true);
            //获取品牌
            var brands = await _brandServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort, OrderByType.Desc, true, true);
            foreach (var item in list)
@@ -274,6 +286,12 @@
                  
                    item.area+= (await _coreCmsAreaServices.GetAreaString(code)+"");
                }
                //调整经销商价格 百分兵法
                if(isDic)
                {
                    item.price = item.distributionPrice;
                }
            }
            //返回数据
            jm.status = true;
@@ -613,6 +631,11 @@
                jm.msg = "商品获取失败";
                return jm;
            }
            if (await _bfbfComAPIService.IsDictionary(user.id))
            {
                //百分兵法经销商
                model.product.price = model.product.distributionPrice;
            }
            var codelist = model.areaCode?.Split(",");
            model.area = "";
            if(codelist!=null)
CoreCms.Net.Web.WebApi/Controllers/PageController.cs
@@ -17,6 +17,7 @@
using AutoMapper;
using CoreCms.Net.Configuration;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.DTO;
@@ -43,6 +44,7 @@
        private readonly ICoreCmsOrderServices _orderServices;
        private readonly ICoreCmsUserServices _userServices;
        /// <summary>
        /// 构造函数
        /// </summary>
@@ -50,13 +52,15 @@
            , ICoreCmsSettingServices settingServices
            , ICoreCmsPagesServices pagesServices
            , ICoreCmsOrderServices orderServices
            , ICoreCmsUserServices userServices)
            , ICoreCmsUserServices userServices
            ,IBfbfComAPIService bfbfComAPIService)
        {
            _mapper = mapper;
            _settingServices = settingServices;
            _pagesServices = pagesServices;
            _orderServices = orderServices;
            _userServices = userServices;
        }
        //公共接口====================================================================================================
CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml
@@ -418,7 +418,7 @@
            商品相关接口处理
            </summary>
        </member>
        <member name="M:CoreCms.Net.Web.WebApi.Controllers.GoodController.#ctor(AutoMapper.IMapper,CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsGoodsCategoryServices,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsProductsServices,CoreCms.Net.IServices.ICoreCmsBrandServices,CoreCms.Net.IServices.ICoreCmsOrderItemServices,CoreCms.Net.IServices.ICoreCmsGoodsCommentServices,CoreCms.Net.IServices.ICoreCmsGoodsParamsServices,CoreCms.Net.IServices.ICoreCmsGoodsCollectionServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.ICoreCmsAgentServices,CoreCms.Net.IServices.ICoreCmsAgentProductsServices,CoreCms.Net.IServices.ICoreCmsAgentGradeServices,CoreCms.Net.IServices.ICoreCmsGoodsCategoryExtendServices,CoreCms.Net.IServices.ICoreCmsAreaServices)">
        <member name="M:CoreCms.Net.Web.WebApi.Controllers.GoodController.#ctor(AutoMapper.IMapper,CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsGoodsCategoryServices,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsProductsServices,CoreCms.Net.IServices.ICoreCmsBrandServices,CoreCms.Net.IServices.ICoreCmsOrderItemServices,CoreCms.Net.IServices.ICoreCmsGoodsCommentServices,CoreCms.Net.IServices.ICoreCmsGoodsParamsServices,CoreCms.Net.IServices.ICoreCmsGoodsCollectionServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.ICoreCmsAgentServices,CoreCms.Net.IServices.ICoreCmsAgentProductsServices,CoreCms.Net.IServices.ICoreCmsAgentGradeServices,CoreCms.Net.IServices.ICoreCmsGoodsCategoryExtendServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.baifenbingfa.IBfbfComAPIService)">
            <summary>
            构造函数
            </summary>
@@ -778,7 +778,7 @@
            页面接口
            </summary>
        </member>
        <member name="M:CoreCms.Net.Web.WebApi.Controllers.PageController.#ctor(AutoMapper.IMapper,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsPagesServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsUserServices)">
        <member name="M:CoreCms.Net.Web.WebApi.Controllers.PageController.#ctor(AutoMapper.IMapper,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsPagesServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.baifenbingfa.IBfbfComAPIService)">
            <summary>
            构造函数
            </summary>
CoreCms.Net.Web.WebApi/NLog.config
@@ -14,7 +14,7 @@
    dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"
    connectionString="Server=127.0.0.1;Database=BaseMIS;User ID=sa;Password=123456"
    -->
    <target name="log_database" xsi:type="Database" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" connectionString="Server=localhost\SQLEXPRESS;User ID=sa;Password=123456;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;">
    <target name="log_database" xsi:type="Database" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" connectionString="Server=MS-FSEUTNLCXFDB\SQLEXPRESS;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;Trusted_Connection=True; ">
      <commandText>
        INSERT INTO SysNLogRecords
        (LogDate,LogLevel,LogType,LogTitle,Logger,Message,MachineName,MachineIp,NetRequestMethod
CoreCms.Net.Web.WebApi/wwwroot/index.html
@@ -37,7 +37,7 @@
        <p>6、如果第三方请求接口服务获取不到数据,Debug提示【Access-Control-Allow-Origin】的错误,表示为跨域问题,请打开【appsettings.json】文件在【Cors】节点设置请求白名单。</p>
    </div>
    <div class="copyright">
        <p>&copy;2020 <a href="http://www.coreshop.com.cn/" target="_blank"></a>. All Rights Reserved</p>
        <p>&copy;2024 <a href="" target="_blank"></a>. All Rights Reserved</p>
    </div>
</body>
</html>