文章目录
- 一.介绍
- 二.数据模型
- 三.数据模型类
- 四.字典查询API接口
- 五.服务器端
- 1.Dao
- 2.Service
- 3.Controller
一.介绍
在新增课程界面需要选择课程等级、课程状态等,这些信息统一采用数据字典管理的方式。
本项目对一些业务的分类配置信息,比如:课程等级、课程状态、用户类型、用户状态等进行统一管理,通过在数据库创建数据字典表来维护这些分类信息。
数据字典对系统的业务分类进行统一管理,并且也可以解决硬编码问题,比如添加课程时选择课程等级,下拉框中的课程等级信息如果在页面硬编码将造成不易修改维护的问题,所以从数据字典表中获取,如果要修改名称则在数据字典修改即可,提高系统的可维护性。
二.数据模型
在mongodb中创建数据字典表sys_dictionary
字段说明如下:
d_name:字典名称
d_type:字典分类
d_value:字典数据
sd_name:项目名称
sd_id:项目id
sd_status:项目状态(1:可用,0不可用)
三.数据模型类
文件位置:xcEduService01\xc-framework-model\src\main\java\com\xuecheng\framework\domain\system\SysDictionary.java
@Data
@ToString
@Document(collection = "sys_dictionary")
public class SysDictionary {@Idprivate String id;@Field("d_name")private String dName;@Field("d_type")private String dType;@Field("d_value")private List<SysDictionaryValue> dValue;
}
SysDictionaryValue类型:
文件位置:xcEduService01\xc-framework-model\src\main\java\com\xuecheng\framework\domain\system\SysDictionaryValue.java
@Data
@ToString
public class SysDictionaryValue {@Field("sd_id")private String sdId;@Field("sd_name")private String sdName;@Field("sd_status")private String sdStatus;
}
四.字典查询API接口
为了方便其它子系统使用,在cms模块下创建字典查询接口,根据字典的type查询字典信息,接口定义如下:
文件位置:xcEduService01\xc-service-api\src\main\java\com\xuecheng\api\cms\SysDicthinaryControllerApi.java
@Api(value = "数据字典接口",description = "提供数据字典接口的管理、查询功能")
public interface SysDicthinaryControllerApi {//数据字典@ApiOperation(value="数据字典查询接口")public SysDictionary getByType(String type);
}
五.服务器端
1.Dao
文件位置:xcEduService01\xc-service-manage-cms\src\main\java\com\xuecheng\manage_cms\dao\SysDictionaryDao.java
@Repository
public interface SysDictionaryDao extends MongoRepository<SysDictionary,String> {//根据字典分类查询字典信息SysDictionary findBydType(String dType);
}
2.Service
文件位置:xcEduService01\xc-service-manage-cms\src\main\java\com\xuecheng\manage_cms\service\SysdictionaryService.java
@Service
public class SysdictionaryService {@AutowiredSysDictionaryDao sysDictionaryDao;//根据字典分类type查询字典信息public SysDictionary findDictionaryByType(String type){return sysDictionaryDao.findBydType(type);}
}
3.Controller
文件位置:xcEduService01\xc-service-manage-cms\src\main\java\com\xuecheng\manage_cms\controller\SysDictionaryController.java
@RestController
@RequestMapping("/sys/dictionary")
public class SysDictionaryController implements SysDictionaryControllerApi {@AutowiredSysdictionaryService sysdictionaryService;//根据字典分类id查询字典信息@Override@GetMapping("/get/{type}")public SysDictionary getByType(@PathVariable("type") String type) {return sysdictionaryService.findDictionaryByType(type);}
}