计算机毕业设计选题推荐-网上花店微信小程序/安卓APP

作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

文章目录

  • 一、前言
  • 二、开发环境
  • 三、系统界面展示
  • 四、代码参考
  • 五、论文参考
  • 六、系统视频
  • 结语

一、前言

随着互联网的普及和电子商务的快速发展,越来越多的人选择在网上购买商品。鲜花作为一种典型的礼品,其销售也受到了很大的影响。传统的实体花店存在很多局限性,比如时间和空间的局限、信息不对称等问题,这使得许多消费者无法方便快捷地购买到心仪的鲜花。因此,开发一款基于移动设备的网上花店微信小程序/安卓APP,可以更好地满足消费者对鲜花购买的需求。
本选题旨在开发一款基于移动设备和网络技术的网上花店微信小程序/安卓APP。通过该应用程序,用户可以随时随地浏览和购买鲜花,同时还可以享受多种便捷的服务,比如在线支付、订单跟进、订单评价等。该应用程序将拓宽花店的业务范围,提高销售额和客户满意度,同时也可以为消费者提供更加便捷的购物体验。
目前,一些网上花店已经采用了线上销售系统,但是这些系统存在一些问题。首先,部分系统的使用门槛较高,需要消费者具备一定的技术能力才能使用;其次,部分系统的鲜花信息展示不够详细,无法满足消费者个性化需求;部分系统缺乏对服务质量的监督机制,导致服务质量参差不齐。这些问题都严重影响了网上花店的效果和质量。
本课题的研究目的是设计并实现一款基于微信小程序/安卓APP的网上花店系统,以提高网上花店的效率和质量。具体来说,该工具可以实现以下功能:1. 提供便捷的鲜花信息展示和管理功能,方便消费者进行信息查询和选择;2. 实现订单管理和支付的便捷性和个性化需求满足,让消费者得到更好的服务体验;3. 提供售后服务和投诉处理功能,确保消费者的权益得到保障。通过以上功能的实现,可以解决现有解决方案存在的问题,提高网上花店的效果和质量。

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 系统架构:移动端
  • 后端:SpringBoot
  • 前端:Vue

三、系统界面展示

  • 网上花店微信小程序/安卓APP界面展示:
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第1张图片
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第2张图片
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第3张图片
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第4张图片
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第5张图片
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第6张图片

四、代码参考

  • 微信小程序/安卓APP项目实战代码参考:
@Controller
@RequestMapping("/admin/order")
public class AdminOrderController {

    @Autowired
    private OrderService orderService;

    @Autowired
    private GoodsService goodsService;

    @RequestMapping("/send")
    public String sendOrder(@RequestParam(value = "page",defaultValue = "1")Integer pn, Model model, HttpSession session) {

        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }

        //一页显示几个数据
        PageHelper.startPage(pn, 2);

        //查询未发货订单
        OrderExample orderExample = new OrderExample();
        orderExample.or().andIssendEqualTo(false);
        List orderList = orderService.selectOrderByExample(orderExample);
        model.addAttribute("sendOrder", orderList);

        //查询该订单中的商品
        for (int i = 0; i < orderList.size(); i++) {
            //获取订单项中的goodsid
            Order order = orderList.get(i);
            OrderItemExample orderItemExample = new OrderItemExample();
            orderItemExample.or().andOrderidEqualTo(order.getOrderid());
            List orderItemList = orderService.getOrderItemByExample(orderItemExample);
            List goodsIdList = new ArrayList<>();

            List goodsList = new ArrayList<>();
            for (OrderItem orderItem : orderItemList) {
//                goodsIdList.add(orderItem.getGoodsid());
                Goods goods = goodsService.selectById(orderItem.getGoodsid());
                goods.setNum(orderItem.getNum());
                goodsList.add(goods);
            }

            //根据goodsid查询商品
            /*GoodsExample goodsExample = new GoodsExample();
            goodsExample.or().andGoodsidIn(goodsIdList);
            List goodsList = goodsService.selectByExample(goodsExample);*/
            order.setGoodsInfo(goodsList);

            //查询地址
            Address address = orderService.getAddressByKey(order.getAddressid());
            order.setAddress(address);

            orderList.set(i, order);
        }

        //显示几个页号
        PageInfo page = new PageInfo(orderList,5);
        model.addAttribute("pageInfo", page);

        return "adminAllOrder";
    }

    @RequestMapping("/sendGoods")
    public String sendGoods(Integer orderid, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        Order order = new Order();
        order.setOrderid(orderid);
        order.setIssend(true);
        orderService.updateOrderByKey(order);
        return "redirect:/admin/order/send";
    }

    @RequestMapping("/receiver")
    public String receiveOrder(@RequestParam(value = "page",defaultValue = "1")Integer pn, Model model, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        //一页显示几个数据
        PageHelper.startPage(pn, 2);

        //查询未收货订单
        OrderExample orderExample = new OrderExample();
        orderExample.or().andIssendEqualTo(true).andIsreceiveEqualTo(false);
        List orderList = orderService.selectOrderByExample(orderExample);
        model.addAttribute("sendOrder", orderList);

        //查询该订单中的商品
        for (int i = 0; i < orderList.size(); i++) {
            //获取订单项中的goodsid
            Order order = orderList.get(i);
            OrderItemExample orderItemExample = new OrderItemExample();
            orderItemExample.or().andOrderidEqualTo(order.getOrderid());
            List orderItemList = orderService.getOrderItemByExample(orderItemExample);
            List goodsIdList = new ArrayList<>();
            /*for (OrderItem orderItem : orderItemList) {
                goodsIdList.add(orderItem.getGoodsid());
            }
*/
            List goodsList = new ArrayList<>();
            for (OrderItem orderItem : orderItemList) {
//                goodsIdList.add(orderItem.getGoodsid());
                Goods goods = goodsService.selectById(orderItem.getGoodsid());
                goods.setNum(orderItem.getNum());
                goodsList.add(goods);
            }
            //根据goodsid查询商品
           /* GoodsExample goodsExample = new GoodsExample();
            goodsExample.or().andGoodsidIn(goodsIdList);
            List goodsList = goodsService.selectByExample(goodsExample);*/
            order.setGoodsInfo(goodsList);

            //查询地址
            Address address = orderService.getAddressByKey(order.getAddressid());
            order.setAddress(address);

            orderList.set(i, order);
        }

        //显示几个页号
        PageInfo page = new PageInfo(orderList,5);
        model.addAttribute("pageInfo", page);

        return "adminOrderReceive";
    }

    @RequestMapping("/complete")
    public String completeOrder(@RequestParam(value = "page", defaultValue = "1") Integer pn, Model model, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        //一页显示几个数据
        PageHelper.startPage(pn, 2);

        //查询已完成订单
        OrderExample orderExample = new OrderExample();
        orderExample.or().andIssendEqualTo(true).andIsreceiveEqualTo(true).andIscompleteEqualTo(true);
        List orderList = orderService.selectOrderByExample(orderExample);
        model.addAttribute("sendOrder", orderList);

        //查询该订单中的商品
        for (int i = 0; i < orderList.size(); i++) {
            //获取订单项中的goodsid
            Order order = orderList.get(i);
            OrderItemExample orderItemExample = new OrderItemExample();
            orderItemExample.or().andOrderidEqualTo(order.getOrderid());
            List orderItemList = orderService.getOrderItemByExample(orderItemExample);
            List goodsIdList = new ArrayList<>();
            /*for (OrderItem orderItem : orderItemList) {
                goodsIdList.add(orderItem.getGoodsid());
            }*/

            List goodsList = new ArrayList<>();
            for (OrderItem orderItem : orderItemList) {
//                goodsIdList.add(orderItem.getGoodsid());
                Goods goods = goodsService.selectById(orderItem.getGoodsid());
                goods.setNum(orderItem.getNum());
                goodsList.add(goods);
            }

            //根据goodsid查询商品
            /*GoodsExample goodsExample = new GoodsExample();
            goodsExample.or().andGoodsidIn(goodsIdList);
            List goodsList = goodsService.selectByExample(goodsExample);*/
            order.setGoodsInfo(goodsList);

            //查询地址
            Address address = orderService.getAddressByKey(order.getAddressid());
            order.setAddress(address);

            orderList.set(i, order);
        }

        //显示几个页号
        PageInfo page = new PageInfo(orderList, 5);
        model.addAttribute("pageInfo", page);
        return "adminOrderComplete";
    }
}
@Controller
@RequestMapping("/admin/goods")
public class GoodsController {

    @Autowired
    private GoodsService goodsService;

    @Autowired
    private OrderService orderService;

    @RequestMapping("/showjson")
    @ResponseBody
    public Msg getAllGoods(@RequestParam(value = "page", defaultValue = "1") Integer pn, HttpServletResponse response, Model model, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return Msg.fail("请先登录");
        }
        //一页显示几个数据
        PageHelper.startPage(pn, 9);
        List employees = goodsService.selectByExample(new GoodsExample());
        for(Goods good:employees){
            System.out.println(good);
        }
        //显示几个页号
        PageInfo page = new PageInfo(employees, 5);

        model.addAttribute("pageInfo", page);

        return Msg.success("查询成功!").add("pageInfo", page);
    }

    @RequestMapping("/show")
    public String goodsManage(@RequestParam(value = "page", defaultValue = "1") Integer pn, HttpServletResponse response, Model model, HttpSession session) throws IOException {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        List categoryList = cateService.selectByExample(new CategoryExample());
        model.addAttribute("categoryList", categoryList);
        return "adminAllGoods";
    }

    @RequestMapping("/salesJson")
    @ResponseBody
    public Msg getAllSales(@RequestParam(value = "page",defaultValue = "1") Integer pn,String order, int categoryid, HttpSession session){
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return Msg.fail("请先登录");
        }

        GoodsExample goodsExample = new GoodsExample();
        //判断是否进行的分类查询
        if (categoryid!=0){
            goodsExample.or().andCategoryEqualTo(categoryid);
        }

        List goodsList;
        //一页显示几个数据
        PageHelper.startPage(pn, 10);
        PageHelper.orderBy("num desc");
        goodsList = goodsService.selectByExample(goodsExample);

        List list = new ArrayList<>();
        int sum;
        for (Goods good:goodsList) {
            Category category ;
            GoodsSalesVO goodsSalesVO = new GoodsSalesVO();
            if (!"".equals(orderService.getSumByGoodsId(good.getGoodsid())) && orderService.getSumByGoodsId(good.getGoodsid())!=null){
                sum = orderService.getSumByGoodsId(good.getGoodsid());
                goodsSalesVO.setNum(sum);
            }else {
                goodsSalesVO.setNum(0);
            }
            goodsSalesVO.setGoodsId(good.getGoodsid());
            goodsSalesVO.setGoodsName(good.getGoodsname());
            category = cateService.selectById(good.getCategory());
            goodsSalesVO.setCategoryName(category.getCatename());
            list.add(goodsSalesVO);
        }

//        if ("ASC".equals(order)){
//            Collections.sort(list, new Comparator() {
//                @Override
//                public int compare(GoodsSalesVO o1, GoodsSalesVO o2) {
//                    return o1.getNum() - o2.getNum();
//                }
//            });//倒序
//        }
//        if ("DESC".equals(order)){
//            Collections.sort(list, new Comparator() {
//                @Override
//                public int compare(GoodsSalesVO o1, GoodsSalesVO o2) {
//                    return o2.getNum() - o1.getNum();
//                }
//            });//正序
//        }

        //顶部header商品分类
        List categoryList = cateService.findAll();
        //显示几个页号
        PageInfo page = new PageInfo(goodsList, 5);
        return Msg.success("成功").add("pageInfo",page).add("list",list).add("categoryList",categoryList);
    }

    @RequestMapping("/sales/{categoryid}")
    public String userManage(@PathVariable int categoryid, Model model, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        model.addAttribute("categoryid",categoryid);
        return "adminGoodsSales";
    }

    @RequestMapping("/add")
    public String showAdd(@ModelAttribute("succeseMsg") String msg, Model model, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }

        if (!msg.equals("")) {
            model.addAttribute("msg", msg);
        }
        List categoryList = cateService.selectByExample(new CategoryExample());
        model.addAttribute("categoryList", categoryList);
        //还需要查询分类传给addGoods页面
        return "addGoods";
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public Msg updateGoods(Goods goods, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return Msg.fail("请先登录");
        }
        /* goods.setGoodsid(goodsid);*/
        goodsService.updateGoodsById(goods);
        return Msg.success("更新成功!");
    }

    @RequestMapping(value = "/delete/{goodsid}", method = RequestMethod.DELETE)
    @ResponseBody
    public Msg deleteGoods(@PathVariable("goodsid") Integer goodsid) {
        goodsService.deleteGoodsById(goodsid);
        return Msg.success("删除成功!");
    }

    @RequestMapping("/addGoodsSuccess")
    public String addGoods(Goods goods,
                           @RequestParam MultipartFile[] fileToUpload,
                           HttpServletRequest request,
                           HttpServletResponse response,
                           RedirectAttributes redirectAttributes) throws IOException {
        /*goods.setCategory(1);*/
        goods.setUptime(new Date());
        goods.setActivityid(1);
        goodsService.addGoods(goods);
        for (MultipartFile multipartFile : fileToUpload) {
            String fileName = goods.getGoodsname()+ multipartFile.getOriginalFilename();
            if (multipartFile != null) {
               String ImagePath= ImageUtil.imagePath(multipartFile,fileName);
               System.out.println("最后存入数据的图片名字为:"+ImagePath);
                //把图片路径存入数据库中
              goodsService.addImagePath(new ImagePath(null, goods.getGoodsid(), ImagePath));

            }
        }

        redirectAttributes.addFlashAttribute("succeseMsg", "商品添加成功!");

        return "redirect:/admin/goods/add";
    }

    @RequestMapping("/addCategory")
    public String addcategory(@ModelAttribute("succeseMsg") String msg, Model model, HttpSession session) {
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        CategoryExample categoryExample = new CategoryExample();
        categoryExample.or();
        List categoryList;
        categoryList = cateService.selectByExample(categoryExample);
        model.addAttribute("categoryList", categoryList);
        if (!msg.equals("")) {
            model.addAttribute("msg", msg);
        }
        return "addCategory";
    }

    @Autowired
    private CateService cateService;

    @RequestMapping("/addCategoryResult")
    public String addCategoryResult(Category category, Model addCategoryResult, RedirectAttributes redirectAttributes) {
        List categoryList = new ArrayList<>();
        CategoryExample categoryExample = new CategoryExample();
        categoryExample.or().andCatenameEqualTo(category.getCatename());
        categoryList = cateService.selectByExample(categoryExample);
        if (!categoryList.isEmpty()) {
            redirectAttributes.addAttribute("succeseMsg", "分类已存在");
            return "redirect:/admin/goods/addCategory";
        } else {
            cateService.insertSelective(category);
            redirectAttributes.addFlashAttribute("succeseMsg", "分类添加成功!");
            return "redirect:/admin/goods/addCategory";
        }
    }

    @RequestMapping("/saveCate")
    @ResponseBody
    public Msg saveCate(Category category) {
        CategoryExample categoryExample = new CategoryExample();
        categoryExample.or().andCatenameEqualTo(category.getCatename());
        List categoryList = cateService.selectByExample(categoryExample);
        if (categoryList.isEmpty()) {
            cateService.updateByPrimaryKeySelective(category);
            return Msg.success("更新成功");
        } else return Msg.success("名字已经存在");
    }

    @RequestMapping("/deleteCate")
    @ResponseBody
    public Msg deleteCate(Category category) {
        cateService.deleteByPrimaryKey(category.getCateid());
        return Msg.success("删除成功");
    }

    @RequestMapping("/search")
    @ResponseBody
    public Msg searchGoods(@RequestParam(value = "page",defaultValue = "1") Integer pn,int categoryid, HttpSession session, String goodsName ){
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return Msg.fail("请先登录");
        }

        GoodsExample goodsExample = new GoodsExample();
        //判断是否进行的分类查询
        if (categoryid!=0){
            goodsExample.or().andCategoryEqualTo(categoryid);
        }
        goodsExample.or().andGoodsnameLike("%"+goodsName+"%");
        //一页显示几个数据
        PageHelper.startPage(pn, 10);
        List goodsList = goodsService.selectByExample(goodsExample);
        List list = new ArrayList<>();
        int sum;
        for (Goods good:goodsList) {
            Category category =new Category();
            GoodsSalesVO goodsSalesVO = new GoodsSalesVO();
            if (!"".equals(orderService.getSumByGoodsId(good.getGoodsid())) && orderService.getSumByGoodsId(good.getGoodsid())!=null){
                sum = orderService.getSumByGoodsId(good.getGoodsid());
                goodsSalesVO.setNum(sum);
            }else {
                goodsSalesVO.setNum(0);
            }
            goodsSalesVO.setGoodsId(good.getGoodsid());
            goodsSalesVO.setGoodsName(good.getGoodsname());
            category = cateService.selectById(good.getCategory());
            goodsSalesVO.setCategoryName(category.getCatename());
            list.add(goodsSalesVO);
        }

        //顶部header商品分类
        List categoryList = cateService.findAll();
        //显示几个页号
        PageInfo page = new PageInfo(goodsList, 5);
        return Msg.success("成功").add("pageInfo",page).add("list",list).add("categoryList",categoryList);
    }

}
@Controller
@RequestMapping("/admin")
public class LoginController {

    @Autowired
    private AdminService adminService;

    @RequestMapping("/login")
    public String adminLogin() {
        return "adminLogin";
    }

    @RequestMapping("/confirmLogin")
    public String confirmLogin(Admin admin, Model model, HttpServletRequest request) {
        admin.setPassword(Md5Util.MD5Encode(admin.getPassword(),"utf-8"));
        Admin selectAdmin = adminService.selectByName(admin);
        if (selectAdmin == null) {
            model.addAttribute("errorMsg", "用户名或密码错误");
            return "adminLogin";
        } else {
            HttpSession session = request.getSession();
            session.setAttribute("admin", selectAdmin);
            return "redirect:/admin/user/show";
        }
    }

    @RequestMapping("/logout")
    public String adminLogout(HttpServletRequest request) {
        HttpSession session = request.getSession();
        session.removeAttribute("admin");
        return "redirect:/admin/login";
    }

    @RequestMapping("/show")
    public String adminShow(Model model, HttpSession session){
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin == null) {
            return "redirect:/admin/login";
        }
        model.addAttribute("admin",admin);
        return "adminManage";
    }

    @RequestMapping("/showJson")
    @ResponseBody
    public Msg showJson(String adminName ,HttpSession session){

        Admin admin = new Admin();
        admin = (Admin) session.getAttribute("admin");
        admin.setAdminname(admin.getAdminname());
        if (StringUtil.isNotEmpty(adminName)){
            admin.setAdminname(adminName);
        }

        Admin admin1 = adminService.selectByName(admin);
        return Msg.success("查询成功").add("admin",admin1);
    }

    @PostMapping("/saveInfo")
    @ResponseBody
    public Msg saveInfo(String name, HttpServletRequest request) {
        HttpSession session = request.getSession();
        AdminExample adminExample = new AdminExample();
        Admin admin,updateAdmin = new Admin();
        Admin admins;
        Integer adminId;
        admin = (Admin) session.getAttribute("admin");
        adminId = admin.getAdminid();
        admins =adminService.selectByName(admin);
        if (!StringUtils.isEmpty(admin)){
            updateAdmin.setAdminid(admins.getAdminid());
            updateAdmin.setAdminname(name);
            adminService.updateByPrimaryKey(updateAdmin);
            return Msg.success("更新成功");
        }else {
            return Msg.fail("更新失败");
        }
    }

    @PostMapping("/savePsw")
    @ResponseBody
    public Msg savePsw(String Psw, HttpServletRequest request) {
        HttpSession session = request.getSession();
        Admin admin = (Admin) session.getAttribute("admin");
        if (Psw.length()<6){
            return Msg.fail("密码格式错误");
        }
        admin.setPassword(Md5Util.MD5Encode(Psw, "UTF-8"));
        adminService.updateByPrimaryKey(admin);
        return Msg.success("修改密码成功");
    }

    public static void main(String[] args) {
        System.out.println(Md5Util.MD5Encode("123456","utf-8"));
    }
}

五、论文参考

  • 计算机毕业设计选题推荐-网上花店微信小程序/安卓APP论文参考:
    计算机毕业设计选题推荐-网上花店微信小程序/安卓APP_第7张图片

六、系统视频

网上花店微信小程序/安卓APP项目视频:

计算机毕业设计选题推荐-网上花店微信小程序/安卓APP

结语

计算机毕业设计选题推荐-网上花店微信小程序/安卓APP
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

你可能感兴趣的:(微信小程序项目,安卓项目,选题推荐,微信小程序,安卓,源码,代码讲解,答辩教学,项目定制开发,1024程序员节)