商品批量更新折扣

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

相关文章

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

Redis中6种缓存更新策略详解

《Redis中6种缓存更新策略详解》Redis作为一款高性能的内存数据库,已经成为缓存层的首选解决方案,然而,使用缓存时最大的挑战在于保证缓存数据与底层数据源的一致性,本文将介绍Redis中6种缓存更... 目录引言策略一:Cache-Aside(旁路缓存)策略工作原理代码示例优缺点分析适用场景策略二:Re

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作