易课寄在线购课系统开发笔记(二十七)–SSO系统工程搭建与服务接口实现
SSO 系统工程搭建
需要创建一个 SSO 服务工程,可以参考
ecourses-bms 创建。
- ecourses-parent:父工程,打包方式 pom,管理 jar 包的版本号。
- ecourses-common:通用的工具类及通用的 pojo。打包方式 jar
- ecourses-sso-web(war)
- ecourses-sso(聚合工程pom)
- ecourses-sso-interface(jar)
- ecourses-sso-service(war)
服务接口实现
检查数据是否可用
功能分析
请求的 url:/user/check/{param}/{type}
参数:从 url 中取参数 String param(要校验的数据), Integer type(校验的数据类型)
响应的数据:JSON 数据。ECoursesResult,封装的数据校验的结果 true:成功,false:失败。
业务逻辑:
1、从 ecourses_user 表中查询数据
2、查询条件根据参数动态生成。
3、判断查询结果,如果查询到数据返回 false。
4、如果没有返回 true。
5、使用 ECoursesResult 包装并返回。
Dao层
从 ecourses_user 表查询。可以使用逆向工程。
Service
参数:
1、要校验的数据:String param
2、数据类型:int type(1、2、3分别代表 username、phone、email)
返回值:ECoursesResult
package cn.ecourses.service.impl;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private EcoursesUserMapper userMapper;
@Override
public ECoursesResult checkData(String param, int type) {
//根据不同的type生成不同的查询条件
EcoursesUserExample example = new EcoursesUserExample();
Criteria criteria = example.createCriteria();
//1:用户名 2:手机号 3:邮箱
if (type == 1) {
criteria.andUsernameEqualTo(param);
} else if (type == 2) {
criteria.andPhoneEqualTo(param);
} else if (type == 3) {
criteria.andEmailEqualTo(param);
} else {
return ECoursesResult.build(400, "数据类型错误");
}
//执行查询
List<EcoursesUser> list = userMapper.selectByExample(example);
//判断结果中是否包含数据
if (list != null && list.size()>0) {
//如果有数据返回false
return ECoursesResult.ok(false);
}
//如果没有数据返回true
return ECoursesResult.ok(true);
}
}
####
表现层
需要在 ecourses-sso-web 中实现。
####