package com.pj.project.sys_user_password;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.pj.current.config.SystemObject;
import com.pj.project.sys_user.SysUser;
import com.pj.project4sp.SP;
import com.pj.utils.sg.AjaxError;

/**
 * 用户表改密码业务类 
 * @author shengzhang 
 */
@Service
public class SysUserPasswordService {

	// REQUIRED=如果调用方有事务  就继续使用调用方的事务，如果调用方没有事务就新建一个事务 
	/** 修改一个User的密码为  */
	@Transactional(rollbackFor = Exception.class, propagation=Propagation.REQUIRED)	
	public void updatePassword(long userId, String password) {
		AjaxError.notIsNull(password, "新密码不可为空");
		AjaxError.notTrue(password.length() < 6, "新密码不可少于6位");
		
		// 更改密码密文
		int line = SP.publicMapper.updateColumnById(SysUser.TABLE_NAME, "password", SystemObject.getPasswordMd5(userId, password), userId);
		AjaxError.notLine(line, "修改失败, 数据可能并不存在");
		
		// 更改密码明文
		if(SystemObject.config.getIsPw()) {
			int line2 = SP.publicMapper.updateColumnById(SysUser.TABLE_NAME, "pw", password, userId);	
			AjaxError.notLine(line2, "修改失败, 数据可能并不存在");
		}
	}
	
}
