Java實(shí)戰(zhàn)之小米交易商城系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目簡(jiǎn)述
環(huán)境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項(xiàng)目技術(shù):
JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
二、效果圖






三、核心代碼
用戶(hù)購(gòu)物車(chē)控制層
@CrossOrigin
@RestController
@RequestMapping("carts")
public class CartController {
@Autowired
private RegLogServiceImp regLogServiceImp;
@Autowired
private GoodServiceImp goodServiceImp;
@Autowired
private CartServiceImp cartServiceImp;
@PostMapping("/push")
public CartResult putShop(@RequestBody pushCart pushcart) throws IOException {
CartResult cartResult = new CartResult();
boolean success = TokenUtil.verify(pushcart.getToken());
if (success) {
cartResult.setStatus(0);
User user = regLogServiceImp.getUserByUserName(pushcart.getUsername().trim());
String userid = user.getUserid();
CartGood cartGood = goodServiceImp.getGoodByid(userid, pushcart.getProductId());
if (cartGood == null) {
int goodcount = 1;
CartGoodInsert goodByidinsert = goodServiceImp.getGoodByidinsert(pushcart.getProductId());
goodServiceImp.insCartGood(userid, pushcart.getProductId(), goodByidinsert.getName(),
goodByidinsert.getPrice(), goodcount, goodByidinsert.getSubtitle(), goodByidinsert.getProductStock(),
goodByidinsert.getStatus(), true);
} else {
goodServiceImp.updateCartGood(userid, cartGood.getCount() + 1, pushcart.getProductId(), (cartGood.getCount() + 1) * cartGood.getPrice());
}
cartProductVoList cartProductVoList = cartServiceImp.getCartProduct(userid);
int cartTotalPrice = 0;
boolean selectedAll = true;
int cartTotalQuantity = 0;
for (cartProduct cartProduct : cartProductVoList.getList()) {
cartTotalPrice += cartProduct.getProductTotalPrice();
if (!cartProduct.isProductSelected()) {
selectedAll = false;
}
cartTotalQuantity += cartProduct.getCount();
}
cartResult.setStatus(0);
cartResult.setCartTotalPrice(cartTotalPrice);
cartResult.setCartTotalQuantity(cartTotalQuantity);
cartResult.setData(cartProductVoList);
cartResult.setImageHost("www.mi.com");
cartResult.setSelectedAll(selectedAll);
} else {
cartResult.setStatus(10);
}
return cartResult;
}
@GetMapping("/sum")
public CartResult getCartSum(@RequestParam("username") String username) throws IOException {
CartResult cartResult = new CartResult();
User user = regLogServiceImp.getUserByUserName(username);
String userid = user.getUserid();
cartProductVoList cartProductVoList = cartServiceImp.getCartProduct(userid);
if(cartProductVoList==null){
cartResult.setStatus(0);
cartResult.setCartTotalQuantity(0);
}
else {
int cartTotalQuantity=0;
for(cartProduct cartProduct:cartProductVoList.getList()){
cartTotalQuantity+=cartProduct.getCount();
}
cartResult.setStatus(0);
cartResult.setCartTotalQuantity(cartTotalQuantity);
}
return cartResult;
}
@RequestMapping("/del")
public CartResult delCarts(@RequestParam("id") int goodid,
@RequestParam("username") String username) throws IOException {
User user = regLogServiceImp.getUserByUserName(username);
String userid = user.getUserid();
goodServiceImp.delGoodByid(userid,goodid);
CartResult cartResult = getCarts(username);
return cartResult;
}
@RequestMapping("/getcarts")
public CartResult getCarts (@RequestParam("username") String username) throws IOException {
CartResult cartResult = new CartResult();
User user = regLogServiceImp.getUserByUserName(username);
String userid = user.getUserid();
cartProductVoList cartProductVoList = cartServiceImp.getCartProduct(userid);
if(cartProductVoList==null){
cartResult.setStatus(0);
cartResult.setCartTotalQuantity(0);
cartResult.setSelectedAll(false);
cartResult.setImageHost("www.mi.com");
cartResult.setCartTotalQuantity(0);
}
else {
int carttotalPrice=0;
boolean selectedall=true;
int carttotalQuantity=0;
for(cartProduct cartProduct:cartProductVoList.getList()){
if(cartProduct.isProductSelected())
carttotalPrice+=cartProduct.getProductTotalPrice();
if(!cartProduct.isProductSelected()){
selectedall=false;
}
carttotalQuantity+=cartProduct.getCount();
}
cartResult.setStatus(0);
cartResult.setCartTotalPrice(carttotalPrice);
cartResult.setCartTotalQuantity(carttotalQuantity);
cartResult.setData(cartProductVoList);
cartResult.setImageHost("www.mi.com");
cartResult.setSelectedAll(selectedall);
}
return cartResult;
}
@GetMapping("/updatecart")
public CartResult getCarts (
@RequestParam("goodid") int goodid,
@RequestParam("username") String username,
@RequestParam("quantity") int count,
@RequestParam("selected") boolean selected
) throws IOException {
User user = regLogServiceImp.getUserByUserName(username);
String userid = user.getUserid();
CartGood goodByid = goodServiceImp.getGoodByid(userid, goodid);
goodServiceImp.updaCartNumSel(userid,goodid,count,selected,goodByid.getPrice()*count);
CartResult carts = getCarts(username);
return carts;
}
@GetMapping("/selectAll")
public CartResult SelectAllCart(@RequestParam("username") String username) throws IOException {
User user = regLogServiceImp.getUserByUserName(username);
String userid = user.getUserid();
goodServiceImp.updaCartSelect(userid);
CartResult cartResult = getCarts(username);
return cartResult;
}
@GetMapping("/unSelectAll")
public CartResult unSelectAllCart(@RequestParam("username") String username) throws IOException {
User user = regLogServiceImp.getUserByUserName(username);
String userid = user.getUserid();
goodServiceImp.updaCartunSelect(userid);
CartResult cartResult = getCarts(username);
cartResult.setCartTotalQuantity(0);
cartResult.setCartTotalPrice(0);
return cartResult;
}
}后臺(tái)登錄控制層
@CrossOrigin
@RestController
@RequestMapping("Login")
public class LoginController {
@Autowired
private LoginServiceImp loginServiceImp;
Map<String, String> keyMap = RSAUtils.createKeys(512);
// String publicKey = keyMap.get("publicKey");
// String privateKey = keyMap.get("privateKey");
// private String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIS-9P6aiWK-mNIJxz0R_XXIbHM21pS_ZncpQcE8T5Mu6P6sJfoi5Cw6S4jcSqxNbRs5FSUc59GAkU1Ek9onrz8CAwEAAQ";
private String privateKey = "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAhL70_pqJYr6Y0gnHPRH9dchsczbWlL9mdylBwTxPky7o_qwl-iLkLDpLiNxKrE1tGzkVJRzn0YCRTUST2ievPwIDAQABAkAviOHaOiRwQ6gdrnq2F7cXcknDiCOW6GMc0J1HQP2Nyn52HKtc9E9Ailm-eQesTw6P-qTsvHMyfuVYz8fLhfkhAiEAvhvoG2Dz6qSN6IHeuPboJP7YHK9zTt6M_NGCJKAenasCIQCywU7eStITcHFTRDjjShH0CfO-vR6q-zgWQPjtNI_YvQIgY8UNiODW4bu-ZdlSY8vghRnhnRxO7YNKhpwFKueFacUCIQCZ-P65ZVNs4ScMZTBnP48VWVk2S-rVto0KRi7lC6h4NQIgEa_GhBO6U2p6G5cGAR25ZiQVH9dFnrMVyPxY7P7-WsA";
@PostMapping("/login")
public LoginResult Login(@RequestBody User adminUser) throws IOException, InvalidKeySpecException, NoSuchAlgorithmException {
User user = loginServiceImp.getUserByUserName(adminUser.getUsername());
LoginResult result = new LoginResult();
LoginData loginData = new LoginData();
if (user == null) {
result.setMsg("無(wú)此用戶(hù),請(qǐng)重新輸入正確用戶(hù)名");
result.setStatus(2008);
} else {
if (RSAUtils.privateDecrypt(user.getPwd(), RSAUtils.getPrivateKey(privateKey)).equals(adminUser.getPwd())){
result.setStatus(0);
String token = TokenUtil.token(user.getId().trim());
loginData.setToken(token);
result.setMsg("登錄成功");
result.setStatus(1010);
result.setData(loginData);
}else{
result.setStatus(2007);
result.setMsg("密碼錯(cuò)誤");
}
}
return result;
}
}后臺(tái)商品管理控制層
@CrossOrigin
@RestController
@RequestMapping("Good")
public class GoodController {
@Autowired
private GoodServiceImp goodServiceImp;
@GetMapping("/getGood")
private GoodResult getGood(@RequestParam("pageIndex") int pageIndex,
@RequestParam("pageSize") int pageSize,
@RequestParam("name") String goodname
) throws IOException {
GoodResult goodResult = goodServiceImp.getGood(pageIndex,pageSize,goodname);
return goodResult;
}
@GetMapping("/getGoodById")
private GoodResult getGoodById(@RequestParam("category") int pageIndex,
@RequestParam("pageSize") int pageSize
) throws IOException {
GoodResult goodResult = goodServiceImp.getGoodById(pageIndex,pageSize);
return goodResult;
}
@RequestMapping("/getGoodByName")
private GoodResult getGoodByName(@RequestParam("name") String goodname) throws IOException {
GoodResult goodResult = goodServiceImp.getGoodByName(goodname);
return goodResult;
}
@RequestMapping("/updGood")
private GoodResult getGoodByName(@RequestParam("good_id") int goodid,
@RequestParam("name") String goodname,
@RequestParam("newhot") int newhot) throws IOException {
GoodResult goodResult = goodServiceImp.updGood(goodid,goodname,newhot);
return goodResult;
}
@GetMapping("/getGoodPicById")
private GoodPicResult getGoodPicById(@RequestParam("category") int pageIndex,
@RequestParam("pageSize") int pageSize
) throws IOException {
GoodPicResult goodpicResult = goodServiceImp.getGoodPic(pageIndex,pageSize);
return goodpicResult;
}
@RequestMapping("/getGoodPicByName")
private GoodPicResult getGoodPicByName(@RequestParam("name") String goodname) throws IOException {
// int categor = Integer.parseInt(category);
GoodPicResult goodResult = goodServiceImp.getGoodPicByName(goodname);
return goodResult;
}
@PostMapping("/pushGood")
private GoodPushResult pushGood(@RequestBody good good) throws IOException {
GoodPushResult goodPushResult = goodServiceImp.getGoodPush(good);
return goodPushResult;
}
@PostMapping("/delGood")
private void delGood(@RequestBody good good) throws IOException {
goodServiceImp.delGood(good);
}
@PostMapping("/delMulGood")
private void delMulGood(@RequestBody List<good> goods) throws IOException {
goodServiceImp.delMulGood(goods);
}
@GetMapping("/getGoodPic")
private GoodPicResult getGoodPic(@RequestParam("pageIndex") int pageIndex,
@RequestParam("pageSize") int pageSize) throws IOException {
GoodPicResult goodPicResult = goodServiceImp.getGoodPic(pageIndex,pageSize);
return goodPicResult;
}
@PostMapping("/updGoodPic")
private void upGoodPic(@RequestBody GoodPic goodPic) throws IOException {
int goodid= goodPic.getGood_id();
String icon= goodPic.getIcon();
String imageHead = goodPic.getImageHead();
String imageFoot = goodPic.getImageFoot();
goodServiceImp.updGoodPic(goodid,icon,1);
goodServiceImp.updGoodPic(goodid,imageHead,2);
goodServiceImp.updGoodPic(goodid,imageFoot,3);
}
}后臺(tái)品類(lèi)控制層
@CrossOrigin
@RestController
@RequestMapping("category")
public class CategoryController {
@Autowired
private CategServiceImp categServiceImp;
@GetMapping("/getCategory")
private CateResult getCategory(@RequestParam("pageIndex") int pageIndex,
@RequestParam("pageSize") int pageSize) throws IOException {
CateResult cateResult = categServiceImp.getCategory(pageIndex, pageSize);
return cateResult;
}
@PostMapping("/updateCategory")
private void updateCategory(@RequestBody Category category) throws IOException {
categServiceImp.updCategory(category.getName(),category.getCategoryId());
}
}以上就是Java實(shí)戰(zhàn)之小米交易商城系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java交易商城系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之健身器材商城系統(tǒng)的實(shí)現(xiàn)
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之仿小米電子產(chǎn)品售賣(mài)商城系統(tǒng)的實(shí)現(xiàn)
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線(xiàn)服裝銷(xiāo)售商城系統(tǒng)的實(shí)現(xiàn)流程
- Java 仿天貓服裝商城系統(tǒng)的實(shí)現(xiàn)流程
- Java女裝商城系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目錘煉之在線(xiàn)蛋糕商城系統(tǒng)的實(shí)現(xiàn)
- Java 實(shí)戰(zhàn)項(xiàng)目錘煉之網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)流程
相關(guān)文章
通過(guò)圖例了解IDEA引入JQuery實(shí)現(xiàn)步驟
這篇文章主要介紹了IDEA引入JQuery實(shí)現(xiàn)步驟圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java中實(shí)現(xiàn)線(xiàn)程間通信的實(shí)例教程
線(xiàn)程通信的目標(biāo)是使線(xiàn)程間能夠互相發(fā)送信號(hào),另一方面線(xiàn)程通信使線(xiàn)程能夠等待其他線(xiàn)程的信號(hào),這篇文章主要給大家介紹了關(guān)于Java中實(shí)現(xiàn)線(xiàn)程間通信的相關(guān)資料,本文通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
關(guān)于Kafka消息隊(duì)列原理的總結(jié)
這篇文章主要介紹了關(guān)于Kafka消息隊(duì)列原理的總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
子類(lèi)繼承父類(lèi)時(shí)構(gòu)造函數(shù)相關(guān)問(wèn)題解析
這篇文章主要介紹了子類(lèi)繼承父類(lèi)時(shí)構(gòu)造函數(shù)相關(guān)問(wèn)題解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息詳解
根據(jù)IP自動(dòng)獲取當(dāng)?shù)氐奶鞖忸A(yù)報(bào)信息這個(gè)功能大家應(yīng)該都遇到過(guò),天氣預(yù)報(bào)信息用途非常廣泛,篇文章主要給大家介紹了關(guān)于java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息的相關(guān)資料,需要的朋友可以參考下2021-08-08
基于SpringBoot和Leaflet的行政區(qū)劃地圖掩膜效果實(shí)戰(zhàn)教程
本文講解的是一種圖層級(jí)的掩膜,即使用行政區(qū)劃圖層來(lái)進(jìn)行掩膜,使用場(chǎng)景為,用戶(hù)只需要在地圖頁(yè)面中展示目標(biāo)行政區(qū)劃內(nèi)的影像信息,對(duì)于行政邊界外的影像,這篇文章主要介紹了基于SpringBoot和Leaflet的行政區(qū)劃地圖掩膜效果實(shí)戰(zhàn),需要的朋友可以參考下2024-05-05
SpringBoot中如何進(jìn)行統(tǒng)一異常處理
大家好,本篇文章主要講的是SpringBoot中如何進(jìn)行統(tǒng)一異常處理,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-02-02
java實(shí)現(xiàn)大文件分割與合并的實(shí)例代碼
java實(shí)現(xiàn)大文件分割與合并的實(shí)例代碼,需要的朋友可以參考一下2013-03-03
SWT(JFace)體驗(yàn)之FillLayout布局
FillLayout是非常簡(jiǎn)單的一種布局方式,它會(huì)以同樣大小對(duì)父組件中的子組件進(jìn)行布局,這些子組件將以一行或一列的形式排列。2009-06-06
SpringBoot接收接口入?yún)⒌姆绞叫〗Y(jié)
這篇文章主要給大家介紹了SpringBoot接收接口入?yún)⒌膸追N方式,我們從調(diào)用方的視角去看待這個(gè)問(wèn)題,對(duì)調(diào)用方來(lái)說(shuō),它在調(diào)用接口時(shí)有好幾種傳參方式,下面,將會(huì)依次對(duì)這幾種參數(shù)方式進(jìn)行講解和代碼示例,需要的朋友可以參考下2024-01-01

