package net.chenlin.dp.modules.sys.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import net.chenlin.dp.common.entity.Query;
import net.chenlin.dp.modules.sys.entity.SysUserEntity;
import org.apache.ibatis.annotations.Param;

/**
 * 系统用户dao
 * @author zcl<yczclcn@163.com>
 */
@Mapper
public interface SysUserMapper extends BaseMapper<SysUserEntity> {

	/**
	 * 根据用户名查询
	 * @param username
	 * @return
	 */
	SysUserEntity getByUserName(String username);

	/**
	 * 查询用户所有菜单id
	 * @param userId
	 * @return
	 */
	List<Long> listAllMenuId(Long userId);

	/**
	 * 查询用户所有机构id
	 * @param userId
	 * @return
	 */
	List<Long> listAllOrgId(Long userId);

	/**
	 * 用户修改密码
	 * @param query
	 * @return
	 */
	int updatePswdByUser(Query query);

	/**
	 * 更新用户状态
	 * @param query
	 * @return
	 */
	int updateUserStatus(Query query);

	/**
	 * 修改密码
	 * @param user
	 * @return
	 */
	int updatePswd(SysUserEntity user);





	int Ordershenhe(@Param("code")String code, @Param("dverifysystime")String dverifysystime, @Param("dverifydate")String dverifydate
			, @Param("state")String state, @Param("cVerifier")String cVerifier);

	int Purchaseshenhe(@Param("code")String code, @Param("dverifysystime")String dverifysystime, @Param("dverifydate")String dverifydate
			, @Param("state")String state, @Param("cVerifier")String cVerifier);

	int Payrequestshenhe(@Param("code")String code, @Param("dverifysystime")String dverifysystime, @Param("dverifydate")String dverifydate
			, @Param("cVerifier")String cVerifier);

	/**
	 * 销售订单
	 * @param date
	 * @param endDate
	 * @return
	 */
	 List<String>querySaleOrderDate();

	 int autoRIdBySale(@Param("cSOCode")String cSOCode,@Param("instanceId")String instanceId);
	/**
	 * 采购订单
	 * @param date
	 * @param endDate
	 * @return
	 */
	List<String>queryPurchaseOrderDate();

	int autoRIdByOrder(@Param("cSOCode")String cSOCode,@Param("instanceId")String instanceId);
	/**
	 * 付款申请单
	 * @param date
	 * @param endDate
	 * @return
	 */
	List<String>queryPayrequestDate();
	int autoRIdByPayequest(@Param("cSOCode")String cSOCode,@Param("instanceId")String instanceId);
}