修改信息,一些对于不需要改的字段处理

如:我们编辑好一条数据,然后进行发布操作,这样在商城就能进行购买。

修改:编辑资源保存的时候进行逻辑判断

是否发布和资源状态两个字段不需要改变。

如下面方法:

/// <summary>
        ///     编辑资源信息
        /// </summary>
        [AbpAuthorize(ResourceAppPermissions.Resource_EditResource)]
        public virtual async Task UpdateResourceAsync(ResourceEditDto input)
        {
            if (input.PlaceOfDeliveryIds.Count < 1)
            {
                throw new UserFriendlyException("提货点地址不可为空");

}
            if (input.BidEndTime <= DateTime.Now)
            {
                throw new UserFriendlyException("竞价结束时间不能小于当前时间");
            }
            if (!input.Id.HasValue)
                throw new UserFriendlyException("编辑资源的标识Id不存在");

    // 查询一遍数据库

var entity = await _resourceRepository.FirstOrDefaultAsync(input.Id.Value);
            if (input.ResourceImgIdForALi <= 0)
            {
                input.ResourceImgIdForALi = entity.ResourceImgIdForALi;
            }

if (DateTime.Now >= entity.BidStartTime)
            {
                throw new UserFriendlyException("该资源正在竞价中,不能编辑!");
            }
            //if (entity.IsPublish)
            //    throw new UserFriendlyException("该资源已发布不能对其进行编辑操作");

entity.ResourceAddresses = new List<ResourceAddress>();
            var address = await GetResourceAddresses(input.PlaceOfDeliveryIds);

await _resourceAddressRepository.DeleteAsync(a => a.ResourceId == entity.Id);
            address.ForEach(a => entity.ResourceAddresses.Add(a));

if (!input.UploadDataId.HasValue)
            {
                await _resourceItemsRepository.DeleteAsync(a => a.ResourceId == entity.Id);
            }
            else
            {
                if (input.UploadDataId != entity.UploadDataId)
                {
                    await _resourceItemsRepository.DeleteAsync(a => a.ResourceId == entity.Id);

//判断用户上传的附件表模板
                    TestingExcel(input.UploadDataId.Value);

//生成资源子表
                    var items = CreateExcelResourceItems(input.UploadDataId.Value);

entity.ResourceItems = items;

    entity.UploadDataId = input.UploadDataId;
                }

}
            //时间
            //input.BidStartTime = DateTime.Now;
            input.ResourceState = entity.ResourceState;
            input.IsPublish = entity.IsPublish;
            input.MapTo(entity);

//todo:删除旧资源分类之前,判断本次传进来的资源分类与原来的资源分类
            //是否存在变动,存在变动则 删除原来的资源分类,否则直接跳过删除,不对已有
            //的资源分类做处理

//获取当前资源拥有的资源分类Ids
            //var currentCategories = await _categoryManage.GetResourceInCategoriesAsync(entity);
            var currentCategories = await _resourceCategoryRepository.GetAll().Where(a => a.ResourceId == input.Id).Select(b => b.CategoryId).ToListAsync();

await _resourceRepository.UpdateAsync(entity);
        }

我之前就错误的认为,这个两个字段也需要前端传递过来,解决办法就是修改之前查询一遍数据库,把不需要改变的字段重新赋值就可以了!!!

时间: 2024-12-24 12:22:15

修改信息,一些对于不需要改的字段处理的相关文章

微信电脑版怎么修改信息提示音

微信电脑版修改信息提示音的方法如下: 1.安装最新版的电脑微信 微信文件安装在 D:/software/weChat文件夹中 2.安装eXeScope软件,这个网上可以找到. 3.电脑微信关闭状态,打开eXeScope.exe文件. 4.打开微信根目录,找到WeChatResource.dll文件 5.用eXeScope打开WeChatResource.dll,并如图找到wave中的118.118就是微信的通知文件. 6.找到我们想要更改的铃声.并重命名为118.wav 7.导入我们新的铃声文件

修改LigerUI的导航栏,改为Tab标签模式

LigerUI导航栏本身是没有tab标签模式的,但是实际上,很多时候标签能能更好的展示业务,将导航的内容按照类目进行划分,避免一个里面太多的情况. 下面是我改造后的效果图,如下: ligerui是一个不错的免费开源ui框架,功能还是很强大的,但是有些地方也做的不够好,比如表单的自适应布局,树,布局等等,但是相信会越来越好.这里给出我改造后代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

DataGridView控件选中单元格、直接在控件中修改信息

                                                           原文取自个人博客:www.jycoder.com欢迎访问 一,获取DataGridView控件中的当前单元格 若要与DataGridView进行交互,通常要求用编程的方式发现哪个单元格出于活动状态.如果需要更改单元格,可通过DataGridView控件的CurrentCell属性来获取当前单元格的信息: 语法如下: Public DataGridViewCell CurrentC

学生学籍管理系统_学生登陆系统查询与修改信息

SCx.java package studentManage; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class SCx extends JFrame implements ActionListener { static SCx s; static JLabel label1 = new JLabel("学号:"); static JText

修改DevExpress中英文提示,将英文改为中文

1 : 修改DX 提示框中的英文字符 1 /// <summary> 2 /// 重写DX弹出框 英文变为中文 3 /// </summary> 4 public class CHS : DevExpress.XtraEditors.Controls.Localizer 5 { 6 public override string GetLocalizedString(DevExpress.XtraEditors.Controls.StringId id) 7 { 8 switch (

Oracle获取表结构信息:表名、是否视图、字段名、类型、长度、非空、主键

select a.TABLE_NAME as "TableName", case when (select count(*) from user_views v where v.VIEW_NAME =a.TABLE_NAME )>0 then 'V' else 'U'end as "TableType", a.COLUMN_NAME as "ColumnName", A.COLUMN_ID as "ColumnIndex"

MySQL修改表一次添加多个列(字段)和索引

MySQL修改表一次添加多个列(字段) ALTER TABLE table_name ADD func varchar(50), ADD gene varchar(50), ADD genedetail varchar(50); MySQL修改表一次添加多个索引ALTER TABLE  table_name ADD INDEX idx1 ( `func`), ADD INDEX idx2 ( `func`,`gene`), ADD INDEX idx3( `genedetail`);

修改信息

public int modifyMiss(RESINFO bean, List<MISSINGISTEMS> missings, List<MISSINGISTEMS> missList) throws Exception { int result = StatusType.DEFAULT ; RESINFO resinfo = new RESINFO(); resinfo.setID(bean.getID()); resinfo = this.bean(resinfo); Li

vue的模糊查询和下拉菜单修改信息------------学习记录

HTML代码<div id="box"> <div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-heade