summaryrefslogtreecommitdiffstats
path: root/warehouse/src/main/java/app/market/web/controller/account/AccountController.java
diff options
context:
space:
mode:
Diffstat (limited to 'warehouse/src/main/java/app/market/web/controller/account/AccountController.java')
-rw-r--r--warehouse/src/main/java/app/market/web/controller/account/AccountController.java336
1 files changed, 336 insertions, 0 deletions
diff --git a/warehouse/src/main/java/app/market/web/controller/account/AccountController.java b/warehouse/src/main/java/app/market/web/controller/account/AccountController.java
new file mode 100644
index 0000000..20690fa
--- /dev/null
+++ b/warehouse/src/main/java/app/market/web/controller/account/AccountController.java
@@ -0,0 +1,336 @@
+/*
+ * Copyright (c) 2019 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package app.market.web.controller.account;
+
+import java.security.NoSuchAlgorithmException;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.servlet.http.HttpSession;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.CollectionUtils;
+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 app.market.LogUtil;
+import app.market.utils.Md5Util;
+import app.market.utils.constants.Constants;
+import app.market.utils.datetime.DateTimeUtils;
+import app.market.utils.json.JsonMapperUtils;
+import app.market.utils.json.JsonResult;
+import app.market.utils.property.KeysConstants;
+import app.market.utils.property.MessageUtil;
+import app.market.utils.webservice.ApiParam;
+import app.market.web.controller.BreadcrumbMapping;
+import app.market.web.controller.PageMapping;
+import app.market.web.controller.SpringBaseController;
+import app.market.web.form.account.AccountForm;
+import app.market.web.services.account.AccountService;
+
+/**
+ *
+ * @author Toyota
+ *
+ * User Manager
+ *
+ */
+@Controller
+@RequestMapping(value = "account")
+public class AccountController extends SpringBaseController {
+ private static Logger logger = LoggerFactory.getLogger(AccountController.class);
+
+ @Autowired
+ private AccountService accountService;
+
+ /**
+ * User Manager Init
+ *
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value = "")
+ public ModelAndView init(HttpSession session) throws Exception {
+ LinkedHashMap<String, Object> model = new LinkedHashMap<>();
+ // Unauthorized Exception
+ JsonResult jr = accountService.validateAuthentication1(session);
+ if (jr.getStatus() != Constants.STATUS_SUCCESS) {
+ model.put(MODEL_ERRORS, jr.getData().toString());
+ return new ModelAndView(PageMapping.ACCOUNT_LIST.toString(), model);
+ }
+ try {
+ accountService.getAuthorityList(model, true, session);
+
+ } catch (Exception e) {
+ LogUtil.printCatchLog(logger, e);
+ e.printStackTrace();
+ }
+ return new ModelAndView(PageMapping.ACCOUNT_LIST.toString(), model);
+ }
+
+ /**
+ * User Manager modify
+ *
+ * @param userId
+ * @return
+ * @throws Exception
+ *
+ */
+ @RequestMapping(value = "modify")
+ @ResponseBody
+ public ModelAndView modify(@RequestParam(value = "userId", required = false) String userId,
+ @RequestParam(value = "isDetail", required = false) boolean isDetail, HttpSession session)
+ throws Exception {
+ logger.debug("Modify User, start search--Class: " + this.getClass().getName() + "--method: "
+ + Thread.currentThread().getStackTrace()[1].getMethodName());
+ Map<String, Object> modal = new LinkedHashMap<String, Object>();
+ // Unauthorized Exception
+ JsonResult jr = accountService.validateAuthentication1(session);
+ if (jr.getStatus() != Constants.STATUS_SUCCESS) {
+ modal.put(MODEL_ERRORS, jr.getData().toString());
+ return new ModelAndView(PageMapping.ACCOUNT_LIST.toString(), modal);
+ }
+
+ AccountForm acForm;
+ String breadcrumb;
+ String viewName;
+ try {
+ if (StringUtils.isNotEmpty(userId)) {
+ // Search AccountForm By UserId
+ acForm = accountService.searchFormById(userId, session);
+ String createDate = DateTimeUtils.getDate(DateTimeUtils.DATE_FORMAT_YYYYMMDDHHMMSS_DASH,
+ acForm.getCreateDate());
+ String updateDate = DateTimeUtils.getDate(DateTimeUtils.DATE_FORMAT_YYYYMMDDHHMMSS_DASH,
+ acForm.getUpdateDate());
+ modal.put("updateDate", updateDate);
+ modal.put("createDate", createDate);
+
+ if (isDetail) {
+ breadcrumb = BreadcrumbMapping.USER_DETAIL;
+ } else {
+ breadcrumb = BreadcrumbMapping.USER_MODIFY;
+ }
+ } else {
+ acForm = new AccountForm();
+ breadcrumb = BreadcrumbMapping.USER_INSERT;
+ }
+ // Get Account List
+ acForm.getBreadcrumb().addAll(BreadcrumbMapping.getBreadcrumb(breadcrumb).getBreadcrumb());
+ } catch (Exception e) {
+ LogUtil.printCatchLog(logger, e);
+ modal.put(MODEL_ERRORS, e.getMessage());
+ return new ModelAndView(PageMapping.ACCOUNT_LIST.toString(), modal);
+ }
+ // Get Account List
+ accountService.getAuthorityList(modal, false, session);
+ modal.put("appInfo", acForm);
+ if (isDetail) {
+ viewName = PageMapping.ACCOUNT_DETAIL.toString();
+ } else {
+ viewName = PageMapping.ACCOUNT_MODIFY.toString();
+ }
+
+ logger.debug("Modify User, stop search");
+ return new ModelAndView(viewName, modal);
+ }
+
+ /**
+ * User Manager Search
+ *
+ * @param draw
+ * @param length
+ * @param start
+ * @param sort
+ * @param mailAddress
+ * @param userName
+ * @param order
+ * @return
+ * @throws ParseException
+ */
+ @RequestMapping(value = "search")
+ @ResponseBody
+ public String search(@RequestParam(value = "draw") String draw, @RequestParam(value = "length") int length,
+ @RequestParam(value = "start") int start, @RequestParam(value = "orderColumn") String sort,
+ @RequestParam(value = "keyWord") String keyWord, @RequestParam(value = "orderDir") String order,
+ @RequestParam(value = "auId") String auId, @RequestParam(value = "createDate") String createDate,
+ HttpSession session) throws ParseException {
+ logger.debug("Start search list--Class: " + this.getClass().getName() + "--method: "
+ + Thread.currentThread().getStackTrace()[1].getMethodName() + keyWord);
+ Map<String, Object> modal = new LinkedHashMap<String, Object>();
+ // Unauthorized exception
+ JsonResult jr = accountService.validateAuthentication1(session);
+ if (jr.getStatus() != Constants.STATUS_SUCCESS) {
+ return writeDataTableMap(jr, draw);
+ }
+ String ret = "";
+ try {
+ AccountForm form = new AccountForm();
+ // Assign value To Form
+ form.setDraw(draw);
+ form.setKeyWord(keyWord);
+ form.setAuId(auId);
+ form.setOffset(start);
+ form.setLimit(length);
+ sort = ApiParam.UserQueryParamWeb.getFieldNameById(Integer.valueOf(sort));
+ form.setSort(sort);
+ form.setOrder(order);
+ form.setIsDel("0");
+ // Page Search
+ ret = accountService.selectPaginationData(form, session);
+
+ // Get Account List
+ accountService.getAuthorityList(modal, true, session);
+ } catch (Exception e) {
+ LogUtil.printCatchLog(logger, e);
+ e.printStackTrace();
+ }
+ logger.debug("Stop search list");
+ return ret;
+ }
+
+ /**
+ * User Manager update and save
+ *
+ * @param formString
+ * @return
+ */
+ @RequestMapping(value = "update")
+ @ResponseBody
+ public String update(@RequestParam(value = "form") String formString, HttpSession session)
+ throws NoSuchAlgorithmException {
+ logger.debug("Start save user--Class: " + this.getClass().getName() + "--method: "
+ + Thread.currentThread().getStackTrace()[1].getMethodName());
+ String ret = "";
+ List<String> errorList = new ArrayList<String>();
+
+ // Unauthorized Exception
+ JsonResult jr = accountService.validateAuthentication1(session);
+ if (jr.getStatus() != Constants.STATUS_SUCCESS) {
+ return writeErrorList(jr, errorList);
+ }
+
+ AccountForm form = JsonMapperUtils.readValue(formString, AccountForm.class);
+ checkUpdateInfo(form, errorList);
+
+ form.setIsDel("0");
+ if (CollectionUtils.isEmpty(errorList)) {
+ // Account Save
+ if (StringUtils.isEmpty(form.getUserId())) {
+ // MD5 encrypt
+ String userPwMd = Md5Util.md5(form.getUserPw());
+ form.setUserPw(userPwMd);
+ }
+ ret = accountService.save(form, session);
+ } else {
+ ret = JsonMapperUtils.getJsonString(Constants.STATUS_ERROR, null, errorList);
+ }
+ logger.debug("Stop save user");
+ return ret;
+ }
+
+ /**
+ * User Manager Delete
+ *
+ */
+ @RequestMapping(value = "delete")
+ @ResponseBody
+ public String delete(@RequestParam(value = "id") String id, HttpSession session) {
+ logger.debug("Delete user start, id=" + id);
+ // Unauthorized Exception
+ JsonResult jr = accountService.validateAuthentication1(session);
+ if (jr.getStatus() != Constants.STATUS_SUCCESS) {
+ return writeErrorString(jr);
+ }
+ // Account Delete By UserId
+ String ret = accountService.delete(id, session);
+ logger.debug("Delete user stop");
+ return ret;
+ }
+
+ /**
+ * check userinfo
+ * @param errorList
+ *
+ */
+ private List<String> checkUpdateInfo(AccountForm form, List<String> errorList) {
+
+
+ /**
+ * @ can only have numbers、letters、underscores、dots、minus numbers. There is only
+ * one between @ and dots numbers、letters、underscores、dots、minus numbers,And two
+ * points can't be next to. The content after dots can only is
+ * letters、numbers,the length is less than 1 less than 7.
+ */
+ String szReg = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$";
+ Pattern pattern = Pattern.compile(szReg);
+ Matcher matcher = pattern.matcher(form.getMailAddress());
+
+ // Input Check
+ if (StringUtils.isEmpty(form.getUserName().replace(" ", ""))) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_USERNAME_IS_NOT_EMPTY));
+ }
+ if (form.getUserName().length() > ApiParam.API_PARAM_USERNAME_LENGTH) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_USERNAME_MAX_ERROR));
+ }
+ // save Need password verification,update not Need password verification
+ if (StringUtils.isEmpty(form.getUserId())) {
+ if (form.getUserPw().indexOf(" ") != -1) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_PASSWORD_IS_NOT_SPACES));
+ }
+ if (StringUtils.isEmpty(form.getUserPw())) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_PASSWORD_IS_NOT_EMPTY));
+ }
+ if (form.getUserPw().length() > 0 && form.getUserPw().length() < ApiParam.API_PARAM_USERPASSMIN_LENGTH) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_PASSWORD_ERROR));
+ }
+ if (form.getUserPw().length() > ApiParam.API_PARAM_USERPASSMAX_LENGTH) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_PASSWORD_MAX_ERROR));
+ }
+ if (StringUtils.isEmpty(form.getReuserPw())) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_REPASSWORD_IS_NOT_EMPTY));
+ }
+ if (form.getReuserPw().length() > 0 && !StringUtils.equals(form.getUserPw(), form.getReuserPw())) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_NEW_REPASSWORD_IS_NOT_EQUALS));
+ }
+ }
+
+ if (StringUtils.isEmpty(form.getMailAddress())) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_MAILADDRESS_IS_NOT_EMPTY));
+ }
+ if (form.getMailAddress().length() > ApiParam.API_PARAM_MAILADDRESS_LENGTH) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_MAILADDRESS_MAX_ERROR));
+ }
+ if (!matcher.matches() && form.getMailAddress().length() > 0) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.USER_MAILADDRESS_IS_NOT_EQUALS));
+ }
+ if (StringUtils.isEmpty(form.getAuId())) {
+ errorList.add(MessageUtil.getPropertites(KeysConstants.AUTHORITY_ID_IS_NOT_EMPTY));
+ }
+ return errorList;
+ }
+}