Java tutorial
/* * Copyright 2013-2015 cetvision.com. All rights reserved. * Support: http://www.cetvision.com * License: http://www.cetvision.com/license */ package com.dp2345.controller.mall.member; import java.text.ParseException; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.dp2345.CommonAttributes; import com.dp2345.Setting; import com.dp2345.controller.mall.BaseController; import com.dp2345.entity.Area; import com.dp2345.entity.Member; import com.dp2345.entity.MemberAttribute; import com.dp2345.entity.Member.Gender; import com.dp2345.entity.MemberAttribute.Type; import com.dp2345.service.AreaService; import com.dp2345.service.MemberAttributeService; import com.dp2345.service.MemberService; import com.dp2345.util.SettingUtils; /** * Controller - - * * @author CETVISION CORP * @version 2.0.3 */ @Controller("shopMemberProfileController") @RequestMapping("/member/profile") public class ProfileController extends BaseController { @Resource(name = "memberServiceImpl") private MemberService memberService; @Resource(name = "memberAttributeServiceImpl") private MemberAttributeService memberAttributeService; @Resource(name = "areaServiceImpl") private AreaService areaService; /** * E-mail? */ @RequestMapping(value = "/check_email", method = RequestMethod.GET) public @ResponseBody boolean checkEmail(String email) { if (StringUtils.isEmpty(email)) { return false; } Member member = memberService.getCurrent(); if (memberService.emailUnique(member.getEmail(), email)) { return true; } else { return false; } } /** * */ @RequestMapping(value = "/edit", method = RequestMethod.GET) public String edit(ModelMap model) { model.addAttribute("genders", Gender.values()); model.addAttribute("memberAttributes", memberAttributeService.findList()); return "shop/member/profile/edit"; } /** * */ @RequestMapping(value = "/update", method = RequestMethod.POST) public String update(String email, HttpServletRequest request, RedirectAttributes redirectAttributes) { if (!isValid(Member.class, "email", email)) { return ERROR_VIEW; } Setting setting = SettingUtils.get(); Member member = memberService.getCurrent(); if (!setting.getIsDuplicateEmail() && !memberService.emailUnique(member.getEmail(), email)) { return ERROR_VIEW; } member.setEmail(email); List<MemberAttribute> memberAttributes = memberAttributeService.findList(); for (MemberAttribute memberAttribute : memberAttributes) { String parameter = request.getParameter("memberAttribute_" + memberAttribute.getId()); if (memberAttribute.getType() == Type.name || memberAttribute.getType() == Type.address || memberAttribute.getType() == Type.zipCode || memberAttribute.getType() == Type.phone || memberAttribute.getType() == Type.mobile || memberAttribute.getType() == Type.text || memberAttribute.getType() == Type.select) { if (memberAttribute.getIsRequired() && StringUtils.isEmpty(parameter)) { return ERROR_VIEW; } member.setAttributeValue(memberAttribute, parameter); } else if (memberAttribute.getType() == Type.gender) { Gender gender = StringUtils.isNotEmpty(parameter) ? Gender.valueOf(parameter) : null; if (memberAttribute.getIsRequired() && gender == null) { return ERROR_VIEW; } member.setGender(gender); } else if (memberAttribute.getType() == Type.birth) { try { Date birth = StringUtils.isNotEmpty(parameter) ? DateUtils.parseDate(parameter, CommonAttributes.DATE_PATTERNS) : null; if (memberAttribute.getIsRequired() && birth == null) { return ERROR_VIEW; } member.setBirth(birth); } catch (ParseException e) { return ERROR_VIEW; } } else if (memberAttribute.getType() == Type.area) { Area area = StringUtils.isNotEmpty(parameter) ? areaService.find(Long.valueOf(parameter)) : null; if (area != null) { member.setArea(area); } else if (memberAttribute.getIsRequired()) { return ERROR_VIEW; } } else if (memberAttribute.getType() == Type.checkbox) { String[] parameterValues = request.getParameterValues("memberAttribute_" + memberAttribute.getId()); List<String> options = parameterValues != null ? Arrays.asList(parameterValues) : null; if (memberAttribute.getIsRequired() && (options == null || options.isEmpty())) { return ERROR_VIEW; } member.setAttributeValue(memberAttribute, options); } } memberService.update(member); addFlashMessage(redirectAttributes, SUCCESS_MESSAGE); return "redirect:edit.jhtml"; } }