@Controller
@RequestMapping("/admin")
public class FriendLinkController {
@Autowired
private FriendLinkService FriendLinkService;
//友链管理界面
@GetMapping("/friendlinks")
public String list(Model model, @RequestParam(defaultValue = "1", value = "pageNum") Integer pageNum) {
String orderBy = "create_time desc";
PageHelper.startPage(pageNum, 5, orderBy);
List friendLinks = FriendLinkService.listFriendLink();
PageInfo pageInfo = new PageInfo<>(friendLinks);
model.addAttribute("pageInfo", pageInfo);
return "admin/friendlinks";
}
//有点冗余,不想优化, 有人看到可以自行优化
@PostMapping("/refreshFriend")
public String refreshFriend(Model model, @RequestParam(defaultValue = "1", value = "pageNum") Integer pageNum){
String orderBy = "create_time desc";
PageHelper.startPage(pageNum, 5, orderBy);
List friendLinks = FriendLinkService.listFriendLink();
PageInfo pageInfo = new PageInfo<>(friendLinks);
model.addAttribute("pageInfo", pageInfo);
return "admin/friendlinks :: friendlink-list";
}
//跳转到 新增页面
@GetMapping("friendlinks/input")
public String input(Model model) {
model.addAttribute("friendLink", new FriendLink());
return "admin/friendlinks-input";
}
//提交新增
@PostMapping("/friendlinks")
public String post(@Valid FriendLink friendLink, BindingResult result, RedirectAttributes attributes) {
if(result.hasErrors()){
//校验出来,发现问题,把message传前端
System.out.println(result);
return "admin/friendlinks-input";
}
FriendLink friendLink1 = FriendLinkService.getFriendLinkByBlogaddress(friendLink.getBlogaddress());
if (friendLink1 != null) {
attributes.addFlashAttribute("message", "不能添加相同地址的友链");
return "redirect:/admin/friendlinks/input";
}
friendLink.setCreateTime(new Date());
int i = FriendLinkService.saveFriendLink(friendLink);
if (i == 0) {
attributes.addFlashAttribute("message", "添加失败");
} else {
attributes.addFlashAttribute("message", "添加成功");
}
return "redirect:/admin/friendlinks";
}
//编辑 友链
@GetMapping("/friendlinks/{id}/input")
public String editInput(@PathVariable("id") Long id, Model model) {
//根据id 传对应的 friendlink
FriendLink friendLink = FriendLinkService.getFriendLink(id);
model.addAttribute("friendLink", friendLink);
return "admin/friendlinks-input";
}
//提交修改友链
@PostMapping("/friendlinks/{id}")
public String editPost(@Valid FriendLink friendLink, BindingResult result, RedirectAttributes attributes) {
if(result.hasErrors()){
//校验出来,发现问题,把message传前端
System.out.println(result);
return "admin/friendlinks-input";
}
//友链的地址不能和 除自己之外的 重复(特判)
FriendLink friendLink1 = FriendLinkService.getFriendLinkByBlogaddress(friendLink.getBlogaddress());
if (friendLink1 != null) {
if (friendLink1.getId().equals(friendLink.getId())) {
//同一个就不用特判了
} else {
//如果是和不同 友链冲突
attributes.addFlashAttribute("message", "不能添加重复的友链地址");
return "redirect:/admin/friendlinks/{id}/input"; //回到新增(有id还是进 编辑)页面
}
}
int i = FriendLinkService.updateFriendLink(friendLink);
if (i == 0) {
attributes.addFlashAttribute("message", "编辑失败");
} else {
attributes.addFlashAttribute("message", "编辑成功");
}
return "redirect:/admin/friendlinks"; //回到展示列表
}
//删除 友链
@GetMapping("/friendlinks/{id}/delete")
public String delete(@PathVariable("id") Long id, RedirectAttributes attributes) {
FriendLinkService.deleteFriendLink(id);
attributes.addFlashAttribute("message", "删除成功");
return "redirect:/admin/friendlinks";
}
}
二、相册管理
同理,除了基本的增删查改,但不需要做图片链接的查重,有该需求者自行修改。
1.DAO持久层
在dao包下创建PictureDao接口,代码如下:
@Mapper
@Repository
public interface PictureDao {
//图片列表
List listPicture();
//添加图片
int savePicture(Picture picture);
//根据id查询图片
Picture getPicture(Long id);
//编辑修改相册
int updatePicture(Picture picture);
//删除照片
void deletePicture(Long id);
}
2.友链管理mapper
在mapper文件夹下创建PictureDao.xml文件
select *
from t_picture ;
insert into t_picture (pictureaddress, picturedescription, picturename, picturetime)
values (#{pictureaddress},#{picturedescription},#{picturename},#{picturetime});
select *
from t_picture where id = #{id};
update t_picture
set pictureaddress = #{pictureaddress},picturename=#{picturename},picturedescription=#{picturedescription},picturetime=#{picturetime}
where id=#{id};
delete
from t_picture
where id=#{id};
3.图片管理Service业务层
在service包创建用户业务层接口PictureService 。
public interface PictureService {
//图片列表
List listPicture();
//添加图片
int savePicture(Picture picture);
//根据id查询图片
Picture getPicture(Long id);
//编辑修改相册
int updatePicture(Picture picture);
//删除照片
void deletePicture(Long id);
}
接口实现类impl
在impl子包,在其中创建用户业务层接口实现类PictureServiceImpl。
@Service
public class PictureServiceImpl implements PictureService {
@Autowired
private PictureDao pictureDao;
@Override
public List listPicture() {
return pictureDao.listPicture();
}
@Override
public int savePicture(Picture picture) {
return pictureDao.savePicture(picture);
}
@Override
public Picture getPicture(Long id) {
return pictureDao.getPicture(id);
}
@Override
public int updatePicture(Picture picture) {
return pictureDao.updatePicture(picture);
}
@Override
public void deletePicture(Long id) {
pictureDao.deletePicture(id);
}
}