Antiloveg %!s(int64=8) %!d(string=hai) anos
pai
achega
4b08af0602

+ 137 - 0
src/main/java/com/goafanti/admin/bo/AdminListBo.java

@@ -0,0 +1,137 @@
+package com.goafanti.admin.bo;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+
+public class AdminListBo {
+
+	private String	id;
+
+	/**
+	 * 手机号(登录帐号)
+	 */
+	private String	mobile;
+
+	/**
+	 * 用户名
+	 */
+	private String	name;
+
+	/**
+	 * 邮箱
+	 */
+	private String	email;
+
+	/**
+	 * 创建时间
+	 */
+	private Date	createTime;
+
+	/**
+	 * 员工工号
+	 */
+	private Integer	number;
+
+	/**
+	 * 所在省份
+	 */
+	private String	province;
+	/**
+	 * 职位
+	 */
+	private String	position;
+
+	/**
+	 * 上级管理用户名称
+	 */
+	private String	superior;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getMobile() {
+		return mobile;
+	}
+
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getEmail() {
+		return email;
+	}
+
+	public void setEmail(String email) {
+		this.email = email;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Integer getNumber() {
+		return number;
+	}
+
+	public void setNumber(Integer number) {
+		this.number = number;
+	}
+
+	public String getProvince() {
+		return province;
+	}
+
+	public void setProvince(String province) {
+		this.province = province;
+	}
+
+	public String getPosition() {
+		return position;
+	}
+
+	public void setPosition(String position) {
+		this.position = position;
+	}
+
+	public String getSuperior() {
+		return superior;
+	}
+
+	public void setSuperior(String superior) {
+		this.superior = superior;
+	}
+
+	// 创建时间
+	public String getCreateTimeFormattedDate() {
+		if (this.createTime == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.getCreateTime(), AFTConstants.YYYYMMDDHHMMSS);
+		}
+	}
+
+	public void setCreateTimeFormattedDate(String createTimeFormattedDate) {
+
+	}
+
+}

+ 11 - 2
src/main/java/com/goafanti/admin/controller/AdminSuperviseApiController.java

@@ -38,7 +38,17 @@ public class AdminSuperviseApiController extends CertifyApiController {
 	private AdminService	adminService;
 	@Resource(name = "passwordUtil")
 	private PasswordUtil	passwordUtil;
-	
+
+	/**
+	 * 管理员下拉列表
+	 */
+	@RequestMapping(value = "/adminSelectList", method = RequestMethod.GET)
+	public Result adminSelectList() {
+		Result res = new Result();
+		//Map<String, String> aslb = adminService.listAdminSelect();
+
+		return res;
+	}
 
 	/**
 	 * 管理员列表
@@ -146,7 +156,6 @@ public class AdminSuperviseApiController extends CertifyApiController {
 		return res;
 	}
 
-
 	/**
 	 * 修改管理员信息
 	 */

+ 2 - 0
src/main/java/com/goafanti/admin/service/AdminService.java

@@ -59,5 +59,7 @@ public interface AdminService {
 
 	int insertNewAdmin(Admin ad, List<AdminLocation> adminLocationList);
 
+	Map<String, String> listAdminSelect();
+
 
 }

+ 29 - 8
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -1,5 +1,6 @@
 package com.goafanti.admin.service.impl;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -25,9 +26,9 @@ import com.goafanti.core.shiro.token.TokenManager;
 @Service
 public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements AdminService {
 	@Autowired
-	private AdminMapper		adminMapper;
+	private AdminMapper			adminMapper;
 	@Autowired
-	private UserRoleMapper	userRoleMapper;
+	private UserRoleMapper		userRoleMapper;
 	@Autowired
 	private AdminLocationMapper	adminLocationMapper;
 
@@ -52,10 +53,6 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 			Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
 
-		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
-			params.put("province", TokenManager.getProvince());
-		}
-
 		if (StringUtils.isNotBlank(mobile)) {
 			params.put("mobile", mobile);
 		}
@@ -72,7 +69,7 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 			pageNo = 1;
 		}
 
-		if (pageSize == null || pageSize < 0) {
+		if (pageSize == null || pageSize < 0 || pageSize > 10) {
 			pageSize = 10;
 		}
 
@@ -200,12 +197,36 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 		return adminMapper.insert(ad);
 	}
 
+	@Override
+	public Map<String, String> listAdminSelect() {
+		if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
+			return disposeAdminList(adminMapper.listAdminSelectBySuperAdmin());
+		} else if (TokenManager.hasRole(AFTConstants.AREAADMIN)) {
+			List<Integer> provinceList = adminLocationMapper
+					.selectProvinceWhereCityIsNullByAdminId(TokenManager.getAdminId());
+			List<Integer> cityList = adminLocationMapper.selectCityByAdminId(TokenManager.getAdminId());
+			provinceList.addAll(cityList);
+			return disposeAdminList(adminMapper.listAdminSelectByAreaAdmin(provinceList, cityList));
+		}
+		return null;
+	}
+
 	private Map<String, String> disposeAdminList(List<Admin> list) {
 		Map<String, String> map = new TreeMap<String, String>();
 		for (Admin o : list) {
-			map.put(o.getId(), o.getName() + " " + (null == o.getPosition() ? "" : o.getPosition()));
+			map.put(o.getId(), o.getName() + " " + (StringUtils.isBlank(o.getPosition()) ? "" : o.getPosition()));
 		}
 		return map;
 	}
+	
+	public static void main(String[] args) {
+		List<Integer> list1 = new ArrayList<>();
+		List<Integer> list2 = new ArrayList<>();
+		list1.addAll(list2);
+		for (Integer i : list1){
+			System.out.println(i);
+		}
+		System.out.println(list1.size());
+	}
 
 }

+ 4 - 0
src/main/java/com/goafanti/common/dao/AdminLocationMapper.java

@@ -18,4 +18,8 @@ public interface AdminLocationMapper {
     int updateByPrimaryKey(AdminLocation record);
 
 	void insertBatch(List<AdminLocation> adminLocationList);
+
+	List<Integer> selectProvinceWhereCityIsNullByAdminId(String adminId);
+
+	List<Integer> selectCityByAdminId(String adminId);
 }

+ 5 - 0
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -51,4 +51,9 @@ public interface AdminMapper {
 	List<Admin> selectContractManager();
 
 	List<Admin> selectTechBroder();
+
+	List<Admin> listAdminSelectBySuperAdmin();
+
+	List<Admin> listAdminSelectByAreaAdmin(List<Integer> provinceList, List<Integer> cityList);
+
 }

+ 15 - 0
src/main/java/com/goafanti/common/mapper/AdminLocationMapper.xml

@@ -92,4 +92,19 @@
       )
     </foreach>
   </insert>
+  
+  <select id="selectProvinceWhereCityIsNullByAdminId" parameterType="java.lang.String" resultType = "java.lang.Integer">
+  	select 
+  		province
+  	from admin_location 
+  	where admin_id = #{adminId, jdbcType=VARCHAR}
+  	and city is null
+  </select>
+  
+   <select id="selectCityByAdminId" parameterType="java.lang.String" resultType = "java.lang.Integer">
+  	select 
+  		city
+  	from admin_location 
+  	where admin_id = #{adminId, jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 50 - 15
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -175,24 +175,27 @@
     where mobile = #{mobile,jdbcType=VARCHAR}
   </select> 
   
-  <select id= "findAdminListByPage" parameterType="java.lang.String" resultMap="BaseResultMap" >
-  	 select 
-    <include refid="Base_Column_List" />
-    from admin
-    where id <![CDATA[ <> ]]> '1'
-    <if test = "province != null">
-    	and province = #{province,jdbcType=INTEGER}
-    </if>
+  <select id= "findAdminListByPage" parameterType="java.lang.String" resultType="com.goafanti.admin.bo.AdminListBo" >
+  	select 
+   		 a.number, a.mobile, a.name, 
+   		 a.position, a.email, a.id,
+   		 a.create_time as createTime, GROUP_CONCAT(DISTINCT(al.province)) AS province,
+   		 aa.name as superior
+    from admin a 
+    left join admin_location al on a.id = al.admin_id
+    left join admin aa on aa.id = a.superior_id
+    where a.id <![CDATA[ <> ]]> '1'
     <if test = "mobile != null"> 
-    	and mobile = #{mobile,jdbcType=VARCHAR}
+    	and a.mobile = #{mobile,jdbcType=VARCHAR}
     </if>
     <if test = "name != null"> 
-    	and name = #{name,jdbcType=VARCHAR}
+    	and a.name = #{name,jdbcType=VARCHAR}
     </if>
     <if test = "number != null">
-    	and number = #{number,jdbcType=INTEGER}
+    	and a.number = #{number,jdbcType=INTEGER}
     </if>
-    order by number 
+    group by a.id  
+    order by a.number 
     <if test="page_sql!=null">
 			${page_sql}
 	</if>
@@ -201,9 +204,6 @@
   <select id = "findAdminCount" parameterType="java.lang.String" resultType="java.lang.Integer">
    select count(1) from admin
      where id <![CDATA[ <> ]]> '1'
-    <if test = "province != null">
-    	and province = #{province,jdbcType=INTEGER}
-    </if>
     <if test = "mobile != null"> 
     	and mobile = #{mobile,jdbcType=VARCHAR}
     </if>
@@ -314,4 +314,39 @@
 		INNER JOIN user_role  ur on a.id = ur.uid
 	where ur.rid = 7 
    </select>
+   
+   <select id="listAdminSelectBySuperAdmin" resultMap="BaseResultMap">
+   	select 
+   	<include refid="Base_Column_List" />
+   	from admin 
+   	where id <![CDATA[ <> ]]> '1'
+   </select>
+   
+   <select id="listAdminSelectByAreaAdmin" parameterType="Map" resultMap="BaseResultMap"> 
+    select 
+    	a.id, a.name, a.mobile,
+    	a.create_time as createTime, a.number,  aa.name as superior
+    from admin a
+    left join admin_location al on al.admin_id = a.id
+    left join admin aa on aa.id = a.superior_id
+    where 1 = 1
+    <if test="provinceList != null">
+	   and  al.province in
+	    <foreach collection="provinceList" item="plist"  open="(" separator="," close=")">
+			#{plist}
+		</foreach>
+	</if>
+	<if test = "provinceList != null &amp;&amp; cityList != null">
+	or 
+	</if>
+	<if test="cityList != null">
+		<if test="provinceList == null">
+			and
+		</if>
+			al.city in 
+			<foreach collection="cityList" item="clist"  open="(" separator="," close=")">
+				#{clist}
+			</foreach>
+	</if>
+   </select>
 </mapper>

+ 0 - 1
src/main/java/com/goafanti/common/model/AftUser.java

@@ -13,5 +13,4 @@ public interface AftUser {
 
 	String getMobile();
 
-	Integer getProvince();
 }

+ 0 - 5
src/main/java/com/goafanti/common/model/User.java

@@ -158,11 +158,6 @@ public class User extends BaseModel implements AftUser{
 		this.mid = mid;
 	}
 
-	@JsonIgnore
-	@Override
-	public Integer getProvince() {
-		return null;
-	}
     
     
     

+ 2 - 2
src/main/java/com/goafanti/core/shiro/token/TokenManager.java

@@ -132,9 +132,9 @@ public class TokenManager {
 	 * 
 	 * @return
 	 */
-	public static Integer getProvince() {
+	/*public static Integer getProvince() {
 		return getToken() == null ? null : getToken().getProvince();
-	}
+	}*/
 
 	/**
 	 * 获取验证码,获取一次后删除