UserQueryAction.java

package com.mycim.webapp.actions.setting.security.userquery;

import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.beans.PropertyUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.security.User;
import com.mycim.webapp.Constants;
import com.mycim.webapp.TemplateLocation;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.CimSetupAction;
import com.mycim.webapp.forms.security.UserInfoForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Desc: user query
 * @Author: zengf
 * @Date: 2020/9/23
 */
public class UserQueryAction extends CimSetupAction {

    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        return mapping.getInputForward();
    }

    public ActionForward export(ActionMapping mapping, HttpServletRequest request, HttpServletResponse response,
                                ActionForm form) throws Exception {

        query(mapping, form, request);
        List<User> userInfos = (List<User>) request.getAttribute("userInfos");

        int i = 1;
        List<Map> result = new ArrayList<>();
        Map temp;
        for (User user : userInfos) {
            temp = new HashMap();
            temp.put("count", i++);
            temp.put("instanceId", user.getInstanceId());
            temp.put("instanceDesc", user.getInstanceDesc());
            temp.put("userName", user.getUserName());
            temp.put("localName", user.getLocalName());
            temp.put("shiftId", user.getShiftId());
            temp.put("userStatus", user.getUserStatus());
            temp.put("telMobile", user.getTelMobile());
            temp.put("emailAddress", user.getEmailAddress());
            temp.put("telOffice", user.getTelOffice());
            temp.put("pagerNumber", user.getPagerNumber());
            temp.put("ldapId", user.getLdapId());

            result.add(temp);
        }
        Map<String, Object> titles = WebUtils.getExportTitles(request);
        String exportDateTime = DateUtils.getNowTime(DateUtils.DATE_FORMAT4NOSPLICING);
        String fileName = "userListInfo_" + exportDateTime + ".xlsx";
        WebUtils.exportExcel(fileName, titles, result, TemplateLocation.USER_LIST_INFO, response);
        return WebUtils.NULLActionForward;

    }

    public ActionForward query(ActionMapping mapping, ActionForm form, HttpServletRequest request) {

        UserInfoForm theform = (UserInfoForm) form;
        String userId = StringUtils.trimToUpperCase(theform.getInstanceId());
        String userName = StringUtils.trim(theform.getUserName());
        String shiftId = StringUtils.trim(theform.getShiftId());
        Map<String, Object> param = new HashMap<>(4);
        param.put("userId", userId);
        param.put("userName", userName);
        param.put("shiftId", shiftId);
        List<User> userInfos = securityService.getUserInfoForParam(param);

        request.setAttribute("userInfos", userInfos);
        return mapping.getInputForward();
    }

    public ActionForward jumpToUser(ActionMapping mapping, ActionForm form, HttpServletRequest request) {

        String userId = WebUtils.getParameter("userId", request);
        User user = new User(userId, getNamedSpace(ObjectList.USER_KEY, LocalContext.getFacilityRrn()),
                             ObjectList.USER_KEY);
        // According to the instance's object, retrieve the value object
        user = (User) getInstance(user);

        // Copy value object properties to form bean.
        UserInfoForm theform = (UserInfoForm) form;
        PropertyUtils.copyProperties(theform, user);
        theform.setPasswordConfirm(user.getPassword());

        if (user.getInstanceRrn() == 0) {
            theform.setTransId(Constants.CREATE_KEY);
            theform.setFirstLoginPasswordExpired("on");
            return mapping.findForward("modify");
        }

        if (StringUtils.isNotBlank(theform.getFirstLoginPasswordExpired()) &&
                StringUtils.equals(theform.getFirstLoginPasswordExpired(), "1")) {
            theform.setFirstLoginPasswordExpired("on");
        }

        theform.setTransId(Constants.MODIFY_KEY);
        //页面跳转控制
        theform.setJumpToUser("1");
        request.setAttribute("oldPassword", theform.getPassword());
        return mapping.findForward("modify");
    }

}