liaoxujun@qq.com
2024-04-10 05d32271f646149609d8b42016e11cf95d8d5a84
 修改供应商价格显示
22个文件已修改
499 ■■■■ 已修改文件
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 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/User/CoreCmsUserPartial.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.RedisMQ/OrderAgentOrDistributionSubscribe.cs 12 ●●●● 补丁 | 查看 | 原始文档 | 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 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/Shop/CoreCmsPagesServices.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/create.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/edit.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/Controllers/GoodController.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/Controllers/PageController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml 4 ●●●● 补丁 | 查看 | 原始文档 | 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>
@@ -98,8 +100,32 @@
        
        
        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.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,8 +82,11 @@
                            var jm = await _distributionOrderServices.AddData(order); //添加分享关联订单日志
                            //判断是否可以成为经销商
                            //先判断是否已经是经销商了。
                            //百分兵法同意判决经销商
                            bool check = await _distributionServices.ExistsAsync(p => p.userId == order.userId);
                            var distributionType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DistributionType).ObjectToInt(0);
                                //bool check = await _bfbfComAPIService.IsDictionary( order.userId);
                                var distributionType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DistributionType).ObjectToInt(0);
                            if (distributionType == 3)  //无需审核,但是要满足提交
                            {
                                var info = new CoreCmsDistribution();
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.Distribution;
@@ -52,8 +53,9 @@
        private readonly ICoreCmsSettingServices _settingServices;
        private readonly IUnitOfWork _unitOfWork;
        private readonly ICoreCmsUserBalanceServices _userBalanceServices;
        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)
        {
            this._dal = dal;
            _distributionOrderRepository = distributionOrderRepository;
@@ -68,6 +70,7 @@
            base.BaseDal = dal;
            _unitOfWork = unitOfWork;
            _userBalanceServices = userBalanceServices;
            _bfbfComAPIService = bfbfComAPIService;
          
        }
@@ -413,6 +416,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)
@@ -720,7 +729,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,7 +826,10 @@
                    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.mktPrice = o.mktprice;
@@ -868,7 +879,11 @@
                    item.goods_id = good.id.ToString();
                    item.goods_name = good.name;
                    item.image = o.images;
                    item.price = o.price - gradePrice; //减去会员等级价格
                    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.mktPrice = o.mktprice;
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,7 +155,8 @@
        /// <returns></returns>
        public async Task<WebApiCallBack> GetPageConfig(string code)
        {
          var userID=   _contextUser.ID;
            var jm = new WebApiCallBack();
            var wherePage = PredicateBuilder.True<CoreCmsPages>();
@@ -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.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/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/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
          >
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,11 @@
                <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 +523,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 +617,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>
@@ -634,7 +651,7 @@
<!--//一键设置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 +1619,7 @@
                                            view2.innerHTML = html;
                                        });
                                        form.render("radio");
                                    }
                                    //赋值数据
@@ -1843,6 +1861,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 +1882,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 +1939,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,13 @@
                <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 +377,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 +477,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,6 +1990,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);
                        }
                        //会员价格模型
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))
@@ -261,6 +272,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);
@@ -274,6 +286,12 @@
                  
                    item.area+= (await _coreCmsAreaServices.GetAreaString(code)+"");
                }
                //调整经销商价格 百分兵法
                if(isDic)
                {
                    item.price = item.distributionPrice;
                }
            }
            //返回数据
            jm.status = true;
@@ -607,12 +625,17 @@
            }
            var model = await _goodsServices.GetGoodsDetail(entity.id, userId, false, "goods", 0, entity.data.ObjectToBool());
            if (model == null)
            {
                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;
@@ -42,6 +43,7 @@
        private readonly ICoreCmsPagesServices _pagesServices;
        private readonly ICoreCmsOrderServices _orderServices;
        private readonly ICoreCmsUserServices _userServices;
        /// <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>