浏览代码

Merge remote-tracking branch 'origin/dev/one' into dev/one

# Conflicts:
#	user-service/src/main/java/com/diagbot/service/UserService.java
#	user-service/src/main/java/com/diagbot/service/impl/UserServiceImpl.java
zhoutg 6 年之前
父节点
当前提交
7014e1544f

+ 1 - 1
diagbotman-service/src/main/java/com/diagbot/web/DiagLantoneProductController.java

@@ -93,7 +93,7 @@ public class DiagLantoneProductController {
         return RespDTO.onSuc(lantoneProductFacade.opendedProduct(oppendedProductVO));
     }
 
-    @ApiOperation(value = "根据用户id查询当前用户已开通产品[by:wangyu]")
+    @ApiOperation(value = "根据用户id查询当前用户已开通产品[by:zhaops]")
     @PostMapping("/opendedProductByCurrentUser")
     @SysLogger("opendedProductByCurrentUser")
     public RespDTO opendedProductByCurrentUser() {

+ 6 - 6
diagbotman-service/src/main/java/com/diagbot/web/ProductOrderController.java

@@ -65,42 +65,42 @@ public class ProductOrderController {
 	@Autowired
 	private OpenedProductsFacade openedProductsFacade;
 
-	@ApiOperation(value = "控制台-产品认证进度",notes="控制台-产品认证进度")
+	@ApiOperation(value = "控制台-产品认证进度(示例)[by:rengb]",notes="控制台-产品认证进度")
 	@PostMapping("/productAuthProgress")
 	@SysLogger("productAuthProgress")
 	public RespDTO<List<ProductAuthProgressDTO>> productAuthProgress() {
 		return RespDTO.onSuc(productOrderFacade.productAuthProgress());
 	}
 	
-	@ApiOperation(value = "控制台-已开通产品",notes="控制台-已开通产品")
+	@ApiOperation(value = "控制台-已开通产品(示例)[by:rengb]",notes="控制台-已开通产品")
 	@PostMapping("/getConsoleOpened")
 	@SysLogger("getConsoleOpened")
 	public RespDTO<List<GetConsoleOpenedDTO>> getConsoleOpened() {
 		return RespDTO.onSuc(openedProductsFacade.getConsoleOpened());
 	}
 	
-	@ApiOperation(value = "控制台-可试用产品",notes="控制台-可试用产品")
+	@ApiOperation(value = "控制台-可试用产品(示例)[by:rengb]",notes="控制台-可试用产品")
 	@PostMapping("/getConsoleOnTrial")
 	@SysLogger("getConsoleOnTrial")
 	public RespDTO<List<GetConsoleOnTrialDTO>> getConsoleOnTrial() {
 		return RespDTO.onSuc(openedProductsFacade.getConsoleOnTrial());
 	}
 	
-	@ApiOperation(value = "控制台-产品立即试用接口",notes="控制台-产品立即试用接口")
+	@ApiOperation(value = "控制台-产品立即试用接口(示例)[by:rengb]",notes="控制台-产品立即试用接口")
 	@PostMapping("/openUpOnTrial")
 	@SysLogger("openUpOnTrial")
 	public RespDTO<OpenUpOnTrialDTO> openUpOnTrial(OpenUpOnTrialVO openUpOnTrialVO) {
 		return RespDTO.onSuc(openedProductsFacade.openUpOnTrial(openUpOnTrialVO));
 	}
 	
-	@ApiOperation(value = "控制台-可展示的选项卡",notes="控制台-可展示的选项卡")
+	@ApiOperation(value = "控制台-可展示的选项卡(示例)[by:rengb]",notes="控制台-可展示的选项卡")
 	@PostMapping("/enShowOption")
 	@SysLogger("enShowOption")
 	public RespDTO<EnShowOptionDTO> enShowOption() {
 		return RespDTO.onSuc(openedProductsFacade.enShowOption());
 	}
 	
-	@ApiOperation(value = "控制台-待审核订单个数",notes="控制台-待审核订单个数")
+	@ApiOperation(value = "控制台-待审核订单个数(示例)[by:rengb]",notes="控制台-待审核订单个数")
 	@PostMapping("/waitExamOrderCou")
 	@SysLogger("waitExamOrderCou")
 	public RespDTO<WaitExamOrderCouDTO> waitExamOrderCou() {

+ 3 - 3
diagbotman-service/src/main/java/com/diagbot/web/ProductServiceController.java

@@ -33,7 +33,7 @@ public class ProductServiceController {
     @Autowired
     private ProductServiceFacade productServiceFacade;
 
-    @ApiOperation(value = "服务端关联到产品接口",
+    @ApiOperation(value = "服务端关联到产品接口[by:zhaops]",
             notes = "productId:产品Id,必填<br>" +
                     "serviceId:服务Id,必填<br> " +
                     "type:令牌类型,必填<br> ")
@@ -45,7 +45,7 @@ public class ProductServiceController {
         return RespDTO.onSuc(productServiceDTO);
     }
 
-    @ApiOperation(value = "删除产品服务端",
+    @ApiOperation(value = "删除产品服务端[by:zhaops]",
             notes = "productId:产品Id,必填<br>" +
                     "serviceId:服务Id,必填<br> " +
                     "type:令牌类型,必填<br> ")
@@ -57,7 +57,7 @@ public class ProductServiceController {
         return RespDTO.onSuc(isSuccess);
     }
 
-    @ApiOperation(value = "根据用户id获取产品服务关联信息", notes = "根据用户id获取产品服务关联信息")
+    @ApiOperation(value = "根据用户id获取产品服务关联信息[by:zhaops]", notes = "根据用户id获取产品服务关联信息")
     @PostMapping("/getProductServiceByCurrentUser")
     @SysLogger("getProductServiceByCurrentUser")
     public RespDTO getProductServiceByCurrentUser(Page page) {

+ 4 - 4
diagbotman-service/src/main/java/com/diagbot/web/ServiceInfoController.java

@@ -37,7 +37,7 @@ public class ServiceInfoController {
     @Autowired
     private ServiceInfoFacade serviceInfoFacade;
 
-    @ApiOperation(value = "新增服务",
+    @ApiOperation(value = "新增服务[by:zhaops]",
             notes = "name:产品名称,必填<br>" +
                     "description:产品简介,必填<br> ")
     @PostMapping("/createService")
@@ -48,7 +48,7 @@ public class ServiceInfoController {
         return RespDTO.onSuc(serviceInfo);
     }
 
-    @ApiOperation(value = "修改服务",
+    @ApiOperation(value = "修改服务[by:zhaops]",
             notes = "id:id,必填<br>" +
                     "name:产品名称,必填<br>" +
                     "description:产品简介,必填<br> " +
@@ -61,7 +61,7 @@ public class ServiceInfoController {
         return RespDTO.onSuc(isSuccess);
     }
 
-    @ApiOperation(value = "获取当前登录用户的服务列表")
+    @ApiOperation(value = "获取当前登录用户的服务列表[by:zhaops]")
     @PostMapping("/getServiceListByCurrentUser")
     @SysLogger("getServiceListByCurrentUser")
     @Transactional
@@ -70,7 +70,7 @@ public class ServiceInfoController {
         return RespDTO.onSuc(list);
     }
 
-    @ApiOperation(value = "获取当前登录用户的服务分页列表")
+    @ApiOperation(value = "获取当前登录用户的服务分页列表[by:zhaops]")
     @PostMapping("/getServiceListPageByCurrentUser")
     @SysLogger("getServiceListPageByCurrentUser")
     @Transactional

+ 4 - 4
diagbotman-service/src/main/java/com/diagbot/web/ServiceTokenController.java

@@ -48,7 +48,7 @@ public class ServiceTokenController {
         return serviceTokenFacade.hasPermission(serviceTokenVo);
     }
 
-    @ApiOperation(value = "生成令牌",
+    @ApiOperation(value = "生成令牌[by:zhaops]",
             notes = "productId:产品Id,必填<br>" +
                     "serviceId:服务Id,必填<br> ")
     @PostMapping("/createServiceToken")
@@ -59,7 +59,7 @@ public class ServiceTokenController {
         return RespDTO.onSuc(productServiceDTO);
     }
 
-    @ApiOperation(value = "令牌禁用",
+    @ApiOperation(value = "令牌禁用[by:zhaops]",
             notes = "productServiceId:产品服务id,必填<br>")
     @PostMapping("/disableToken")
     @SysLogger("disableToken")
@@ -69,7 +69,7 @@ public class ServiceTokenController {
         return RespDTO.onSuc(count);
     }
 
-    @ApiOperation(value = "令牌启用",
+    @ApiOperation(value = "令牌启用[by:zhaops]",
             notes = "productServiceId:产品服务id,必填<br>")
     @PostMapping("/enableToken")
     @SysLogger("enableToken")
@@ -79,7 +79,7 @@ public class ServiceTokenController {
         return RespDTO.onSuc(count);
     }
 
-    @ApiOperation(value = "令牌删除",
+    @ApiOperation(value = "令牌删除[by:zhaops]",
             notes = "productServiceId:产品服务id,必填<br>")
     @PostMapping("/deleteTokenByProductServiceId")
     @SysLogger("deleteTokenByProductServiceId")

+ 11 - 0
user-service/pom.xml

@@ -200,7 +200,18 @@
             <version>3.3.1</version>
             <scope>compile</scope>
         </dependency>
+        <!--POI-->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>4.0.0</version>
+        </dependency>
 
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>4.0.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 58 - 0
user-service/src/main/java/com/diagbot/dto/UserInfoExportDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import lombok.Getter;
+import lombok.Setter;
+
+
+/**
+ * 
+ * @Description: 导出类
+ * @author wangfeng
+ * @date 2018年9月25日 上午11:08:24
+ */
+@Setter
+@Getter
+public class UserInfoExportDTO {
+	private static final long serialVersionUID = 1L;
+    private Long userId;//用户ID
+    private Date userGmtCreate;//记录创建时间
+    private String userName;// 用户名
+    private String linKman;//联系人
+    private String email;// 邮箱
+    private Long orgId;//机构ID
+    private Date orgGmtCreate;//记录创建时间
+    private String orgName;//机构名称
+    private Integer orgType;//机构属性
+    private String orgPrincipal;//负责人
+    private String orgAddress;//机构地址
+    private Long orgParentId;//上级机构id
+    private Integer orgSubNum;//下属机构数量
+    private String autPosition;//岗位信息
+    private Integer autIsReject;//是否通过认证 N:未通过,Y:已通过
+    private Integer autStatus;//认证状态
+    
+    public UserInfoExportDTO(Long userId, Date userGmtCreate, String userName, String linKman, String email, Long orgId,
+			String orgName, Integer orgType, String orgPrincipal, String orgAddress, Long orgParentId,
+			Integer orgSubNum, String autPosition, Integer autIsReject, Integer autStatus) {
+		this.userId = userId;
+		this.userGmtCreate=userGmtCreate;
+		this.userName=userName;
+		this.linKman=linKman;
+		this.email=email;
+		this.orgId=orgId;
+		this.orgName=orgName;
+		this.orgType=orgType;
+		this.orgPrincipal=orgPrincipal;
+		this.orgAddress=orgAddress;
+		this.orgParentId=orgParentId;
+		this.orgSubNum=orgSubNum;
+		this.autPosition=autPosition;
+		this.autIsReject=autIsReject;
+		this.autStatus=autStatus;
+	}
+}

+ 6 - 2
user-service/src/main/java/com/diagbot/mapper/UserMapper.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserInfoExportDTO;
 import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.User;
+import com.diagbot.vo.UserExportVO;
 import com.diagbot.vo.UserInfoOrganizationsVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -30,9 +32,9 @@ public interface UserMapper extends BaseMapper<User> {
 
     IPage<UserInfoDTO> selectUserInfoListPage(Page page,@Param("userInfo") UserInfoDTO userInfo);
     
-    public Integer updateUserInfoAll(@Param("userMap") Map<String, Object> userMap);
+    public boolean updateUserInfoAll(@Param("userMap") Map<String, Object> userMap);
     
-    public Integer updateDeleted(@Param("map") Map<String,Object> map);
+    public boolean updateDeleted(@Param("map") Map<String,Object> map);
 
     public List<User> getByIds(List<Long> ids);
 
@@ -41,6 +43,8 @@ public interface UserMapper extends BaseMapper<User> {
     public boolean auditUserInfoAll(@Param("auditMap") Map<String,Object> auditMap);
     
     public Integer updateById(Map<String,String> map);
+    
+    public List<UserInfoExportDTO> dependentuserInfoByTime(@Param("userExport") Map<String,Object> map);
 
     public List<User> getUserByOrgName(String orgName);
 

+ 7 - 2
user-service/src/main/java/com/diagbot/service/UserService.java

@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserInfoExportDTO;
 import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.User;
 
 import java.util.List;
 import java.util.Map;
 
+import org.apache.ibatis.annotations.Param;
+
 /**
  * <p>
  *  服务类
@@ -26,9 +29,9 @@ public interface UserService extends IService<User> {
     
     public IPage<UserInfoDTO>  selectUserInfoListPage(Page<UserInfoDTO> page,UserInfoDTO userInfo);
     
-    public Integer updateUserInfoAll(Map<String, Object> userMap);
+    public boolean updateUserInfoAll(Map<String, Object> userMap);
 
-	Integer updateDeleted(Map<String,Object> map);
+    boolean updateDeleted(Map<String,Object> map);
 
     IPage<User> indexPage(Page<User> page, User user);
 
@@ -38,5 +41,7 @@ public interface UserService extends IService<User> {
 
     public boolean auditUserInfoAll(Map<String,Object> auditMap);
 
+    public List<UserInfoExportDTO> dependentuserInfoByTime(Map<String,Object> map);
+
     public List<User> getUserByOrgName(String orgName);
 }

+ 9 - 2
user-service/src/main/java/com/diagbot/service/impl/UserServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserInfoExportDTO;
 import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.entity.User;
 import com.diagbot.mapper.UserMapper;
@@ -43,12 +44,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     }
 
 	@Override
-	public Integer  updateUserInfoAll(Map<String, Object> userMap) {
+	public boolean  updateUserInfoAll(Map<String, Object> userMap) {
 		return baseMapper.updateUserInfoAll(userMap);
 		
 	}
 	@Override
-	public Integer updateDeleted(Map<String,Object> map){
+	public boolean updateDeleted(Map<String,Object> map){
 		return baseMapper.updateDeleted(map);
 		
 	}
@@ -73,6 +74,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 	    return baseMapper.auditUserInfoAll(auditMap);
     }
 
+	@Override
+	public List<UserInfoExportDTO> dependentuserInfoByTime(Map<String, Object> map) {
+
+		return baseMapper.dependentuserInfoByTime(map);
+	}
+
     @Override
     public List<User> getUserByOrgName(String orgName) {
         return baseMapper.getUserByOrgName(orgName);

+ 153 - 0
user-service/src/main/java/com/diagbot/util/ExportBeanExcelUtil.java

@@ -0,0 +1,153 @@
+package com.diagbot.util;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+
+import com.diagbot.dto.RespDTO;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+
+@SuppressWarnings( { "deprecation" })
+	public class ExportBeanExcelUtil<T> {
+	    private final String MSG_SUCCESS = "操作成功!";
+	    private final String MSG_ERROR = "操作失败!";
+
+		    /**
+		     * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出
+		     *
+		     * title         表格标题名
+		     * headersName  表格属性列名数组
+		     * headersId    表格属性列名对应的字段---你需要导出的字段名(为了更灵活控制你想要导出的字段)
+		     *  dtoList     需要显示的数据集合,集合中一定要放置符合javabean风格的类的对象
+		     *  out         与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中
+		     */
+		    public   RespDTO exportExcel(String title, List<String> headersName,List<String> headersId,
+		                            List<T> dtoList,String lujing,String fileName) {
+		        /*(一)表头--标题栏*/
+		        Map<Integer, String> headersNameMap = new HashMap<>();
+		        int key=0;
+		        for (int i = 0; i < headersName.size(); i++) {
+		            if (!headersName.get(i).equals(null)) {
+		                headersNameMap.put(key, headersName.get(i));
+		                key++;
+		            }
+		        }
+		        /*(二)字段*/
+		        Map<Integer, String> titleFieldMap = new HashMap<>();
+		        int value = 0;
+		        for (int i = 0; i < headersId.size(); i++) {
+		            if (!headersId.get(i).equals(null)) {
+		                titleFieldMap.put(value, headersId.get(i));
+		                value++;
+		            }
+		        }
+		        /* (三)声明一个工作薄:包括构建工作簿、表格、样式*/
+		        HSSFWorkbook wb = new HSSFWorkbook();
+		        HSSFSheet sheet = wb.createSheet(title);
+		        sheet.setDefaultColumnWidth((short)15);
+		        // 生成一个样式
+		        HSSFCellStyle style = wb.createCellStyle();
+		        HSSFRow row = sheet.createRow(0);
+		        style.setAlignment(HorizontalAlignment.CENTER);
+		        HSSFCell cell;
+		        Collection c = headersNameMap.values();//拿到表格所有标题的value的集合
+		        Iterator<String> it = c.iterator();//表格标题的迭代器
+		        /*(四)导出数据:包括导出标题栏以及内容栏*/
+		        //根据选择的字段生成表头
+		        short size = 0;
+		        while (it.hasNext()) {
+		            cell = row.createCell(size);
+		            cell.setCellValue(it.next().toString());
+		            cell.setCellStyle(style);
+		            size++;
+		        }
+		        //表格标题一行的字段的集合
+		        Collection zdC = titleFieldMap.values();
+		        Iterator<T> labIt = dtoList.iterator();//总记录的迭代器
+		        int zdRow =0;//列序号
+		        while (labIt.hasNext()) {//记录的迭代器,遍历总记录
+		            int zdCell = 0;
+		            zdRow++;
+		            row = sheet.createRow(zdRow);
+		            T l = (T) labIt.next();
+		            // 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值
+		            Field[] fields = l.getClass().getDeclaredFields();//获得JavaBean全部属性
+		            for (short i = 0; i < fields.length; i++) {//遍历属性,比对
+		                Field field = fields[i];
+		                String fieldName = field.getName();//属性名
+		                Iterator<String> zdIt = zdC.iterator();//一条字段的集合的迭代器
+		                while (zdIt.hasNext()) {//遍历要导出的字段集合
+		                    if (zdIt.next().equals(fieldName)) {//比对JavaBean的属性名,一致就写入,不一致就丢弃
+		                        String getMethodName = "get"
+		                                + fieldName.substring(0, 1).toUpperCase()
+		                                + fieldName.substring(1);//拿到属性的get方法
+		                        Class tCls = l.getClass();//拿到JavaBean对象
+		                        try {
+		                            Method getMethod = tCls.getMethod(getMethodName,
+		                                    new Class[] {});//通过JavaBean对象拿到该属性的get方法,从而进行操控
+		                            Object val = getMethod.invoke(l, new Object[] {});//操控该对象属性的get方法,从而拿到属性值
+		                            String textVal = null;
+		                            if (val!= null) {
+		                                textVal = String.valueOf(val);//转化成String
+		                            }else{
+		                                textVal = null;
+		                            }
+		                            row.createCell((short) zdCell).setCellValue(textVal);//写进excel对象
+		                            zdCell++;
+		                        } catch (SecurityException e) {
+		                            e.printStackTrace();
+		                        } catch (IllegalArgumentException e) {
+		                            e.printStackTrace();
+		                        } catch (NoSuchMethodException e) {
+		                            e.printStackTrace();
+		                        } catch (IllegalAccessException e) {
+		                            e.printStackTrace();
+		                        } catch (InvocationTargetException e) {
+		                            e.printStackTrace();
+		                        }
+		                    }
+		                }
+		            }
+		        }
+		        RespDTO resultMode = new RespDTO();
+		        try {
+		        	
+		        	 
+		            FileOutputStream exportXls = new FileOutputStream(lujing+fileName+".xls");
+		            wb.write(exportXls);
+		            exportXls.close();
+/*		            resultMode.setResult(true);
+		            resultMode.setMessage(MSG_SUCCESS);*/
+		            resultMode.onSuc(MSG_SUCCESS);
+		            System.out.println("导出成功!");
+		        } catch (FileNotFoundException e) {
+/*		            System.out.println("导出失败!");
+		            resultMode.setResult(false);
+			        resultMode.setMessage(MSG_ERROR);*/
+		        	 resultMode.onSuc(MSG_ERROR);
+		            e.printStackTrace();
+		        } catch (IOException e) {
+		        	 resultMode.onSuc(MSG_ERROR);
+		            System.out.println("导出失败!");
+		            e.printStackTrace();
+		        }
+		        
+		        return resultMode;
+		    }
+}

+ 23 - 0
user-service/src/main/java/com/diagbot/vo/UserExportVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import java.text.SimpleDateFormat;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @Description: 导出功能传参
+ * @author wangfeng
+ * @date 2018年9月25日 上午10:41:08
+ */
+@Getter
+@Setter
+public class UserExportVO {
+	
+	private String startTime;
+	private String endTime;
+	private String filePath;//文件路径
+    private String fileName;//文件名
+
+}

+ 142 - 0
user-service/src/main/java/com/diagbot/web/ReportFormController.java

@@ -0,0 +1,142 @@
+package com.diagbot.web;
+
+import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.dto.UserInfoExportDTO;
+import com.diagbot.facade.UserFacade;
+import com.diagbot.util.ExportBeanExcelUtil;
+import com.diagbot.vo.UserExportVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 
+ * @Description: 客户中心导出功能
+ * @author wangfeng
+ * @date 2018年9月25日 上午9:45:56
+ */
+@RestController
+@Api(value = "客户中心导出功能API", tags = { "客户中心导出功能API" })
+@RequestMapping("/report")
+@SuppressWarnings("unchecked")
+public class ReportFormController {
+	
+	@Autowired
+	private UserFacade userFacade;
+	
+	@ApiOperation(value = "导出用户信息和机构信息:[by:wangfeng]", notes = "根据时间 导出用户信息和机构信息")
+	@PostMapping("/exportUserInfo")
+	@SysLogger("/exportUserInfo")
+	@Transactional
+	public RespDTO export(final HttpServletRequest request, final HttpServletResponse response,UserExportVO userExportVO)
+			throws Exception {
+		Map<String, Object> userMap = new HashMap<String, Object>();
+		userMap.put("startTime", userExportVO.getStartTime());
+		userMap.put("endTime", userExportVO.getEndTime());
+		List<UserInfoExportDTO> datas = userFacade.dependentuserInfoByTime(userMap);
+		List<String> listName = new ArrayList<>();
+
+		listName.add("用户id");
+		listName.add("记录创建时间");
+		listName.add("用户名");
+		listName.add("联系人");
+		listName.add("邮箱");
+		listName.add("机构ID");
+		listName.add("机构名称");
+		listName.add("机构属性");
+		listName.add("负责人");
+		listName.add("机构地址");
+		listName.add("上级机构id");
+		listName.add("下属机构数量");
+		listName.add("岗位信息");
+		listName.add("是否通过认证 ");
+		listName.add("认证状态");
+		
+		List<String> listId = new ArrayList<>();
+		listId.add("userId");//用户ID
+		listId.add("userGmtCreate");//记录创建时间
+		listId.add("userName");// 用户名
+		listId.add("linKman");//联系人
+		listId.add("email");// 邮箱
+		listId.add("orgId");//机构ID
+		//listId.add("orgGmtCreate");//记录创建时间
+		listId.add("orgName");//机构名称
+		listId.add("orgType");//机构属性
+		listId.add("orgPrincipal");//负责人
+        listId.add("orgAddress");//机构地址
+        listId.add("orgParentId");//上级机构id
+        listId.add("orgSubNum");//下属机构数量
+        listId.add("autPosition");//岗位信息
+        listId.add("autIsReject");//是否通过认证 N:未通过,Y:已通过
+        listId.add("autStatus");//认证状态
+		
+		List<UserInfoExportDTO> list = new ArrayList<>();
+		for (int i = 0; i < datas.size(); i++) {
+			UserInfoExportDTO userInfo = datas.get(i); 
+			list.add(new UserInfoExportDTO(userInfo.getUserId(),
+					userInfo.getUserGmtCreate(),
+					userInfo.getUserName(),
+					userInfo.getLinKman(),
+					userInfo.getEmail(),
+					userInfo.getOrgId(),
+					userInfo.getOrgName(),
+					userInfo.getOrgType(),
+					userInfo.getOrgPrincipal(),
+					userInfo.getOrgAddress(),
+					userInfo.getOrgParentId(),
+					userInfo.getOrgSubNum(),
+					userInfo.getAutPosition(),
+					userInfo.getAutIsReject(),
+					userInfo.getAutStatus()));
+		}
+		response.setContentType("text/html;charset=UTF-8");
+		String filePath =userExportVO.getFilePath();//文件路径
+		SimpleDateFormat df = new SimpleDateFormat();//设置日期格式
+        System.out.println();// new Date()为获取当前系统时间
+		String fileName = userExportVO.getFileName();//文件名
+		ExportBeanExcelUtil ex = new ExportBeanExcelUtil();
+		RespDTO resul = ex.exportExcel("测试POI导出EXCEL文档", listName, listId, list,filePath,fileName);
+		 return resul;
+	}
+
+	// 发送响应流方法
+	public void setResponseHeader(HttpServletResponse response, String fileName) {
+		try {
+			try {
+				fileName = new String(fileName.getBytes(), "ISO8859-1");
+			} catch (UnsupportedEncodingException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			response.setContentType("application/octet-stream;charset=ISO8859-1");
+			response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+			response.addHeader("Pargam", "no-cache");
+			response.addHeader("Cache-Control", "no-cache");
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		}
+	}
+
+}

+ 5 - 5
user-service/src/main/java/com/diagbot/web/UserAuthenticationController.java

@@ -37,7 +37,7 @@ public class UserAuthenticationController {
     private UserAuthenticationFacade userAuthenticationFacade;
 
 
-    @ApiOperation(value = "用户认证",
+    @ApiOperation(value = "用户认证[by:zhaops]",
             notes = "userName:用户名,必填<br>" +
                     "organization:组织机构,必填<br>")
     @PostMapping("/userAuthentication")
@@ -48,7 +48,7 @@ public class UserAuthenticationController {
         return RespDTO.onSuc(userAuthenticationDTO);
     }
 
-    @ApiOperation(value = "获取当前用户信息")
+    @ApiOperation(value = "获取当前用户信息[by:zhaops]")
     @PostMapping("/getuserAuthenticationInfo")
     @SysLogger("getuserAuthenticationInfo")
     public RespDTO<UserAuthenticationDTO> getuserAuthenticationInfo() {
@@ -56,7 +56,7 @@ public class UserAuthenticationController {
         return RespDTO.onSuc(userAuthenticationDTO);
     }
 
-    @ApiOperation(value = "获取当前用户认证状态")
+    @ApiOperation(value = "获取当前用户认证状态[by:zhaops]")
     @PostMapping("/getUserAuthenticationStatus")
     @SysLogger("getUserAuthenticationStatus")
     public RespDTO<Map<Integer, Object>> getUserAuthenticationStatus() {
@@ -64,14 +64,14 @@ public class UserAuthenticationController {
         return RespDTO.onSuc(map);
     }
     
-	@ApiOperation(value = "控制台-账号认证进度",notes="控制台-账号认证进度")
+    @ApiOperation(value = "控制台-账号认证进度(示例)[by:rengb]",notes="控制台-账号认证进度")
 	@PostMapping("/queryAuthProgress")
 	@SysLogger("queryAuthProgress")
 	public RespDTO<QueryAuthProgressDTO> queryAuthProgress() {
 		return RespDTO.onSuc(userAuthenticationFacade.queryAuthProgress());
 	}
 	
-	@ApiOperation(value = "控制台-待认证账号数量",notes="控制台-待认证账号数量")
+	@ApiOperation(value = "控制台-待认证账号数量(示例)[by:rengb]",notes="控制台-待认证账号数量")
 	@PostMapping("/waitAuthen")
 	@SysLogger("waitAuthen")
 	public RespDTO<WaitAuthenDTO> waitAuthen() {

+ 1 - 1
user-service/src/main/java/com/diagbot/web/UserController.java

@@ -233,7 +233,7 @@ public class UserController {
         return RespDTO.onSuc(userFacade.removeById(id));
     }
     
-    @ApiOperation(value = "控制台账户信息", notes="控制台账户信息")
+    @ApiOperation(value = "控制台账户信息(示例)[by:rengb]", notes="控制台账户信息")
 	@PostMapping("/getConsoleUserInfo")
 	@SysLogger("getConsoleUserInfo")
 	public RespDTO<GetConsoleUserInfoDTO> getConsoleUserInfo() {

+ 27 - 23
user-service/src/main/java/com/diagbot/web/UserInfoController.java

@@ -9,6 +9,8 @@ import com.diagbot.entity.Organization;
 import com.diagbot.entity.User;
 import com.diagbot.entity.UserAuthentication;
 import com.diagbot.entity.UserOrganization;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.facade.OrganizationFacade;
 import com.diagbot.facade.UserAuthenticationFacade;
 import com.diagbot.facade.UserFacade;
@@ -42,7 +44,7 @@ import java.util.Map;
  * @time: 2018年9月17日 下午1:53:53
  */
 @RestController
-@Api(value = "用户信息和机构信息API", tags = { "用户信息和机构信息API" })
+@Api(value = "用户信息和机构信息API[by:wangfeng]", tags = { "用户信息和机构信息API" })
 @RequestMapping("/userInfo")
 @SuppressWarnings("unchecked")
 public class UserInfoController {
@@ -56,7 +58,7 @@ public class UserInfoController {
 	@Autowired
 	UserAuthenticationFacade userAuthenticationFacade;
 
-	@ApiOperation(value = "分页查询获取用户信息", notes = "根据每页显示条数,默认 10,和当前页")
+	@ApiOperation(value = "分页查询获取用户信息[by:wangfeng]", notes = "根据每页显示条数,默认 10,和当前页")
 	@PostMapping("/getUserInfoPag")
 	@SysLogger("getUserInfoPag")
 	// @ApiIgnore
@@ -68,7 +70,7 @@ public class UserInfoController {
 		return RespDTO.onSuc(user);
 	}
 
-	@ApiOperation(value = "修改用户信息和机构信息", notes = "用户信息和机构信息")
+	@ApiOperation(value = "修改用户信息和机构信息[by:wangfeng]", notes = "用户信息和机构信息")
 	@PostMapping("/updateUserInfoAll")
 	@SysLogger("updateUserInfoAll")
 	@Transactional
@@ -83,19 +85,18 @@ public class UserInfoController {
 		userMap.put("type", userInfoOrganizationsVO.getType());
 		userMap.put("position", userInfoOrganizationsVO.getPosition());
 		userMap.put("userId", userInfoOrganizationsVO.getUserId());
-		int res = userFacade.updateUserInfoAll(userMap);
-
-		if (res != 0) {
-			return RespDTO.onSuc("修改用户信息成功!");
+		boolean res = userFacade.updateUserInfoAll(userMap);
+		if (!res){
+			throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
 		}
-		return RespDTO.onSuc("修改用户信息失败!");
+		return RespDTO.onSuc(res);
 	}
 
-	@ApiOperation(value = "审核用户信息和机构信息", notes = "审核用户信息和机构信息")
+	@ApiOperation(value = "审核用户信息和机构信息[by:wangfeng]", notes = "审核用户信息和机构信息")
 	@PostMapping("/auditUserInfoAll")
 	@SysLogger("auditUserInfoAll")
 	@Transactional
-	public RespDTO<UserInfoAuditVO> auditUserInfoAll(@Valid @RequestBody UserInfoAuditVO userInfoAuditVO) {
+	public RespDTO<Boolean> auditUserInfoAll(@Valid @RequestBody UserInfoAuditVO userInfoAuditVO) {
 		Map<String, Object> auditMap = new HashMap<String, Object>();
 		auditMap.put("userId", userInfoAuditVO.getUserId());
 		auditMap.put("modifier",UserUtils.getCurrentPrincipleID());
@@ -106,13 +107,13 @@ public class UserInfoController {
 		// TODO 审核前先验证该用户的的认证状态
 		boolean res = userFacade.auditUserInfoAll(auditMap);
 
-		if (res == true) {
-			return RespDTO.onSuc("审核通过!");
+		if (!res){
+			throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
 		}
-		return RespDTO.onSuc("审核失败!");
+		return RespDTO.onSuc(res);
 	}
 
-	@ApiOperation(value = "删除用户信息和机构信息", notes = "用户信息和机构信息")
+	@ApiOperation(value = "删除用户信息和机构信息[by:wangfeng]", notes = "用户信息和机构信息")
 	@PostMapping("/updateDeleted")
 	@SysLogger("updateDeleted")
 	@Transactional
@@ -121,11 +122,14 @@ public class UserInfoController {
 		map.put("userId", userId);
 		map.put("modifier",UserUtils.getCurrentPrincipleID());
 		map.put("gmtModified", DateUtil.now());
-		int res = userFacade.updateDeleted(map);
-		return RespDTO.onSuc("刪除成功" + res);
+		boolean res = userFacade.updateDeleted(map);
+		if (!res){
+			throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+		}
+		return RespDTO.onSuc(res);
 	}
 
-	@ApiOperation(value = "模糊查询机构信息", notes = "机构信息")
+	@ApiOperation(value = "模糊查询机构信息[by:wangfeng]", notes = "机构信息")
 	@PostMapping("/findOrganization")
 	@SysLogger("findOrganization")
 	public RespDTO findOrganization(@RequestParam String organizationName) {
@@ -135,11 +139,11 @@ public class UserInfoController {
 		return RespDTO.onSuc(organization);
 	}
 
-	@ApiOperation(value = "添加构信息", notes = "机构信息")
+	@ApiOperation(value = "添加构信息[by:wangfeng]", notes = "机构信息")
 	@PostMapping("/addOrganization")
 	@SysLogger("addOrganization")
 	@Transactional
-	public RespDTO<OrganizationVO> addOrganization(@Valid @RequestBody OrganizationVO organizationVO) {
+	public RespDTO<Boolean> addOrganization(@Valid @RequestBody OrganizationVO organizationVO) {
 
 		String organizationName = organizationVO.getOrganizationName();
 		List<Organization> organizationList = organizationFacade.findOrganization(organizationName);
@@ -159,13 +163,13 @@ public class UserInfoController {
 		boolean res = organizationFacade.save(organization);
 
 		// System.out.println(GsonUtil.toJson(organization));
-		if (res == true) {
-			return RespDTO.onSuc("增加机构信息成功!");
+		if (!res){
+			throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
 		}
-		return RespDTO.onSuc("增加机构信息失败!");
+		return RespDTO.onSuc(res);
 	}
 
-	@ApiOperation(value = "添加用户信息和机构信息管理员", notes = "用户信息和机构信息的绑定")
+	@ApiOperation(value = "添加用户信息和机构信息管理员[by:wangfeng]", notes = "用户信息和机构信息的绑定")
 	@PostMapping("/addUserInfo")
 	@SysLogger("addUserInfo")
 	@Transactional

+ 36 - 0
user-service/src/main/resources/mapper/UserMapper.xml

@@ -242,5 +242,41 @@
 
 </update>
 
+<select id="dependentuserInfoByTime" parameterType="java.util.Map" resultType="com.diagbot.dto.UserInfoExportDTO" >
 
+	SELECT
+	u.id AS userId,
+	u.gmt_create AS userGmtCreate,
+	u.username AS userName,
+	u.linkman AS linKman,
+	u.email AS email,
+	org.id AS orgId,
+	org.gmt_create AS orgGmtCreate,
+	org.name AS orgName,
+	org.type,
+	org.principal AS orgPrincipal,
+	org.address,
+	org.parent_id,
+	org.sub_num,
+	aut.position,
+	aut.is_reject,
+	aut.status
+	FROM sys_user u
+	LEFT JOIN sys_user_organization uorg ON u.id = uorg.user_id
+	LEFT JOIN sys_organization org ON uorg.organization_id = org.id
+	LEFT JOIN sys_user_authentication aut ON u.id = aut.user_id
+	WHERE 
+	u.is_deleted = 'N' 
+	AND u.TYPE = "0" 
+    <if test="userExport.orgName != null">
+	   AND org.name LIKE CONCAT('%', #{userInfo.orgName}, '%') 
+	</if>
+	<if test="userExport.autStatus != null">
+	   AND aut.status = #{userInfo.autStatus}  
+	</if> 
+	<if test="userExport.startTime != null and userExport.endDate != null">
+	AND u.gmt_create BETWEEN #{userExport.startTime} and #{userExport.endTime}
+	</if>
+	ORDER BY u.gmt_create DESC
+</select>
 </mapper>