UserServiceImpl.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.xin.shardingspherejdbcdemo.service.impl;
  2. import com.xin.shardingspherejdbcdemo.config.util.SnowFlake;
  3. import com.xin.shardingspherejdbcdemo.entity.User;
  4. import com.xin.shardingspherejdbcdemo.entity.UserExample;
  5. import com.xin.shardingspherejdbcdemo.entity.vo.PageVo;
  6. import com.xin.shardingspherejdbcdemo.mapper.UserMapper;
  7. import com.xin.shardingspherejdbcdemo.service.UserService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import java.util.List;
  12. @Service
  13. public class UserServiceImpl implements UserService {
  14. @Autowired
  15. private UserMapper userMapper;
  16. @Override
  17. public PageVo list(int pageNum, int pageSize, String name, Integer age) {
  18. UserExample example = new UserExample();
  19. int count = userMapper.countByExample(example);
  20. List<User> list = userMapper.selectByExample(example);
  21. return PageVo.data(list, count);
  22. }
  23. private void getUser(List<User> users, List<Long> list) {
  24. int listCount = list.size();
  25. int pageSize = 1000;//一页数量
  26. int pageNumer = listCount % pageSize == 0 ? listCount / pageSize : listCount / pageSize + 1;
  27. for (int i = 0; i < pageNumer; i++) {
  28. int start = i * pageSize;
  29. int end = start + pageSize;
  30. //防止索引越界
  31. if (i == (pageNumer - 1)) {
  32. end = list.size();
  33. }
  34. //实现分页
  35. List<Long> ids = list.subList(start, end);
  36. users.addAll(userMapper.selectAll(ids));
  37. //写业务逻辑传参pageList参数
  38. System.out.println("分页list长度:" + ids.size());
  39. }
  40. }
  41. @Override
  42. @Transactional
  43. public User save(User user) {
  44. SnowFlake snowFlake = new SnowFlake(2, 3);
  45. user.setId(snowFlake.nextId());
  46. userMapper.insert(user);
  47. return user;
  48. }
  49. @Override
  50. @Transactional
  51. public String saveList(List<User> list) {
  52. int listCount = list.size();
  53. int pageSize = 10000;//一页数量
  54. int pageNumer = listCount % pageSize == 0 ? listCount / pageSize : listCount / pageSize + 1;
  55. for (int i = 0; i < pageNumer; i++) {
  56. int start = i * pageSize;
  57. int end = start + pageSize;
  58. //防止索引越界
  59. if (i == (pageNumer - 1)) {
  60. end = list.size();
  61. }
  62. //实现分页
  63. List<User> users = list.subList(start, end);
  64. userMapper.insertAll(users);
  65. //写业务逻辑传参pageList参数
  66. System.out.println("分页list长度:" + users.size());
  67. }
  68. return "保存成功";
  69. }
  70. @Override
  71. public User info(Long id) {
  72. return userMapper.selectByPrimaryKey(id);
  73. }
  74. @Override
  75. @Transactional
  76. public User update(User user) {
  77. User userRe = userMapper.selectByPrimaryKey(user.getId());
  78. UserExample example = new UserExample();
  79. example.createCriteria().andIdEqualTo(userRe.getId()).andAgeEqualTo(userRe.getAge());
  80. int i = userMapper.updateByExampleSelective(user, example);
  81. return user;
  82. }
  83. @Override
  84. @Transactional
  85. public Long delete(Long id) {
  86. userMapper.deleteByPrimaryKey(id);
  87. return id;
  88. }
  89. }