|
@@ -29,16 +29,14 @@ import java.util.Map;
|
|
|
import java.util.TreeSet;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import javax.validation.Valid;
|
|
|
-
|
|
|
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
|
-import org.maxkey.constants.ConstsOperateMessage;
|
|
|
+import org.maxkey.authn.annotation.CurrentUser;
|
|
|
import org.maxkey.constants.ConstsPasswordSetType;
|
|
|
-import org.maxkey.crypto.password.PasswordReciprocal;
|
|
|
import org.maxkey.entity.ExcelImport;
|
|
|
+import org.maxkey.entity.Message;
|
|
|
import org.maxkey.entity.UserInfo;
|
|
|
import org.maxkey.persistence.service.UserInfoService;
|
|
|
import org.maxkey.util.DateUtils;
|
|
@@ -46,27 +44,22 @@ import org.maxkey.util.ExcelUtils;
|
|
|
import org.maxkey.util.JsonUtils;
|
|
|
import org.maxkey.util.StringUtils;
|
|
|
import org.maxkey.web.WebContext;
|
|
|
-import org.maxkey.web.message.Message;
|
|
|
-import org.maxkey.web.message.MessageScope;
|
|
|
-import org.maxkey.web.message.MessageType;
|
|
|
-import org.maxkey.web.message.OperateType;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.beans.propertyeditors.CustomDateEditor;
|
|
|
+import org.springframework.http.MediaType;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-import org.springframework.validation.BindingResult;
|
|
|
import org.springframework.web.bind.WebDataBinder;
|
|
|
import org.springframework.web.bind.annotation.InitBinder;
|
|
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
-import org.springframework.web.servlet.ModelAndView;
|
|
|
-
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
|
/**
|
|
@@ -74,174 +67,92 @@ import com.google.common.collect.Lists;
|
|
|
*
|
|
|
*/
|
|
|
@Controller
|
|
|
-@RequestMapping(value = { "/userinfo" })
|
|
|
+@RequestMapping(value = { "/users" })
|
|
|
public class UserInfoController {
|
|
|
final static Logger _logger = LoggerFactory.getLogger(UserInfoController.class);
|
|
|
|
|
|
@Autowired
|
|
|
- @Qualifier("userInfoService")
|
|
|
private UserInfoService userInfoService;
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 查询用户列表
|
|
|
- * @param user
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value={"/grid"})
|
|
|
+ @RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
|
|
@ResponseBody
|
|
|
- public JpaPageResults<UserInfo> forwardUsersList(@ModelAttribute("userInfo") UserInfo userInfo){
|
|
|
- userInfo.setInstId(WebContext.getUserInfo().getInstId());
|
|
|
- return userInfoService.queryPageResults(userInfo);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value={"/forwardAdd"})
|
|
|
- public ModelAndView forwardSelectUserType(){
|
|
|
- ModelAndView modelAndView=new ModelAndView("/userinfo/userAdd");
|
|
|
- //List<UserType> userTypeList=userTypeService.query(null);
|
|
|
- //modelAndView.addObject("userTypeList", userTypeList);
|
|
|
- return modelAndView;
|
|
|
+ public ResponseEntity<?> fetch(@ModelAttribute UserInfo userInfo,@CurrentUser UserInfo currentUser) {
|
|
|
+ _logger.debug(""+userInfo);
|
|
|
+ userInfo.setInstId(currentUser.getInstId());
|
|
|
+ return new Message<JpaPageResults<UserInfo>>(
|
|
|
+ userInfoService.queryPageResults(userInfo)).buildResponse();
|
|
|
}
|
|
|
-
|
|
|
- @RequestMapping(value={"/list"})
|
|
|
- public ModelAndView usersList(){
|
|
|
- return new ModelAndView("/userinfo/usersList");
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value={"/select"})
|
|
|
- public ModelAndView usersSelect(){
|
|
|
- ModelAndView modelAndView= new ModelAndView("/userinfo/userinfoSelect");
|
|
|
- return modelAndView;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 新增
|
|
|
- * @param userInfo
|
|
|
- * @param result
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value="/add")
|
|
|
- public ModelAndView addUsers(@Valid @ModelAttribute("userInfo")UserInfo userInfo,BindingResult result) {
|
|
|
- _logger.debug(userInfo.toString());
|
|
|
- if(result.hasErrors()){
|
|
|
- // new Message(WebContext.getValidErrorText(),result);
|
|
|
- }
|
|
|
-
|
|
|
- userInfo.setId(WebContext.genId());
|
|
|
- userInfo.setInstId(WebContext.getUserInfo().getInstId());
|
|
|
- //userInfo.setNameZHShortSpell(StringUtils.hanYu2Pinyin(userInfo.getDisplayName(), true));
|
|
|
- //userInfo.setNameZHSpell(StringUtils.hanYu2Pinyin(userInfo.getDisplayName(), false));
|
|
|
- if( userInfoService.insert(userInfo)) {
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),userInfo,MessageType.success,OperateType.add,MessageScope.DB);
|
|
|
+
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
|
|
+ public ResponseEntity<?> query(@ModelAttribute UserInfo userInfo,@CurrentUser UserInfo currentUser) {
|
|
|
+ _logger.debug("-query :" + userInfo);
|
|
|
+ if (userInfoService.load(userInfo)!=null) {
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
+ } else {
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
}
|
|
|
-
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR),MessageType.error);
|
|
|
- return WebContext.forward("forwardUpdate/"+userInfo.getId());
|
|
|
}
|
|
|
|
|
|
- @RequestMapping(value={"/forwardUpdate/{id}"})
|
|
|
- public ModelAndView forwardUpdateUsers(@PathVariable("id")String id){
|
|
|
- ModelAndView modelAndView=new ModelAndView("/userinfo/userUpdate");
|
|
|
+ @RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
|
|
+ public ResponseEntity<?> get(@PathVariable("id") String id) {
|
|
|
UserInfo userInfo=userInfoService.get(id);
|
|
|
if(userInfo.getPicture()!=null){
|
|
|
userInfo.transPictureBase64();
|
|
|
}
|
|
|
-
|
|
|
- modelAndView.addObject("model", userInfo);
|
|
|
- return modelAndView;
|
|
|
+ return new Message<UserInfo>(userInfo).buildResponse();
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询用户,根据id
|
|
|
- * @param id
|
|
|
- * @return
|
|
|
- */
|
|
|
+
|
|
|
@ResponseBody
|
|
|
- @RequestMapping(value="/getUsers/{id}")
|
|
|
- public UserInfo getUserInfo(@PathVariable("id")String id) {
|
|
|
- _logger.debug(id);
|
|
|
- UserInfo userInfo = userInfoService.get(id);
|
|
|
- if(userInfo!=null&&userInfo.getDecipherable()!=null){
|
|
|
- try{
|
|
|
- userInfo.setPassword(PasswordReciprocal.getInstance().decoder(userInfo.getDecipherable()));
|
|
|
- }catch (Exception e) {
|
|
|
- }
|
|
|
- userInfo.setDecipherable(userInfo.getPassword());
|
|
|
+ @RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
|
|
+ public ResponseEntity<?> insert(@RequestBody UserInfo userInfo,@CurrentUser UserInfo currentUser) {
|
|
|
+ _logger.debug("-Add :" + userInfo);
|
|
|
+ userInfo.setId(WebContext.genId());
|
|
|
+ userInfo.setInstId(currentUser.getInstId());
|
|
|
+ if (userInfoService.insert(userInfo)) {
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
+ } else {
|
|
|
+ return new Message<UserInfo>(Message.FAIL).buildResponse();
|
|
|
}
|
|
|
- return userInfo;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- @ResponseBody
|
|
|
- @RequestMapping(value = "/randomPassword")
|
|
|
- public String randomPassword() {
|
|
|
- return userInfoService.randomPassword();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 修改用户
|
|
|
- * @param userInfo
|
|
|
- * @param result
|
|
|
- * @return
|
|
|
- */
|
|
|
-
|
|
|
- @RequestMapping(value="/update")
|
|
|
- public ModelAndView updateUsers(@Valid @ModelAttribute("userInfo")UserInfo userInfo,BindingResult result) {
|
|
|
- _logger.debug(userInfo.toString());
|
|
|
- if(result.hasErrors()){
|
|
|
- // new Message(WebContext.getValidErrorText(),result);
|
|
|
- }
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
|
|
+ public ResponseEntity<?> update(@RequestBody UserInfo userInfo,@CurrentUser UserInfo currentUser) {
|
|
|
+ _logger.debug("-update :" + userInfo);
|
|
|
_logger.info(userInfo.getExtraAttributeName());
|
|
|
_logger.info(userInfo.getExtraAttributeValue());
|
|
|
//userInfo.setNameZHShortSpell(StringUtils.hanYu2Pinyin(userInfo.getDisplayName(), true));
|
|
|
//userInfo.setNameZHSpell(StringUtils.hanYu2Pinyin(userInfo.getDisplayName(), false));
|
|
|
convertExtraAttribute(userInfo) ;
|
|
|
_logger.info(userInfo.getExtraAttribute());
|
|
|
- userInfo.setInstId(WebContext.getUserInfo().getInstId());
|
|
|
- if(userInfoService.update(userInfo)) {
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),userInfo,MessageType.success,OperateType.add,MessageScope.DB);
|
|
|
-
|
|
|
- }
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
|
|
|
- return WebContext.forward("forwardUpdate/"+userInfo.getId());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 批量删除用户
|
|
|
- * @param id
|
|
|
- * @return
|
|
|
- */
|
|
|
- @ResponseBody
|
|
|
- @RequestMapping(value="/batchDelete")
|
|
|
- public Message batchDeleteUsers(@RequestParam("id")String id) {
|
|
|
- _logger.debug(id);
|
|
|
- if(userInfoService.deleteBatch(StringUtils.string2List(id, ","))) {
|
|
|
- return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
|
|
|
-
|
|
|
+ userInfo.setInstId(currentUser.getInstId());
|
|
|
+ if (userInfoService.update(userInfo)) {
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
} else {
|
|
|
- return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_ERROR),MessageType.error);
|
|
|
+ return new Message<UserInfo>(Message.FAIL).buildResponse();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 根据用户id删除用户
|
|
|
- *
|
|
|
- * @param id
|
|
|
- * @return
|
|
|
- */
|
|
|
@ResponseBody
|
|
|
- @RequestMapping(value="/delete")
|
|
|
- public Message deleteUsersById(@RequestParam("id") String id) {
|
|
|
- _logger.debug(id);
|
|
|
- if(userInfoService.deleteBatch(id)) {
|
|
|
- //provisioningPrepare.prepare(userInfo, OPERATEACTION.DELETE_ACTION);
|
|
|
- return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
|
|
|
+ @RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
|
|
+ public ResponseEntity<?> delete(@RequestParam("ids") String ids,@CurrentUser UserInfo currentUser) {
|
|
|
+ _logger.debug("-delete ids : {} " , ids);
|
|
|
+ if (userInfoService.deleteBatch(ids)) {
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
} else {
|
|
|
- return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_ERROR),MessageType.error);
|
|
|
+ return new Message<UserInfo>(Message.FAIL).buildResponse();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping(value = "/randomPassword")
|
|
|
+ public String randomPassword() {
|
|
|
+ return userInfoService.randomPassword();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
protected void convertExtraAttribute(UserInfo userInfo) {
|
|
|
if(userInfo.getExtraAttributeValue()!=null){
|
|
@@ -256,39 +167,22 @@ public class UserInfoController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @RequestMapping(value={"/forwardChangePassword/{id}"})
|
|
|
- public ModelAndView forwardChangePassword(@PathVariable("id")String id){
|
|
|
- ModelAndView modelAndView=new ModelAndView("/userinfo/changePassword");
|
|
|
- UserInfo userInfo=userInfoService.get(id);
|
|
|
-
|
|
|
- modelAndView.addObject("model", userInfo);
|
|
|
- return modelAndView;
|
|
|
- }
|
|
|
-
|
|
|
- @RequestMapping(value={"/forwardChangeUserinfoStatus/{id}"})
|
|
|
- public ModelAndView forwardChangeUserinfoStatus(@PathVariable("id")String id){
|
|
|
- ModelAndView modelAndView=new ModelAndView("/userinfo/changeUserinfoStatus");
|
|
|
- UserInfo userInfo=userInfoService.get(id);
|
|
|
-
|
|
|
- modelAndView.addObject("model", userInfo);
|
|
|
- return modelAndView;
|
|
|
- }
|
|
|
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value="/changePassword")
|
|
|
- public Message changePassword( @ModelAttribute("userInfo")UserInfo userInfo) {
|
|
|
+ public ResponseEntity<?> changePassword( @ModelAttribute("userInfo")UserInfo userInfo) {
|
|
|
_logger.debug(userInfo.getId());
|
|
|
userInfo.setPasswordSetType(ConstsPasswordSetType.PASSWORD_NORMAL);
|
|
|
if(userInfoService.changePassword(userInfo,true)) {
|
|
|
- return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
|
|
|
} else {
|
|
|
- return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
|
|
|
+ return new Message<UserInfo>(Message.FAIL).buildResponse();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/import")
|
|
|
- public ModelAndView importing(@ModelAttribute("excelImportFile")ExcelImport excelImportFile) {
|
|
|
+ public ResponseEntity<?> importingUsers(@ModelAttribute("excelImportFile")ExcelImport excelImportFile) {
|
|
|
if (excelImportFile.isExcelNotEmpty() ) {
|
|
|
try {
|
|
|
List<UserInfo> userInfoList = Lists.newArrayList();
|
|
@@ -314,9 +208,7 @@ public class UserInfoController {
|
|
|
if(!CollectionUtils.isEmpty(userInfoList)){
|
|
|
userInfoList = userInfoList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getUsername()))), ArrayList::new));
|
|
|
if( userInfoService.insertBatch(userInfoList)) {
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS), null, MessageType.success, OperateType.add, MessageScope.DB);
|
|
|
- }else {
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR), MessageType.error);
|
|
|
+ return new Message<UserInfo>(Message.SUCCESS).buildResponse();
|
|
|
}
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
@@ -324,11 +216,9 @@ public class UserInfoController {
|
|
|
}finally {
|
|
|
excelImportFile.closeWorkbook();
|
|
|
}
|
|
|
- }else {
|
|
|
- new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR), MessageType.error);
|
|
|
}
|
|
|
+ return new Message<UserInfo>(Message.FAIL).buildResponse();
|
|
|
|
|
|
- return new ModelAndView("/userinfo/usersImport");
|
|
|
}
|
|
|
|
|
|
@InitBinder
|