瀏覽代碼

员工操作

Joburgess 5 年之前
父節點
當前提交
403daff2a8

+ 36 - 0
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java

@@ -0,0 +1,36 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.enums.EmployeeOperateEnum;
+import com.ym.mec.web.dal.page.EmployeeQueryInfo;
+import com.ym.mec.web.service.EmployeeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/17
+ */
+@RequestMapping("employee")
+@Api(tags = "学生考勤服务")
+@RestController
+public class EmployeeController extends BaseController {
+
+    @Autowired
+    private EmployeeService employeeService;
+
+    @ApiOperation(value = "根据部门获取下面的员工")
+    @GetMapping("/queryEmployByOrganId")
+    public Object queryEmployByOrganId(@RequestParam EmployeeQueryInfo queryInfo){
+        return employeeService.queryEmployByOrganId(queryInfo);
+    }
+
+    @ApiOperation(value = "员工操作")
+    @PostMapping("/employeeOperate")
+    public Object employeeOperate(Long employeeId, EmployeeOperateEnum operate){
+        employeeService.employeeOperate(employeeId,operate);
+        return succeed();
+    }
+}

+ 34 - 1
mec-web/src/main/java/com/ym/mec/web/dal/dao/EmployeeDao.java

@@ -1,9 +1,42 @@
 package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.dto.EmployeeDto;
 import com.ym.mec.web.dal.entity.Employee;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 public interface EmployeeDao extends BaseDAO<Integer, Employee> {
 
-	
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 根据部门获取下面的员工
+     */
+    List<EmployeeDto> queryEmployByOrganId(Map<String,Object> params);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 部门员工统计
+     */
+    int queryEmployByOrganIdCount(Map<String,Object> params);
+
+
+    /**
+     * 修改密码
+     * @param userID
+     * @param password
+     */
+    void updatePassword(@Param("userID") Long userID, @Param("password") String password);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 修改用户账户锁定状态
+     */
+    int updateUserLockStatus(@Param("userID") Long userID);
+
 }

+ 114 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/EmployeeDto.java

@@ -0,0 +1,114 @@
+package com.ym.mec.web.dal.dto;
+
+import com.ym.mec.common.enums.UserGenderEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/17
+ */
+public class EmployeeDto {
+
+    /** 主键ID */
+    private Integer id;
+
+    /** 用户名 */
+    @ApiModelProperty(value = "用户名",required = false)
+    private String username;
+
+    @ApiModelProperty(value = "性别",required = false)
+    private UserGenderEnum gender;
+
+    @ApiModelProperty(value = "电话ID",required = false)
+    private String phone;
+
+    /** 0-正常,9-锁定 */
+    @ApiModelProperty(value = "0-正常,9-锁定",required = false)
+    private String lockFlag;
+
+    @ApiModelProperty(value = "角色名称",required = false)
+    private String roleName;
+
+    /** 工作性质(兼职、全职、临时) */
+    private String jobNature;
+
+    /** 入职时间 */
+    private java.util.Date entryDate;
+
+    /** 离职日期 */
+    private java.util.Date demissionDate;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public UserGenderEnum getGender() {
+        return gender;
+    }
+
+    public void setGender(UserGenderEnum gender) {
+        this.gender = gender;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(String lockFlag) {
+        this.lockFlag = lockFlag;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public String getJobNature() {
+        return jobNature;
+    }
+
+    public void setJobNature(String jobNature) {
+        this.jobNature = jobNature;
+    }
+
+    public Date getEntryDate() {
+        return entryDate;
+    }
+
+    public void setEntryDate(Date entryDate) {
+        this.entryDate = entryDate;
+    }
+
+    public Date getDemissionDate() {
+        return demissionDate;
+    }
+
+    public void setDemissionDate(Date demissionDate) {
+        this.demissionDate = demissionDate;
+    }
+}

+ 40 - 0
mec-web/src/main/java/com/ym/mec/web/dal/enums/EmployeeOperateEnum.java

@@ -0,0 +1,40 @@
+package com.ym.mec.web.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/17
+ */
+public enum  EmployeeOperateEnum implements BaseEnum<Integer, DealStatusEnum> {
+
+    RESET_PASSWORD(0,"重置密码"),
+    LOCK_UNLOCK(1,"冻结/解冻"),
+    DEMISSION(2,"离职");
+
+    private Integer code;
+
+    private String msg;
+
+    EmployeeOperateEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return this.code;
+    }
+}

+ 44 - 0
mec-web/src/main/java/com/ym/mec/web/dal/page/EmployeeQueryInfo.java

@@ -0,0 +1,44 @@
+package com.ym.mec.web.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/17
+ */
+public class EmployeeQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "部门ID",required = true)
+    private Long organId;
+
+    @ApiModelProperty(value = "角色ID",required = false)
+    private Long roleId;
+
+    @ApiModelProperty(value = "用户名或电话",required = false)
+    private Long userNameOrPhone;
+
+    public Long getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Long organId) {
+        this.organId = organId;
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public Long getUserNameOrPhone() {
+        return userNameOrPhone;
+    }
+
+    public void setUserNameOrPhone(Long userNameOrPhone) {
+        this.userNameOrPhone = userNameOrPhone;
+    }
+}

+ 17 - 0
mec-web/src/main/java/com/ym/mec/web/service/EmployeeService.java

@@ -1,8 +1,25 @@
 package com.ym.mec.web.service;
 
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.Employee;
+import com.ym.mec.web.dal.enums.EmployeeOperateEnum;
+import com.ym.mec.web.dal.page.EmployeeQueryInfo;
 
 public interface EmployeeService extends BaseService<Integer, Employee> {
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 根据部门获取下面的员工
+     */
+    PageInfo queryEmployByOrganId(EmployeeQueryInfo queryInfo);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 员工操作
+     */
+    void employeeOperate(Long employeeId, EmployeeOperateEnum operate);
+
 }

+ 48 - 4
mec-web/src/main/java/com/ym/mec/web/service/impl/EmployeeServiceImpl.java

@@ -1,13 +1,19 @@
 package com.ym.mec.web.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.web.dal.dao.EmployeeDao;
+import com.ym.mec.web.dal.dto.EmployeeDto;
 import com.ym.mec.web.dal.entity.Employee;
+import com.ym.mec.web.dal.enums.EmployeeOperateEnum;
+import com.ym.mec.web.dal.page.EmployeeQueryInfo;
 import com.ym.mec.web.service.EmployeeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
 
 @Service
 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  implements EmployeeService {
@@ -19,5 +25,43 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	public BaseDAO<Integer, Employee> getDAO() {
 		return employeeDao;
 	}
-	
+
+	@Override
+	public PageInfo queryEmployByOrganId(EmployeeQueryInfo queryInfo) {
+		queryInfo.setOrganId(1L);
+		PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<EmployeeDto> dataList = null;
+		int count = employeeDao.queryEmployByOrganIdCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = employeeDao.queryEmployByOrganId(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	public void employeeOperate(Long employeeId, EmployeeOperateEnum operate) {
+		switch (operate){
+			case RESET_PASSWORD:
+				employeeDao.updatePassword(employeeId,"$10$9qP1IKnbSx/wUOzo2qbGrOOf0LXPmHjp85vU2PxZvlkKRtsVbCwry");
+				break;
+			case LOCK_UNLOCK:
+				employeeDao.updateUserLockStatus(employeeId);
+				break;
+			case DEMISSION:
+				Employee employee=new Employee();
+				employee.setUserId(employeeId.intValue());
+				employee.setDemissionDate(new Date());
+				employeeDao.update(employee);
+				break;
+		}
+	}
 }

+ 65 - 1
mec-web/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -90,7 +90,15 @@ demission_date_ = #{demissionDate},
 </if>
 </set> WHERE user_id_ = #{userId} 
 	</update>
-	
+
+
+	<update id="updatePassword">
+        UPDATE sys_user SET password_ = #{password} WHERE id_ = #{userID}
+    </update>
+	<update id="updateUserLockStatus">
+		UPDATE sys_user SET lock_flag_ = IF(lock_flag_=0,9,0) WHERE id_=#{userID}
+	</update>
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM employee WHERE user_id_ = #{userId} 
@@ -105,4 +113,60 @@ demission_date_ = #{demissionDate},
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM employee
 	</select>
+
+	<resultMap type="com.ym.mec.web.dal.dto.EmployeeDto" id="EmployeeDto">
+		<result property="id" column="id_" />
+		<result property="username" column="username_" />
+		<result property="gender" column="gender_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result property="phone" column="phone_" />
+		<result property="lockFlag" column="role_name_" />
+		<result property="roleName" column="lock_flag_" />
+		<result property="jobNature" column="job_nature_" />
+		<result property="entryDate" column="entry_date_" />
+		<result property="demissionDate" column="demission_date_" />
+	</resultMap>
+
+	<sql id="queryCondition">
+		<where>
+			<if test="organId != null">
+				and su.organ_id_ = #{organId}
+			</if>
+			<if test="roleId != null">
+				and sr.id_ = #{roleId}
+			</if>
+			<if test="userNameOrPhone != null">
+				and (su.username_ like LIKE CONCAT('%',#{userNameOrPhone},'%')
+				or su.phone_ like LIKE CONCAT('%',#{userNameOrPhone},'%') or )
+			</if>
+		</where>
+	</sql>
+
+	<select id="queryEmployByOrganId" resultMap="EmployeeDto">
+		SELECT
+			su.id_,
+			su.username_,
+			su.gender_,
+			su.phone_,
+			sr.role_name_,
+			su.lock_flag_,
+			e.job_nature_,
+			e.entry_date_,
+			e.demission_date_
+		FROM
+			sys_user su
+		LEFT JOIN employee e ON su.id_=e.user_id_
+		LEFT JOIN sys_user_role sur ON su.id_=sur.user_id_
+		LEFT JOIN sys_role sr ON sur.role_id_=sr.id_
+		<include refid="queryCondition"/>
+	</select>
+
+	<select id="queryEmployByOrganIdCount" resultType="java.lang.Integer">
+		SELECT
+			count(*)
+		FROM
+			sys_user su
+		LEFT JOIN employee e ON su.id_=e.user_id_
+		LEFT JOIN sys_user_role sur ON su.id_=sur.user_id_
+		LEFT JOIN sys_role sr ON sur.rol
+	</select>
 </mapper>

+ 3 - 3
mec-web/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -174,13 +174,13 @@
                 and sa.user_id_ = #{studentID}
             </if>
             <if test="musicGroupId != null">
-                and sa.music_group_id_ #{musicGroupId}
+                and sa.music_group_id_ = #{musicGroupId}
             </if>
             <if test="classGroupId != null">
-                and sa.class_group_id_ like #{classGroupId}
+                and sa.class_group_id_ = #{classGroupId}
             </if>
             <if test="status != null">
-                and sa.status_ like #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                and sa.status_ = #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
         </where>
     </sql>