server/src/main/java/com/doumee/api/business/WorkorderController.java
@@ -80,6 +80,6 @@ @GetMapping("/{id}") @RequiresPermissions("business:workorder:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(workorderService.getDetail(id)); return ApiResponse.success(workorderService.getDetail(id,null)); } } server/src/main/java/com/doumee/api/common/PublicCloudController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,363 @@ package com.doumee.api.common; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.doumee.api.BaseController; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.FtpUtil; import com.doumee.dao.system.model.SystemDictData; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.*; /** * @author Eva.Caesar Liu * @date 2023/02/14 11:14 */ @Api(tags = "å ¬å ±ä¸ä¼ æ¥å£") @Trace(exclude = true) @RestController @RequestMapping("/web/public") @Slf4j public class PublicCloudController extends BaseController { @Autowired private SystemDictDataBiz systemDictDataBiz; public static FtpUtil ftp = null; @ApiOperation(value = "æ¹éä¸ä¼ æä»¶å°FTP") @RequestMapping(method= RequestMethod.POST,value="/uploadBatch") @ResponseBody public void uploadBatch(HttpServletRequest request, HttpServletResponse response, String folder) throws Exception { if(Objects.isNull(folder)){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } SystemDictData folderData = systemDictDataBiz.queryByCode(Constants.FTP,folder); if(Objects.isNull(folderData)||StringUtils.isBlank(folderData.getCode())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç®æ æä»¶å¤¹é误"); } folder = systemDictDataBiz.queryByCode(Constants.FTP,folder).getCode(); String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode(); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); Map<String, Object> context = new HashMap<>(); try { if(ftp == null){ ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(), Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()), systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(), systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode()); }else{ ftp.connect(); } context.put("success", true); context.put("code", 200); context.put("errno",0); CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver(); if (multipartResovler.isMultipart(request)) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List<MultipartFile> fileList = multipartRequest.getFiles("file"); Iterator<String> it = multipartRequest.getFileNames(); JSONArray jsonArray = new JSONArray(); if (fileList.size() > 0) { //éåæä»¶å表 Iterator<MultipartFile> fileIte = fileList.iterator(); Integer index = Constants.ONE; while (fileIte.hasNext()) { //è·å¾æ¯ä¸ä¸ªæä»¶ MultipartFile file = fileIte.next(); String originname = file.getOriginalFilename(); InputStream is = file.getInputStream(); String endType = originname.substring(originname.lastIndexOf("."), originname.length()); String date = DateUtil.getNowShortDate(); String fName = date + "/" + UUID.randomUUID() + endType; String fileName = folder + fName; boolean r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index); if (r) { JSONObject fileJSON = new JSONObject(); fileJSON.put("url", prefixPath + fileName); fileJSON.put("imgaddr", fName); fileJSON.put("imgname", fileName); fileJSON.put("originname", originname); jsonArray.add(fileJSON); } index = index + 1; } } // while (it.hasNext()) { // MultipartFile file = multipartRequest.getFile(it.next()); // String originname = file.getOriginalFilename(); // is = file.getInputStream(); // String endType = originname.substring(originname.lastIndexOf("."),originname.length()); // String date = DateUtil.getNowShortDate(); // String fName = date+"/"+ UUID.randomUUID()+endType; // String fileName = folder+"/"+fName; // boolean r = ftp.uploadInputstream(is,fileName); // if(r){ // JSONObject fileJSON = new JSONObject(); // fileJSON.put("url", prefixPath+fileName); // fileJSON.put("imgaddr", fName); // fileJSON.put("imgname", fileName); // fileJSON.put("originname", originname); // jsonArray.add(fileJSON); // } // } context.put("data",jsonArray); } } catch (Exception e) { log.error("ãä¸ä¼ FTP失败ã======================"+e.getMessage()); context.put("code", 0); context.put("message", "ä¸ä¼ 失败"); context.put("errno",0); writerJson(response, context); return; } writerJson(response, context); return; } @ApiOperation(value = "ä¸ä¼ æä»¶å°FTP") @RequestMapping(method= RequestMethod.POST,value="/upload") @ResponseBody public void upload(HttpServletRequest request, HttpServletResponse response, String folder) throws Exception { // folder = systemDictDataBiz.queryByCode(Constants.FTP,folder).getCode(); Date d1 = new Date(); log.error("æ»å¾ä¸ä¼ æä»¶æå=============å¼å§========="+DateUtil.getPlusTime2(d1)); folder =StringUtils.defaultString(folder).replace("/", ""); String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode(); InputStream is = null; response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); Map<String, Object> context = new HashMap<>(); try { if(ftp == null){ ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(), Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()), systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(), systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode()); }else{ ftp.connect(); } CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver(); if (multipartResovler.isMultipart(request)) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Iterator<String> it = multipartRequest.getFileNames(); while (it.hasNext()) { MultipartFile file = multipartRequest.getFile(it.next()); String originname = file.getOriginalFilename(); is = file.getInputStream(); String endType = ".jpg"; if(originname.indexOf(".")>0){ endType=originname.substring(originname.lastIndexOf("."),originname.length()); } String date = DateUtil.getNowShortDate(); String fName = date+"/"+ UUID.randomUUID()+endType; String fileName = folder+"/"+fName; boolean r = ftp.uploadInputstream(is,fileName); if(r){ context.put("success", true); context.put("code", 200); context.put("errno",0); JSONObject fileJSON = new JSONObject(); // fileJSON.put("prefixPath", prefixPath); // fileJSON.put("folder", folder); fileJSON.put("url", prefixPath+fileName); fileJSON.put("imgaddr", fName); fileJSON.put("imgname", fileName); fileJSON.put("originname", originname); context.put("data",fileJSON); context.put("message","è¯·æ±æå"); writerJson(response, context); Date d2= new Date(); log.error("æ»çä¸ä¼ æä»¶æå=============ç»æ========="+DateUtil.getPlusTime2(d2) +"èæ¶ç§ï¼"+( (d2.getTime()-d1.getTime()) /1000)); return; } } } } catch (Exception e) { log.error("ãä¸ä¼ FTP失败ã======================"+e.getMessage()); } context.put("code", 0); context.put("message", "ä¸ä¼ 失败"); context.put("errno",0); writerJson(response, context); return; } public static void writerJson(HttpServletResponse response, Object object) { response.setContentType("application/json"); writer(response, JSONObject.toJSONString(object)); } private static void writer(HttpServletResponse response, String str) { try { StringBuffer result = new StringBuffer(); //设置页é¢ä¸ç¼å response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setCharacterEncoding("UTF-8"); PrintWriter out = null; out = response.getWriter(); out.print(str); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } public void uploadFileLocal(HttpServletRequest request, String folder, HttpServletResponse response, String rootPath,String dir) throws Exception { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver(); Map<String, Object> context = new HashMap<>(); if (multipartResovler.isMultipart(request)) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Iterator<String> it = multipartRequest.getFileNames(); while (it.hasNext()) { MultipartFile file = multipartRequest.getFile((String) it.next());// file // = // (CommonsMultipartFile) // multipartRequest.getFile((String) // it.next()); if (file != null) { if (file.getSize() > 200 * 1024 * 1024L) { context.put("code", 4000); context.put("message", "ä¸ä¼ æä»¶è¿å¤§"); return; } System.out.println(file.getOriginalFilename()); if (file.getOriginalFilename() == null) { context.put("code", 4000); context.put("message", "æä»¶åä¸å¯ä¸ºç©º"); return; } /* * if(file.getOriginalFilename().contains(",")||file.getOriginalFilename(). * contains(" ")){ sendFailureMessage(response,"æä»¶åç§°æè¯¯,ä¸å¯å«æéå·çç¹æ®å符"); } */ String nowDate = DateUtil.getNowShortDate(); folder += nowDate + "/"; String strDirPath = rootPath + folder; File dirPath = new File(strDirPath); if (!dirPath.exists()) { dirPath.mkdirs(); } String uploadFileName = file.getOriginalFilename(); String x = UUID.randomUUID().toString().replace("-", "") + uploadFileName.substring(uploadFileName.lastIndexOf(".")); String fileName = folder + x; String fileNames = nowDate + "/" + x; uploadFileName = uploadFileName.replace(" ", ""); uploadFileName = uploadFileName.replace("ï¼", ","); uploadFileName = uploadFileName.replaceAll(",", "-"); System.err.println("R:" + fileName); String fileAndPath = dir + fileName; System.err.println("A:" + fileAndPath); // 夿妿䏴æ¶ç®å½ä¸åå¨ç¸ååç§°çæä»¶å å é¤ï¼å¨ä¸ä¼ File tempFile = new File(rootPath + fileName); if (tempFile.isFile() && tempFile.exists()) { tempFile.getAbsoluteFile().delete(); } // ä¸ä¼ å°æå¡å¨ä¸´æ¶æä»¶å¤¹ file.transferTo(tempFile); // 转移å°FTPæå¡å¨ String nfix = ""; if (null != uploadFileName) { nfix = uploadFileName.substring(uploadFileName.lastIndexOf(".")); } if (StringUtils.equalsIgnoreCase(nfix, ".exe")) { context.put("code", 4000); context.put("message", "对ä¸èµ·ï¼æä»¶æ ¼å¼\".exe\"ä¸ä¼ æè¯¯ï¼"); return; } if (StringUtils.equalsIgnoreCase(nfix, ".dll")) { context.put("code", 4000); context.put("message", "对ä¸èµ·ï¼æä»¶æ ¼å¼\".dll\"ä¸ä¼ æè¯¯ï¼"); return; } String remoteName = fileName; String remoteFileName = fileAndPath; /* Map map = new HashMap(); map.put("url", remoteFileName); map.put("alt", uploadFileName); map.put("href", remoteFileName); List maps = Arrays.asList(remoteFileName);*/ if (true) { // å ³éFTPæµ // ç§»å¨æå,è¿åæä»¶å /*context.put("error", 0); context.put("url", remoteFileName); context.put("fullurl", remoteFileName); context.put("fname", uploadFileName); context.put("data", maps); context.put("halfurl", fileNames);*/ context.put("success", true); context.put("code", 200); context.put("errno",0); JSONObject fileJSON = new JSONObject(); fileJSON.put("url", remoteFileName); fileJSON.put("imgaddr", fileNames); fileJSON.put("imgname", uploadFileName); fileJSON.put("originname", uploadFileName); context.put("data",fileJSON); context.put("message","è¯·æ±æå"); writerJson(response, context); return; } else { // ç§»å¨å¤±è´¥ context.put("code", 0); context.put("message", "ä¸ä¼ 失败"); writerJson(response, context); } } context.put("code", 0); context.put("message", "ä¸ä¼ 失败"); writerJson(response, context); return; } } context.put("code", 0); context.put("message", "ä¸ä¼ 失败"); writerJson(response, context); return; } } server/src/main/java/com/doumee/api/web/WebCategoryController.java
@@ -38,9 +38,9 @@ @LoginRequired @GetMapping("/categoryTree") @ApiOperation("è·åå类类å«è·ååç±»æ ") public ApiResponse<List<CategoryVO>> categoryVOTree(@RequestParam String categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange){ public ApiResponse<List<CategoryVO>> categoryVOTree(@RequestParam String categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){ try { ServerHttpRequest request = serverWebExchange.getRequest(); jwtTokenUtil.getUserInfoByToken(token); return ApiResponse.success(categoryService.getCategoryVOTree(categoryType)); }catch (BusinessException e){ @@ -54,9 +54,9 @@ @LoginRequired @GetMapping("/categoryList") @ApiOperation("è·åå类类å«è·ååç±»å表") public ApiResponse<List<CategoryVO>> categoryList(Integer categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange){ public ApiResponse<List<CategoryVO>> categoryList(Integer categoryType, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token){ try { ServerHttpRequest request = serverWebExchange.getRequest(); jwtTokenUtil.getUserInfoByToken(token); return ApiResponse.success(categoryService.getCategoryVOList(categoryType)); }catch (BusinessException e){ server/src/main/java/com/doumee/api/web/WebMemberController.java
@@ -37,9 +37,8 @@ @PreventRepeat(limit = 10, lockTime = 10000) @ApiOperation("H5ä¸å¡ç»å½") @PostMapping("/loginH5") public ApiResponse<Member> loginH5 (@Validated @RequestBody LoginH5DTO dto, ServerWebExchange serverWebExchange) { public ApiResponse<Member> loginH5 (@RequestBody LoginH5DTO dto) { try { ServerHttpRequest request = serverWebExchange.getRequest(); //æ¿CODEæ¢qwidï¼å æ¥ä¸æ¬ç³»ç»æ¯å¦åå¨ï¼åå¨ç´æ¥è¿åmemberï¼å¦åç¨qwidæ¥è¯¢ä¼ä¸ç¨æ·æ°æ®ï¼æå ¥æ°æ®åºï¼member) Member user = memberService.getUserInfo(dto); String token = jwtTokenUtil.generateToken(user); @@ -56,9 +55,8 @@ @LoginRequired @ApiOperation("æ´æ°ç¨æ·é®ç®±ä¿¡æ¯") @PostMapping("/upateInfo") public ApiResponse upateInfo (@RequestBody UpdEmailDTO updEmailDTO ,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse upateInfo (@RequestBody UpdEmailDTO updEmailDTO ,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); Member user = jwtTokenUtil.getUserInfoByToken(token); updEmailDTO.setUserId(user.getId()); memberService.updEmail(updEmailDTO); server/src/main/java/com/doumee/api/web/WebWorkOrderController.java
@@ -5,6 +5,8 @@ import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Managers; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Workorder; @@ -16,6 +18,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.java.Log; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.web.bind.annotation.*; import org.springframework.web.server.ServerWebExchange; @@ -49,9 +52,9 @@ @LoginRequired @ApiOperation("é£é©ä¸æ¥") @PostMapping("/create") public ApiResponse create (@RequestBody Workorder workorder, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse create (@RequestBody Workorder workorder, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); Member user = jwtTokenUtil.getUserInfoByToken(token); workorder.setMemberId(user.getId()); workorderService.create(workorder); @@ -68,9 +71,9 @@ @LoginRequired @ApiOperation("éç¥äººæ¥è¯¢") @PostMapping("/managersList") public ApiResponse<List<Managers>> managersList (@RequestBody Managers model, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse<List<Managers>> managersList (@RequestBody Managers model, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); return ApiResponse.success(managersService.findList(model)); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); @@ -84,10 +87,10 @@ @LoginRequired @ApiOperation("é£é©ä¸æ¥è¯¦æ ") @GetMapping("/detail") public ApiResponse<Workorder> detail (@RequestParam Integer id, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse<Workorder> detail (@RequestParam Integer id, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); return ApiResponse.success(workorderService.getDetail(id)); return ApiResponse.success(workorderService.getDetail(id,jwtTokenUtil.getUserInfoByToken(token))); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ @@ -101,9 +104,8 @@ @LoginRequired @ApiOperation("å·¥åå ³é") @PostMapping("/closeWorkOrder") public ApiResponse closeWorkOrder(@RequestBody CloseDTO closeDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse closeWorkOrder(@RequestBody CloseDTO closeDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); closeDTO.setMember(jwtTokenUtil.getUserInfoByToken(token)); workorderService.closeWorkOrder(closeDTO); return ApiResponse.success("æä½æå"); @@ -121,9 +123,9 @@ @LoginRequired @ApiOperation("工忿´¾") @PostMapping("/passOn") public ApiResponse passOn(@RequestBody PassOnDTO passOnDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse passOn(@RequestBody PassOnDTO passOnDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); passOnDTO.setMember(jwtTokenUtil.getUserInfoByToken(token)); workorderService.passOn(passOnDTO); return ApiResponse.success("æä½æå"); @@ -140,9 +142,9 @@ @LoginRequired @ApiOperation("å·¥åå¬ä¿") @GetMapping("/urge") public ApiResponse urge(@RequestParam Integer workorderId, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse urge(@RequestParam Integer workorderId, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); workorderService.urge(workorderId,jwtTokenUtil.getUserInfoByToken(token)); return ApiResponse.success("æä½æå"); }catch (BusinessException e){ @@ -157,9 +159,9 @@ @LoginRequired @ApiOperation("å·¥åæé") @PostMapping("/sendCopy") public ApiResponse sendCopy(@RequestParam SendCopyDTO sendCopyDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse sendCopy(@RequestParam SendCopyDTO sendCopyDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); sendCopyDTO.setMember(jwtTokenUtil.getUserInfoByToken(token)); workorderService.sendCopy(sendCopyDTO); return ApiResponse.success("æä½æå"); @@ -176,9 +178,9 @@ @LoginRequired @ApiOperation("SHEãè·ç»æ»æ¥è¡¨") @PostMapping("/getWorkOrderData") public ApiResponse<List<WorkOrderDataVO>> getWorkOrderData(@RequestBody OrderDataDTO orderDataDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token, ServerWebExchange serverWebExchange) { public ApiResponse<List<WorkOrderDataVO>> getWorkOrderData(@RequestBody OrderDataDTO orderDataDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { ServerHttpRequest request = serverWebExchange.getRequest(); return ApiResponse.success(workorderService.getWorkOrderData(orderDataDTO)); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); @@ -190,5 +192,22 @@ @LoginRequired @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") public ApiResponse<PageData<Workorder>> findPage (@RequestBody PageWrap<Workorder> pageWrap,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { Member member = jwtTokenUtil.getUserInfoByToken(token); pageWrap.getModel().setQwId(member.getQwId()); return ApiResponse.success(workorderService.findPage(pageWrap)); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } } server/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -74,6 +74,21 @@ .paths(PathSelectors.any()) .build(); } @Bean public Docket getDocket2() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(this.getApiInfo()).groupName("Webä¸å¡æ¥å£") .host(host) .enable(enabled) .select() .apis( basePackage("com.doumee.api.web")) // 设置éè¦è¢«æ«æçç±»ï¼è¿é设置为添å äº@Api注解çç±» // .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .paths(PathSelectors.any()) .build(); } /** * éåbasePackageæ¹æ³ï¼ä½¿è½å¤å®ç°å¤å 访é®ï¼å¤å¶è´´ä¸å» * @author teavamc server/src/main/java/com/doumee/core/constants/Constants.java
@@ -32,6 +32,7 @@ public static boolean DEALING_COMPANY_SYNC = false ; public static boolean DEALING_MEMBER_SYNC = false ; public static final String WORKORDER_FILE_PATH ="WORKORDER_FILE_PATH" ; public static final String WORKORDER_LOG_FILE_PATH ="WORKORDER_LOG_FILE_PATH" ; public static final String REDIS_TOKEN_KEY = "token_"; /** server/src/main/java/com/doumee/dao/business/model/Workorder.java
@@ -228,11 +228,25 @@ @ApiModelProperty("DCAé®é¢åç§°") @TableField(exist = false) private String problemName; @ApiModelProperty("ç¨æ·") @ApiModelProperty("ç¨æ·ææºå·") @TableField(exist = false) private String memberPhone; @ApiModelProperty(value = "æ¯å¦å¯å ³éæé®ï¼0=å¦ï¼1=æ¯ï¼", example = "0") @TableField(exist = false) private Integer closeButton; @ApiModelProperty(value = "æ¯å¦å¯è½¬äº¤æé®ï¼0=å¦ï¼1=æ¯ï¼", example = "0") @TableField(exist = false) private Integer passOnButton; @ApiModelProperty(value = "æçå·¥å:0=å¦ï¼1=æ¯ï¼æ¥è¯¢ä½¿ç¨ï¼", example = "0") @TableField(exist = false) private Integer myWorkOrder; @ApiModelProperty(value = "æçå·¥åï¼æ¥è¯¢ä½¿ç¨ï¼",hidden = true) @TableField(exist = false) private String qwId; @ApiModelProperty(value = "ä¸ç¬¦åé®é¢å表") @TableField(exist = false) server/src/main/java/com/doumee/service/business/WorkorderService.java
@@ -108,7 +108,7 @@ * @param id * @return */ Workorder getDetail(Integer id); Workorder getDetail(Integer id,Member member); /** * æ¯å¤©åå§åå·¥åç¼å·code server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -410,17 +410,18 @@ } String token = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(); //æ ¹æ®codeæ¢åºä¼ä¸å¾®ä¿¡ID QywxBaseResponse<String> qwIdBaseResponse= QywxUtil.getUserInfoByCode(token,dto.getCode()); if(Objects.isNull(qwIdBaseResponse)||Objects.isNull(qwIdBaseResponse.getErrcode())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼ä¸å¾®ä¿¡ç»å½ç è§£æå¤±è´¥ï¼è¯·è系管çå"); } if(Constants.equalsInteger(qwIdBaseResponse.getErrcode(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼ä¸å¾®ä¿¡ç»å½å¤±è´¥ï¼"+qwIdBaseResponse.getErrmsg()); } if(Objects.isNull(qwIdBaseResponse.getData())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼ä¸å¾®ä¿¡ç¨æ·ä¿¡æ¯è§£æå¤±è´¥ï¼è¯·è系管çå"); } String qwId = qwIdBaseResponse.getData(); QywxBaseResponse<String> qwIdBaseResponse= null;// QywxUtil.getUserInfoByCode(token,dto.getCode()); // if(Objects.isNull(qwIdBaseResponse)||Objects.isNull(qwIdBaseResponse.getErrcode())){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼ä¸å¾®ä¿¡ç»å½ç è§£æå¤±è´¥ï¼è¯·è系管çå"); // } // if(Constants.equalsInteger(qwIdBaseResponse.getErrcode(),Constants.ZERO)){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼ä¸å¾®ä¿¡ç»å½å¤±è´¥ï¼"+qwIdBaseResponse.getErrmsg()); // } // if(Objects.isNull(qwIdBaseResponse.getData())){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼ä¸å¾®ä¿¡ç¨æ·ä¿¡æ¯è§£æå¤±è´¥ï¼è¯·è系管çå"); // } // String qwId = qwIdBaseResponse.getData(); String qwId = dto.getCode(); Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getQwId,qwId).eq(Member::getIsdeleted,Constants.ZERO).last(" limit 1 ")); if(Objects.isNull(member)){ //æ ¹æ®ä¼ä¸å¾®ä¿¡ID æ¥è¯¢ç¨æ·ä¿¡æ¯ server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
@@ -135,6 +135,8 @@ } private static final String [] qwDetailUrls = {"/pages/details_she/details_she","/pages/workOrder_dca/workOrder_dca","","/pages/workOrder_she/workOrder_she"}; /** * éç¥ææ¡æ´ç * @param workorder @@ -147,6 +149,7 @@ public QywxTextCardMsgRequest dealMessageContent(Workorder workorder,String userName ,String categoryName,Integer contentType,String csInfo){ QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest(); String message = ""; textCard.setUrl(qwDetailUrls[workorder.getType()]+"?id="+workorder.getId()); if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){ textCard.setTitle("ãSHEäºä»¶ä¸æ¥ã"); if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){ @@ -365,7 +368,7 @@ } @Override public Workorder getDetail(Integer id){ public Workorder getDetail(Integer id,Member member){ Workorder workorder = workorderMapper.selectJoinOne(Workorder.class, new MPJLambdaWrapper<Workorder>() .selectAll(Workorder.class) @@ -381,6 +384,7 @@ .last(" limit 1 ") ); if(Objects.nonNull(workorder)){ this.dealButton(workorder,member); //æ¥è¯¢éä»¶ä¿¡æ¯ List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getIsdeleted,Constants.ZERO) .eq(Multifile::getObjId,workorder.getId()).orderByAsc(Multifile::getId)); @@ -405,6 +409,29 @@ return workorder; } public void dealButton(Workorder workorder,Member member){ workorder.setPassOnButton(Constants.ZERO); workorder.setCloseButton(Constants.ZERO); if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getQwId())){ List<String> closeUserList = new ArrayList<>(); closeUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); closeUserList.add(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getManagerId())?workorder.getManagerId():null); closeUserList.add(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getDealerId())?workorder.getDealerId():null); workorder.setCloseButton(closeUserList.stream().filter(i->i.equals(member.getQwId())).collect(Collectors.toList()).size()>Constants.ZERO?Constants.ONE:Constants.ZERO); List<String> passOnUserList = new ArrayList<>(); //å¾ åé ç¶æ å¤ç转交æé® if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ passOnUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ closeUserList.add(workorder.getManagerId()); } if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(passOnUserList)){ workorder.setPassOnButton(passOnUserList.stream().filter(i->i.equals(member.getQwId())).collect(Collectors.toList()).size()>Constants.ZERO?Constants.ONE:Constants.ZERO); } } } public List<WorkorderLog> getLogList(Integer orderId){ List<WorkorderLog> logList = workorderLogMapper.selectJoinList(WorkorderLog.class, @@ -418,7 +445,7 @@ ); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(logList)){ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode(); +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_LOG_FILE_PATH).getCode(); for (WorkorderLog workorderLog:logList) { //æ¥è¯¢éä»¶ä¿¡æ¯ List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() @@ -572,6 +599,9 @@ .leftJoin(" category c3 on t.TYPE_ID = c3.id ") //é£é©ç±»å .leftJoin(" category c4 on t.PROBLEM_ID = c4.id ") //DCAé®é¢ç¼ç .leftJoin(" category c2 on t.CATEGORY_ID = c2.id ") //DCAé®é¢ç¼ç .apply(Objects.nonNull(pageWrap.getModel().getMyWorkOrder())&& org.apache.commons.lang3.StringUtils.isNotBlank(pageWrap.getModel().getQwId()) &&Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getMyWorkOrder()), " ( t.id in ( select OBJ_ID from notices where param1 = '"+pageWrap.getModel().getQwId()+"' )) ") .eq(pageWrap.getModel().getId() != null, Workorder::getId, pageWrap.getModel().getId()) .eq(pageWrap.getModel().getCreator() != null, Workorder::getCreator, pageWrap.getModel().getCreator()) .ge(pageWrap.getModel().getCreateDate() != null, Workorder::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))