Files
No1WMS/src/main/java/com/no1/wms/account/AccountController.java
2024-01-15 15:39:00 +09:00

143 lines
4.5 KiB
Java

package com.no1.wms.account;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.stream.JsonReader;
import com.no1.wms.authority.AuthorityDto;
import com.no1.wms.authority.AuthorityService;
import com.no1.wms.utils.ConstantValues;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.io.StringReader;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@Controller
@RequestMapping("/account")
public class AccountController {
@Autowired
AccountService accountService;
@Autowired
AuthorityService authorityService;
@GetMapping("/list")
public ModelAndView list(ModelAndView mav, @RequestParam(defaultValue = "") String search, @RequestParam(defaultValue = "0") int start){
List<AccountDto> list = accountService.selectAll(search, start, ConstantValues.PER_PAGE);
mav.addObject("list", list);
mav.setViewName("account/list");
return mav;
}
@PostMapping("/create")
public ModelAndView create(ModelAndView mav){
mav.setViewName("account/create");
return mav;
}
@PostMapping("/create_process")
@ResponseBody
public String createProcess(AccountDto dto, Gson gson){
String uuid = UUID.randomUUID().toString();
AuthorityDto authorityDto = new AuthorityDto();
authorityDto.setId(dto.getGroupAuthorityId());
authorityDto = authorityService.selectById(authorityDto);
authorityDto.setId(uuid);
authorityDto.setIsGroupAuthority(false);
authorityDto.setName(dto.getEmployeeNumber());
accountService.insertToAuthority(authorityDto);
dto.setPersonalAuthorityId(uuid);
accountService.insert(dto);
return gson.toJson("s");
}
@PostMapping("/read")
public ModelAndView read(AccountDto dto, ModelAndView mav){
dto = accountService.selectById(dto);
mav.addObject("dto", dto);
mav.setViewName("/account/read");
return mav;
}
@PostMapping("/update")
public ModelAndView update(AccountDto dto, ModelAndView mav){
dto = accountService.selectById(dto);
mav.addObject("dto", dto);
mav.setViewName("/account/update");
return mav;
}
@PostMapping("/update_process")
@ResponseBody
public String updateProcess(@RequestBody Map<String, Object> data, Gson gson){
AuthorityDto personalAuthorityDto= gson.fromJson(data.get("personalAuthorityDto").toString(), AuthorityDto.class);
AccountDto accountDto = gson.fromJson(data.get("account").toString(), AccountDto.class);
System.out.println(accountDto);
System.out.println(personalAuthorityDto);
accountService.update(accountDto);
authorityService.update(personalAuthorityDto);
return gson.toJson("s");
}
@PostMapping("/reset_password")
@ResponseBody
public String resetPassword(AccountDto dto, Gson gson){
accountService.resetPassword(dto);
return gson.toJson("s");
}
@PostMapping("/delete_process")
@ResponseBody
public String deleteProcess(AccountDto dto, Gson gson){
accountService.delete(dto);
return gson.toJson("s");
}
@PostMapping("/show_modal")
public ModelAndView showModal(ModelAndView mav, @RequestParam(defaultValue = "") String search,
@RequestParam(defaultValue = "0") int start, @RequestParam String name){
//db에서 데이터 가져오는거 필요
List list = null;
if(name.equals("auth")){
list = authorityService.selectAll(search, start, ConstantValues.PER_PAGE);
}else if(name.equals("dept")){
list = accountService.selectDeptAll(search, start, ConstantValues.PER_PAGE);
}else if(name.equals("pos")){
list = accountService.selectPosAll(search, start, ConstantValues.PER_PAGE);
}
//
mav.addObject("list", list);
mav.setViewName(name);
return mav;
}
@PostMapping("/show_personal_auth_modal")
public ModelAndView showPersonalAuthModal(ModelAndView mav, AuthorityDto dto){
//db에서 데이터 가져오는거 필요
dto = authorityService.selectById(dto);
//
mav.addObject("dto", dto);
mav.setViewName("personal_auth");
return mav;
}
}