一、摘要
1.1 項目介紹
基于JAVA+Vue+SpringBoot+MySQL的網上藥店系統,包含了藥品類型模塊、藥品檔案模塊、藥品收藏模塊、藥品訂單模塊、藥品資訊模塊,還包含系統自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,網上藥店系統基于角色的訪問控制,給藥店管理員、消費者使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。
1.2 項目錄屏
二、功能模塊
網上藥店系統的功能性需求主要包含數據中心模塊、藥品類型模塊、藥品檔案模塊、藥品訂單模塊、藥品收藏模塊和藥品資訊模塊這六大模塊,系統是基于瀏覽器運行的web管理后端。
2.1 數據中心模塊
數據中心模塊包含了網上藥店系統的系統基礎配置,如登錄用戶的管理、運營公司組織架構的管理、用戶菜單權限的管理、系統日志的管理、公用文件云盤的管理。
其中登錄用戶管理模塊,由管理員負責運維工作,管理員可以對登錄用戶進行增加、刪除、修改、查詢操作。
組織架構,指的是高校的組織架構,該模塊適用于管理這些組織架構的部門層級和教師的部門歸屬情況。
用戶菜單權限管理模塊,用于管理不同權限的用戶,擁有哪些具體的菜單權限。
系統日志的管理,用于維護用戶登入系統的記錄,方便定位追蹤用戶的操作情況。
公用云盤管理模塊,用于統一化維護網上藥店系統中的圖片,如合同簽訂文件、合同照片等等。
2.2 藥品類型模塊
不同的藥品有著不同的類型,適合不同的患者使用,所以需要建立藥品類型模塊,藥品類型的數據包括類型名稱、類型狀態(tài)、排序值、備注、創(chuàng)建人、創(chuàng)建時間、更新人、更新時間,管理員可以新增、刪除、編輯和條件查詢藥品類型數據,用戶可以查詢管理員發(fā)布的藥品類型數據。
2.3 藥品檔案模塊
藥品是網上藥店系統的核心實體,需要建立藥品檔案模塊對管理員發(fā)布的藥品數據進行管理,藥品的字段包括藥品名稱、藥品類型、藥品介紹、藥品圖片、創(chuàng)建人、創(chuàng)建時間、更新人、更新時間,管理員可以新增、刪除、編輯和條件查詢藥品數據,用戶可以查詢管理員發(fā)布的藥品數據。
2.4 藥品訂單模塊
有了藥品的數據之后,用戶就可以對齊進行購買下單操作,藥品訂單的數據包括藥品、下單狀態(tài)、下單數量、付款狀態(tài)、創(chuàng)建人、創(chuàng)建時間、更新人、更新時間,用戶可以對藥品進行加購、下單和付款操作,管理員可以對用戶發(fā)起的藥品訂單進行條件查詢。
2.5 藥品收藏模塊
為了更好的滿足用戶的個性化需求,網上藥店系統支持用戶對藥品進行收藏,以便于快速的選擇藥品,藥品收藏字段包括藥品ID、藥品名稱、藥品介紹、藥品圖片、收藏人、收藏時間、更新人、更新時間,用戶可以對藥品進行收藏、取消收藏操作,管理員可以查詢用戶的藥品收藏數據。
2.6 藥品資訊模塊
為了更好的和用戶去做交互,網上藥店系統支持留言功能,留言的字段包括留言內容、留言人、留言時間、狀態(tài)、備注、回復內容、回復時間、回復人,用戶可以對藥品發(fā)起留言,管理員可以對其進行回復,或進行刪除留言操作。
三、系統設計
3.1 用例設計
3.2 數據庫設計
3.2.1 角色表
3.2.2 藥品表
3.2.3 藥品訂單表
3.2.4 藥品收藏表
3.2.5 藥品留言表
四、系統展示
五、核心代碼
5.1 查詢藥品
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢藥品")
public Result<IPage<DishVariety>> getByPage(@ModelAttribute DishVariety dishVariety ,@ModelAttribute PageVo page){
QueryWrapper<DishVariety> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(dishVariety.getTitle())) {
qw.like("title",dishVariety.getTitle());
}
if(!ZwzNullUtils.isNull(dishVariety.getType())) {
qw.eq("type",dishVariety.getType());
}
if(!ZwzNullUtils.isNull(dishVariety.getContent())) {
qw.like("content",dishVariety.getContent());
}
IPage<DishVariety> data = iDishVarietyService.page(PageUtil.initMpPage(page),qw);
User currUser = securityUtil.getCurrUser();
for (DishVariety vo : data.getRecords()) {
QueryWrapper<DishCollect> collQw = new QueryWrapper<>();
collQw.eq("collect_id",currUser.getId());
collQw.eq("dish_id",vo.getId());
vo.setCollectFlag(iDishCollectService.count(collQw));
QueryWrapper<DishOrder> orderQw = new QueryWrapper<>();
orderQw.eq("dish_id",vo.getId());
orderQw.eq("status","已加購");
orderQw.last("limit 1");
DishOrder order = iDishOrderService.getOne(orderQw);
vo.setBuyNumber(order == null ? BigDecimal.ZERO : order.getNumber());
}
return new ResultUtil<IPage<DishVariety>>().setData(data);
}
5.2 查詢藥品類型
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢藥品類型")
public Result<IPage<DishType>> getByPage(@ModelAttribute DishType dishType ,@ModelAttribute PageVo page){
QueryWrapper<DishType> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(dishType.getTitle())) {
qw.like("title",dishType.getTitle());
}
if(!ZwzNullUtils.isNull(dishType.getStatus())) {
qw.eq("status",dishType.getStatus());
}
IPage<DishType> data = iDishTypeService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<DishType>>().setData(data);
}
5.3 藥品收藏
@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增收藏")
public Result<DishCollect> addOne(@RequestParam String id){
DishVariety dish = iDishVarietyService.getById(id);
if(dish == null) {
return ResultUtil.error("藥品不存在");
}
User currUser = securityUtil.getCurrUser();
QueryWrapper<DishCollect> qw = new QueryWrapper<>();
qw.eq("dish_id",id);
qw.eq("collect_id",currUser.getId());
if(iDishCollectService.count(qw) > 0L) {
return ResultUtil.success();
}
DishCollect dishCollect = new DishCollect();
dishCollect.setDishId(dish.getId());
dishCollect.setTitle(dish.getTitle());
dishCollect.setType(dish.getType());
dishCollect.setContent(dish.getContent());
dishCollect.setImage(dish.getImage());
dishCollect.setPrice(dish.getPrice());
dishCollect.setCollectId(currUser.getId());
dishCollect.setCollectName(currUser.getNickname());
dishCollect.setCollectTime(DateUtil.now());
iDishCollectService.saveOrUpdate(dishCollect);
return ResultUtil.success();
}
5.4 藥品加購
@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "加購")
public Result<DishOrder> addOne(@RequestParam String id, @RequestParam BigDecimal number){
DishVariety dish = iDishVarietyService.getById(id);
if(dish == null) {
return ResultUtil.error("藥品不存在");
}
User currUser = securityUtil.getCurrUser();
QueryWrapper<DishOrder> qw = new QueryWrapper<>();
qw.eq("dish_id",dish.getId());
qw.eq("status","已加購");
qw.eq("order_id",currUser.getId());
qw.last("limit 1");
DishOrder order = iDishOrderService.getOne(qw);
if(order != null) {
order.setNumber(order.getNumber().add(number));
iDishOrderService.saveOrUpdate(order);
return ResultUtil.success();
}
DishOrder o = new DishOrder();
o.setDishId(dish.getId());
o.setTitle(dish.getTitle());
o.setType(dish.getType());
o.setContent(dish.getContent());
o.setImage(dish.getImage());
o.setPrice(dish.getPrice());
o.setStatus("已加購");
o.setNumber(number);
o.setOrderId(currUser.getId());
o.setOrderName(currUser.getNickname());
o.setOrderTime(DateUtil.now());
iDishOrderService.saveOrUpdate(o);
return ResultUtil.success();
}
5.5 新增藥品留言
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增藥品留言")
public Result<Message> insert(Message message){
User currUser = securityUtil.getCurrUser();
message.setUserId(currUser.getId());
message.setUserName(currUser.getNickname());
message.setUserTime(DateUtil.now());
message.setReplyContent("");
message.setReplyName("");
message.setReplyTime("");
message.setReplyId("");
iMessageService.saveOrUpdate(message);
return new ResultUtil<Message>().setData(message);
}
六、免責說明
- 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
- 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!文章來源:http://www.zghlxwxcb.cn/news/detail-840019.html
- 出于自愿而使用/開發(fā)本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業(yè)利潤損失、業(yè)務中斷與業(yè)務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。
文章來源地址http://www.zghlxwxcb.cn/news/detail-840019.html
到了這里,關于【開源】SpringBoot框架開發(fā)網上藥店系統的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!