# Repository **Repository Path**: JourneyFighting/Repository ## Basic Information - **Project Name**: Repository - **Description**: 个人项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-08-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # amall 一个商场 介绍: Restful风格 前后端完全分离; 编译器:Idea2017 版本控制:Git,Maven 项目架构:Centos6.5服务器;Tomcat8.5集群;分布式主从Redis3.0;Jdk1.8;Vsftp服务器;Nginx负载均衡 反向代理 目录转发服务器; Logback+Slf4j实现日志管理. 后台技术:SpringBoot+MyBatis+Spring; 单点登录:1.Redis+Cookie;2.SpringSession 任务调度:SpringSchedule +分布式锁问题==> Redisson 实现分布式锁 全局异常的实现,权限拦截器; 后台模块: 用户管理模块:一:功能模块 (1)用户管理模块:登录 用户名验证 注册 忘记密码 提交问题答案 重置密码 获取用户信息 更新用户信息 退出登录 (2)分类管理模块:查找类别,更改类别,查找子类别 (3)商品模块:商品查找,上下架,图片富文本上传,商品详情等 (4)购物车模块:添加/移除商品,单选/全选/取消/全部取消,购物车商品详情Vo,更改数量 (5)收货地址模块:增删改地址; 地址列表 地址列表分页 地址详情 (6)支付模块:支付宝的对接(利用沙箱环境);拿到相应订单 -> 预下单 -> 二维码生成 并上传至Ftp-> 下单 -> 验证支付宝回调(通过public key) 写入支付信息到 payInfo表,防止单边账产生; (7)订单模块:创建订单;取消订单;订单详情;订单列表;订单搜索;订单发货; 定时任务:用来关闭超时订单 二:技术学习 (1) 横向越权、纵向越权安全漏洞 MD5明文加密及增加salt值 Cookie+Redis缓存的使用 =====> 实现单点登录 高复用服务响应对象的设计思想及抽象封装 Session的使用===> SpringSession+Redis实现单点登录; 全局异常处理;权限拦截器;session重置过滤器 (2)递归查找 子类别 (3)利用PageHelper结合MyBatis的分页,上传图片至Ftp服务器,POJO BO VO间的转换 (4)Bigdecimal解决浮点型商业运算中丢失精度的问题;封装了一个高复用的cartVo (6)解析支付宝SDK对接源码;RSA1和RSA2验证签名及加解密;避免支付宝重复通知和数据校验;生成二维码,并持久化到图 片服务器 (7)订单号的生成规则以及高并发下订单号唯一性该如何保证;定时关单:使用SpringSchedule+Redis(setNx,getSet)` 或Redission 解决集群下的分布式锁问题;