server/admin/src/main/java/com/doumee/api/business/ImportRecordController.java
@@ -22,7 +22,7 @@ * @author doumee * @date 2026-01-27 16:02:37 */ @Api(tags = "tableNameæ¥å£") @Api(tags = "å类信æ¯è¡¨æ¥å£") @RestController @RequestMapping("/business/importRecord") public class ImportRecordController extends BaseController { server/admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -22,7 +22,7 @@ * @author doumee * @date 2026-01-27 16:02:37 */ @Api(tags = "tableNameæ¥å£") @Api(tags = "ä¼åä¿¡æ¯è¡¨æ¥å£") @RestController @RequestMapping("/business/member") public class MemberController extends BaseController { server/services/pom.xml
@@ -10,6 +10,16 @@ <version>1.0.0-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>com.tianyiyun</groupId> <artifactId>zob</artifactId> <version>1.0</version> <scope>system</scope> <!--æ¬å°çjacob.jarçè·¯å¾--> <systemPath>${project.basedir}/lib/zos-sdk.jar</systemPath> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> server/services/src/main/java/com/doumee/api/common/PublicCloudController.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/api/common/PublicController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,168 @@ package com.doumee.api.common; 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.utils.DateUtil; import com.doumee.core.utils.FtpUtil; import com.doumee.core.utils.tyyun.TyyZosUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; 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.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.UUID; /** * @author Eva.Caesar Liu * @date 2023/02/14 11:14 */ @Api(tags = "å ¬å ±æ¥å£") @Trace(exclude = true) @RestController @RequestMapping("/public") @Slf4j public class PublicController extends BaseController { @Autowired private SystemDictDataBiz systemDictDataBiz; public static FtpUtil ftp = null; @ApiOperation(value = "ä¸ä¼ ", notes = "ä¸ä¼ ", httpMethod = "POST", position = 6) @ApiImplicitParams({ @ApiImplicitParam(name = "folder", value = "æä»¶å¤¹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class), }) @PostMapping(value = "/upload", headers = "content-type=multipart/form-data") public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; upload(multipartRequest, response, folder + "/", systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.BUCKETNAME).getCode(), systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_ID).getCode(), systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_KEY).getCode(), systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode(), systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ENDPOINT).getCode()); } public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName, String access_id, String access_key, String resourcePath, String endpoint) throws Exception { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); Map<String, Object> context = new HashMap<>(); CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver(); if (multipartResovler.isMultipart(request)) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Iterator<String> it = multipartRequest.getFileNames(); while (it.hasNext()) { MultipartFile file = multipartRequest.getFile((String) it.next());// file // multipartRequest.getFile((String) // it.next()); if (file != null) { // 1ãä¸ä¼ å°æå¡å¨ä¸´æ¶æä»¶å¤¹ String uploadFileName = file.getOriginalFilename(); String originname = uploadFileName; if (originname.lastIndexOf("/") >= 0) { originname = originname.substring(originname.lastIndexOf("/") + 1); } String nfix = "";// åç¼å if (StringUtils.isNotBlank(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; } if (StringUtils.equalsIgnoreCase(nfix, ".so")) { context.put("code", 4000); context.put("message", "对ä¸èµ·ï¼æä»¶æ ¼å¼\".so\"ä¸ä¼ æè¯¯ï¼"); return; } String nowDate = DateUtil.getNowShortDate();// å½åæ¶é´ï¼å¹´ææ¥ï¼ String fileName = UUID.randomUUID().toString() + nfix; String tempFileName = nowDate + "/" + fileName; String key = folder + tempFileName;// æä»¶å TyyZosUtil obs = new TyyZosUtil(endpoint,access_id, access_key); if (obs.uploadInputstreamObject(file.getInputStream(),bucketName, key)) { // ç§»å¨æå,è¿åæä»¶å // sendSuccessMessage(response, resourcePath+key); context.put("success", true); context.put("code", 200); context.put("errno",0); JSONObject fileJSON = new JSONObject(); fileJSON.put("url", resourcePath + key); fileJSON.put("imgaddr", tempFileName); fileJSON.put("imgname", fileName); fileJSON.put("originname", originname); context.put("data",fileJSON); context.put("message","è¯·æ±æå"); writerJson(response, context); return; } else { // ç§»å¨å¤±è´¥ context.put("code", 0); context.put("message", "ä¸ä¼ 失败"); writerJson(response, context); return; } } } } 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(); } } } server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -57,6 +57,14 @@ public static final String AUTO_DISPATCH_DISTANCE ="AUTO_DISPATCH_DISTANCE" ; public static final String AUTO_CONFIRM ="AUTO_CONFIRM" ; public static final String AUTO_CANCEL_WAIT_PAY ="AUTO_CANCEL_WAIT_PAY" ; public static final String ACCESS_ID="ACCESS_ID"; public static final String BUCKETNAME = "BUCKETNAME"; public static final String ACCESS_KEY = "ACCESS_KEY"; public static final String ENDPOINT = "ENDPOINT"; public static final String UTF = "UTF-8"; public static final String QYWX = "QYWX"; public static final Integer ONE = 1; @@ -73,6 +81,7 @@ public static final String ZBOM_PARAM ="ZBOM_PARAM" ; public static final String ZBOM_UK_ERROR_URL ="ZBOM_UK_ERROR_URL" ; public static final String ZBOM_TICKET_LOGIN_URL ="ZBOM_TICKET_LOGIN_URL" ; public static final String OBJCET_STORAGE = "OBJCET_STORAGE"; public static boolean WORKORDER_SHE_EMAIL_SENDING = false; public static boolean DEALING_COMPANY_SYNC = false ; public static boolean DEALING_MEMBER_SYNC = false ; server/services/src/main/java/com/doumee/core/utils/qiyeweixin/QywxConstant.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/request/QywxBaseRequest.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/request/QywxSendMsgRequest.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/request/QywxTextCardMsgRequest.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxDepartInfoResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxSendMsgResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUploadMediaResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserAttrInfoResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserAttrValResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserExtAttrResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserInfoResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserListResponse.java
ÎļþÒÑɾ³ý server/services/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,185 @@ package com.doumee.core.utils.tyyun; import com.amazonaws.ClientConfiguration; import com.amazonaws.Protocol; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import lombok.extern.slf4j.Slf4j; import java.io.*; import java.net.URL; @Slf4j public class TyyZosUtil { private AmazonS3 client; // public static final String ENDPOINT = "oss-cn-shanghai.aliyuncs.com"; public TyyZosUtil(String END_POINT, String ACCESS_KEY, String SECRET_KEY) { try { AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY,SECRET_KEY); ClientConfiguration awsClientConfig = new ClientConfiguration(); awsClientConfig.setSignerOverride("AWSS3V4SignerType"); awsClientConfig.setProtocol(Protocol.HTTP); client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withClientConfiguration(awsClientConfig) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(END_POINT, "")) .disableChunkedEncoding() .enablePathStyleAccess() .build(); }catch (Exception e){ log.error("对象åå¨====================è¿æ¥å¤©ç¿¼äºZOS失败"+e.getMessage()); } } /** * ä¸ä¼ æä»¶ * * @param bucketName äºç«¯åæ¾bucketåç§° * @param key éæ°å½åçæä»¶å * @param filepath å°è¦ä¸ä¼ çæä»¶åç§° * @throws FileNotFoundException */ public void uploadObject(String bucketName, String key, String filepath, String mime){ try { File file= new File(filepath); PutObjectRequest request = new PutObjectRequest(bucketName, key, file); PutObjectResult result = client.putObject(request); }catch (Exception e){ log.error("对象åå¨===================="+filepath+"æä»¶ä¸ä¼ 失败"+e.getMessage()); }finally { shutDown(); } } /** * 讲keyæä»¶åå¨å¨æ¬å°filenameç®æ æä»¶ä¸ * @param bucketName * @param key * @param filename */ public void getObject(String bucketName, String key, String filename ){ try { GetObjectRequest request = new GetObjectRequest(bucketName, key); S3Object result = client.getObject(request); System.out.print("=====request success=====\n"); try { InputStream in = result.getObjectContent(); File outputFile = new File(filename); FileOutputStream outputStream = new FileOutputStream(outputFile); byte[] read_buf = new byte[1024 * 1024]; int read_len = 0; while ((read_len = in.read(read_buf)) > 0) { outputStream.write(read_buf, 0, read_len); } in.close(); outputStream.close(); } catch (IOException e){ e.printStackTrace(); } }catch (Exception e){ log.error("对象åå¨===================="+filename+"æä»¶è¯»å失败"+e.getMessage()); }finally { shutDown(); } } public void deleteObject(String bucketName, String key ){ try { DeleteObjectRequest request = new DeleteObjectRequest(bucketName, key); client.deleteObject(request); System.out.print("=====request deleteObject success====="); }catch (Exception e){ log.error("对象åå¨===================="+key+"æä»¶å é¤å¤±è´¥"+e.getMessage()); }finally { shutDown(); } } /** * å ³é * * @throws FileNotFoundException */ public void shutDown() { if (client != null) { // å ³éclient client.shutdown(); } } public static void main(String[] args) { TyyZosUtil aLiYunUtil = new TyyZosUtil("", "uc4nnpsqep1i9fijqr37nokh", "/rp41xCx/XdGEVCptdH6v7xpc9w="); // aLiYunUtil.uploadObject("pongto", "work/li2.txt", "D://å.txt", // ".html,.html text/html");D://è£ æºè½¯ä»¶/åå ¬å¦ä¹ // aLiYunUtil.partUploadObject("pongto", "work/ps.exe", // "D://è£ æºè½¯ä»¶/åå ¬å¦ä¹ /Adobe_Illustrator_CS6_XiaZaiBa.exe", // ".html,.html text/html"); // aLiYunUtil.deleteBucket("pongto"); } /** * ä¸ä¼ ç½ç»æä»¶ * * @param bucketName äºç«¯åæ¾bucketåç§° * @param key éæ°å½åçæä»¶å * å°è¦ä¸ä¼ çæä»¶åç§° * @throws IOException */ public boolean uploadOnlineObject(String url, String bucketName, String key ) { try { InputStream inputStream = new URL(url).openStream(); if (inputStream != null) { ObjectMetadata metadata = new ObjectMetadata(); PutObjectRequest request = new PutObjectRequest(bucketName, key, inputStream,metadata); PutObjectResult result = client.putObject(request); }else { log.error("对象åå¨===================="+url+"ç½ç»æä»¶ä¸ä¼ 失败ï¼ç½ç»æä»¶è¯»å失败"); } }catch (Exception e){ log.error("对象åå¨===================="+url+"ç½ç»æä»¶ä¸ä¼ 失败"+e.getMessage()); }finally { shutDown(); } return false; } public boolean uploadInputstreamObject(InputStream inputStream, String bucketName, String key ) { try { if (inputStream != null) { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentLength(inputStream.available()); PutObjectRequest request = new PutObjectRequest(bucketName, key, inputStream,metadata); request.setCannedAcl(CannedAccessControlList.PublicRead); PutObjectResult result = client.putObject(request); return true; } }catch (Exception e){ log.error("对象åå¨==================== æä»¶ä¸ä¼ 失败"+e.getMessage()); }finally { shutDown(); } return false; } } server/services/src/main/java/com/doumee/dao/business/InterfaceLogMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.doumee.dao.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.InterfaceLog; /** * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface InterfaceLogMapper extends BaseMapper<InterfaceLog> { } server/services/src/main/java/com/doumee/dao/business/model/InterfaceLog.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 䏿¹å¹³å°æ¥å£äº¤äºè®°å½ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Data @ApiModel("䏿¹å¹³å°æ¥å£äº¤äºè®°å½") @TableName("`interface_log`") public class InterfaceLog{ @TableId(type = IdType.AUTO) @ApiModelProperty(value = "主é®", example = "1") @ExcelColumn(name="主é®") private Integer id; @ApiModelProperty(value = "å建人ç¼ç ", example = "1") @ExcelColumn(name="å建人ç¼ç ") private Integer creator; @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") private Date createDate; @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") @ExcelColumn(name="æ´æ°äººç¼ç ") private Integer editor; @ApiModelProperty(value = "æ´æ°æ¶é´") @ExcelColumn(name="æ´æ°æ¶é´") private Date editDate; @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") private Integer isdeleted; @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String remark; @ApiModelProperty(value = "ç±»å 0è°ç¨ 1æ¨éæ¥å", example = "1") @ExcelColumn(name="ç±»å 0è°ç¨ 1æ¨éæ¥å") private Integer type; @ApiModelProperty(value = "æ¥å£åç§°") @ExcelColumn(name="æ¥å£åç§°") private String name; @ApiModelProperty(value = "å°åä¿¡æ¯") @ExcelColumn(name="å°åä¿¡æ¯") private String url; @ApiModelProperty(value = "请æ±åæ°") @ExcelColumn(name="请æ±åæ°") private String request; @ApiModelProperty(value = "ååºåæ°") @ExcelColumn(name="ååºåæ°") private String repose; @ApiModelProperty(value = "è°ç¨ç»æ 0æå 1失败", example = "1") @ExcelColumn(name="è°ç¨ç»æ 0æå 1失败") private Integer success; @ApiModelProperty(value = "å¹³å° 0海康å®é²å¹³å° 1ERPç³»ç»", example = "1") @ExcelColumn(name="å¹³å° 0海康å®é²å¹³å° 1ERPç³»ç»") private Integer plat; @ApiModelProperty(value = "å ³è对象类å 0ç»ç» 1人å 2é¨ç¦äºä»¶ 3设å¤", example = "1") @ExcelColumn(name="å ³è对象类å 0ç»ç» 1人å 2é¨ç¦äºä»¶ 3设å¤") private Integer objType; @ApiModelProperty(value = "å ³è对象ç¼ç ï¼å¤ä¸ªç¨è±æéå·éå¼ï¼") @ExcelColumn(name="å ³è对象ç¼ç ï¼å¤ä¸ªç¨è±æéå·éå¼ï¼") private String objId; @ApiModelProperty(value = "å¼å§æ¶é´") @TableField(exist = false) private Date startDate; @ApiModelProperty(value = "ç»ææ¶é´") @TableField(exist = false) private Date endDate; } server/services/src/main/java/com/doumee/service/business/InterfaceLogService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,100 @@ package com.doumee.service.business; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.InterfaceLog; import java.util.List; /** * 䏿¹å¹³å°æ¥å£äº¤äºè®°å½Serviceå®ä¹ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface InterfaceLogService { /** * å建 * * @param interfaceLog å®ä½å¯¹è±¡ * @return Integer */ Integer create(InterfaceLog interfaceLog); /** * 主é®å é¤ * * @param id ä¸»é® */ void deleteById(Integer id); /** * å é¤ * * @param interfaceLog å®ä½å¯¹è±¡ */ void delete(InterfaceLog interfaceLog); /** * æ¹é主é®å é¤ * * @param ids 主é®é */ void deleteByIdInBatch(List<Integer> ids); /** * 䏻鮿´æ° * * @param interfaceLog å®ä½å¯¹è±¡ */ void updateById(InterfaceLog interfaceLog); /** * æ¹é䏻鮿´æ° * * @param interfaceLogs å®ä½é */ void updateByIdInBatch(List<InterfaceLog> interfaceLogs); /** * 䏻鮿¥è¯¢ * * @param id ä¸»é® * @return InterfaceLog */ InterfaceLog findById(Integer id); /** * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ * * @param interfaceLog å®ä½å¯¹è±¡ * @return InterfaceLog */ InterfaceLog findOne(InterfaceLog interfaceLog); void saveInterfaceLog(String url,String name,String param,Integer success,String respone,int type); /** * æ¡ä»¶æ¥è¯¢ * * @param interfaceLog å®ä½å¯¹è±¡ * @return List<InterfaceLog> */ List<InterfaceLog> findList(InterfaceLog interfaceLog); /** * å页æ¥è¯¢ * * @param pageWrap å页对象 * @return PageData<InterfaceLog> */ PageData<InterfaceLog> findPage(PageWrap<InterfaceLog> pageWrap); /** * æ¡ä»¶ç»è®¡ * * @param interfaceLog å®ä½å¯¹è±¡ * @return long */ long count(InterfaceLog interfaceLog); void clearThreeMonthLog(); } server/services/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,191 @@ package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.Constants; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.InterfaceLogMapper; import com.doumee.dao.business.model.InterfaceLog; import com.doumee.service.business.InterfaceLogService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; /** * 䏿¹å¹³å°æ¥å£äº¤äºè®°å½Serviceå®ç° * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service public class InterfaceLogServiceImpl implements InterfaceLogService { @Autowired private InterfaceLogMapper interfaceLogMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Override public Integer create(InterfaceLog interfaceLog) { interfaceLogMapper.insert(interfaceLog); return interfaceLog.getId(); } @Override public void deleteById(Integer id) { interfaceLogMapper.deleteById(id); } @Override public void delete(InterfaceLog interfaceLog) { UpdateWrapper<InterfaceLog> deleteWrapper = new UpdateWrapper<>(interfaceLog); interfaceLogMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List<Integer> ids) { if (CollectionUtils.isEmpty(ids)) { return; } interfaceLogMapper.deleteBatchIds(ids); } @Override public void updateById(InterfaceLog interfaceLog) { interfaceLogMapper.updateById(interfaceLog); } @Override public void updateByIdInBatch(List<InterfaceLog> interfaceLogs) { if (CollectionUtils.isEmpty(interfaceLogs)) { return; } for (InterfaceLog interfaceLog: interfaceLogs) { this.updateById(interfaceLog); } } @Override public InterfaceLog findById(Integer id) { return interfaceLogMapper.selectById(id); } @Override public InterfaceLog findOne(InterfaceLog interfaceLog) { QueryWrapper<InterfaceLog> wrapper = new QueryWrapper<>(interfaceLog); return interfaceLogMapper.selectOne(wrapper); } @Override public void saveInterfaceLog(String url,String name,String param,Integer success,String respone,int type){ if(interfaceLogMapper ==null){ return; } InterfaceLog log = new InterfaceLog(); log.setCreateDate(new Date()); log.setUrl(url); log.setEditDate(log.getCreateDate()); log.setPlat(Constants.ZERO); log.setName(name); log.setIsdeleted(Constants.ZERO); log.setRequest(param); log.setType(type); log.setSuccess(success); log.setRepose(respone); interfaceLogMapper.insert(log); } @Override public List<InterfaceLog> findList(InterfaceLog interfaceLog) { QueryWrapper<InterfaceLog> wrapper = new QueryWrapper<>(interfaceLog); return interfaceLogMapper.selectList(wrapper); } @Override public PageData<InterfaceLog> findPage(PageWrap<InterfaceLog> pageWrap) { IPage<InterfaceLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<InterfaceLog> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(InterfaceLog::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(InterfaceLog::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(InterfaceLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(InterfaceLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(InterfaceLog::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(InterfaceLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(InterfaceLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getStartDate() != null) { queryWrapper.lambda().ge(InterfaceLog::getCreateDate, pageWrap.getModel().getStartDate()); } if (pageWrap.getModel().getEndDate() != null) { queryWrapper.lambda().le(InterfaceLog::getCreateDate, pageWrap.getModel().getEndDate()); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(InterfaceLog::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(InterfaceLog::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(InterfaceLog::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().like(InterfaceLog::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getUrl() != null) { queryWrapper.lambda().like(InterfaceLog::getUrl, pageWrap.getModel().getUrl()); } if (pageWrap.getModel().getRequest() != null) { queryWrapper.lambda().like(InterfaceLog::getRequest, pageWrap.getModel().getRequest()); } if (pageWrap.getModel().getRepose() != null) { queryWrapper.lambda().like(InterfaceLog::getRepose, pageWrap.getModel().getRepose()); } if (pageWrap.getModel().getSuccess() != null) { queryWrapper.lambda().eq(InterfaceLog::getSuccess, pageWrap.getModel().getSuccess()); } if (pageWrap.getModel().getPlat() != null) { queryWrapper.lambda().eq(InterfaceLog::getPlat, pageWrap.getModel().getPlat()); } if (pageWrap.getModel().getObjType() != null) { queryWrapper.lambda().eq(InterfaceLog::getObjType, pageWrap.getModel().getObjType()); } if (pageWrap.getModel().getObjId() != null) { queryWrapper.lambda().eq(InterfaceLog::getObjId, pageWrap.getModel().getObjId()); } queryWrapper.lambda().orderByDesc(InterfaceLog::getCreateDate); return PageData.from(interfaceLogMapper.selectPage(page, queryWrapper)); } @Override public long count(InterfaceLog interfaceLog) { QueryWrapper<InterfaceLog> wrapper = new QueryWrapper<>(interfaceLog); return interfaceLogMapper.selectCount(wrapper); } @Override public void clearThreeMonthLog() { int days =15; try { // days = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.HK_LOG_DEL_DAYS_LIMIT).getCode()); }catch (Exception e){} interfaceLogMapper.delete(new UpdateWrapper<InterfaceLog>().lambda() .apply("to_days(create_date)+"+days+" < to_days(now())") ); } } server/services/src/main/resources/application-dev.yml
@@ -69,9 +69,6 @@ username: admin password: 111111 qiwei: serviceurl: https://qyapi.weixin.qq.com aes: encrypt: open: true # æ¯å¦å¼å¯å å¯ true or false server/services/src/main/resources/application-pro.yml
@@ -49,49 +49,8 @@ enable: true username: admin password: doumee@168 ########################微信æ¯ä»ç¸å ³é ç½®######################## wx: pay: #æå¡å---------start------- åæ°è¯¦è§£å°å https://pay.weixin.qq.com/doc/v3/partner/4013080340 mchId: 1700071922 #æå¡åå¨å¾®ä¿¡æ¯ä»ä¾§çå¯ä¸èº«ä»½æ è¯ appId: wx6cc1087ca79db7f6 #æå¡åå¨å¾®ä¿¡å¼æ¾å¹³å°ï¼ç§»å¨åºç¨ï¼æå ¬ä¼å¹³å°ï¼å ¬ä¼å·/å°ç¨åºï¼ä¸ç³è¯·çä¸ä¸ªå¯ä¸æ è¯ apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142 #7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB serialNumer: 6696086F6EFB8D6A4F821BD47DDBAF75C3BC1209 #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #æå¡åè¯ä¹¦åºåå· payPublicKeyId: PUB_KEY_ID_0117000719222024112700219100000508 #åæ·/平尿¯ä»å ¬é¥id #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S notifyUrl: https://jinkuai.832smartfarm.com/jinkuai_admin/web/wxPayNotify refundNotifyUrl: https://jinkuai.832smartfarm.com/jinkuai_admin/web/wxRefundNotify keyPath: /usr/local/jars/payFile/apiclient_cert.p12 privateCertPath: /usr/local/jars/payFile/apiclient_cert.pem privateKeyPath: /usr/local/jars/payFile/apiclient_key.pem pubKeyPath: /usr/local/jars/payFile/pub_key.pem #åæ·æ¯ä»å ¬é¥ #æå¡å-------------end--- #åæ·ä¿¡æ¯ wechatSerialNumer: 12C0F0DD0F3D2B565B45586D3FEA225EBF723BEC wechatPayPublicKeyId: PUB_KEY_ID_0117233260692025072500181939000603 #åæ·/平尿¯ä»å ¬é¥id wechatPubKeyPath: /usr/local/jars/payFile/shanghu/pub_key.pem #åæ·æ¯ä»å ¬é¥ wechatPrivateKeyPath: /usr/local/jars/payFile/shanghu/apiclient_key.pem #åæ·ç§é¥ wechatNotifyUrl: https://jinkuai.832smartfarm.com/jinkuai_admin/web/wechat/transferNotify #åæ·è½¬è´¦åè°å°å wechatApiV3Key: 7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB existsSub: 1 appSecret: #ååæ·------------start---- subMchId: 1723326069 #ååæ·å· subAppId: wx332441ae5b12be7d #å°ç¨åºid subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #å°ç¨åºç§é¥ #ååæ·------------end---- # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM typeId: jinkuai upload: type: blob qiwei: serviceurl: https://wecom-qyapi.unilever-china.com/ project: server/services/src/main/resources/application-test.yml
@@ -69,51 +69,10 @@ username: admin password: 111111 ########################微信æ¯ä»ç¸å ³é ç½®######################## ########################微信æ¯ä»ç¸å ³é ç½®######################## wx: pay: #æå¡å---------start------- åæ°è¯¦è§£å°å https://pay.weixin.qq.com/doc/v3/partner/4013080340 mchId: 1700071922 #æå¡åå¨å¾®ä¿¡æ¯ä»ä¾§çå¯ä¸èº«ä»½æ è¯ appId: wx6cc1087ca79db7f6 #æå¡åå¨å¾®ä¿¡å¼æ¾å¹³å°ï¼ç§»å¨åºç¨ï¼æå ¬ä¼å¹³å°ï¼å ¬ä¼å·/å°ç¨åºï¼ä¸ç³è¯·çä¸ä¸ªå¯ä¸æ è¯ apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142 #7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB serialNumer: 6696086F6EFB8D6A4F821BD47DDBAF75C3BC1209 #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #æå¡åè¯ä¹¦åºåå· payPublicKeyId: PUB_KEY_ID_0117000719222024112700219100000508 #åæ·/平尿¯ä»å ¬é¥id #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S notifyUrl: https://test.doumee.cn/zbom_dianjiang_admin/web/wxPayNotify refundNotifyUrl: https://test.doumee.cn/zbom_dianjiang_admin/web/wxRefundNotify keyPath: /usr/local/jars/payFile/apiclient_cert.p12 privateCertPath: /usr/local/jars/payFile/apiclient_cert.pem privateKeyPath: /usr/local/jars/payFile/apiclient_key.pem pubKeyPath: /usr/local/jars/payFile/pub_key.pem #åæ·æ¯ä»å ¬é¥ #æå¡å-------------end--- #åæ·ä¿¡æ¯ wechatSerialNumer: 12C0F0DD0F3D2B565B45586D3FEA225EBF723BEC wechatPayPublicKeyId: PUB_KEY_ID_0117233260692025072500181939000603 #åæ·/平尿¯ä»å ¬é¥id wechatPubKeyPath: /usr/local/jars/payFile/shanghu/pub_key.pem #åæ·æ¯ä»å ¬é¥ wechatPrivateKeyPath: /usr/local/jars/payFile/shanghu/apiclient_key.pem #åæ·ç§é¥ wechatNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wechat/transferNotify #åæ·è½¬è´¦åè°å°å wechatApiV3Key: 7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB existsSub: 1 appSecret: #ååæ·------------start---- subMchId: 1723326069 #ååæ·å· subAppId: wx332441ae5b12be7d #å°ç¨åºid subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #å°ç¨åºç§é¥ #ååæ·------------end---- # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM typeId: jinkuai upload: type: blob qiwei: serviceurl: https://qyapi.weixin.qq.com project: # ç¯å¢ï¼ç产ç¯å¢productionï¼å¼åç¯å¢development