Browse Source

增加账户中心、b2b同步用户企业信息接口

wangyc 8 years ago
parent
commit
ed53510c6a

+ 7 - 0
src/main/java/com/uas/platform/b2c/common/account/dao/EnterpriseDao.java

@@ -19,4 +19,11 @@ public interface EnterpriseDao extends JpaSpecificationExecutor<Enterprise>, Jpa
 	
 	@Query(value="select e.uu from Enterprise e where e.enName like %?1%")
 	public List<Long> findEnuuByName(String name);
+
+	/**
+	 * 通过营业执照号码获取企业信息
+	 * @param bussinessCode
+	 * @return
+	 */
+	public Enterprise findByEnBussinessCode(String bussinessCode);
 }

+ 279 - 0
src/main/java/com/uas/platform/b2c/common/account/model/ChangeAdminDetail.java

@@ -0,0 +1,279 @@
+package com.uas.platform.b2c.common.account.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 更换管理员申请的详细信息
+ * 
+ * @author hejq
+ * @time 创建时间:2016年10月9日
+ */
+public class ChangeAdminDetail implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+	private String enName;
+	private Long enUu;
+	private String businessCodeImage;
+	private String businessCode;
+	private String adminName;
+	private String adminTel;
+	private String adminEmail;
+	private Long adminuu;
+	private String b2bUrl;
+	private Integer auditStatus;
+	private String auditResult;
+	private Short auditSendStatus;
+	private Integer dbStatus;
+	private Integer b2bStatus;
+	private Date enDate;
+	private String adminPassword;
+	private String appId;
+	private String method;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * 企业名称
+	 */
+	public String getEnName() {
+		return enName;
+	}
+
+	public void setEnName(String enName) {
+		this.enName = enName;
+	}
+
+	/**
+	 * 企业UU
+	 * 
+	 * @return
+	 */
+	public Long getEnUu() {
+		return enUu;
+	}
+
+	public void setEnUu(Long enUu) {
+		this.enUu = enUu;
+	}
+
+	/**
+	 * 执照存储路径
+	 * 
+	 * @return
+	 */
+	public String getBusinessCodeImage() {
+		return businessCodeImage;
+	}
+
+	public void setBusinessCodeImage(String businessCodeImage) {
+		this.businessCodeImage = businessCodeImage;
+	}
+
+	/**
+	 * 企业执照号
+	 * 
+	 * @return
+	 */
+	public String getBusinessCode() {
+		return businessCode;
+	}
+
+	public void setBusinessCode(String businessCode) {
+		this.businessCode = businessCode;
+	}
+
+	/**
+	 * 管理员姓名
+	 * 
+	 * @return
+	 */
+	public String getAdminName() {
+		return adminName;
+	}
+
+	public void setAdminName(String adminName) {
+		this.adminName = adminName;
+	}
+
+	/**
+	 * 管理员手机
+	 * 
+	 * @return
+	 */
+	public String getAdminTel() {
+		return adminTel;
+	}
+
+	public void setAdminTel(String adminTel) {
+		this.adminTel = adminTel;
+	}
+
+	/**
+	 * 管理员邮箱
+	 * 
+	 * @return
+	 */
+	public String getAdminEmail() {
+		return adminEmail;
+	}
+
+	public void setAdminEmail(String adminEmail) {
+		this.adminEmail = adminEmail;
+	}
+
+	/**
+	 * 管理员uu
+	 * 
+	 * @return
+	 */
+	public Long getAdminuu() {
+		return adminuu;
+	}
+
+	public void setAdminuu(Long adminuu) {
+		this.adminuu = adminuu;
+	}
+
+	/**
+	 * 企业域名
+	 * 
+	 * @return
+	 */
+	public String getB2bUrl() {
+		return b2bUrl;
+	}
+
+	public void setB2bUrl(String b2bUrl) {
+		this.b2bUrl = b2bUrl;
+	}
+
+	/**
+	 * 申请审核状态
+	 * 
+	 * @return
+	 */
+	public Integer getAuditStatus() {
+		return auditStatus;
+	}
+
+	public void setAuditStatus(Integer auditStatus) {
+		this.auditStatus = auditStatus;
+	}
+
+	/**
+	 * 审核结果
+	 * 
+	 * @return
+	 */
+	public String getAuditResult() {
+		return auditResult;
+	}
+
+	public void setAuditResult(String auditResult) {
+		this.auditResult = auditResult;
+	}
+
+	/**
+	 * 资料上传状态
+	 * 
+	 * @return
+	 */
+	public Short getAuditSendStatus() {
+		return auditSendStatus;
+	}
+
+	public void setAuditSendStatus(Short auditSendStatus) {
+		this.auditSendStatus = auditSendStatus;
+	}
+
+	/**
+	 * 数据库账套情况
+	 * 
+	 * @return
+	 */
+	public Integer getDbStatus() {
+		return dbStatus;
+	}
+
+	public void setDbStatus(Integer dbStatus) {
+		this.dbStatus = dbStatus;
+	}
+
+	/**
+	 * 企业B2B状态 ( 申请中 未激活 已激活)
+	 * 
+	 * @return
+	 */
+	public Integer getB2bStatus() {
+		return b2bStatus;
+	}
+
+	public void setB2bStatus(Integer b2bStatus) {
+		this.b2bStatus = b2bStatus;
+	}
+
+	/**
+	 * 申请时间
+	 * 
+	 * @return
+	 */
+	public Date getEnDate() {
+		return enDate;
+	}
+
+	public void setEnDate(Date enDate) {
+		this.enDate = enDate;
+	}
+
+	/**
+	 * 管理员密码
+	 * 
+	 * @return
+	 */
+	public String getAdminPassword() {
+		return adminPassword;
+	}
+
+	public void setAdminPassword(String adminPassword) {
+		this.adminPassword = adminPassword;
+	}
+
+	/**
+	 * appId
+	 * 
+	 * @return
+	 */
+	public String getAppId() {
+		return appId;
+	}
+
+	public void setAppId(String appId) {
+		this.appId = appId;
+	}
+
+
+	/**
+	 * 更换方式
+	 *
+	 * @return
+	 */
+	public String getMethod() {
+		return method;
+	}
+
+	public void setMethod(String method) {
+		this.method = method;
+	}
+}

+ 117 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/controller/EnterpriseController.java

@@ -0,0 +1,117 @@
+package com.uas.platform.b2c.common.account.v2.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.uas.account.entity.UserSpace;
+import com.uas.account.entity.UserSpaceDetail;
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.v2.service.EnterpriseService;
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.sso.common.util.HttpUtil;
+import com.uas.sso.common.util.HttpUtil.ResponseWrap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller("v2.EnterpriseController")
+@RequestMapping(value = "api/public/enterprise")
+public class EnterpriseController {
+
+	@Autowired
+	private EnterpriseService enterpriseService;
+	@Autowired
+	private SysConf conf;
+	@SuppressWarnings("deprecation")
+	@Autowired
+	private EnterpriseDao enterpriseDao;
+
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public UserSpace save(UserSpace userSpace, UserSpaceDetail userSpaceDetail) throws Exception {
+		if (userSpace != null && userSpaceDetail != null) {
+			Enterprise enterprise = enterpriseService.save(userSpace, userSpaceDetail);
+//			userSpace.setDialectUID(String.valueOf(enterprise.getUu()));
+//			// 为兼容以前模式,同时知会下管理系统。管理系统主要为了获取企业uu
+//			try {
+//				userSpace = syncToManager(userSpace, userSpaceDetail);
+//				// 从管理系统保存完,dialectUID是管理系统masters.id
+////				enterprise.setEnMasterId(Long.parseLong(userSpace.getDialectUID()));
+//				enterpriseService.save(enterprise);
+//				// 返回给账户中心的,dialectUID表示商务平台的en_uu
+//				userSpace.setDialectUID(String.valueOf(enterprise.getUu()));
+//			} catch (Exception e) {
+//				e.printStackTrace();
+//				throw e;
+//			}
+//			return userSpace;
+		}
+		return null;
+	}
+
+	private UserSpace syncToManager(UserSpace userSpace, UserSpaceDetail userSpaceDetail) throws Exception {
+		JSONObject formData = JSON.parseObject(JSON.toJSONString(userSpace));
+		formData.putAll(JSON.parseObject(JSON.toJSONString(userSpaceDetail)));
+		ResponseWrap res = HttpUtil.doPost(conf.getManageInner() + "/public/enterprise", formData);
+		if (!res.isSuccess())
+			throw new Exception(res.getContent());
+		else
+			return JSON.parseObject(res.getContent(), UserSpace.class);
+	}
+
+	@RequestMapping(method = RequestMethod.DELETE)
+	@ResponseBody
+	public void remove(UserSpace userSpace) {
+		if (userSpace != null) {
+			enterpriseService.delete(userSpace);
+		}
+	}
+	
+	/**
+	 * 账户中心传输更新企业信息
+	 * 
+	 * @param userSpaceDetail
+	 * @return
+	 * @throws Exception
+	 */
+	@SuppressWarnings("deprecation")
+	@RequestMapping(value = "/renewUserSpace", method = RequestMethod.POST)
+	@ResponseBody
+	public String renewUserSpace(UserSpaceDetail userSpaceDetail) throws Exception {
+		Enterprise enterprise = null;
+		if(userSpaceDetail.getUu() != null) {
+			enterprise = enterpriseDao.findByUu(userSpaceDetail.getUu());
+		}
+		if (enterprise != null) {
+			enterprise.setEnName(userSpaceDetail.getName());
+			enterprise.setEnShortname(userSpaceDetail.getShortName());
+			enterprise.setEnAddress(userSpaceDetail.getAddress());
+			enterprise.setEnBussinessCode(userSpaceDetail.getBusinessCode());
+			try {
+				enterpriseService.save(enterprise);
+				return "success";
+			} catch (Exception e) {
+				e.printStackTrace();
+				return "error";
+			}
+		} else {
+			return "未找到相关的企业信息";
+		}
+	}
+
+	/**
+	 * b2b更新企业信息
+	 * @param userSpaceDetail
+	 * @return
+	 */
+	@RequestMapping(method = RequestMethod.PUT)
+	@ResponseBody
+	public Enterprise update(UserSpaceDetail userSpaceDetail) {
+		if (userSpaceDetail != null) {
+			return enterpriseService.update(userSpaceDetail);
+		}
+		return null;
+	}
+}

+ 58 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/controller/UserController.java

@@ -0,0 +1,58 @@
+package com.uas.platform.b2c.common.account.v2.controller;
+
+import com.uas.account.entity.User;
+import com.uas.account.entity.UserDetail;
+import com.uas.platform.b2c.common.account.v2.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller("v2.UserController")
+@RequestMapping(value = "api/public/user")
+public class UserController {
+
+	@Autowired
+	private UserService userService;
+
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public User save(User user, UserDetail userDetail) {
+		if (user != null && userDetail != null) {
+			return userService.save(user, userDetail);
+		}
+		return null;
+	}
+
+	@RequestMapping(value = "/pwd", method = RequestMethod.POST)
+	@ResponseBody
+	public void changePassword(User user, String password) {
+		if (user != null && password != null) {
+			userService.changePassword(user, password);
+		}
+	}
+
+	@RequestMapping(method = RequestMethod.DELETE)
+	@ResponseBody
+	public void remove(User user) {
+		if (user != null) {
+			userService.delete(user);
+		}
+	}
+
+	/**
+	 * b2b修改用户信息
+	 * @param userDetail
+	 * @return
+	 */
+	@RequestMapping(method = RequestMethod.PUT)
+	@ResponseBody
+	public com.uas.platform.b2c.common.account.model.User update(UserDetail userDetail) {
+		if (userDetail != null) {
+			return userService.update(userDetail);
+		}
+		return null;
+	}
+
+}

+ 21 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/EnterpriseService.java

@@ -0,0 +1,21 @@
+package com.uas.platform.b2c.common.account.v2.service;
+
+import com.uas.account.entity.UserSpace;
+import com.uas.account.entity.UserSpaceDetail;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+
+public interface EnterpriseService {
+
+	Enterprise save(UserSpace userSpace, UserSpaceDetail detail);
+
+	Enterprise save(Enterprise enterprise);
+
+	void delete(UserSpace userSpace);
+
+	/**
+	 * b2b更新企业信息
+	 * @param userSpaceDetail
+	 * @return
+	 */
+	Enterprise update(UserSpaceDetail userSpaceDetail);
+}

+ 20 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/UserService.java

@@ -0,0 +1,20 @@
+package com.uas.platform.b2c.common.account.v2.service;
+
+import com.uas.account.entity.User;
+import com.uas.account.entity.UserDetail;
+
+public interface UserService {
+
+	User save(User user, UserDetail detail);
+
+	void changePassword(User user, String password);
+
+	void delete(User user);
+
+	/**
+	 * b2b修改用户信息
+	 * @param user
+	 * @return
+	 */
+	com.uas.platform.b2c.common.account.model.User update (UserDetail user);
+}

+ 128 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java

@@ -0,0 +1,128 @@
+package com.uas.platform.b2c.common.account.v2.service.impl;
+
+import com.uas.account.entity.UserSpace;
+import com.uas.account.entity.UserSpaceDetail;
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.dao.UserDao;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.common.account.v2.service.EnterpriseService;
+import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.model.Status;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+
+@Service("v2.EnterpriseService")
+public class EnterpriseServiceImpl implements EnterpriseService {
+
+	@Autowired
+	private EnterpriseDao enterpriseDao;
+	@Autowired
+	private UserDao userDao;
+
+	@Override
+	public Enterprise save(UserSpace userSpace, UserSpaceDetail detail) {
+		Enterprise enterprise = getEnterprise(userSpace);
+		boolean isNew = false;
+		if (enterprise == null) {
+			enterprise = new Enterprise();
+			enterprise.setEnStatus((short) Status.ENABLED.value());
+			isNew = true;
+		}
+
+		enterprise.setEnAddress(detail.getAddress());
+//		enterprise.setBusinesscodeimg(detail.getBusinessCodeImage());
+//		enterprise.setEnAdminEmail(detail.getAdminEmail());
+//		enterprise.setEnAdminName(detail.getAdminName());
+//		enterprise.setEnAdminTel(detail.getAdminTel());
+		enterprise.setEnArea(detail.getArea());
+		enterprise.setEnBussinessCode(detail.getBusinessCode());
+		enterprise.setEnCorporation(detail.getCorporation());
+		enterprise.setEnDate(new Date(detail.getRegisterDate()));
+		enterprise.setEnEmail(detail.getAdminEmail());
+		enterprise.setEnFax(detail.getFax());
+		enterprise.setEnIndustry(detail.getIndustry());
+		enterprise.setEnName(detail.getName());
+		enterprise.setEnShortname(detail.getShortName());
+		enterprise.setEnTel(detail.getAdminTel());
+		enterprise.setEnType(detail.getType());
+		enterprise.setEnUrl(detail.getUrl());
+//		enterprise.setLogUrl(detail.getLogoImage());
+//		enterprise.setProfession(detail.getProfession());
+//		enterprise.setTags(detail.getTags());
+//		enterprise.setContactMan(detail.getContactMan());
+//		enterprise.setContactTel(detail.getContactTel());
+//		enterprise.setContactEmail(detail.getContactEmail());
+		enterprise = enterpriseDao.save(enterprise);
+
+//		if (isNew) {
+//			final Long enUU = enterprise.getUu();
+//			new Thread() {
+//				@Override
+//				public void run() {
+//					enterpriseDao.callInitProcedure(enUU);
+//				};
+//			}.start();
+//		}
+		return enterprise;
+	}
+
+	private Enterprise getEnterprise(UserSpace userSpace) {
+		Enterprise enterprise = null;
+		if (userSpace.getDialectUID() != null)
+			enterprise = enterpriseDao.findByUu(Long.parseLong(userSpace.getDialectUID()));
+		else if (userSpace.getUid() != null)
+			enterprise = enterpriseDao.findByEnBussinessCode(userSpace.getUid());
+		return enterprise;
+	}
+
+	private Enterprise getEnterprise(UserSpaceDetail userSpaceDetail) {
+		Enterprise enterprise = null;
+		if (userSpaceDetail.getUu() != null) {
+			enterprise = enterpriseDao.findByUu(userSpaceDetail.getUu());
+		} else if (userSpaceDetail.getBusinessCode() != null) {
+			enterprise = enterpriseDao.findByEnBussinessCode(userSpaceDetail.getBusinessCode());
+		}
+		return enterprise;
+	}
+
+	@Override
+	public void delete(UserSpace userSpace) {
+		Enterprise enterprise = getEnterprise(userSpace);
+		if (enterprise != null) {
+			List<User> users = userDao.findByEnUU(enterprise.getUu());
+			if (CollectionUtils.isEmpty(users)) {
+				enterpriseDao.delete(enterprise);
+			}
+		}
+	}
+
+	@Override
+	public Enterprise save(Enterprise enterprise) {
+		return enterpriseDao.save(enterprise);
+	}
+
+	@Override
+	public Enterprise update(UserSpaceDetail userSpaceDetail) {
+		Enterprise enterprise = getEnterprise(userSpaceDetail);
+		if (enterprise == null) {
+			throw new IllegalOperatorException("此企业不存在");
+		} else {
+			enterprise.setEnTel(userSpaceDetail.getTel());
+			enterprise.setEnEmail(userSpaceDetail.getContactEmail());
+			enterprise.setEnFax(userSpaceDetail.getFax());
+			enterprise.setEnUrl(userSpaceDetail.getUrl());
+			enterprise.setEnIndustry(userSpaceDetail.getIndustry());
+			enterprise.setEnName(userSpaceDetail.getName());
+			enterprise.setEnShortname(userSpaceDetail.getShortName());
+			enterprise.setEnBussinessCode(userSpaceDetail.getBusinessCode());
+			enterprise.setEnArea(userSpaceDetail.getArea());
+			enterprise.setEnAddress(userSpaceDetail.getAddress());
+			return enterpriseDao.save(enterprise);
+		}
+	}
+}

+ 171 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/UserServiceImpl.java

@@ -0,0 +1,171 @@
+package com.uas.platform.b2c.common.account.v2.service.impl;
+
+import com.uas.account.entity.User;
+import com.uas.account.entity.UserDetail;
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.dao.UserDao;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.v2.service.UserService;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.util.encry.Md5Utils;
+import org.apache.axis.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+@Service("v2.UserService")
+public class UserServiceImpl implements UserService {
+
+	@Autowired
+	private UserDao userDao;
+//	@Autowired
+//	private RoleDao roleDao;
+	@Autowired
+	private EnterpriseDao enterpriseDao;
+	
+	static final String defaultPassword = "111111";
+
+	@Override
+	public User save(User user, UserDetail detail) {
+		com.uas.platform.b2c.common.account.model.User oldUser = getUser(user);
+		if (oldUser == null) { // 如果是新用户,就新增一个user
+			oldUser = new com.uas.platform.b2c.common.account.model.User();
+			oldUser.setEnable(Constant.YES);
+			oldUser.setUserPwd(Md5Utils.encode(defaultPassword, oldUser.getUserUU()));
+		}
+		if (null != detail.getEmail())
+			oldUser.setUserEmail(detail.getEmail());
+		if (null != detail.getIdCode())
+			oldUser.setUserIdcode(detail.getIdCode());
+		if (null != detail.getName())
+			oldUser.setUserName(detail.getName());
+		boolean needChangePwd = false;
+		if (user.getPassword() != null) {
+			if (user.getPassword().length() < 32) {// 传过来的是明文
+				if (oldUser.getUserUU() != null)
+					oldUser.setUserPwd(Md5Utils.encode(user.getPassword(), oldUser.getUserUU()));
+				else
+					needChangePwd = true;
+			} else {
+				oldUser.setUserPwd(user.getPassword());// 传过来的是密文
+			}
+		}
+		if (null != detail.getSex())
+			oldUser.setUserSex(detail.getSex());
+		if (null != detail.getMobile())
+			oldUser.setUserTel(detail.getMobile());
+
+		Enterprise enterprise = getEnterprise(user);
+		if (enterprise != null) {
+			oldUser.addEnterprise(enterprise);
+		}
+
+		oldUser = userDao.save(oldUser);
+		if (needChangePwd) {
+			oldUser.setUserPwd(Md5Utils.encode(user.getPassword(), oldUser.getUserUU()));
+			oldUser = userDao.save(oldUser);
+		}
+		if (enterprise != null) {
+			// 管理员账号
+			if (/*StringUtils.isEmpty(enterprise.getEnAdminTel()) &&*/ null == enterprise.getEnAdminuu()) {
+//				enterprise.setEnAdminName(oldUser.getUserName());
+//				enterprise.setEnAdminEmail(oldUser.getUserEmail());
+//				enterprise.setEnAdminTel(oldUser.getUserTel());
+				enterprise.setEnAdminuu(oldUser.getUserUU());
+				enterpriseDao.save(enterprise);
+			}
+//			else if (oldUser.getUserTel().equals(enterprise.getEnAdminTel())) {
+//				enterprise.setEnAdminName(oldUser.getUserName());
+//				enterprise.setEnAdminEmail(oldUser.getUserEmail());
+//				enterprise.setEnAdminuu(oldUser.getUserUU());
+//				enterpriseDao.save(enterprise);
+//			}
+//			// 将用户设置为管理员,只对用户的当前企业的角色进行修改
+//			Set<Role> existRoles = new HashSet<Role>(); // 新用户注册企业时为空
+//			if (!CollectionUtils.isEmpty(oldUser.getRoles())) { // 老用户注册新企业
+//				existRoles = oldUser.getRoles();
+//			}
+//			// 设置为本企业管理员
+//			List<Role> adminList = roleDao.findByEnUUAndDesc(enterprise.getUu(),"管理员");
+//			existRoles.add(adminList.get(0));
+//			oldUser.setRoles(existRoles);
+			oldUser = userDao.save(oldUser);
+		}
+		user.setDialectUID(String.valueOf(oldUser.getUserUU()));
+		user.setSalt(String.valueOf(oldUser.getUserUU()));
+
+		return user;
+	}
+
+	private com.uas.platform.b2c.common.account.model.User getUser(User user) {
+		com.uas.platform.b2c.common.account.model.User oldUser = null;
+		if (!StringUtils.isEmpty(user.getDialectUID()))
+			oldUser = userDao.findOne(Long.parseLong(user.getDialectUID()));
+		else if (!StringUtils.isEmpty(user.getUid())) {
+			List<com.uas.platform.b2c.common.account.model.User> users = userDao.findUserByUserTel(user.getUid());
+			oldUser = CollectionUtils.isEmpty(users) ? null : users.get(0);
+		}
+		return oldUser;
+	}
+
+	private com.uas.platform.b2c.common.account.model.User getUser(UserDetail userDetail) {
+		com.uas.platform.b2c.common.account.model.User oldUser = null;
+		if (!StringUtils.isEmpty(userDetail.getSalt()))
+			oldUser = userDao.findOne(Long.parseLong(userDetail.getSalt()));
+		else if (!StringUtils.isEmpty(userDetail.getMobile())) {
+			List<com.uas.platform.b2c.common.account.model.User> users = userDao.findUserByUserTel(userDetail.getMobile());
+			oldUser = CollectionUtils.isEmpty(users) ? null : users.get(0);
+		}
+		return oldUser;
+	}
+
+	private Enterprise getEnterprise(User user) {
+		Enterprise enterprise = null;
+		if (user.getSpaceDialectUID() != null)
+			enterprise = enterpriseDao.findByUu(Long.parseLong(user.getSpaceDialectUID()));
+		else if (user.getSpaceUID() != null)
+			enterprise = enterpriseDao.findByEnBussinessCode(user.getSpaceUID());
+		return enterprise;
+	}
+
+	@Override
+	public void delete(User user) {
+		com.uas.platform.b2c.common.account.model.User oldUser = getUser(user);
+		if (oldUser != null) {
+			Enterprise enterprise = getEnterprise(user);
+			if (enterprise != null) {
+				oldUser.getEnterprises().remove(enterprise);
+				userDao.save(oldUser);
+			} else if (CollectionUtils.isEmpty(oldUser.getEnterprises())) {
+				userDao.delete(oldUser);
+			}
+		}
+	}
+
+	@Override
+	public com.uas.platform.b2c.common.account.model.User update(UserDetail user) {
+		com.uas.platform.b2c.common.account.model.User oldUser = getUser(user);
+		if (oldUser == null) {
+			throw new IllegalAccessError("此用户信息不存在");
+		} else {
+			oldUser.setUserName(user.getName());
+			oldUser.setUserTel(user.getMobile());
+			oldUser.setUserIdcode(user.getIdCode());
+			oldUser.setUserEmail(user.getEmail());
+			oldUser.setUserSex(user.getSex());
+			return userDao.save(oldUser);
+		}
+	}
+
+	@Override
+	public void changePassword(User user, String password) {
+		com.uas.platform.b2c.common.account.model.User oldUser = getUser(user);
+		if (oldUser != null) {
+			oldUser.setUserPwd(Md5Utils.encode(password, oldUser.getUserUU()));
+			userDao.save(oldUser);
+		}
+	}
+
+}