Antiloveg il y a 8 ans
Parent
commit
df51db4c26

+ 20 - 0
schema/2017-04-27.sql

@@ -0,0 +1,20 @@
+
+alter table `user`
+ADD COLUMN  `mid` VARCHAR(36) NULL COMMENT '客户经理ID';
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 6 - 26
src/main/java/com/goafanti/admin/controller/AdminApiController.java

@@ -669,6 +669,7 @@ public class AdminApiController extends CertifyApiController {
 					UserIdentityFields.getFieldDesc(bindingResult.getFieldError().getField())));
 			return res;
 		}
+		
 
 		if (null == userIdentity.getUid()) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
@@ -685,35 +686,14 @@ public class AdminApiController extends CertifyApiController {
 		UserIdentity ui = new UserIdentity();
 		BeanUtils.copyProperties(userIdentity, ui);
 
+		ui.setProcess(IdentityProcess.COMMITTED.getCode());
+		ui.setAuditStatus(IdentityAuditStatus.COMMITTED.getCode());
+		
 		if (StringUtils.isBlank(ui.getId())) {
 			ui.setId(UUID.randomUUID().toString());
-			ui.setAuditStatus(null == ui.getAuditStatus() ? 0 : ui.getAuditStatus());
-			if (IdentityAuditStatus.UNCOMMITTED.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.UNCOMMITTED.getCode());
-			} else if (IdentityAuditStatus.COMMITTED.getCode() == ui.getAuditStatus()
-					|| IdentityAuditStatus.UNPAID.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.COMMITTED.getCode());
-			} else if (IdentityAuditStatus.PAID.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.FILLIN.getCode());
-			} else if (IdentityAuditStatus.NOTPASSED.getCode() == ui.getAuditStatus()
-					|| IdentityAuditStatus.PASSED.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.RESULTS.getCode());
-			}
-			res.setData(userIdentityService.insert(ui));
+			res.setData(userIdentityService.insertByAdmin(ui));
 		} else {
-			ui.setAuditStatus(null == ui.getAuditStatus() ? 0 : ui.getAuditStatus());
-			if (IdentityAuditStatus.UNCOMMITTED.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.UNCOMMITTED.getCode());
-			} else if (IdentityAuditStatus.COMMITTED.getCode() == ui.getAuditStatus()
-					|| IdentityAuditStatus.UNPAID.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.COMMITTED.getCode());
-			} else if (IdentityAuditStatus.PAID.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.FILLIN.getCode());
-			} else if (IdentityAuditStatus.NOTPASSED.getCode() == ui.getAuditStatus()
-					|| IdentityAuditStatus.PASSED.getCode() == ui.getAuditStatus()) {
-				ui.setProcess(IdentityProcess.RESULTS.getCode());
-			}
-			res.setData(userIdentityService.updateUserDetail(ui));
+			res.setData(userIdentityService.updateUserDetail(ui, null, null));
 		}
 		return res;
 	}

+ 203 - 0
src/main/java/com/goafanti/admin/controller/AdminUserCertifyApiController.java

@@ -0,0 +1,203 @@
+package com.goafanti.admin.controller;
+
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.AttachmentType;
+import com.goafanti.common.enums.IdentityAuditStatus;
+import com.goafanti.common.enums.IdentityProcess;
+import com.goafanti.common.enums.OrganizationIdentityFields;
+import com.goafanti.common.enums.UserIdentityFields;
+import com.goafanti.common.model.OrganizationIdentity;
+import com.goafanti.common.model.UserIdentity;
+import com.goafanti.common.utils.DateUtils;
+import com.goafanti.user.bo.InputOrganizationIdentity;
+import com.goafanti.user.bo.InputUserIdentity;
+import com.goafanti.user.service.OrganizationIdentityService;
+import com.goafanti.user.service.UserIdentityService;
+
+@RestController
+@RequestMapping(value = "/api/admin/userCertify")
+public class AdminUserCertifyApiController extends CertifyApiController {
+	@Resource
+	private UserIdentityService userIdentityService;
+	
+	@Resource
+	private OrganizationIdentityService organizationIdentityService;
+
+	/**
+	 * 上传认证资料(营业执照图片、组织机构代码证图片、上年度纳税申报表)
+	 * 
+	 * @param req
+	 * @param sign
+	 * @param uid
+	 * @return
+	 */
+	@RequestMapping(value = "/upload", method = RequestMethod.POST)
+	public Result uploadCertify(HttpServletRequest req, String sign, String uid) {
+		Result res = new Result();
+		if (StringUtils.isBlank(uid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
+			return res;
+		}
+
+		AttachmentType attachmentType = AttachmentType.getField(sign);
+		if (attachmentType == AttachmentType.ORGCODE || attachmentType == AttachmentType.LICENCE) {
+			res.setData(handleFiles(res, "/identity/", true, req, sign, uid));
+		} else if (attachmentType == AttachmentType.RATEPAY) {
+			sign = sign + "_" + (Calendar.getInstance().get(Calendar.YEAR)-1);
+			res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid));
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
+		}
+		return res;
+	}
+	
+	/**
+	 * 审核员审核个人用户信息
+	 * @param userIdentity
+	 * @param bindingResult
+	 * @param paymentDateFormattedDate
+	 * @return
+	 */
+	@RequestMapping(value = "/user", method = RequestMethod.POST)
+	public Result disposeCertify(@Valid InputUserIdentity userIdentity, BindingResult bindingResult,
+			String paymentDateFormattedDate, String aid, String mid){
+		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					UserIdentityFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+
+		if (null == userIdentity.getUid()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
+			return res;
+		}
+
+		if (!StringUtils.isBlank(paymentDateFormattedDate)) {
+			try {
+				userIdentity.setPaymentDate(DateUtils.parseDate(paymentDateFormattedDate, AFTConstants.YYYYMMDD));
+			} catch (ParseException e) {
+			}
+		}
+
+		UserIdentity ui = new UserIdentity();
+		BeanUtils.copyProperties(userIdentity, ui);
+		if (StringUtils.isBlank(ui.getId())) {
+			ui.setId(UUID.randomUUID().toString());
+			ui.setAuditStatus(null == ui.getAuditStatus() ? 0 : ui.getAuditStatus());
+			if (IdentityAuditStatus.UNCOMMITTED.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.UNCOMMITTED.getCode());
+			} else if (IdentityAuditStatus.COMMITTED.getCode() == ui.getAuditStatus()
+					|| IdentityAuditStatus.UNPAID.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.COMMITTED.getCode());
+			} else if (IdentityAuditStatus.PAID.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.FILLIN.getCode());
+			} else if (IdentityAuditStatus.NOTPASSED.getCode() == ui.getAuditStatus()
+					|| IdentityAuditStatus.PASSED.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.RESULTS.getCode());
+			}
+			res.setData(userIdentityService.insert(ui));
+		} else {
+			ui.setAuditStatus(null == ui.getAuditStatus() ? 0 : ui.getAuditStatus());
+			if (IdentityAuditStatus.UNCOMMITTED.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.UNCOMMITTED.getCode());
+			} else if (IdentityAuditStatus.COMMITTED.getCode() == ui.getAuditStatus()
+					|| IdentityAuditStatus.UNPAID.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.COMMITTED.getCode());
+			} else if (IdentityAuditStatus.PAID.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.FILLIN.getCode());
+			} else if (IdentityAuditStatus.NOTPASSED.getCode() == ui.getAuditStatus()
+					|| IdentityAuditStatus.PASSED.getCode() == ui.getAuditStatus()) {
+				ui.setProcess(IdentityProcess.RESULTS.getCode());
+			}
+			res.setData(userIdentityService.updateUserDetail(ui, aid, mid));
+		}
+		return res;
+	}
+	
+	/**
+	 * 审核员审核团体用户信息
+	 * @param orgIdentity
+	 * @param bindingResult
+	 * @param paymentDateFormattedDate
+	 * @return
+	 */
+	@RequestMapping(value = "/org", method = RequestMethod.POST)
+	public Result updateOrgDetail(@Valid InputOrganizationIdentity orgIdentity, BindingResult bindingResult,
+			String paymentDateFormattedDate) {
+		Result res = new Result();
+
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					OrganizationIdentityFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+
+		if (null == orgIdentity.getUid()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
+			return res;
+		}
+		if (!StringUtils.isBlank(paymentDateFormattedDate)) {
+			try {
+				orgIdentity.setPaymentDate(DateUtils.parseDate(paymentDateFormattedDate, AFTConstants.YYYYMMDD));
+			} catch (ParseException e) {
+			}
+		}
+
+		OrganizationIdentity oi = new OrganizationIdentity();
+		BeanUtils.copyProperties(orgIdentity, oi);
+
+		if (StringUtils.isBlank(oi.getId())) {
+			oi.setId(UUID.randomUUID().toString());
+			oi.setIdentityType(null == oi.getIdentityType() ? 0 : oi.getIdentityType());
+			oi.setAuditStatus(null == oi.getAuditStatus() ? 0 : oi.getAuditStatus());
+			if (IdentityAuditStatus.UNCOMMITTED.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.UNCOMMITTED.getCode());
+			} else if (IdentityAuditStatus.COMMITTED.getCode() == oi.getAuditStatus()
+					|| IdentityAuditStatus.UNPAID.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.COMMITTED.getCode());
+			} else if (IdentityAuditStatus.PAID.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.FILLIN.getCode());
+			} else if (IdentityAuditStatus.NOTPASSED.getCode() == oi.getAuditStatus()
+					|| IdentityAuditStatus.PASSED.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.RESULTS.getCode());
+			}
+			oi.setListed(null == oi.getListed() ? 0 : oi.getListed());
+			oi.setListedType(null == oi.getListedType() ? 0 : oi.getListedType());
+			res.setData(organizationIdentityService.insert(oi));
+		} else {
+			oi.setAuditStatus(null == oi.getAuditStatus() ? 0 : oi.getAuditStatus());
+			if (IdentityAuditStatus.UNCOMMITTED.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.UNCOMMITTED.getCode());
+			} else if (IdentityAuditStatus.COMMITTED.getCode() == oi.getAuditStatus()
+					|| IdentityAuditStatus.UNPAID.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.COMMITTED.getCode());
+			} else if (IdentityAuditStatus.PAID.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.FILLIN.getCode());
+			} else if (IdentityAuditStatus.NOTPASSED.getCode() == oi.getAuditStatus()
+					|| IdentityAuditStatus.PASSED.getCode() == oi.getAuditStatus()) {
+				oi.setProcess(IdentityProcess.RESULTS.getCode());
+			}
+			res.setData(organizationIdentityService.updateOrgDetail(oi));
+		}
+		return res;
+	}
+}

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

@@ -43,4 +43,6 @@ public interface AdminService {
 
 	List<String> selectRoleByPrimaryKey(String aid);
 
+	List<String> listAuditor();
+
 }

+ 5 - 0
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -159,4 +159,9 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 		return adminMapper.selectRoleByPrimaryKey(uid);
 	}
 
+	@Override
+	public List<String> listAuditor() {
+		return userRoleMapper.listAuditor();
+	}
+
 }

+ 2 - 1
src/main/java/com/goafanti/common/constant/AFTConstants.java

@@ -7,6 +7,8 @@ public class AFTConstants {
 
 	public static final String	SUPERADMIN		= "999999";
 
+	public static final String	AUDITORADMIN	= "9999";
+
 	public static final String	PATENTINFO		= "专利申请管理";
 
 	public static final String	COGNIZANCE		= "高企认定管理";
@@ -14,6 +16,5 @@ public class AFTConstants {
 	public static final String	COPYRIGHT		= "软著申请管理";
 
 	public static final String	TECHPROJECT		= "科技项目申报管理";
-	
 
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/UserRoleMapper.java

@@ -21,4 +21,6 @@ public interface UserRoleMapper {
 	int deleteByUserId(String id);
 
 	int insertBatch(Map<String, Object> params);
+
+	List<String> listAuditor();
 }

+ 1 - 1
src/main/java/com/goafanti/common/enums/AttachmentType.java

@@ -12,7 +12,7 @@ public enum AttachmentType {
 	PROPERTY_RIGHT("property_right", "知识产权证书"), ACHIEVEMENT("achievement", "科技成果附件"), RATEPAY("ratepay", "企业纳税申报表"),
 	FINANCE("finance", "企业财务报表"), ROSTER("roster", "企业花名册"), SOCIAL_SECURITY("social_security", "企业社保情况表"), 
 	HONOR("honor", "荣誉及其他证明材料"), LAST_YEAR_RATEPAY("last_year_ratepay", "上年度纳税申报表"), TECH_PROJECT("tech_project", "科技项目申报材料"),
-	STANDARD("standard", "标准制定附件"), MANUSCRIPT("manuscript", "知识产权稿件");
+	STANDARD("standard", "标准制定附件"), MANUSCRIPT("manuscript", "知识产权稿件"), ORGCODE("orgcode", "组织结构代码证"), LICENCE("licence", "营业执照");
 
 	private AttachmentType(String code, String desc) {
 		this.code = code;

+ 1 - 0
src/main/java/com/goafanti/common/enums/NoticeStatus.java

@@ -10,6 +10,7 @@ public enum NoticeStatus {
 	COGNIZANCE(2, "高企认定管理"),
 	COPYRIGHT(3, "软著申请管理"),
 	TECHPROJECT(4, "科技项目申报管理"),
+	CERTIFY(5, "用户认证审核"),
 	OTHER(5, "其他");
 
 	private NoticeStatus(Integer code, String desc) {

+ 22 - 6
src/main/java/com/goafanti/common/mapper/UserMapper.xml

@@ -12,6 +12,7 @@
     <result column="lvl" jdbcType="INTEGER" property="lvl" />
     <result column="type" jdbcType="INTEGER" property="type" />
     <result column="aid" jdbcType="VARCHAR" property="aid" />
+    <result column="mid" jdbcType="VARCHAR" property="mid" />
   </resultMap>
   
   <resultMap type="com.goafanti.user.bo.UserPageHomeBo" id="UserPageHomeBo">
@@ -38,7 +39,7 @@
   
   
   <sql id="Base_Column_List">
-    id, mobile, password, nickname, email, create_time, number, lvl, type, aid
+    id, mobile, password, nickname, email, create_time, number, lvl, type, aid, mid
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     select 
@@ -53,10 +54,12 @@
   <insert id="insert" parameterType="com.goafanti.common.model.User">
     insert into user (id, mobile, password, 
       nickname, email, create_time, 
-      number, lvl, type, aid)
+      number, lvl, type, aid, mid)
     values (#{id,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
       #{nickname,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{number,jdbcType=BIGINT}, #{lvl,jdbcType=INTEGER},#{type,jdbcType=INTEGER}, #{aid,jdbcType=VARCHAR})
+      #{number,jdbcType=BIGINT}, #{lvl,jdbcType=INTEGER},#{type,jdbcType=INTEGER}, #{aid,jdbcType=VARCHAR},
+      #{mid,jdbcType=VARCHAR}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.User">
     insert into user
@@ -91,6 +94,9 @@
       <if test="aid != null">
         aid,
       </if>
+       <if test="mid != null">
+        mid,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -123,6 +129,9 @@
       <if test="aid != null">
         #{aid,jdbcType=VARCHAR},
       </if>
+       <if test="mid != null">
+        #{mid,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.User">
@@ -155,6 +164,9 @@
       <if test="aid != null">
         aid = #{aid,jdbcType=VARCHAR}
       </if>
+      <if test="mid != null">
+        mid = #{mid,jdbcType=VARCHAR}
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -168,7 +180,8 @@
       number = #{number,jdbcType=BIGINT},
       lvl = #{lvl,jdbcType=INTEGER},
       type = #{type,jdbcType=INTEGER},
-      aid = #{aid,jdbcType=VARCHAR}
+      aid = #{aid,jdbcType=VARCHAR},
+      mid = #{mid,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -199,9 +212,11 @@
   
   <select id="findUserListByPage" parameterType="String" resultType="com.goafanti.user.bo.UserListBo">
   	select u.id ,u.mobile, u.email, u.create_time as createTime, 
-  	       u.number , i.aft_username as aftUsername, i.audit_status as auditStatus, a.name as adminName
+  	       u.number , i.aft_username as aftUsername, i.audit_status as auditStatus, a.name as adminName,
+  	       ad.name as managerName
     from user u  
     LEFT JOIN admin a on a.id = u.aid
+    LEFT JOIN admin ad on ad.id = u.mid
     LEFT JOIN user_identity i 
     ON u.id = i.uid  where u.type = 0
     <if test = "mobile != null">
@@ -262,9 +277,10 @@
   <select id="findOrgListByPage" parameterType="String" resultType="com.goafanti.user.bo.OrgListBo">
   select u.id ,u.mobile, u.email, u.create_time as createTime, 
   	       u.number , o.aft_username as aftUsername, o.audit_status as auditStatus, a.name as adminName,
-  	       o.unit_name as unitName
+  	       o.unit_name as unitName, ad.name as managerName
     from user u  
     LEFT JOIN admin a on a.id = u.aid 
+    LEFT JOIN admin ad on ad.id = u.mid
 	LEFT JOIN organization_identity o 
     ON u.id = o.uid 
     WHERE u.type = 1

+ 4 - 0
src/main/java/com/goafanti/common/mapper/UserRoleMapper.xml

@@ -64,4 +64,8 @@
 	  #{item,jdbcType=VARCHAR}  
     </foreach>
   </select>
+  
+  <select id ="listAuditor"  resultType="String">
+    select uid from user_role where rid = 3
+  </select>
 </mapper>

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

@@ -62,6 +62,12 @@ public class User extends BaseModel implements AftUser{
      * 管理员ID
      */
     private String aid;
+    
+    /**
+     * 客户经理ID
+     */
+    private String mid;
+    
 
     public String getId() {
         return id;
@@ -143,6 +149,14 @@ public class User extends BaseModel implements AftUser{
 	public void setAid(String aid) {
 		this.aid = aid;
 	}
+	
+	public String getMid() {
+		return mid;
+	}
+
+	public void setMid(String mid) {
+		this.mid = mid;
+	}
 
 	@JsonIgnore
 	@Override

+ 12 - 0
src/main/java/com/goafanti/user/bo/OrgListBo.java

@@ -28,6 +28,18 @@ public class OrgListBo {
     private String unitName;
     
     private Integer type;
+    
+    private String managerName;
+    
+    
+
+	public String getManagerName() {
+		return managerName;
+	}
+
+	public void setManagerName(String managerName) {
+		this.managerName = managerName;
+	}
 
 	public String getId() {
 		return id;

+ 12 - 0
src/main/java/com/goafanti/user/bo/UserListBo.java

@@ -27,6 +27,8 @@ public class UserListBo {
     
     private String adminName;
     
+    private String managerName;
+    
     
 	public String getId() {
 		return id;
@@ -93,6 +95,16 @@ public class UserListBo {
 	public void setAdminName(String adminName) {
 		this.adminName = adminName;
 	}
+	
+	
+
+	public String getManagerName() {
+		return managerName;
+	}
+
+	public void setManagerName(String managerName) {
+		this.managerName = managerName;
+	}
 
 	//注册时间
 	public String getCreateTimeFormattedDate(){

+ 4 - 1
src/main/java/com/goafanti/user/service/UserIdentityService.java

@@ -18,7 +18,10 @@ public interface UserIdentityService {
 
 	int  saveUserIdentityProcess(Result res, UserIdentity u, String uid);
 
-	int updateUserDetail(UserIdentity userIdentity);
+	int updateUserDetail(UserIdentity userIdentity, String aid, String mid);
+
+	UserIdentity insertByAdmin(UserIdentity ui);
+
 
 
 }

+ 98 - 4
src/main/java/com/goafanti/user/service/impl/UserIdentityServiceImpl.java

@@ -1,5 +1,7 @@
 package com.goafanti.user.service.impl;
 
+import java.util.Calendar;
+import java.util.List;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
@@ -7,19 +9,33 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.dao.NoticeMapper;
 import com.goafanti.common.dao.UserIdentityMapper;
 import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.dao.UserRoleMapper;
+import com.goafanti.common.enums.IdentityAuditStatus;
+import com.goafanti.common.enums.NoticeReadStatus;
+import com.goafanti.common.enums.NoticeStatus;
+import com.goafanti.common.enums.UserLevel;
+import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.User;
 import com.goafanti.common.model.UserIdentity;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.user.bo.UserIdentityBo;
 import com.goafanti.user.service.UserIdentityService;
 
 @Service
 public class UserIdentityServiceImpl implements UserIdentityService{
 	@Autowired
-	UserIdentityMapper userIdentityMapper;
+	private UserIdentityMapper userIdentityMapper;
 	@Autowired
-	UserMapper userMapper;
+	private UserMapper userMapper;
+	@Autowired
+	private UserRoleMapper userRoleMapper;
+	@Autowired
+	private NoticeMapper noticeMapper;
+	
 	
 	@Override
 	public UserIdentity selectUserIdentityByUserId(String uid) {
@@ -69,14 +85,92 @@ public class UserIdentityServiceImpl implements UserIdentityService{
 	}
 
 	@Override
-	public int updateUserDetail(UserIdentity u) {
+	public int updateUserDetail(UserIdentity u, String aid, String mid) {
 		if (null != u.getAuditStatus() && 5 == u.getAuditStatus() && !StringUtils.isBlank(u.getUid())){
 			User user = new User();
 			user.setId(u.getUid());
-			user.setLvl(1);
+			user.setLvl(UserLevel.CERTIFIED.getCode());
 			userMapper.updateByPrimaryKeySelective(user);
 		} 
+		User user = userMapper.selectByPrimaryKey(u.getUid());
+		if (!TokenManager.hasRole(AFTConstants.AUDITORADMIN)){
+			user.setAid(TokenManager.getAdminId());
+			createAuditorNotice(user);
+		} else {
+			if (!StringUtils.isBlank(aid)){
+				user.setAid(aid);
+			}
+			if (!StringUtils.isBlank(mid)){
+				user.setMid(mid);
+			}
+			createNotice(user, u.getAuditStatus());
+		}
+		userMapper.updateByPrimaryKey(user);
 		return userIdentityMapper.updateByPrimaryKeySelective(u);
 	}
 
+	@Override
+	public UserIdentity insertByAdmin(UserIdentity ui) {
+		userIdentityMapper.insert(ui);
+		if (!TokenManager.hasRole(AFTConstants.AUDITORADMIN)){
+			User u = userMapper.selectByPrimaryKey(ui.getUid());
+			u.setAid(TokenManager.getAdminId());
+			userMapper.updateByPrimaryKey(u);
+			createAuditorNotice(u);
+		}
+		return ui;
+	}
+	
+	private void createNotice(User u, Integer status){
+		Notice n = new Notice();
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		n.setId(UUID.randomUUID().toString());
+		n.setCreateTime(now.getTime());
+		n.setReaded(NoticeReadStatus.UNREAD.getCode());
+		n.setPid(u.getAid());
+		
+		n.setAid(u.getAid());
+		String content = NoticeStatus.CERTIFY.getDesc();
+		if (IdentityAuditStatus.UNCOMMITTED.getCode() == status){
+			content = content + " " + IdentityAuditStatus.UNCOMMITTED.getDesc();
+		} else if (IdentityAuditStatus.COMMITTED.getCode() == status){
+			content = content + " " + IdentityAuditStatus.COMMITTED.getDesc();
+		} else if (IdentityAuditStatus.UNPAID.getCode() == status){
+			content = content + " " + IdentityAuditStatus.UNPAID.getDesc();
+		} else if (IdentityAuditStatus.PAID.getCode() == status){
+			content = content + " " + IdentityAuditStatus.PAID.getDesc();
+		} else {
+			content = content + " " + IdentityAuditStatus.NOTPASSED.getDesc();
+		}
+		n.setContent(content);
+		n.setNoticeType(NoticeStatus.CERTIFY.getCode());
+		noticeMapper.insert(n);
+	}
+	
+	//给所有审核员发送审核通知
+	private void createAuditorNotice(User u){
+		List<String> ids = userRoleMapper.listAuditor();
+		if (ids.size() > 0 && null != ids){
+			for (String s : ids){
+				Notice n = new Notice();
+				Calendar now = Calendar.getInstance();
+				now.set(Calendar.MILLISECOND, 0);
+				n.setId(UUID.randomUUID().toString());
+				n.setCreateTime(now.getTime());
+				n.setReaded(NoticeReadStatus.UNREAD.getCode());
+				
+				if (null != u) {
+					n.setPid(u.getAid());
+				}
+				
+				n.setAid(s);
+				n.setContent(NoticeStatus.CERTIFY.getDesc() + " " + IdentityAuditStatus.COMMITTED.getDesc());
+				n.setNoticeType(NoticeStatus.CERTIFY.getCode());
+				noticeMapper.insert(n);
+			}
+		}
+	}
+
+
 }

+ 1 - 1
src/main/webapp/WEB-INF/views/admin/servicesManage/highTechInfo.jsp

@@ -1,7 +1,7 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
 <%@ include file="../../header.jsp"%>
-<title>高企信息汇总页</title>
+<title>高企信息汇总页</title>
 <link href="${staticHost}/admin/servicesManage/highTechInfo.css" rel="stylesheet">
 </head>
 <body>