一、摘要
1.1 項(xiàng)目介紹
基于JAVA+Vue+SpringBoot+MySQL 的校園電商物流云平臺(tái),包含了商品管理模塊、快遞公司模塊、物流訂單模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,校園電商物流云平臺(tái)基于角色的訪問(wèn)控制,給商家、物流公司、物流管理員使用,可將權(quán)限精確到按鈕級(jí)別,您可以自定義角色并分配權(quán)限,系統(tǒng)適合設(shè)計(jì)精確的權(quán)限約束需求。
1.2 項(xiàng)目錄屏
二、功能模塊
互聯(lián)網(wǎng)和電子商務(wù)行業(yè)已成為各產(chǎn)業(yè)升級(jí)創(chuàng)新的“發(fā)動(dòng)機(jī)”,也是大眾創(chuàng)業(yè)的肥沃土壤。各大院校紛紛在基于互聯(lián)網(wǎng)或電子商務(wù)平臺(tái)的大學(xué)生創(chuàng)業(yè)教育方面進(jìn)行了探索和嘗試。依托電子商務(wù)專業(yè)教育體系,立足于高校市場(chǎng)資源,利用新型的社群移動(dòng)電商平臺(tái)開(kāi)展電子商務(wù)創(chuàng)業(yè)教育創(chuàng)新實(shí)踐,取得了較好效果。本文旨在建立一個(gè)面向校園電商創(chuàng)業(yè)的物流云平臺(tái),采用Vue、SpringBoot、MySQL技術(shù),包含數(shù)據(jù)中心模塊、商品檔案模塊、快遞公司模塊、物流訂單管理模塊,對(duì)物流配送實(shí)現(xiàn)云平臺(tái)管理。
本文設(shè)計(jì)的面向校園電商創(chuàng)業(yè)的物流云平臺(tái)的包括了系統(tǒng)數(shù)據(jù)中心模塊,用來(lái)存放管理系統(tǒng)通用的模塊,另外分別設(shè)計(jì)了商品檔案模塊、快遞公司模塊、物流訂單模塊這三大模塊,用于存放系統(tǒng)的核心業(yè)務(wù)邏輯。
2.1 數(shù)據(jù)中心模塊
數(shù)據(jù)中心模塊包含了對(duì)面向校園電商創(chuàng)業(yè)的物流云平臺(tái)的基礎(chǔ)模塊,比如管理誰(shuí)可以登錄這套系統(tǒng),記錄這些人登錄系統(tǒng)做了什么,不同的人擁有不同權(quán)限的管理。
2.2 商品數(shù)據(jù)模塊
商品數(shù)據(jù)模塊用于對(duì)商品的數(shù)據(jù)進(jìn)行管理,其中包括商品ID、商品名稱、商品規(guī)格、商品圖片、商品備注、歸屬人ID、歸屬人、創(chuàng)建人等,可以通過(guò)此模塊對(duì)商品數(shù)據(jù)進(jìn)行添加、編輯更新、刪除、查詢操作。
2.3 快遞公司模塊
快遞公司模塊是對(duì)快遞公司的檔案信息進(jìn)行管理,快遞公司是快遞運(yùn)輸?shù)闹饕獏⑴c者,快遞公司字段包括公司簡(jiǎn)稱、公司全名、LOGO、營(yíng)業(yè)執(zhí)照、地址、經(jīng)營(yíng)范圍、備注、創(chuàng)建人等,管理員可以新增快遞公司的數(shù)據(jù),用戶可以查詢管理員發(fā)布的快遞公司信息。
2.4 物流訂單模塊
物流訂單模塊是對(duì)商品數(shù)據(jù)的實(shí)例化,有了商品后,用戶就可以對(duì)商品進(jìn)行創(chuàng)建物流訂單,這就產(chǎn)生了物流訂單模塊,其中包括物流單號(hào)、下單人ID、下單人、收件人、收件電話、收件地址、下單日期、訂單狀態(tài)、發(fā)貨物流等,用戶可以進(jìn)行物流下單,快遞公司可以操作發(fā)貨,管理員可以刪除物流訂單。
三、系統(tǒng)設(shè)計(jì)
3.1 用例設(shè)計(jì)
3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
3.2.1 商品表
3.2.2 快遞公司表
3.2.3 物流訂單表
四、系統(tǒng)展示
五、核心代碼
5.1 查詢商品
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢商品")
public Result<IPage<Commodity>> getByPage(@ModelAttribute Commodity commodity ,@ModelAttribute PageVo page){
QueryWrapper<Commodity> qw = new QueryWrapper<>();
User currUser = securityUtil.getCurrUser();
qw.eq("user_id",currUser.getId());
if(!ZwzNullUtils.isNull(commodity.getTitle())) {
qw.like("title",commodity.getTitle());
}
if(!ZwzNullUtils.isNull(commodity.getSpecs())) {
qw.like("specs",commodity.getSpecs());
}
IPage<Commodity> data = iCommodityService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Commodity>>().setData(data);
}
5.2 查詢快遞公司
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢快遞公司")
public Result<IPage<CourierCompany>> getByPage(@ModelAttribute CourierCompany courierCompany ,@ModelAttribute PageVo page){
QueryWrapper<CourierCompany> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(courierCompany.getTitle())) {
qw.like("title",courierCompany.getTitle());
}
if(!ZwzNullUtils.isNull(courierCompany.getCompanyName())) {
qw.like("company_name",courierCompany.getCompanyName());
}
IPage<CourierCompany> data = iCourierCompanyService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<CourierCompany>>().setData(data);
}
5.3 查詢物流訂單
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢物流單")
public Result<IPage<LogisticsOrder>> getByPage(@ModelAttribute LogisticsOrder logisticsOrder ,@ModelAttribute PageVo page){
QueryWrapper<LogisticsOrder> qw = new QueryWrapper<>();
User currUser = securityUtil.getCurrUser();
QueryWrapper<User> userQw = new QueryWrapper<>();
userQw.eq("id",currUser.getId());
userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
if(iUserService.count(userQw) < 1L) {
// 判斷物流
QueryWrapper<User> userQw2 = new QueryWrapper<>();
userQw2.eq("id",currUser.getId());
userQw2.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1703243045803266048'");
if(iUserService.count(userQw2) > 0L) {
// 物流
qw.eq("company_id",currUser.getCompanyId());
} else {
// 商家
qw.eq("user_id",currUser.getId());
}
}
if(!ZwzNullUtils.isNull(logisticsOrder.getCollectUser())) {
qw.like("collect_user",logisticsOrder.getCollectUser());
}
if(!ZwzNullUtils.isNull(logisticsOrder.getCollectAddress())) {
qw.like("collect_address",logisticsOrder.getCollectAddress());
}
if(!ZwzNullUtils.isNull(logisticsOrder.getStatus())) {
qw.eq("status",logisticsOrder.getStatus());
}
IPage<LogisticsOrder> data = iLogisticsOrderService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<LogisticsOrder>>().setData(data);
}
5.4 新增物流訂單
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增物流單")
public Result<LogisticsOrder> insert(LogisticsOrder logisticsOrder){
User currUser = securityUtil.getCurrUser();
logisticsOrder.setUserId(currUser.getId());
logisticsOrder.setUserName(currUser.getNickname());
logisticsOrder.setDate(DateUtil.today());
logisticsOrder.setStatus("待發(fā)貨");
logisticsOrder.setTime1("");
logisticsOrder.setTime2("");
logisticsOrder.setTime3("");
String itemString = logisticsOrder.getItemString();
List<LogisticsOrderItem> itemList = JSON.parseArray(itemString, LogisticsOrderItem.class);
for (LogisticsOrderItem item : itemList) {
Commodity commodity = iCommodityService.getById(item.getCommodityId());
if(commodity == null) {
return ResultUtil.error("商品不存在");
}
item.setCommodityName(commodity.getTitle() + " " + commodity.getSpecs());
}
iLogisticsOrderService.saveOrUpdate(logisticsOrder);
for (LogisticsOrderItem item : itemList) {
item.setOrderId(logisticsOrder.getId());
iLogisticsOrderItemService.saveOrUpdate(item);
}
return new ResultUtil<LogisticsOrder>().setData(logisticsOrder);
}
5.5 快遞收攬派簽
@RequestMapping(value = "/changeStatus1", method = RequestMethod.POST)
@ApiOperation(value = "攬件")
public Result<Object> changeStatus1(@RequestParam String id){
LogisticsOrder order = iLogisticsOrderService.getById(id);
if(order == null) {
return ResultUtil.error("物流單不存在");
}
order.setStatus("已攬件");
order.setTime1(DateUtil.now());
iLogisticsOrderService.saveOrUpdate(order);
return ResultUtil.success();
}
@RequestMapping(value = "/changeStatus2", method = RequestMethod.POST)
@ApiOperation(value = "派送")
public Result<Object> changeStatus2(@RequestParam String id){
LogisticsOrder order = iLogisticsOrderService.getById(id);
if(order == null) {
return ResultUtil.error("物流單不存在");
}
order.setStatus("已派送");
order.setTime2(DateUtil.now());
iLogisticsOrderService.saveOrUpdate(order);
return ResultUtil.success();
}
@RequestMapping(value = "/changeStatus3", method = RequestMethod.POST)
@ApiOperation(value = "簽收")
public Result<Object> changeStatus3(@RequestParam String id){
LogisticsOrder order = iLogisticsOrderService.getById(id);
if(order == null) {
return ResultUtil.error("物流單不存在");
}
order.setStatus("已簽收");
order.setTime3(DateUtil.now());
iLogisticsOrderService.saveOrUpdate(order);
return ResultUtil.success();
}
@RequestMapping(value = "/fa", method = RequestMethod.POST)
@ApiOperation(value = "發(fā)貨")
public Result<Object> fa(@RequestParam String id,@RequestParam String com){
LogisticsOrder order = iLogisticsOrderService.getById(id);
if(order == null) {
return ResultUtil.error("物流單不存在");
}
if(!ZwzNullUtils.isNull(com)) {
CourierCompany cc = iCourierCompanyService.getById(com);
if(cc == null) {
return ResultUtil.error("快遞公司不存在");
}
order.setCompanyId(cc.getId());
order.setCompanyName(cc.getTitle());
} else {
QueryWrapper<CourierCompany> ccQw = new QueryWrapper<>();
ccQw.orderByAsc("order_number");
ccQw.last("limit 1");
CourierCompany cc = iCourierCompanyService.getOne(ccQw);
if(cc == null) {
return ResultUtil.error("系統(tǒng)沒(méi)有注冊(cè)快遞公司");
}
order.setCompanyId(cc.getId());
order.setCompanyName(cc.getTitle());
}
order.setStatus("待攬收");
iLogisticsOrderService.saveOrUpdate(order);
return ResultUtil.success();
}
六、免責(zé)說(shuō)明
- 本項(xiàng)目?jī)H供個(gè)人學(xué)習(xí)使用,商用授權(quán)請(qǐng)聯(lián)系博主,否則后果自負(fù)。
- 博主擁有本軟件構(gòu)建后的應(yīng)用系統(tǒng)全部?jī)?nèi)容所有權(quán)及獨(dú)立的知識(shí)產(chǎn)權(quán),擁有最終解釋權(quán)。
- 如有問(wèn)題,歡迎在倉(cāng)庫(kù) Issue 留言,看到后會(huì)第一時(shí)間回復(fù),相關(guān)意見(jiàn)會(huì)酌情考慮,但沒(méi)有一定被采納的承諾或保證。
下載本系統(tǒng)代碼或使用本系統(tǒng)的用戶,必須同意以下內(nèi)容,否則請(qǐng)勿下載!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-820993.html
- 出于自愿而使用/開(kāi)發(fā)本軟件,了解使用本軟件的風(fēng)險(xiǎn),且同意自己承擔(dān)使用本軟件的風(fēng)險(xiǎn)。
- 利用本軟件構(gòu)建的網(wǎng)站的任何信息內(nèi)容以及導(dǎo)致的任何版權(quán)糾紛和法律爭(zhēng)議及后果和博主無(wú)關(guān),博主對(duì)此不承擔(dān)任何責(zé)任。
- 在任何情況下,對(duì)于因使用或無(wú)法使用本軟件而導(dǎo)致的任何難以合理預(yù)估的損失(包括但不僅限于商業(yè)利潤(rùn)損失、業(yè)務(wù)中斷與業(yè)務(wù)信息丟失),博主概不承擔(dān)任何責(zé)任。
- 必須了解使用本軟件的風(fēng)險(xiǎn),博主不承諾提供一對(duì)一的技術(shù)支持、使用擔(dān)保,也不承擔(dān)任何因本軟件而產(chǎn)生的難以預(yù)料的問(wèn)題的相關(guān)責(zé)任。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-820993.html
到了這里,關(guān)于Java實(shí)現(xiàn)校園電商物流云平臺(tái) JAVA+Vue+SpringBoot+MySQL的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!