(Java毕业设计)分布式架构网上商城(基于java+springcloud)

本文介绍了使用Java和SpringCloud框架开发的一个网上购物商城项目。系统支持用户注册登录、产品展示、购物车操作以及后台的订单管理、产品管理和用户信息管理。核心技术包括Eureka服务注册与发现,数据库使用MySQL,集成Maven进行构建,前后台功能分离明确。
摘要由CSDN通过智能技术生成

您好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

开发环境

开发语言:Java
框架:springcloud
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器

项目介绍

随着科技的飞速发展,计算机已经广泛的应用于各行各业当中,而且日趋普及。在各个领域内,计算机的应用已经十分广泛,各种智能设备都与计算机紧密结合在一起,主要应用于两个方面:一是以设备为主。另一种是软件的建设,以提高网上购物商城的形象。

本文研究的网上购物商城基于当前较为流行的B/S结构,采用Java技术和MYSQL数据库进行开发设计

前台功能︰

用户注册∶新用户可以注册新账号和密码,该用户浏览产品、购买产品。

用户登录∶注册用户可以通过账号和密码登录,该用于具备浏览产品、下订单、修改或删除个人信息等权限。

热卖产品︰对网站中受到消费者欢迎的产品进行详细介绍。

产品展示:对客户的产品进行详细展示,包括产品的款式颜色价格等所有产品详细的信息。搜索产品∶购物车网页中,可以通过产品的序号或者产品的名称进行搜索查找。

购物车∶用户把产品添加到购车中,添加或者减少数量。

后台功能︰

后台登录︰管理员可以通过账号和密码登录,该用于具备查询产品、添加产品、修改产品。用户管理:对网站的信息管理,用户的信息、订单信息的管理。

产品管理∶登录后可以查询产品、修改产品、删除产品等。订单管理:管理员进行增删改查等功能

系统截图

部分核心代码

# 端口号
server:
  port: 8761
# 配置注册服务中心
eureka:
  instance:
    hostname: 127.0.0.1
  # 配置关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔。生产环境不建议关闭
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 6000
    peer-node-read-timeout-ms: 90000
    response-cache-update-interval-ms: 5000
  client:
    # 表明自己不是一个客户端,并且不进行自注册
    register-with-eureka: false
    fetch-registry: false
    # 注册中心的访问地址
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
# 配置应用程序名称
spring:
  application:
    name: cloud-eureka
/**
 * 订单
 * 后端接口
 * @author 
 * @email 
 * @date 2022-03-16 23:51:29
 */
@RestController
@RequestMapping("/orders")
public class OrdersController {
    @Autowired
    private OrdersService ordersService;
 
 
    
 
 
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,OrdersEntity orders, 
        HttpServletRequest request){
        if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
            orders.setUserid((Long)request.getSession().getAttribute("userId"));
        }
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
        PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
 
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,OrdersEntity orders, 
        HttpServletRequest request){
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
        PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
        return R.ok().put("data", page);
    }
 
    /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( OrdersEntity orders){
           EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
          ew.allEq(MPUtil.allEQMapPre( orders, "orders")); 
        return R.ok().put("data", ordersService.selectListView(ew));
    }
 
     /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(OrdersEntity orders){
        EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();
         ew.allEq(MPUtil.allEQMapPre( orders, "orders")); 
        OrdersView ordersView =  ordersService.selectView(ew);
        return R.ok("查询订单成功").put("data", ordersView);
    }
    
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        OrdersEntity orders = ordersService.selectById(id);
        return R.ok().put("data", orders);
    }
 
    /**
     * 前端详情
     */
    @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        OrdersEntity orders = ordersService.selectById(id);
        return R.ok().put("data", orders);
    }
    
 
 
 
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){
        orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
        //ValidatorUtils.validateEntity(orders);
        orders.setUserid((Long)request.getSession().getAttribute("userId"));
        ordersService.insert(orders);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){
        orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
        //ValidatorUtils.validateEntity(orders);
        ordersService.insert(orders);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){
        //ValidatorUtils.validateEntity(orders);
        ordersService.updateById(orders);//全部更新
        return R.ok();
    }
    
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        ordersService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
    @RequestMapping("/remind/{columnName}/{type}")
    public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
                         @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
        map.put("column", columnName);
        map.put("type", type);
        
        if(type.equals("2")) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            Date remindStartDate = null;
            Date remindEndDate = null;
            if(map.get("remindstart")!=null) {
                Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
                c.setTime(new Date()); 
                c.add(Calendar.DAY_OF_MONTH,remindStart);
                remindStartDate = c.getTime();
                map.put("remindstart", sdf.format(remindStartDate));
            }
            if(map.get("remindend")!=null) {
                Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
                c.setTime(new Date());
                c.add(Calendar.DAY_OF_MONTH,remindEnd);
                remindEndDate = c.getTime();
                map.put("remindend", sdf.format(remindEndDate));
            }
        }
        
        Wrapper<OrdersEntity> wrapper = new EntityWrapper<OrdersEntity>();
        if(map.get("remindstart")!=null) {
            wrapper.ge(columnName, map.get("remindstart"));
        }
        if(map.get("remindend")!=null) {
            wrapper.le(columnName, map.get("remindend"));
        }
        if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
            wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));
        }
 
 
        int count = ordersService.selectCount(wrapper);
        return R.ok().put("count", count);
    }
    
 
 
 
 
 
    /**
     * (按值统计)
     */
    @RequestMapping("/value/{xColumnName}/{yColumnName}")
    public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("xColumn", xColumnName);
        params.put("yColumn", yColumnName);
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
            ew.in("status", new String[]{"已支付","已发货","已完成"});
        List<Map<String, Object>> result = ordersService.selectValue(params, ew);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String, Object> m : result) {
            for(String k : m.keySet()) {
                if(m.get(k) instanceof Date) {
                    m.put(k, sdf.format((Date)m.get(k)));
                }
            }
        }
        return R.ok().put("data", result);
    }
 
    /**
     * (按值统计)时间统计类型
     */
    @RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")
    public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("xColumn", xColumnName);
        params.put("yColumn", yColumnName);
        params.put("timeStatType", timeStatType);
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
            ew.in("status", new String[]{"已支付","已发货","已完成"});
        List<Map<String, Object>> result = ordersService.selectTimeStatValue(params, ew);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String, Object> m : result) {
            for(String k : m.keySet()) {
                if(m.get(k) instanceof Date) {
                    m.put(k, sdf.format((Date)m.get(k)));
                }
            }
        }
        return R.ok().put("data", result);
    }
 
    /**
     * 分组统计
     */
    @RequestMapping("/group/{columnName}")
    public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("column", columnName);
        EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
            ew.in("status", new String[]{"已支付","已发货","已完成"});
        List<Map<String, Object>> result = ordersService.selectGroup(params, ew);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String, Object> m : result) {
            for(String k : m.keySet()) {
                if(m.get(k) instanceof Date) {
                    m.put(k, sdf.format((Date)m.get(k)));
                }
            }
        }
        return R.ok().put("data", result);
    }
}

如需对应的源码,可以评论或者下方联系我,私信都可以。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值