前端
引入包
o 安装框架所需库文件
i. 在终端中使用nood的命令npm 执行: npm install
ii. 或者安装yarn组件后(npm install yarn) 使用yarn进行安装库: 执行命令: yarn instal
iii. 使用npm run dev 或者 yarn dev 启动项目
o 引入项目所需按钮组件
i. 例如 dj-button ,组件放在src/components中,
ii. 全局引入则放在src/configure中引入dj-button组件,就可以在项目中直接以标签的方式使用,(最终configure会引入到main.js中)
全局引入后就可以像标签一样直接使用
iii. 局部引入则在当前项目中 import 后再引入在当前的components中 或者直接在components中或require( js名 ).default
引入后以直接标签的方式使用
o 引入js
i. 以mixins的数组方式将另一个页面及页面的方法混入到当前页面,以达到页面服用的作用
ii. 在框架中以JB().module的方式引入js以达到复用代码
在src/views创建sms短信的文件夹
路由
a. 将sms短信创建的主页添加到路由表和侧边栏中 (路径都在 src/configure/router中)
sms短信页面中
o 签名管理
签名表提供签名名称,是一对多型,一个签名有多个模板发送不同类型的短信,
添加签名默认状态为等待审核,在管理端修改状态为审核状态(通过/不通过)
字典项:取出签名的name和code作为字典项供模板使用
o 模板管理
列出所有签名,为当前模板指定签名, 模板编码 填写内容(包括
变
量
)
使
用
工
具
类
正
则
获
取
便
来
那
个
内
容
做
发
送
数
限
制
后
端
框
架
中
使
用
U
t
i
l
S
t
r
i
n
g
.
g
e
t
B
e
t
w
e
e
n
方
式
正
则
获
取
{变量}) 使用工具类正则获取便来那个内容 做发送数限制 后端框架中使用UtilString.getBetween方式正则获取
变量)使用工具类正则获取便来那个内容做发送数限制后端框架中使用UtilString.getBetween方式正则获取{变量}
保存之前重写preSaveHandler 先对实体进行操作预处理 设置审核状态为WAIT 再调用保存方法
o 发送管理
前端:查出模板字典项+内容中的变量, 手机号,模板code, 列出变量参数以供填写变量参数
后端得到填写的json内容, 先获取模板中的变量集合再去获取json中值, 并用当前变量替换掉模板中的变量用其值代替
有了手机号有了内容 使用库中厂商去策略选择发送服务方,如果没有保存默认值就去配置文件中获取默认值 最后拼上签名
一个手机号在每个模板中会有发送限制 使用redisTemplate一天的有效期内限制发送次数
框架中的几点
-
export default JB( 参数).module(‘pager’).list().build (); //至少以build结尾
a. 在查询页面中以module的方式引入pager是重写框架中的page,以便与后端的datalist字象对应起来
b. .list中包含查询相关的方法与生命周期 0初始化 1.获取查询参数 2.查询 3.显示响应结果
c. 与之对应的是.form方法是编辑页面0初始化 1.先查询 2.到填写完 3.获取表单参数 4提交表单
i. 如果是查询直接调用queryHandler即可 -
JB( 参数): 参数中包括 components:{引入组件},data(){return 局部变量},methods:{ 定义方法},mounted等
a. data 不能直接返回对象(会影响全局) 要定义为函数data(){return {….}}
b. computed 计算属性 多用于获取一个组件的实例以多次引用
c. props 组件属性 让属性能够以 v-bind或:属性名 的方式传值
d. watch 监听 同@change事件
组件中常用的函数
- Slot 插槽 在插件中预留位置就可以定义定义
- 在主页中就可以添加组件添加slot属性: 这个输入框就会在指定的位置
- R e f s 与 框 架 的 Refs与框架的 Refs与框架的getRef(ref,param)函数
- $Emit 与框架中的 b u s L i s t e n e r ( e v e n t , p a r a m ) 比 如 侧 边 栏 的 自 动 关 闭 事 件 t h i s . busListener(event,param) 比如侧边栏的自动关闭事件 this. busListener(event,param)比如侧边栏的自动关闭事件this.busBroadcast(‘layout.menu.collapse’,false);
- JB中的 a p i 调 用 请 求 a . t h i s . api 调用请求 a. this. api调用请求a.this.api(js模块名, 方法名, 参数)
后端
- 值传递@RequestParam对象传递@RequestBody或HttpServltRequest获取请求参数
- 短信使用多模块,与在使用mybatis的MapperScan时用以造成service扫描不到需要配置为service配置CommontScan
- 查询前需要对参数进行校验一个直接retrun 一个直接抛出异常
- Jpa注解查询有@Query而Mybatis使用@Select(表明与数据库一致)在框架中使用@MybatisQuery 使用Jpa实体类中@Table与@Column是少不了的
Jpa与mybatis的crud操作做了一个demo发现并不能给同一个dao使用这两种方式 - 返回值使用HashMap类型封装的请求 消息,状态,分页信息
- 查询完数据可以使用框架中common的UtilDTO加入回调函数去处理前端所需要的字段
抛异常:
断言: Assert工具 如Assert.notNull(name,“不能为空”) 如果name是空的会抛出异常 相当于 throw new AppException(“msg错误信息”)
或RuntimeException异常类
ifn : if(id==null){return} 在不需要抛异常的时候使用 return
时间格式化
@DateTimeformat
FeignClient
FeignClient提供接口给其他系统
使用@EnableFeignClients开启feign接口,
在接口上配置@FeignClient 名称及当前系统的服务地址配置
具体功能放在实现类中,如发送接口
将接口模块打包后在其它系统中引用
其他系统引入pom包,配置接口的服务器地址即可直接调用发送短信接口,其它系统可以在调用时使用消息队列进行处理短信验证码, 一边实现短信验证码有效型,控制在一定时间内有效,一边减轻接口负担
MQ
说到feign共享接口还有最近刚接触的MQ消息当用户在一个sso系统中激活了账号可以调用请求发一个消息(主题,内容,MQ地址)给MQ,当安全中心启动以后会去MQ中消费消息,拿到消息后去更新这个人的认证状态
或修改用户手机号后,其他系统及时更新手机号
(注:是在4.2.0版本的Mq中出现无法消费消息,后修改为4.6.1)
发版:
后端修改 rest/web层的pom版本,在jenkins中配置git地址
clean package -D maven.test.skip=true -pl sms-web -am
前端修改package.json中的postbuild版本号
node -v
npm install -g yarn --registry=https://registry.npm.taobao.org
yarn -v
yarn install
yarn build