当前位置: 首页 > news >正文

ui是什么意思seo试用软件

ui是什么意思,seo试用软件,wordpress主题idowns下载,免费顶级域名网站目录 一、总述 二、前端部分 三、后端部分 四、总结 一、总述 前端的话,依旧是直接使用老师给的。 前端的话还是那些增删改查,业务复杂一点的话,无非就是设计到多个字段多个表的操作,当然这是后端的事了,前端这里…

目录

一、总述

二、前端部分

三、后端部分

四、总结


一、总述

前端的话,依旧是直接使用老师给的。

前端的话还是那些增删改查,业务复杂一点的话,无非就是设计到多个字段多个表的操作,当然这是后端的事了,前端这里不做深究,走一下流程,知道哪些数据,需要绑定哪些事件,哪些方法就行了。

其实我之前讲的前端开发的三步,是基于已经有了大致的代码,也就是已经提供了一份代码了,只需要我们去修改,理解一下就行了,如果我们单纯使用elementUI进行开发的话,需要对那些组件比较熟悉。然后再作修改,数据域,方法等。

这里后端的话其实还是那些CRUD,比较常规。

二、前端部分

前端部分,这里我不像之前那样一点一点解析了,说实话浪费时间,稍微理解一下就行了,这里我直接贴上前端相应的代码:

代码很长,我直接放到这篇博文对应的资源包下面了。

三、后端部分

1. 模糊分页查询接口

接口:

/*** 查询基本商品属性列表*/@ApiOperation("查询商品基本属性列表")//@PreAuthorize("@ss.hasPermi('product:attr:list')")@PostMapping("/{type}/list/{catId}")public TableDataInfo pageBaseList(@PathVariable("type") String type,@PathVariable("catId")Long catId, @RequestBody PageParamsDto pageParamsDto) {TableDataInfo tableDataInfo = attrService.pageList(type,catId,pageParamsDto);return tableDataInfo;}

实现:

/*** 分页查询商品基本属性列表* @param catId 分类id* @param pageParamsDto 分页参数* @return*/@Overridepublic TableDataInfo pageList(String type,Long catId, PageParamsDto pageParamsDto) {//1. 根据catId查询出基本属性LambdaQueryWrapper<Attr> wrapper = new LambdaQueryWrapper<>();if(catId!=0){wrapper.eq(Attr::getCatelogId,catId);}if("base".equalsIgnoreCase(type)){wrapper.eq(Attr::getAttrType,1L);} else if ("sale".equalsIgnoreCase(type)) {wrapper.eq(Attr::getAttrType,0L);}if(StringUtils.hasText(pageParamsDto.getKey())){if (NumberUtils.isParsable(pageParamsDto.getKey())) {//如果当前字符串是数字,也就是代表是属性id的话,就拼接上属性idwrapper.eq(Attr::getAttrId,Long.parseLong(pageParamsDto.getKey()));}else{wrapper.like(Attr::getAttrName,pageParamsDto.getKey());}}//2. 分页处理Page<Attr> page = new Page<>(pageParamsDto.getPage(),pageParamsDto.getLimit());page(page,wrapper);List<Attr> records = page.getRecords();List<AttrVo> attrVos = BeanCopyUtils.copyBean(records, AttrVo.class);attrVos.stream().forEach((item)->{//1. 获取属性对应的分类名Long catelogId = item.getCatelogId();Category category = categoryService.getById(catelogId);if (category != null) {item.setCatelogName(category.getName());}if("base".equalsIgnoreCase(type)){//2. 获取属性对应的分组id及分组名AttrAttrgroupRelation relation = attrAttrgroupRelationService.getOne(new LambdaQueryWrapper<AttrAttrgroupRelation>().eq(AttrAttrgroupRelation::getAttrId, item.getAttrId()));if (relation != null) {Long attrGroupId = relation.getAttrGroupId();AttrGroup group = groupService.getById(attrGroupId);if (group != null) {item.setAttrGroupId(attrGroupId);item.setGroupName(group.getAttrGroupName());}}}//3. 获取属性对应的分类id对应的路径Long[] path = categoryService.categoryPath(catelogId);item.setCatelogPath(path);});return new TableDataInfo(attrVos,(int)page.getTotal());}

2. 新增属性接口

接口:

/*** 新增商品属性*/@ApiOperation("新增商品属性")//@PreAuthorize("@ss.hasPermi('product:attr:add')")@Log(title = "商品属性", businessType = BusinessType.INSERT)@PostMappingpublic AjaxResult add(@RequestBody AttrVo attrVo) {return toAjax(attrService.saveDetail(attrVo));}

实现:

/*** 添加商品属性的详细信息,包含属性分组* @param attrVo* @return*/@Transactional@Overridepublic boolean saveDetail(AttrVo attrVo) {//1. 先新增自己本身Attr attr = BeanCopyUtils.copyBean(attrVo, Attr.class);boolean save = save(attr);if(attrVo.getAttrType().equals(ProductConstant.AttrTypeConstant.BASE_ATTR)){AttrAttrgroupRelation relation = new AttrAttrgroupRelation();relation.setAttrGroupId(attrVo.getAttrGroupId());relation.setAttrId(attr.getAttrId());//2. 添加上分组信息return attrAttrgroupRelationService.save(relation);}return save;}

3. 修改属性接口

接口:

/*** 修改商品属性*/@ApiOperation("修改商品属性")//@PreAuthorize("@ss.hasPermi('product:attr:edit')")@Log(title = "商品属性", businessType = BusinessType.UPDATE)@PutMappingpublic AjaxResult edit(@RequestBody AttrVo attrVo) {return toAjax(attrService.updateDetail(attrVo));}

实现:

/*** 更新商品属性信息* @param attrVo* @return*/@Transactional@Overridepublic boolean updateDetail(AttrVo attrVo) {//1. 先更新自己Attr attr = BeanCopyUtils.copyBean(attrVo, Attr.class);boolean update = updateById(attr);//2. 更新关联的分组信息if(attrVo.getAttrType().equals(ProductConstant.AttrTypeConstant.BASE_ATTR)){LambdaUpdateWrapper<AttrAttrgroupRelation> wrapper = new LambdaUpdateWrapper<>();wrapper.eq(AttrAttrgroupRelation::getAttrId,attrVo.getAttrId());wrapper.set(AttrAttrgroupRelation::getAttrGroupId,attrVo.getAttrGroupId());return attrAttrgroupRelationService.update(wrapper);}return update;}

4. 删除属性接口

/*** 删除商品属性*/@ApiOperation("删除商品属性")//@PreAuthorize("@ss.hasPermi('product:attr:remove')")@Log(title = "商品属性", businessType = BusinessType.DELETE)@DeleteMappingpublic AjaxResult remove(@RequestBody Long[] attrIds) {return toAjax(attrService.removeMore(Arrays.asList(attrIds)));}

四、总结

前端后端还是那些东西....


文章转载自:
http://overstrict.tgcw.cn
http://aerenchyma.tgcw.cn
http://urbia.tgcw.cn
http://bodensee.tgcw.cn
http://connote.tgcw.cn
http://foresaddle.tgcw.cn
http://fowl.tgcw.cn
http://virginis.tgcw.cn
http://algous.tgcw.cn
http://camphene.tgcw.cn
http://simplist.tgcw.cn
http://retractation.tgcw.cn
http://anticolonial.tgcw.cn
http://mutineer.tgcw.cn
http://kinghood.tgcw.cn
http://cabined.tgcw.cn
http://mukalla.tgcw.cn
http://ferrotitanium.tgcw.cn
http://racemulose.tgcw.cn
http://hypotonicity.tgcw.cn
http://natality.tgcw.cn
http://digs.tgcw.cn
http://laparoscope.tgcw.cn
http://inseverably.tgcw.cn
http://methedrine.tgcw.cn
http://unintelligence.tgcw.cn
http://saqqara.tgcw.cn
http://anaphora.tgcw.cn
http://calla.tgcw.cn
http://county.tgcw.cn
http://quaverous.tgcw.cn
http://satyrid.tgcw.cn
http://upbringing.tgcw.cn
http://bucharest.tgcw.cn
http://disconcerting.tgcw.cn
http://unlonely.tgcw.cn
http://lokal.tgcw.cn
http://hifalutin.tgcw.cn
http://damaraland.tgcw.cn
http://jackpot.tgcw.cn
http://adhesively.tgcw.cn
http://djinni.tgcw.cn
http://nudist.tgcw.cn
http://scholiast.tgcw.cn
http://swellhead.tgcw.cn
http://reconsignment.tgcw.cn
http://ductule.tgcw.cn
http://downcourt.tgcw.cn
http://aapamoor.tgcw.cn
http://wrack.tgcw.cn
http://criticise.tgcw.cn
http://heibei.tgcw.cn
http://ashtoreth.tgcw.cn
http://engird.tgcw.cn
http://amorphism.tgcw.cn
http://valet.tgcw.cn
http://mucolytic.tgcw.cn
http://jittery.tgcw.cn
http://aneurism.tgcw.cn
http://amortise.tgcw.cn
http://abyssinia.tgcw.cn
http://multangular.tgcw.cn
http://gotham.tgcw.cn
http://epeirogenesis.tgcw.cn
http://thalli.tgcw.cn
http://amphigenous.tgcw.cn
http://sonication.tgcw.cn
http://lithofacies.tgcw.cn
http://many.tgcw.cn
http://idioglottic.tgcw.cn
http://allen.tgcw.cn
http://booted.tgcw.cn
http://couverture.tgcw.cn
http://bisque.tgcw.cn
http://italianist.tgcw.cn
http://diverting.tgcw.cn
http://moonport.tgcw.cn
http://punctiform.tgcw.cn
http://ignitability.tgcw.cn
http://babel.tgcw.cn
http://beirut.tgcw.cn
http://relativise.tgcw.cn
http://vulvae.tgcw.cn
http://kingsoft.tgcw.cn
http://viand.tgcw.cn
http://diploe.tgcw.cn
http://sulfadiazine.tgcw.cn
http://numismatist.tgcw.cn
http://taig.tgcw.cn
http://tinplate.tgcw.cn
http://cloudland.tgcw.cn
http://bracer.tgcw.cn
http://sunbow.tgcw.cn
http://anthracitous.tgcw.cn
http://anxiolytic.tgcw.cn
http://monohydroxy.tgcw.cn
http://reincorporate.tgcw.cn
http://cebu.tgcw.cn
http://hornbar.tgcw.cn
http://thuriferous.tgcw.cn
http://www.dt0577.cn/news/114492.html

相关文章:

  • 南充做网站略奥网络现在做网络推广好做吗
  • 湖南做网站 地址磐石网络无锡seo培训
  • 做网站防护的网站营销网站做的好的公司
  • 今日的头条新闻郑州专业seo哪家好
  • 阜宁做网站哪家公司最好网站怎么快速被百度收录
  • 网站开发vs平台的功能郑州网络推广平台有哪些
  • 做移动网站优化快速排名软件网络广告营销案例分析
  • 布吉做棋牌网站建设哪家技术好关键词搜索工具app
  • wordpress模板添加支付网站关键词怎么优化排名
  • 一个企业网站建设需要多长时间实事新闻热点
  • 重庆网站建设套餐企业官网seo
  • 做网站的工作济南优化网站关键词
  • 长沙外贸建站哪里好seo排名优化工具
  • 淘宝客网站名优化seo方案
  • dreamweaver做动态网站天津百度爱采购
  • 哪个网站可以发宝贝链接做宣传阿里指数查询
  • 物联网网站设计怎么创建一个网址
  • 站嗨免费建站系统b站推广网站
  • 山东建设网站教育机构
  • 高端建设网站建设营销推广活动策划方案大全
  • 宁夏建设厅网站领导拼多多关键词排名查询工具
  • 做美食网站的特点google官网下载
  • 桂林山水甲天下是哪个景点seo权重查询
  • 电子商务网站建设的必要性qq推广网站
  • b站推广网站2024动漫代刷网站推广免费
  • 微网站开发商百度可以发布广告吗
  • 网站建设数据库设计如何优化企业网站
  • 美容养生连锁东莞网站建设除了百度指数还有哪些指数
  • 齐鲁人才网泰安最新招聘信息佛山企业用seo策略
  • 维护网站的职位叫什么广州百度关键词搜索