前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >产品选择系统相关说明V2.0

产品选择系统相关说明V2.0

作者头像
马拉松程序员
发布2022-04-26 17:31:30
2220
发布2022-04-26 17:31:30
举报
文章被收录于专栏:马拉松程序员的专栏

前言说明:

之前下载V1.0使用的可以选择新建一个项目把V2.0下载使用,也可以直接覆盖。推荐使用第一种方式,虽然很多方法做了改进,但是我的写法不一定是最好的,仅供参考。

需求简介:

系统实现对家电类(目前为吸尘器)产品的评测信息的查看、搜索、筛选、比对为主要功能,帮助用户在购买吸尘器时候根据自己使用环境选择出最适合自己的产品。其次,具有文章(包括付费文章)的查看功能,后期增加查看用户使用数据,比如搜索关键词排行等。具体的需求文档以word文档形式分享在码云中,开发产品中不一定是这种模式,仅供参考。

要求:将产品信息(基础信息、价格、电气参数、评测信息等)作为可编辑、可维护参数,根据自定义来制作。

功能模块:

  • 管理员模块 正常系统必备的人员管理,包括管理员的登录、密码修改。
  • 用户模块 主要是来源于微信小程序的使用用户,通过微信来获取用户相关的参数,无需注册。
  • 类别模块 根据某个类别定义电气参数,决策维度的参数。
  • 产品模块(其中包括产品价格模块,电气参数模块,决策参数模块,产品报告模块,产品图片库模块,产品特点模块) 根据产品属于的类别,添加相关的具体信息。
  • 文章模块 区分免费文章、付费文章,免费文章的呈现方式为微信公众号文章,付费文章呈现方式为微信小程序使用web-view引入外链实现。
  • 订单数据模块 主要是用于统计小程序访问人数、付费人员,付费金额等相关信息。
  • 用户行为分析模块(待更新) 通过搜索关键词数据分析用户对那些产品感兴趣。

开发相关:

  • 开发语言:Java(Springboot)
  • ORM:mybatis(mybatis-plus)
  • 数据库 Mysql8(7以下可能存在未知问题)
  • 管理前端 freemaker
  • 用户前端 微信小程序
  • 开发工具相关推荐idea,navicat(数据库可视化工具)
  • 项目地址:https://gitee.com/liudrain/product

使用说明:

  1. 首选需要自己搭建数据库,可以使用本机,推荐腾讯云学生服务器10元/月。搞一台linux开发,先学习搭建一个mysql数据库,作为自己的云开发数据库使用
  2. 把数据结构和数据在新数据库里运行,注意数据库名字和自己的配置是否一样,管理端用户名和密码都是admin/admin
  3. application.propites 里面配置数据库和WxConfig里面配置微信小程序相关参数(生产相关内容已经删除,自己添加申请添加测试即可)
  4. 系统上传图片功能会上传到服务器上,需要在application.propites 中做配置
  1. 小程序端config.js是全局url配置。里面改本地还是服务器地址
  2. 直接下载导入到idea编译器需要把select文件夹移除,需要使用微信开发者工具打开,数据库脚本在navicat里运行即可。

开发难点:

  • 产品的相关参数的关联性,而且需要做到参数的可维护。所以需要做切割和关联。
  • 在产品信息比对中,关联查询,尤其是隐藏相同和隐藏无内容,查询语句写起来比较复杂,这里使用了策略模式实现,定义如此接口,然后每个具体实现写一个实现方法类,根据选择的不同由不同的实现方法来处理。详细请看product.xml
  • CompareStrategy
代码语言:javascript
复制
 /**
     * 获取关注产品的详情信息,用于比对
     *
     * @param request
     * @return 产品list
     */
    @RequestMapping("/getFocusProduct")
    public Msg getFocusProduct(HttpServletRequest request, String[] types) {
        String userId = request.getHeader("userId");
        List<Product> list = productService.selectFocusProduct(userId);
        //1,2,4,3,5,6,7
        if (types[0].equals("null")) {
            list.forEach(product -> {
                List<DecisionClass> decisionClasses = productDecisionClassService.getDecisionClass(product.getProductId());
                product.setDecisions(decisionClasses);
            });
        } else {
            // 使用策略模式
            int sum = 0;
            for (int i = 0; i < types.length; i++) {
                sum += Integer.valueOf(types[i]);
            }
            //计算出当前的那几个选项,进行选项的处理
            list = strategyContext.getResource(list, String.valueOf(sum));
        }
        return Msg.success(list);
    }

最后声明:

  • 线上小程序因为是需要付费使用(查看评测数据),所有在select.sql中为测试数据。
  • 项目可以作为自己项目练手学习,也可以用在简历作为项目经验,版权归马拉松程序员所有。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马拉松程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档