三 项目搭建
16 service接口 – ISysDictTypeService
public interface ISysDictTypeService {
// 查询所有数据字典
List<SysDictType> selectAll();
// 数据字典新增
void save(SysDictType sysDictType);
// 数据字典编辑
void update(SysDictType sysDictType);
// 根据数据字典 id 查询数据字典对象
SysDictType get(Long dictId);
// 根据数据字典 type 查询数据字典对象
SysDictType getByDictType(String dictType);
}
17 service接口 – ISysDictDataService
public interface ISysDictDataService {
// 查询所有数据字典明细
List<SysDictData> selectAll();
// 数据字典明细新增
void save(SysDictData sysDictData);
// 数据字典明细编辑
void update(SysDictData sysDictData);
// 根据数据字典明细 id 查询数据字典明细对象
SysDictData get(Long dictId);
// 根据数据字典 type 查询数据字典明细集合
List<SysDictData> queryByDictType(String dictType);
}
18 service接口 – ICustomerService
public interface ICustomerService {
List<Customer> selectAll();
void saveOrUpdate(Customer customer);
Customer get(Long id);
}
19 service实现类 – SysDictTypeServiceImpl
@Service
public class SysDictTypeServiceImpl implements ISysDictTypeService {
@Autowired
private SysDictTypeMapper sysDictTypeMapper;
@Override
public List<SysDictType> selectAll() {
return sysDictTypeMapper.selectAll();
}
@Override
public void save(SysDictType sysDictType) {
// 取出 dictType进行判定,若在数据库中存在则抛出异常。若不存在则进行新增操作。通过 count 进行查询
int count = sysDictTypeMapper.getCountByDictType(sysDictType.getDictType());
if(count > 0){
throw new RuntimeException("已经存在dictType=" + sysDictType.getDictType() + "的数据字典,不要重复添加");
}
sysDictTypeMapper.insert(sysDictType);
}
@Override
public void update(SysDictType sysDictType) {
sysDictTypeMapper.update(sysDictType);
}
@Override
public SysDictType get(Long dictId) {
return sysDictTypeMapper.get(dictId);
}
@Override
public SysDictType getByDictType(String dictType) {
return sysDictTypeMapper.getByDictType(dictType);
}
}
20 service实现类 – SysDictDataServiceImpl
@Service
public class SysDictDataServiceImpl implements ISysDictDataService {
@Autowired
private SysDictDataMapper sysDictDataMapper;
@Override
public List<SysDictData> selectAll() {
return sysDictDataMapper.selectAll();
}
@Override
public void save(SysDictData sysDictData) {
sysDictDataMapper.insert(sysDictData);
}
@Override
public void update(SysDictData sysDictData) {
sysDictDataMapper.updateByPrimaryKey(sysDictData);
}
@Override
public SysDictData get(Long dictId) {
return sysDictDataMapper.selectByPrimaryKey(dictId);
}
@Override
public List<SysDictData> queryByDictType(String dictType) {
return sysDictDataMapper.queryByDictType(dictType);
}
}
21 service实现类 – CustomerServiceImpl
@Service
public class CustomerServiceImpl implements ICustomerService {
@Autowired
private CustomerMapper customerMapper;
@Override
public List<Customer> selectAll() {
return customerMapper.selectAll();
}
@Override
public void saveOrUpdate(Customer customer) {
if(customer.getId()==null){
customerMapper.insert(customer);
}else{
customerMapper.update(customer);
}
}
@Override
public Customer get(Long id) {
return customerMapper.get(id);
}
}
22 controller – SysDictTypeController
此处 @RequestMapping(“/sysDictType”) 带 / 是相对路径,不带是绝对路径。
@Controller
@RequestMapping("/sysDictType")
public class SysDictTypeController {
private String prefix = "sysDictType";
@Autowired
private ISysDictTypeService sysDictTypeService;
@RequestMapping
public String sysDictType(Model model){
List<SysDictType> sysDictTypeList = sysDictTypeService.selectAll();
model.addAttribute("sysDictTypeList",sysDictTypeList);
return prefix+"/view";
}
@RequestMapping("/add")
public String addPage(){
return prefix + "/add";
}
@RequestMapping("/edit")
public String editPage(Long id,Model model){
SysDictType sysDictType = sysDictTypeService.get(id);
model.addAttribute("sysDictType",sysDictType);
return prefix + "/edit";
}
@RequestMapping("/saveOrUpdate")
public String saveOrUpdate(SysDictType sysDictType){
if(sysDictType.getDictId() == null){
// 新增
sysDictTypeService.save(sysDictType);
} else {
// 编辑
sysDictTypeService.update(sysDictType);
}
return "redirect:/sysDictType";
}
}
23 controller – SysDictDataController
@Controller
@RequestMapping("/sysDictData")
public class SysDictDataController {
private String prefix = "sysDictData";
@Autowired
private ISysDictDataService sysDictDataService;
@Autowired
private ISysDictTypeService sysDictTypeService;
@RequestMapping
public String sysDictData(Model model,String dictType){
// 1.数据字典对象(用于回显上面的名字的)
SysDictType sysDictType = sysDictTypeService.getByDictType(dictType);
model.addAttribute("sysDictType",sysDictType);
// 2.数据字典明细集合对象(展示数据)
List<SysDictData> sysDictDataList = sysDictDataService.queryByDictType(dictType);
model.addAttribute("sysDictDataList",sysDictDataList);
return prefix+"/view";
}
@RequestMapping("/add")
public String addPage(String dictType,Model model){
SysDictType sysDictType = sysDictTypeService.getByDictType(dictType);
model.addAttribute("sysDictType",sysDictType);
return prefix + "/add";
}
@RequestMapping("/edit")
public String editPage(Long dict_code,Model model){
// 1.数据字典明细对象(先查询他!!因为查了这个对象之后才能拿到 dict_type 属性)
SysDictData sysDictData = sysDictDataService.get(dict_code);
model.addAttribute("sysDictData",sysDictData);
// 2.数据字典对象 (根据类型查询该对象,上面得到的 dict_type 属性)
SysDictType sysDictType = sysDictTypeService.getByDictType(sysDictData.getDict_type());
model.addAttribute("sysDictType",sysDictType);
return prefix + "/edit";
}
@RequestMapping("/saveOrUpdate")
public String saveOrUpdate(SysDictData sysDictData){
if(sysDictData.getDict_code() == null){
// 新增
sysDictDataService.save(sysDictData);
} else {
// 编辑
sysDictDataService.update(sysDictData);
}
return "redirect:/sysDictData?dictType=" + sysDictData.getDict_type();
}
}
24 controller – CustomerController
@Controller
@RequestMapping("/customer")
public class CustomerController {
@Autowired
private ICustomerService customerService;
@Autowired
private ISysDictDataService sysDictDataService;
// 返回值使用的路径前缀,实际为 templates 中对应的包名
private String prefix = "customer";
// 当二级路径的 @RequestMapping() 中无值时,表示经过一级路经直接到此方法,括号也可以省略
@RequestMapping()
public String customer(ModelMap modelMap){
List<Customer> customerList = customerService.selectAll();
modelMap.put("customerList",customerList);
// 包名+包目录下对应的 html 文件
return prefix+"/view";
}
@RequestMapping("/add")
public String add(ModelMap modelMap){
// 把来源渠道和意向校区的数据存放到作用域中
List<SysDictData> sourceTypeList = sysDictDataService.queryByDictType("sourceType");
modelMap.put("sourceTypeList",sourceTypeList);
List<SysDictData> schoolTypeList = sysDictDataService.queryByDictType("schoolType");
modelMap.put("schoolTypeList",schoolTypeList);
return prefix+"/add";
}
@RequestMapping("/edit")
public String edit(Long id, ModelMap modelMap){
Customer customer = customerService.get(id);
List<SysDictData> sourceTypeList = sysDictDataService.queryByDictType("sourceType");
modelMap.put("sourceTypeList",sourceTypeList);
List<SysDictData> schoolTypeList = sysDictDataService.queryByDictType("schoolType");
modelMap.put("schoolTypeList",schoolTypeList);
modelMap.put("customer",customer);
return prefix+"/edit";
}
@RequestMapping("/saveOrUpdate")
public String saveOrUpdate(Customer customer){
customerService.saveOrUpdate(customer);
return "redirect:/customer";
}
}