商品批量更新折扣

2024-02-22 20:10
文章标签 更新 商品 批量 折扣

本文主要是介绍商品批量更新折扣,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

商品批量更新折扣

开发工具与关键技术:Visual Studio 2015
作者:徐晶旗
撰写时间:2019年8月17日 

在做商品管理这一模块的时候遇到了商品批量操作,比如批量导入商品信息,批量更新折扣,批量上架下架,批量特价商品,今天我就来做一下批量更新折扣这一操作。批量更新折扣顾名思义也就是修改原先的商品折扣,比如原先这一批商品不打折,按吊牌价销售,或者之前这批商品是在吊牌价的基础上打九折,然后现在要更新这些商品的折扣,更新的折扣为八折,这些商品就要按吊牌价的八折进行销售,这就是批量更新折扣了,也就是修改折扣。

在这里插入图片描述

现在就来做一下这个批量更新折扣吧?
首先我要写出一个模态框来,模态框中显示要更新的内容。“openModal1();”是获取到模态框中的内容,然后点击批量更新折扣就会弹出这个模态框。

<a class="dropdown-item" href="#" onclick="openModal1;()">
<img src="~/Content/img/st.png" /> 
<b style="font-size:12px;">批量更新折扣</b>
</a>

至于模态框的具体内容在这里就没有写,给大家看一下模态框内容的图片吧!下面就是在页面中弹出的模态框的图片。

在这里插入图片描述
然后下面就要写方法了,先给要在模态框输入的内容赋值,因为这里的下拉框选项中都默认给了第一个值,所以可以不进行选择,如果没有输入折扣的话,或者输入的折扣不在变量“Discounts”的范围内,就会提示请输入折扣,如果输入的折扣大于1或者等于0,就会提示折扣超出限定范围,请重新输入,这样就避免了不合理的折扣出现。

        /*************批量更新折扣***************/function BatchDiscount() {var CommodityTypeID = $("#CommodityTypeID1").val();//商品类别var BrandID = $("#brand2").val();//品牌var SeasonID = $("#season2").val();//季节var Discount = $("#Discount1").val();//折扣          var Discounts = /^([0-1]{1}\.[0-9]{1,2})$/ //用正则表达式给限定的字符范围赋值,如果输入的内容不再这些字符范围内,就读取不到数据if (!Discounts.test(Discount)) {layer.msg("请输入折扣!", { icon: 0, title: '三易通', anim: 1 });return;}if (Discount > 1 || Discount == 0) {layer.msg("折扣超出限定范围,请重新输入!", { icon: 0, title: '三易通', offset: "200px;" });$("#Discount1").val("1.00");return;}layerIndex = layer.load();

下面是用键值对的格式请求控制其中的方法

$.post("BatchDiscount", { CommodityTypeID: CommodityTypeID, BrandID: BrandID, SeasonID: SeasonID, Discount: Discount }, function (strMsg) {layer.close(layerIndex);$("#BatchDiscount").modal('hide');layer.alert(strMsg, { icon: 0, title: '三易通', anim: 1 });TabTitles.reload();//表格刷新}, 'json');}

控制器中的代码如下:

    public ActionResult BatchDiscount(int CommodityTypeID, int BrandID, int SeasonID, string Discount){string strMsg = "failed";int countSuccessDel = 0;//记录删除成功的条数int countFailedDel = 0;//记录删除失败的条数try{List<CommodityTo> dbCommodity = (from tbCommodity in myModels.B_Commodity//商品ID表select new CommodityTo{CommodityID = tbCommodity.CommodityID,//商品IDCommodityTypeID = tbCommodity.CommodityTypeID,//类别IDBrandID = tbCommodity.BrandID,//品牌IDSeasonID = tbCommodity.SeasonID,//季节ID}).ToList();//根据条件进行筛选数据                             if (CommodityTypeID > 0)//类别ID{dbCommodity = dbCommodity.Where(S => S.CommodityTypeID == CommodityTypeID).ToList();}if (BrandID > 0)//品牌ID{dbCommodity = dbCommodity.Where(S => S.BrandID == BrandID).ToList();}if (SeasonID > 0)//季节ID{dbCommodity = dbCommodity.Where(S => S.SeasonID == SeasonID).ToList();}if (dbCommodity.Count() != 0){for (int i = 0; i < dbCommodity.Count; i++){int? CommodityID = dbCommodity[i].CommodityID;B_Commodity pwCommodit = (from tbCommodity in myModels.B_Commoditywhere tbCommodity.CommodityID == CommodityIDselect tbCommodity).Single();pwCommodit.Discount = Convert.ToDecimal(Discount);myModels.Entry(pwCommodit).State = EntityState.Modified;if (myModels.SaveChanges() > 0){countSuccessDel++;}else{countFailedDel++;}}strMsg = "总共需要修改" + dbCommodity.Count() + "条商品信息!其中成功修改" + countSuccessDel + "条,失败" + countFailedDel + "条。";}else{strMsg = "没有匹配的数据!";}}catch (Exception e){Console.Write(e);strMsg = "参数异常!";}return Json(strMsg, JsonRequestBehavior.AllowGet);}

写好了控制器中的方法就可以进行更新折扣了,如果输入的内容有对应的商品,就会提示总共要修改多少条商品,如果没有,就会提示没有匹配的商品。

在这里插入图片描述

这篇关于商品批量更新折扣的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736363

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统