package tech.powerjob.server.web.controller; import tech.powerjob.common.response.ResultDTO; import org.springframework.beans.BeanUtils; import tech.powerjob.server.persistence.remote.model.UserInfoDO; import tech.powerjob.server.persistence.remote.repository.UserInfoRepository; import tech.powerjob.server.core.service.UserService; import tech.powerjob.server.web.request.ModifyUserInfoRequest; import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import org.springframework.util.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * 用户信息控制层 * * @author tjq * @since 2020/4/12 */ @RestController @RequestMapping("/user") public class UserInfoController { @Resource private UserService userService; @Resource private UserInfoRepository userInfoRepository; @PostMapping("save") public ResultDTO save(@RequestBody ModifyUserInfoRequest request) { UserInfoDO userInfoDO = new UserInfoDO(); BeanUtils.copyProperties(request, userInfoDO); userService.save(userInfoDO); return ResultDTO.success(null); } @GetMapping("list") public ResultDTO> list(@RequestParam(required = false) String name) { List result; if (StringUtils.isEmpty(name)) { result = userInfoRepository.findAll(); }else { result = userInfoRepository.findByUsernameLike("%" + name + "%"); } return ResultDTO.success(convert(result)); } private static List convert(List data) { if (CollectionUtils.isEmpty(data)) { return Lists.newLinkedList(); } return data.stream().map(x -> new UserItemVO(x.getId(), x.getUsername())).collect(Collectors.toList()); } @Getter @NoArgsConstructor @AllArgsConstructor public static final class UserItemVO { private Long id; private String username; } }