• SpringCloud+Vue的分布式架构网上商城


    文末获取源码

    开发语言:Java

    框架:springcloud

    JDK版本:JDK1.8

    服务器:tomcat7

    数据库:mysql 5.7/8.0

    数据库工具:Navicat11

    开发软件:eclipse/myeclipse/idea

    Maven包:Maven3.3.9

    浏览器:谷歌浏览器

    前言介绍 

    本系统主要包括管理员和用户两个角色组成,主要包括以下功能: 

    (1)前台:首页、商品信息、购物资讯、个人中心、购物车。 

    (2)管理员:首页、个人中心、用户管理、商品信息管理、商品分类管理、系统管理、订单管理。

    系统功能分析

    考虑到实际生活中分布式架构网上商城在管理方面的需要以及对该平台认真的分析,将系统权限按管理员和用户涉及用户划分。

    管理员;管理员使用本系统涉到的功能主要有:首页、个人中心、用户管理、商品信息管理、商品分类管理、系统管理、订单管理等功能。管理员用例图如图

    用户用例图如图

     

    系统整体功图

    系统功能模块

    分布式架构网上商城,在系统首页可以查看首首页、商品信息、购物资讯、个人中心、购物车等内容,并进行详细操作;如图 

    用户注册

    在用户注册页面通过填写账号、密码、确认密码、姓名、手机、邮箱等信息进行注册操作,如图

    商品信息

    在商品信息页面可以查看商品名称、价格、单次购买、库存、商品类型、规格、上架时间、点击次数等内容进行购买、评论或收藏等操作,如图 

    购物车

    在购物车页面可以查看购买商品、价格、数量、总价等内容,进行删除或购买等操作,如图

     

    个人中心

    在个人中心页面通过填写账号、密码、姓名、性别、手机、邮箱、图片、余额等内容进行更新信息等操作,并可以根据我的订单、我的地址或我的收藏进行相应的操作,如图

    管理员功能模块

    管理员进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图

    管理员登录系统后,可以对首页、个人中心、用户管理、商品信息管理、商品分类管理、系统管理、订单管理等功能进行相应的操作管理,如图 

    用户管理

    在用户管理页面可以对索引、账号、姓名、性别、手机、邮箱、头像等内容进行详情、修改或删除等操作,如图 

    商品信息管理

    在商品信息管理页面可以对索引、商品名称、商品类型、规格、上架时间、商品图片、价格、单限、库存等内容进行详情、查看评论、修改或删除等操作,如图 

    商品分类管理

    在商品分类管理页面可以对索引、类型等内容进行修改或删除等操作,如图

     

    系统管理

    在购物资讯页面中可以对索引、标题、图片等内容进行详情、修改或删除等操作,并可以根据轮播图管理进行相应的操作,如图

     部分核心代码

    1. # 端口号
    2. server:
    3. port: 8761
    4. # 配置注册服务中心
    5. eureka:
    6. instance:
    7. hostname: 127.0.0.1
    8. # 配置关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔。生产环境不建议关闭
    9. server:
    10. enable-self-preservation: false
    11. eviction-interval-timer-in-ms: 6000
    12. peer-node-read-timeout-ms: 90000
    13. response-cache-update-interval-ms: 5000
    14. client:
    15. # 表明自己不是一个客户端,并且不进行自注册
    16. register-with-eureka: false
    17. fetch-registry: false
    18. # 注册中心的访问地址
    19. service-url:
    20. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    21. # 配置应用程序名称
    22. spring:
    23. application:
    24. name: cloud-eureka
    1. /**
    2. * 订单
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2022-03-16 23:51:29
    7. */
    8. @RestController
    9. @RequestMapping("/orders")
    10. public class OrdersController {
    11. @Autowired
    12. private OrdersService ordersService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,OrdersEntity orders,
    18. HttpServletRequest request){
    19. if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    20. orders.setUserid((Long)request.getSession().getAttribute("userId"));
    21. }
    22. EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
    23. PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
    24. return R.ok().put("data", page);
    25. }
    26. /**
    27. * 前端列表
    28. */
    29. @IgnoreAuth
    30. @RequestMapping("/list")
    31. public R list(@RequestParam Map<String, Object> params,OrdersEntity orders,
    32. HttpServletRequest request){
    33. EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
    34. PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
    35. return R.ok().put("data", page);
    36. }
    37. /**
    38. * 列表
    39. */
    40. @RequestMapping("/lists")
    41. public R list( OrdersEntity orders){
    42. EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
    43. ew.allEq(MPUtil.allEQMapPre( orders, "orders"));
    44. return R.ok().put("data", ordersService.selectListView(ew));
    45. }
    46. /**
    47. * 查询
    48. */
    49. @RequestMapping("/query")
    50. public R query(OrdersEntity orders){
    51. EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();
    52. ew.allEq(MPUtil.allEQMapPre( orders, "orders"));
    53. OrdersView ordersView = ordersService.selectView(ew);
    54. return R.ok("查询订单成功").put("data", ordersView);
    55. }
    56. /**
    57. * 后端详情
    58. */
    59. @RequestMapping("/info/{id}")
    60. public R info(@PathVariable("id") Long id){
    61. OrdersEntity orders = ordersService.selectById(id);
    62. return R.ok().put("data", orders);
    63. }
    64. /**
    65. * 前端详情
    66. */
    67. @IgnoreAuth
    68. @RequestMapping("/detail/{id}")
    69. public R detail(@PathVariable("id") Long id){
    70. OrdersEntity orders = ordersService.selectById(id);
    71. return R.ok().put("data", orders);
    72. }
    73. /**
    74. * 后端保存
    75. */
    76. @RequestMapping("/save")
    77. public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){
    78. orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    79. //ValidatorUtils.validateEntity(orders);
    80. orders.setUserid((Long)request.getSession().getAttribute("userId"));
    81. ordersService.insert(orders);
    82. return R.ok();
    83. }
    84. /**
    85. * 前端保存
    86. */
    87. @RequestMapping("/add")
    88. public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){
    89. orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    90. //ValidatorUtils.validateEntity(orders);
    91. ordersService.insert(orders);
    92. return R.ok();
    93. }
    94. /**
    95. * 修改
    96. */
    97. @RequestMapping("/update")
    98. public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){
    99. //ValidatorUtils.validateEntity(orders);
    100. ordersService.updateById(orders);//全部更新
    101. return R.ok();
    102. }
    103. /**
    104. * 删除
    105. */
    106. @RequestMapping("/delete")
    107. public R delete(@RequestBody Long[] ids){
    108. ordersService.deleteBatchIds(Arrays.asList(ids));
    109. return R.ok();
    110. }
    111. /**
    112. * 提醒接口
    113. */
    114. @RequestMapping("/remind/{columnName}/{type}")
    115. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    116. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    117. map.put("column", columnName);
    118. map.put("type", type);
    119. if(type.equals("2")) {
    120. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    121. Calendar c = Calendar.getInstance();
    122. Date remindStartDate = null;
    123. Date remindEndDate = null;
    124. if(map.get("remindstart")!=null) {
    125. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    126. c.setTime(new Date());
    127. c.add(Calendar.DAY_OF_MONTH,remindStart);
    128. remindStartDate = c.getTime();
    129. map.put("remindstart", sdf.format(remindStartDate));
    130. }
    131. if(map.get("remindend")!=null) {
    132. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    133. c.setTime(new Date());
    134. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    135. remindEndDate = c.getTime();
    136. map.put("remindend", sdf.format(remindEndDate));
    137. }
    138. }
    139. Wrapper<OrdersEntity> wrapper = new EntityWrapper<OrdersEntity>();
    140. if(map.get("remindstart")!=null) {
    141. wrapper.ge(columnName, map.get("remindstart"));
    142. }
    143. if(map.get("remindend")!=null) {
    144. wrapper.le(columnName, map.get("remindend"));
    145. }
    146. if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    147. wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));
    148. }
    149. int count = ordersService.selectCount(wrapper);
    150. return R.ok().put("count", count);
    151. }
    152. /**
    153. * (按值统计)
    154. */
    155. @RequestMapping("/value/{xColumnName}/{yColumnName}")
    156. public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {
    157. Map<String, Object> params = new HashMap<String, Object>();
    158. params.put("xColumn", xColumnName);
    159. params.put("yColumn", yColumnName);
    160. EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
    161. ew.in("status", new String[]{"已支付","已发货","已完成"});
    162. List<Map<String, Object>> result = ordersService.selectValue(params, ew);
    163. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    164. for(Map<String, Object> m : result) {
    165. for(String k : m.keySet()) {
    166. if(m.get(k) instanceof Date) {
    167. m.put(k, sdf.format((Date)m.get(k)));
    168. }
    169. }
    170. }
    171. return R.ok().put("data", result);
    172. }
    173. /**
    174. * (按值统计)时间统计类型
    175. */
    176. @RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")
    177. public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {
    178. Map<String, Object> params = new HashMap<String, Object>();
    179. params.put("xColumn", xColumnName);
    180. params.put("yColumn", yColumnName);
    181. params.put("timeStatType", timeStatType);
    182. EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
    183. ew.in("status", new String[]{"已支付","已发货","已完成"});
    184. List<Map<String, Object>> result = ordersService.selectTimeStatValue(params, ew);
    185. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    186. for(Map<String, Object> m : result) {
    187. for(String k : m.keySet()) {
    188. if(m.get(k) instanceof Date) {
    189. m.put(k, sdf.format((Date)m.get(k)));
    190. }
    191. }
    192. }
    193. return R.ok().put("data", result);
    194. }
    195. /**
    196. * 分组统计
    197. */
    198. @RequestMapping("/group/{columnName}")
    199. public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {
    200. Map<String, Object> params = new HashMap<String, Object>();
    201. params.put("column", columnName);
    202. EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
    203. ew.in("status", new String[]{"已支付","已发货","已完成"});
    204. List<Map<String, Object>> result = ordersService.selectGroup(params, ew);
    205. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    206. for(Map<String, Object> m : result) {
    207. for(String k : m.keySet()) {
    208. if(m.get(k) instanceof Date) {
    209. m.put(k, sdf.format((Date)m.get(k)));
    210. }
    211. }
    212. }
    213. return R.ok().put("data", result);
    214. }
    215. }

  • 相关阅读:
    个人练习-Leetcode-1034. Coloring A Border
    matlab实现神经网络算法,matlab神经网络训练函数
    好用的 WAF 工具(SafeLine)
    通达OAV11.10版本,表单js开发
    NetApp EF 系列全闪存阵列——性能极佳,性价比优势突出
    鸿蒙开发加强2
    课程表系列
    [附源码]Java计算机毕业设计SSM动漫下载网站
    分享10套开源免费的高品质源码,免费源码下载平台
    字符串变形(字符串大小写切换和变现)
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/125949923