文章目錄
- 一.介紹
- 二.數據模型
- 三.數據模型類
- 四.字典查詢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);}
}