流程:
service层一般返回的是execution,web层一般返回的是modelMap
授权管理shopAuth:
- ShopAuthMap:dao(dao接口和mapper)-> service层 -> web层
- CodeUtil.BitMatrix:使用google的zxing的javase生成二维码,需要在pom中引入jar包
日销量productSellDaily:
- Quartz:cron表达式生成器
用户消费信息UserProduct
顾客积分userShopMap
积分兑换UserAwardMap
奖品管理AwardManagement
奖品操作AwardOperation
奖品列表Award、UserAwardMap
兑换记录pointRecord
消费记录userProductMap,myRecord
顾客各店铺积分列表页(我的积分)userShopMap,mypoint
奖品详情页awarddetail未完成
每次都是dao->service(会用到enums和dto) -> web(controller、定义路由)
知识点:
1. <resultMap>中的<association>标签:里面的column是主查询语句中的结果列。如果主查询语句中没有写as别名,那么就是数据库列名。如果写了别名,那么这里的column就要跟别名保持一致。
2. google.zxing生成二维码
3. @RequestParam注解:在浏览器访问该url的时候必须携带参数;如果没有该注解,则不必须
4. Quartz:定时任务,开源的任务调度。job、trigger
5. 前端echart:图表
6. myBatis如果表没有主键,则读出的数据是错乱的。所以所有表都设置上主键。
7. 指定日期格式:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
8. 所有处理图片的部分。图片imgHolder,PathUtil.getShopImagePath,ImageUtil.generateThumbnail
9. 重点看一下添加修改等方法(如addAward、modifyAward)。。。
10. 视图解析器->定义路由
遇到的问题:
1. 在测试productDailySell的dao层时,报错 SELECT list is not in GROUP BY clause and contains nonaggre。。。
解决方法:参考https://blog.csdn.net/qq_34707744/article/details/78031413的方式1
set @@global.sql_mode
=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
2. 在每次测试或者别的用的@Autowired注解时,经常遇到Could not be autowired的情况,不会影响使用。
解决方法:可以在被autowired的类上添加注解@Component(value = "ShopAuthService")等。原因是因为在Spring在自动bean的时候还没有把当前所注入的bean装配起来,但是随着项目启动,bean被装配 了,然后调用的时候就有了。
3. 在Quartz的configuration中,注入service报错:Consider defining a bean of type 'xxx' in your configuration
解决方法:在service的impl上加上@service标签,主要是没有扫描到
4. echart.min.js一直报错Cannot read property 'get' of undefined
解决方法:参考https://blog.csdn.net/qq6759/article/details/93793520。
确实是option格式问题。
option.xAxis = data.xAxis;
这句有问题。注释掉之后也正常,暂且没有更好的方法
5. 在前端调用后端接口的时候接口路径正确但是一直报404错误。
解决方法:在后端controller上没有加@RequestMapping路径。。。