作者主頁(yè):編程指南針
作者簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、CSDN博客專(zhuān)家 、CSDN內(nèi)容合伙人、掘金特邀作者、阿里云博客專(zhuān)家、51CTO特邀作者、多年架構(gòu)師設(shè)計(jì)經(jīng)驗(yàn)、騰訊課堂常駐講師
主要內(nèi)容:Java項(xiàng)目、Python項(xiàng)目、前端項(xiàng)目、人工智能與大數(shù)據(jù)、簡(jiǎn)歷模板、學(xué)習(xí)資料、面試題庫(kù)、技術(shù)互助
收藏點(diǎn)贊不迷路? 關(guān)注作者有好處
文末獲取源碼?
項(xiàng)目編號(hào):BS-XCX-020
一,環(huán)境介紹
語(yǔ)言環(huán)境:Java:? jdk1.8
數(shù)據(jù)庫(kù):Mysql: mysql5.7
應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31
開(kāi)發(fā)工具:IDEA或eclipse
后臺(tái)開(kāi)發(fā)技術(shù):SSM框架? ?
前臺(tái)開(kāi)發(fā)技術(shù):uni-app+微信小程序+vue
二,項(xiàng)目簡(jiǎn)介
隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,網(wǎng)上購(gòu)物越來(lái)越為人們所關(guān)注。網(wǎng)上購(gòu)物給用戶提供方便的購(gòu)買(mǎi)途徑,只要簡(jiǎn)單的網(wǎng)絡(luò)操作,足不出戶,即可送貨上門(mén),種類(lèi)齊全,并具有完善的售后服務(wù)。我國(guó)經(jīng)濟(jì)迅速發(fā)展,人們對(duì)手機(jī)的需求越來(lái)越大,各種手機(jī)軟件也都在被廣泛應(yīng)用,但是對(duì)于手機(jī)進(jìn)行數(shù)據(jù)信息管理,對(duì)于手機(jī)的各種軟件也是備受用戶的喜愛(ài),購(gòu)物系統(tǒng)設(shè)計(jì)被用戶普遍使用,為方便用戶能夠可以隨時(shí)進(jìn)行購(gòu)物系統(tǒng)設(shè)計(jì)的數(shù)據(jù)信息管理,特開(kāi)發(fā)了基于購(gòu)物系統(tǒng)設(shè)計(jì)的管理系統(tǒng)。
購(gòu)物系統(tǒng)設(shè)計(jì)的設(shè)計(jì)主要是對(duì)系統(tǒng)所要實(shí)現(xiàn)的功能進(jìn)行詳細(xì)考慮,確定所要實(shí)現(xiàn)的功能后進(jìn)行界面的設(shè)計(jì),在這中間還要考慮如何可以更好的將功能及頁(yè)面進(jìn)行很好的結(jié)合,方便用戶可以很容易明了的找到自己所需要的信息,還有系統(tǒng)平臺(tái)后期的可操作性,通過(guò)對(duì)信息內(nèi)容的詳細(xì)了解進(jìn)行技術(shù)的開(kāi)發(fā)。
購(gòu)物系統(tǒng)設(shè)計(jì)的開(kāi)發(fā)利用現(xiàn)有的成熟技術(shù)參考,以源代碼為模板,分析功能調(diào)整與購(gòu)物系統(tǒng)設(shè)計(jì)管理的實(shí)際需求相結(jié)合,討論了基于購(gòu)物系統(tǒng)設(shè)計(jì)管理的使用。?
互聯(lián)網(wǎng)是人類(lèi)的基本需求,特別是在現(xiàn)代社會(huì),個(gè)人壓力增大,社會(huì)運(yùn)作節(jié)奏高,隨著互聯(lián)網(wǎng)的快速發(fā)展,用戶的需求也越來(lái)越高,用戶也將越來(lái)越多依靠互聯(lián)網(wǎng)而不是自己獲取信息,使得各種軟件程序的開(kāi)發(fā)得到了應(yīng)用。
近年來(lái),隨著我國(guó)經(jīng)濟(jì)的不斷發(fā)展,平臺(tái)的管理制度越來(lái)越多。每個(gè)購(gòu)物系統(tǒng)設(shè)計(jì)也都將通過(guò)計(jì)算機(jī)進(jìn)行整體智能化操作,對(duì)于購(gòu)物系統(tǒng)設(shè)計(jì)功能所牽扯的數(shù)據(jù)都是通過(guò)進(jìn)行購(gòu)物系統(tǒng)設(shè)計(jì)等相關(guān)的數(shù)據(jù)信息內(nèi)容、并且可以進(jìn)行管理員后臺(tái);首頁(yè)、個(gè)人中心、商品分類(lèi)管理、商品信息管理、特價(jià)商品管理、用戶管理、留言板管理、系統(tǒng)管理、訂單管理,可以通過(guò)系統(tǒng)進(jìn)行分配,傳統(tǒng)的學(xué)習(xí)方式信息已經(jīng)無(wú)法滿足用戶的需求。為此開(kāi)發(fā)了本購(gòu)物系統(tǒng)設(shè)計(jì) ,為用戶提供一個(gè)基于購(gòu)物系統(tǒng)設(shè)計(jì),同時(shí)方便用戶在前臺(tái);首頁(yè)、商品信息、特價(jià)商品、我的等詳細(xì)情況進(jìn)行操作。該系統(tǒng)滿足了用戶對(duì)購(gòu)物系統(tǒng)設(shè)計(jì)信息獲取的需求,并且信息可以及時(shí)、準(zhǔn)確、有效地進(jìn)行查看并且系統(tǒng)化、標(biāo)準(zhǔn)化和有效的工作。
?
我們可以根據(jù)數(shù)據(jù)結(jié)構(gòu)的詳細(xì)分析要求,我們根據(jù)輸入和輸出數(shù)據(jù)量的要求進(jìn)行分析,確定什么表表,結(jié)構(gòu)之間的關(guān)系,我們可以驗(yàn)證,調(diào)整和完善,查詢和瀏覽過(guò)程,可以實(shí)現(xiàn)數(shù)據(jù)庫(kù),以使用戶對(duì)數(shù)據(jù)和功能有更多要求。
基于系統(tǒng)使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn),對(duì)數(shù)據(jù)庫(kù)的概念模型進(jìn)行了轉(zhuǎn)換和構(gòu)建。但是,這個(gè)系統(tǒng)只需要充分考慮購(gòu)物系統(tǒng)設(shè)計(jì)的功能,而且組織比較清晰。
表4.1地址表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
2 |
yonghu_id |
Integer |
用戶id |
是 |
3 |
address_name |
String |
地址 |
是 |
4 |
address_phone |
String |
電話 |
是 |
5 |
isdefault_types |
Integer |
是否默認(rèn)地址 |
是 |
6 |
insert_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.2購(gòu)物車(chē)表表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
7 |
yonghu_id |
Integer |
用戶id |
是 |
8 |
goods_id |
Integer |
商品id |
是 |
9 |
buy_number |
Integer |
購(gòu)買(mǎi)數(shù)量 |
是 |
10 |
insert_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.3客服聊天表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
11 |
yonghu_id |
Integer |
提問(wèn)用戶 |
是 |
12 |
chat_issue |
String |
問(wèn)題 |
是 |
13 |
chat_reply |
String |
回復(fù) |
是 |
14 |
issue_time |
Date |
問(wèn)題時(shí)間 |
是 |
15 |
reply_time |
Date |
回復(fù)時(shí)間 |
是 |
16 |
zhuangtai_types |
Integer |
狀態(tài) |
是 |
17 |
chat_types |
Integer |
數(shù)據(jù)類(lèi)型 |
是 |
18 |
insert_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.4字典表表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
19 |
dic_code |
String |
字段 |
是 |
20 |
dic_name |
String |
字段名 |
是 |
21 |
code_index |
Integer |
編碼 |
是 |
22 |
index_name |
String |
編碼名字 |
是 |
23 |
super_id |
Integer |
父字段id |
是 |
24 |
beizhu |
String |
備注 |
是 |
25 |
create_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.5商品信息表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
26 |
goods_name |
String |
商品名稱(chēng) |
是 |
27 |
goods_types |
Integer |
商品分類(lèi) |
是 |
28 |
goods_biaoqian_types |
Integer |
商品標(biāo)簽 |
是 |
29 |
goods_photo |
String |
圖片 |
是 |
30 |
goods_pinpai |
String |
品牌 |
是 |
31 |
goods_guige |
String |
規(guī)格 |
是 |
32 |
goods_new_money |
BigDecimal |
現(xiàn)價(jià) |
是 |
33 |
goods_click_time |
Date |
最近點(diǎn)擊時(shí)間 |
是 |
34 |
goods_click_number |
Integer |
點(diǎn)擊次數(shù) |
是 |
35 |
goods_content |
String |
商品詳情 |
是 |
36 |
insert_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.6商品收藏表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
37 |
goods_id |
Integer |
商品 |
是 |
38 |
yonghu_id |
Integer |
用戶 |
是 |
39 |
insert_time |
Date |
收藏時(shí)間 |
是 |
40 |
create_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.7商品評(píng)論表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
41 |
goods_id |
Integer |
評(píng)論商品 |
是 |
42 |
yonghu_id |
Integer |
評(píng)論人 |
是 |
43 |
insert_time |
Date |
評(píng)論時(shí)間 |
是 |
44 |
goods_commentback_content |
String |
評(píng)論內(nèi)容 |
是 |
45 |
goods_reply_content |
String |
回復(fù)內(nèi)容 |
是 |
46 |
create_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.8商品資訊表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
47 |
news_name |
String |
資訊名稱(chēng) |
是 |
48 |
news_photo |
String |
資訊圖片 |
是 |
49 |
news_types |
Integer |
資訊類(lèi)型 |
是 |
50 |
insert_time |
Date |
資訊發(fā)布時(shí)間 |
是 |
51 |
news_content |
String |
資訊詳情 |
是 |
52 |
create_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.9訂單表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
53 |
insert_time |
Date |
創(chuàng)建時(shí)間 |
是 |
54 |
goods_order_uuid_number |
String |
訂單編號(hào) |
是 |
55 |
yonghu_id |
Integer |
用戶id |
是 |
56 |
goods_id |
Integer |
商品id |
是 |
57 |
buy_number |
Integer |
購(gòu)買(mǎi)數(shù)量 |
是 |
58 |
price |
float |
價(jià)格/積分 |
是 |
59 |
discountprice |
float |
折扣價(jià)格 |
是 |
60 |
total |
float |
總價(jià)格/總積分 |
是 |
61 |
discounttotal |
float |
折扣總價(jià)格 |
是 |
62 |
order_types |
Integer |
訂單狀態(tài) |
是 |
63 |
address_id |
Integer |
地址 |
是 |
表4.10用戶表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
64 |
yonghu_name |
String |
用戶姓名 |
是 |
65 |
yonghu_phone |
String |
用戶手機(jī)號(hào) |
是 |
66 |
yonghu_id_number |
String |
用戶身份證號(hào) |
是 |
67 |
new_money |
BigDecimal |
余額 |
是 |
68 |
create_time |
Date |
創(chuàng)建時(shí)間 |
是 |
表4.11用戶表表
序號(hào) |
列名 |
數(shù)據(jù)類(lèi)型 |
說(shuō)明 |
允許空 |
1 |
Id |
Int |
id |
否 |
69 |
role |
String |
角色 |
是 |
70 |
addtime |
Date |
新增時(shí)間 |
是 |
三,系統(tǒng)展示
用戶注冊(cè)
?用戶登錄
小程序首頁(yè)
?
商品詳情
?
?用戶充值
我的訂單
?
?
四,核心代碼展示
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;
/**
* 購(gòu)物車(chē)表
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/cart")
public class CartController {
private static final Logger logger = LoggerFactory.getLogger(CartController.class);
@Autowired
private CartService cartService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//級(jí)聯(lián)表service
@Autowired
private GoodsService goodsService;
@Autowired
private YonghuService yonghuService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"權(quán)限為空");
else if("用戶".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = cartService.queryPage(params);
//字典表數(shù)據(jù)轉(zhuǎn)換
List<CartView> list =(List<CartView>)page.getList();
for(CartView c:list){
//修改對(duì)應(yīng)字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端詳情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
CartEntity cart = cartService.selectById(id);
if(cart !=null){
//entity轉(zhuǎn)view
CartView view = new CartView();
BeanUtils.copyProperties( cart , view );//把實(shí)體數(shù)據(jù)重構(gòu)到view中
//級(jí)聯(lián)表
GoodsEntity goods = goodsService.selectById(cart.getGoodsId());
if(goods != null){
BeanUtils.copyProperties( goods , view ,new String[]{ "id", "createDate"});//把級(jí)聯(lián)的數(shù)據(jù)添加到view中,并排除id和創(chuàng)建時(shí)間字段
view.setGoodsId(goods.getId());
}
//級(jí)聯(lián)表
YonghuEntity yonghu = yonghuService.selectById(cart.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把級(jí)聯(lián)的數(shù)據(jù)添加到view中,并排除id和創(chuàng)建時(shí)間字段
view.setYonghuId(yonghu.getId());
}
//修改對(duì)應(yīng)字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到數(shù)據(jù)");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody CartEntity cart, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,cart:{}",this.getClass().getName(),cart.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"權(quán)限為空");
else if("用戶".equals(role))
cart.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
Wrapper<CartEntity> queryWrapper = new EntityWrapper<CartEntity>()
.eq("yonghu_id", cart.getYonghuId())
.eq("goods_id", cart.getGoodsId())
.eq("buy_number", cart.getBuyNumber())
;
logger.info("sql語(yǔ)句:"+queryWrapper.getSqlSegment());
CartEntity cartEntity = cartService.selectOne(queryWrapper);
if(cartEntity==null){
cart.setInsertTime(new Date());
cartService.insert(cart);
return R.ok();
}else {
return R.error(511,"表中有相同數(shù)據(jù)");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody CartEntity cart, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,cart:{}",this.getClass().getName(),cart.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"權(quán)限為空");
else if("用戶".equals(role))
cart.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
//根據(jù)字段查詢是否有相同數(shù)據(jù)
Wrapper<CartEntity> queryWrapper = new EntityWrapper<CartEntity>()
.notIn("id",cart.getId())
.andNew()
.eq("yonghu_id", cart.getYonghuId())
.eq("goods_id", cart.getGoodsId())
.eq("buy_number", cart.getBuyNumber())
;
logger.info("sql語(yǔ)句:"+queryWrapper.getSqlSegment());
CartEntity cartEntity = cartService.selectOne(queryWrapper);
if(cartEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// cart.set
// }
cartService.updateById(cart);//根據(jù)id更新
return R.ok();
}else {
return R.error(511,"表中有相同數(shù)據(jù)");
}
}
/**
* 刪除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
cartService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;
/**
* 商品信息
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/goods")
public class GoodsController {
private static final Logger logger = LoggerFactory.getLogger(GoodsController.class);
@Autowired
private GoodsService goodsService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//級(jí)聯(lián)表service
@Autowired
private YonghuService yonghuService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"權(quán)限為空");
else if("用戶".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = goodsService.queryPage(params);
//字典表數(shù)據(jù)轉(zhuǎn)換
List<GoodsView> list =(List<GoodsView>)page.getList();
for(GoodsView c:list){
//修改對(duì)應(yīng)字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端詳情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
GoodsEntity goods = goodsService.selectById(id);
if(goods !=null){
//entity轉(zhuǎn)view
GoodsView view = new GoodsView();
BeanUtils.copyProperties( goods , view );//把實(shí)體數(shù)據(jù)重構(gòu)到view中
//修改對(duì)應(yīng)字典表字段
dictionaryService.dictionaryConvert(view);
goods.setGoodsClickTime(new Date());
goods.setGoodsClickNumber(goods.getGoodsClickNumber()+1);
goodsService.updateById(goods);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到數(shù)據(jù)");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody GoodsEntity goods, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,goods:{}",this.getClass().getName(),goods.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"權(quán)限為空");
Wrapper<GoodsEntity> queryWrapper = new EntityWrapper<GoodsEntity>()
.eq("goods_name", goods.getGoodsName())
.eq("goods_types", goods.getGoodsTypes())
.eq("goods_biaoqian_types", goods.getGoodsBiaoqianTypes())
.eq("goods_pinpai", goods.getGoodsPinpai())
.eq("goods_guige", goods.getGoodsGuige())
.eq("goods_click_number", goods.getGoodsClickNumber())
.eq("goods_temai_types", goods.getGoodsTemaiTypes())
;
logger.info("sql語(yǔ)句:"+queryWrapper.getSqlSegment());
GoodsEntity goodsEntity = goodsService.selectOne(queryWrapper);
if(goodsEntity==null){
goods.setInsertTime(new Date());
goodsService.insert(goods);
return R.ok();
}else {
return R.error(511,"表中有相同數(shù)據(jù)");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody GoodsEntity goods, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,goods:{}",this.getClass().getName(),goods.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"權(quán)限為空");
//根據(jù)字段查詢是否有相同數(shù)據(jù)
Wrapper<GoodsEntity> queryWrapper = new EntityWrapper<GoodsEntity>()
.notIn("id",goods.getId())
.andNew()
.eq("goods_name", goods.getGoodsName())
.eq("goods_types", goods.getGoodsTypes())
.eq("goods_biaoqian_types", goods.getGoodsBiaoqianTypes())
.eq("goods_pinpai", goods.getGoodsPinpai())
.eq("goods_guige", goods.getGoodsGuige())
.eq("goods_click_number", goods.getGoodsClickNumber())
.eq("goods_temai_types", goods.getGoodsTemaiTypes())
;
logger.info("sql語(yǔ)句:"+queryWrapper.getSqlSegment());
GoodsEntity goodsEntity = goodsService.selectOne(queryWrapper);
if("".equals(goods.getGoodsPhoto()) || "null".equals(goods.getGoodsPhoto())){
goods.setGoodsPhoto(null);
}
if(goodsEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// goods.set
// }
goodsService.updateById(goods);//根據(jù)id更新
return R.ok();
}else {
return R.error(511,"表中有相同數(shù)據(jù)");
}
}
/**
* 刪除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
goodsService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
五,相關(guān)作品展示
基于Java開(kāi)發(fā)、Python開(kāi)發(fā)、PHP開(kāi)發(fā)、C#開(kāi)發(fā)等相關(guān)語(yǔ)言開(kāi)發(fā)的實(shí)戰(zhàn)項(xiàng)目
基于Nodejs、Vue等前端技術(shù)開(kāi)發(fā)的前端實(shí)戰(zhàn)項(xiàng)目
基于微信小程序和安卓APP應(yīng)用開(kāi)發(fā)的相關(guān)作品
基于51單片機(jī)等嵌入式物聯(lián)網(wǎng)開(kāi)發(fā)應(yīng)用
基于各類(lèi)算法實(shí)現(xiàn)的AI智能應(yīng)用
基于大數(shù)據(jù)實(shí)現(xiàn)的各類(lèi)數(shù)據(jù)管理和推薦系統(tǒng)
?
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-518620.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-518620.html
到了這里,關(guān)于前端Uni-app開(kāi)發(fā)微信小程序|微信小程序手機(jī)商城的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!