uploadWxMedia(String url, File file) {
+ try {
+ HttpPost httppost = new HttpPost(url);
+ httppost.setConfig(requestConfig);
+ httppost.addHeader("Content-Type", "application/json; charset=utf-8");
+ FileBody fileBody = new FileBody(file);
+ HttpEntity reqEntity = MultipartEntityBuilder.create()
+ .addPart("media", fileBody).build();
+ httppost.setEntity(reqEntity);
+ return execute(httppost);
+ } catch (Exception e) {
+ log.error("send exception", e);
+ throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
+ }
+ }
+
/**
* desc: 发送钉钉群消息 简版
* param: url,jsonStrParam
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/MultipartFileToFileUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/MultipartFileToFileUtils.java
new file mode 100644
index 0000000000..36f093405a
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/MultipartFileToFileUtils.java
@@ -0,0 +1,53 @@
+package com.epmet.commons.tools.utils;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/7/17 14:01
+ */
+public class MultipartFileToFileUtils {
+ /**
+ * MultipartFile 转 File
+ *
+ * @param file
+ * @throws Exception
+ */
+ public static File multipartFileToFile(MultipartFile file) throws Exception {
+ File toFile = null;
+ if (("").equals(file) || file.getSize() <= 0) {
+ file = null;
+ } else {
+ InputStream ins = null;
+ ins = file.getInputStream();
+ toFile = new File(file.getOriginalFilename());
+ toFile = inputStreamToFile(ins, toFile);
+ ins.close();
+ }
+ return toFile;
+ }
+
+
+ private static File inputStreamToFile(InputStream ins, File file) {
+ try {
+ OutputStream os = new FileOutputStream(file);
+ int bytesRead = 0;
+ byte[] buffer = new byte[8192];
+ while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
+ os.write(buffer, 0, bytesRead);
+ }
+ os.close();
+ ins.close();
+ return file;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeExtDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeExtDTO.java
new file mode 100644
index 0000000000..0e4abe7130
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeExtDTO.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+@Data
+public class CodeExtDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 所属端 居民的:resi,工作端:work
+ */
+ private String clientType;
+
+ /**
+ * APPID
+ */
+ private String appId;
+
+ /**
+ * 自定义配置
+ */
+ private String extJson;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 是否删除
+ */
+ private String delFlag;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MediaUploadFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MediaUploadFormDTO.java
new file mode 100644
index 0000000000..d01ba9d62c
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MediaUploadFormDTO.java
@@ -0,0 +1,19 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/7/17 11:15
+ */
+@Data
+public class MediaUploadFormDTO implements Serializable {
+ private static final long serialVersionUID = -7342624180676221309L;
+ private String codeId;
+ private String type;
+ private MultipartFile media;
+}
diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/MediaUploadResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/MediaUploadResultDTO.java
new file mode 100644
index 0000000000..501e9aeb9b
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/MediaUploadResultDTO.java
@@ -0,0 +1,17 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/7/17 11:17
+ */
+@Data
+public class MediaUploadResultDTO implements Serializable {
+ private static final long serialVersionUID = -8462768939270515547L;
+ private String id;
+ private String name;
+}
diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java
index 083ca650d9..0496f09232 100644
--- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java
@@ -18,7 +18,7 @@ public class TemplateListResultDTO implements Serializable {
/**
* 模板 id
*/
- private String templateId;
+ private String id;
/**
* 模板描述
*/
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
index bd79db3a9f..c24e502e47 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
@@ -3,10 +3,7 @@ package com.epmet.controller;
import com.baomidou.mybatisplus.extension.api.R;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
-import com.epmet.dto.form.CodeCommonFormDTO;
-import com.epmet.dto.form.CodeUploadFormDTO;
-import com.epmet.dto.form.SubmitAuditFormDTO;
-import com.epmet.dto.form.UploadListFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.CodeService;
import oracle.jdbc.proxy.annotation.Post;
@@ -43,6 +40,20 @@ public class CodeController {
return new Result>().ok(list);
}
+ /**
+ * 获取客户第三方配置
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2020/7/17 16:22
+ */
+ @PostMapping("getextjson")
+ public Result getExtJson(CodeUploadFormDTO formDTO) {
+ String extJson = codeService.getExtJson(formDTO);
+ return new Result().ok(extJson);
+ }
+
/**
* 代码上传
*
@@ -154,4 +165,18 @@ public class CodeController {
PageData result = codeService.history(formDTO);
return new Result().ok(result);
}
+
+ /**
+ * 上传临时素材
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2020/7/17 11:20
+ */
+ @PostMapping("mediaupload")
+ public Result mediaUpload(@RequestBody MediaUploadFormDTO formDTO) {
+ String result = codeService.mediaUpload(formDTO);
+ return new Result().ok(result);
+ }
}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeExtController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeExtController.java
new file mode 100644
index 0000000000..c4b9a467e9
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeExtController.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.controller;
+
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.dto.CodeExtDTO;
+import com.epmet.service.CodeExtService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+@RestController
+@RequestMapping("codeext")
+public class CodeExtController {
+
+ @Autowired
+ private CodeExtService codeExtService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = codeExtService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ CodeExtDTO data = codeExtService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody CodeExtDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ codeExtService.save(dto);
+ return new Result();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody CodeExtDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ codeExtService.update(dto);
+ return new Result();
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ codeExtService.delete(ids);
+ return new Result();
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeExtDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeExtDao.java
new file mode 100644
index 0000000000..8964c7bc3d
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeExtDao.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.CodeExtDTO;
+import com.epmet.entity.CodeExtEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+@Mapper
+public interface CodeExtDao extends BaseDao {
+
+ /**
+ * 获取第三方配置模板
+ * @author zhaoqifeng
+ * @date 2020/7/17 15:25
+ * @param
+ * @return java.lang.String
+ */
+ String selectExtTemplate(@Param("clientType") String clientType);
+
+ /**
+ * 获取客户的第三方配置
+ * @author zhaoqifeng
+ * @date 2020/7/17 15:26
+ * @param customerId
+ * @param clientType
+ * @return java.lang.String
+ */
+ CodeExtDTO selectExtByCustomerId(@Param("customerId") String customerId, @Param("clientType") String clientType);
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeExtEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeExtEntity.java
new file mode 100644
index 0000000000..8be3f7bb34
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeExtEntity.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("code_ext")
+public class CodeExtEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 所属端 居民的:resi,工作端:work
+ */
+ private String clientType;
+
+ /**
+ * APPID
+ */
+ private String appId;
+
+ /**
+ * 自定义配置
+ */
+ private String extJson;
+
+}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CodeExtRedis.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CodeExtRedis.java
new file mode 100644
index 0000000000..ee0290166f
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CodeExtRedis.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.redis;
+
+import com.epmet.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+@Component
+public class CodeExtRedis {
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public void delete(Object[] ids) {
+
+ }
+
+ public void set(){
+
+ }
+
+ public String get(String id){
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeExtService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeExtService.java
new file mode 100644
index 0000000000..888ba2c0a3
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeExtService.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.CodeExtDTO;
+import com.epmet.entity.CodeExtEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+public interface CodeExtService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2020-07-17
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2020-07-17
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return CodeExtDTO
+ * @author generator
+ * @date 2020-07-17
+ */
+ CodeExtDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2020-07-17
+ */
+ void save(CodeExtDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2020-07-17
+ */
+ void update(CodeExtDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2020-07-17
+ */
+ void delete(String[] ids);
+
+ /**
+ * 获取配置模板
+ *
+ * @param clientType
+ * @return java.lang.String
+ * @author zhaoqifeng
+ * @date 2020/7/17 15:29
+ */
+ String getExtTemplate(String clientType);
+
+ /**
+ * 获取客户第三方配置
+ *
+ * @param customerId
+ * @param clientType
+ * @return java.lang.String
+ * @author zhaoqifeng
+ * @date 2020/7/17 15:29
+ */
+ CodeExtDTO getExtByCustomer(String customerId, String clientType);
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java
index 8c7e0c6cc5..9bc9bb9bd1 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java
@@ -2,10 +2,7 @@ package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
-import com.epmet.dto.form.CodeCommonFormDTO;
-import com.epmet.dto.form.CodeUploadFormDTO;
-import com.epmet.dto.form.SubmitAuditFormDTO;
-import com.epmet.dto.form.UploadListFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import java.util.List;
@@ -26,6 +23,16 @@ public interface CodeService {
*/
List templateList();
+ /**
+ * 获取第三方配置
+ *
+ * @param formDTO 参数
+ * @return java.lang.String
+ * @author zhaoqifeng
+ * @date 2020/7/17 16:04
+ */
+ String getExtJson(CodeUploadFormDTO formDTO);
+
/**
* 代码上传
*
@@ -101,4 +108,14 @@ public interface CodeService {
* @date 2020/7/16 10:16
*/
PageData history(CodeCommonFormDTO formDTO);
+
+ /**
+ * 上传临时素材
+ *
+ * @param formDTO 参数
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2020/7/17 11:20
+ */
+ String mediaUpload(MediaUploadFormDTO formDTO);
}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeExtServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeExtServiceImpl.java
new file mode 100644
index 0000000000..f3fceb0436
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeExtServiceImpl.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.dao.CodeExtDao;
+import com.epmet.dto.CodeExtDTO;
+import com.epmet.entity.CodeExtEntity;
+import com.epmet.redis.CodeExtRedis;
+import com.epmet.service.CodeExtService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 代码第三方配置
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-07-17
+ */
+@Service
+public class CodeExtServiceImpl extends BaseServiceImpl implements CodeExtService {
+
+ @Autowired
+ private CodeExtRedis codeExtRedis;
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, CodeExtDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, CodeExtDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public CodeExtDTO get(String id) {
+ CodeExtEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, CodeExtDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(CodeExtDTO dto) {
+ CodeExtEntity entity = ConvertUtils.sourceToTarget(dto, CodeExtEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(CodeExtDTO dto) {
+ CodeExtEntity entity = ConvertUtils.sourceToTarget(dto, CodeExtEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+ @Override
+ public String getExtTemplate(String clientType) {
+ return baseDao.selectExtTemplate(clientType);
+ }
+
+ @Override
+ public CodeExtDTO getExtByCustomer(String customerId, String clientType) {
+ return baseDao.selectExtByCustomerId(customerId, clientType);
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
index db0e6dfcf1..4b9bfe1757 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
@@ -1,19 +1,18 @@
package com.epmet.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
+import com.epmet.commons.tools.utils.MultipartFileToFileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CodeConstant;
import com.epmet.dao.AuthorizationInfoDao;
import com.epmet.dao.ComponentAccessTokenDao;
import com.epmet.dto.*;
-import com.epmet.dto.form.CodeCommonFormDTO;
-import com.epmet.dto.form.CodeUploadFormDTO;
-import com.epmet.dto.form.SubmitAuditFormDTO;
-import com.epmet.dto.form.UploadListFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.OperCrmOpenFeignClient;
import com.epmet.service.*;
@@ -21,17 +20,17 @@ import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
import com.epmet.wxapi.param.WxMaCodeCommitReq;
import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
import com.epmet.wxapi.param.WxMaNewsReq;
-import com.epmet.wxapi.result.WxMaAuditStatusResult;
-import com.epmet.wxapi.result.WxMaNewsResult;
-import com.epmet.wxapi.result.WxMaTemplateResult;
-import com.epmet.wxapi.result.WxResult;
+import com.epmet.wxapi.result.*;
import com.epmet.wxapi.service.WxMaCodeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -60,6 +59,10 @@ public class CodeServiceImpl implements CodeService {
private CustomerMpService customerMpService;
@Autowired
private CodeOperationHistoryService codeOperationHistoryService;
+ @Autowired
+ private CodeMediaService codeMediaService;
+ @Autowired
+ private CodeExtService codeExtService;
@Override
public List templateList() {
@@ -76,7 +79,7 @@ public class CodeServiceImpl implements CodeService {
}
wxResult.getData().forEach(temp -> {
TemplateListResultDTO dto = new TemplateListResultDTO();
- dto.setTemplateId(temp.getTemplateId());
+ dto.setId(temp.getTemplateId());
dto.setUserVersion(temp.getUserVersion());
dto.setUserDesc(temp.getUserDesc());
dto.setCreateTime(DateUtils.formatTimestamp(temp.getCreateTime(), DateUtils.DATE_PATTERN));
@@ -85,6 +88,15 @@ public class CodeServiceImpl implements CodeService {
return resultList;
}
+ @Override
+ public String getExtJson(CodeUploadFormDTO formDTO) {
+ CodeExtDTO codeExtDTO = codeExtService.getExtByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
+ if (null == codeExtDTO) {
+ return codeExtService.getExtTemplate(formDTO.getClientType());
+ }
+ return codeExtDTO.getExtJson();
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void upload(CodeUploadFormDTO formDTO) {
@@ -97,11 +109,24 @@ public class CodeServiceImpl implements CodeService {
if (null == authInfo) {
throw new RenException("未授权");
}
- //TODO 获取第三方自定义配置
- String extJson = "{}";
+ if (!isJson(formDTO.getExtJson())) {
+ throw new RenException("第三方配置不是有效的Json");
+ }
+
+ CodeExtDTO codeExtDTO = codeExtService.getExtByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
+ if (null == codeExtDTO) {
+ codeExtDTO = new CodeExtDTO();
+ codeExtDTO.setCustomerId(formDTO.getCustomerId());
+ codeExtDTO.setClientType(formDTO.getClientType());
+ codeExtDTO.setAppId(authInfo.getAuthorizerAppid());
+ codeExtDTO.setExtJson(formDTO.getExtJson());
+ codeExtService.save(codeExtDTO);
+ }
+ codeExtDTO.setExtJson(formDTO.getExtJson());
+ codeExtService.update(codeExtDTO);
WxMaCodeCommitReq request = ConvertUtils.sourceToTarget(formDTO, WxMaCodeCommitReq.class);
- request.setExtJson(extJson);
+ request.setExtJson(formDTO.getExtJson());
//调用微信API上传代码
WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request);
//上传失败,抛出异常
@@ -122,7 +147,7 @@ public class CodeServiceImpl implements CodeService {
//将上传信息存入表中
CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class);
codeCustomerDTO.setCustomerName(customerInfo.getData().getCustomerName());
- codeCustomerDTO.setExtJson(extJson);
+ codeCustomerDTO.setExtJson(formDTO.getExtJson());
codeCustomerDTO.setStatus(CodeConstant.UNAUDITED);
codeCustomerService.save(codeCustomerDTO);
@@ -133,6 +158,9 @@ public class CodeServiceImpl implements CodeService {
public PageData uploadList(UploadListFormDTO formDTO) {
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
+ if (null == authInfo) {
+ throw new RenException("未授权");
+ }
List auditingList = codeCustomerService.getAuditingCodeList();
auditingList.forEach(code -> {
//获取审核结果信息
@@ -143,16 +171,16 @@ public class CodeServiceImpl implements CodeService {
WxResult wxAuditResult = wxMaCodeService.getAuditStatus(authInfo.getAuthorizerAccessToken(), request);
if (wxAuditResult.success()) {
WxMaAuditStatusResult result = wxAuditResult.getData();
- if(result.getStatus() == NumConstant.ZERO) {
+ if (result.getStatus() == NumConstant.ZERO) {
code.setStatus(CodeConstant.AUDIT_SUCCESS);
auditResult.setResult(CodeConstant.AUDIT_SUCCESS);
codeOperationHistoryService.updateDescribe(code.getId(), "审核成功");
- } else if(result.getStatus() == NumConstant.ONE) {
+ } else if (result.getStatus() == NumConstant.ONE) {
code.setStatus(CodeConstant.AUDIT_FAILED);
auditResult.setResult(CodeConstant.AUDIT_FAILED);
auditResult.setReason(result.getReason());
codeOperationHistoryService.updateDescribe(code.getId(), result.getReason());
- } else if(result.getStatus() == NumConstant.FOUR) {
+ } else if (result.getStatus() == NumConstant.FOUR) {
code.setStatus(CodeConstant.DELAY);
auditResult.setResult(CodeConstant.DELAY);
codeOperationHistoryService.updateDescribe(code.getId(), "审核延后");
@@ -174,6 +202,9 @@ public class CodeServiceImpl implements CodeService {
}
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
+ if (null == authInfo) {
+ throw new RenException("未授权");
+ }
//调用微信API上提交审核
WxMaCodeSubmitAuditRequest request = ConvertUtils.sourceToTarget(formDTO, WxMaCodeSubmitAuditRequest.class);
WxResult wxResult = wxMaCodeService.submitAudit(authInfo.getAuthorizerAccessToken(), request);
@@ -208,11 +239,14 @@ public class CodeServiceImpl implements CodeService {
CodeAuditResultDTO codeAuditResultDTO = codeAuditResultService.getAuditResultByCodeId(formDTO.getCodeId());
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
+ if (null == authInfo) {
+ throw new RenException("未授权");
+ }
//调用微信API获取最新审核状态
WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq();
request.setAuditId(codeAuditResultDTO.getAuditId());
WxResult wxAuditResult = wxMaCodeService.getAuditStatus(authInfo.getAuthorizerAccessToken(), request);
- if (!wxAuditResult.success() ) {
+ if (!wxAuditResult.success()) {
throw new RenException(wxAuditResult.getErrorCode(), wxAuditResult.getErrorMsg());
}
if (wxAuditResult.getData().getStatus() != NumConstant.TWO) {
@@ -248,6 +282,9 @@ public class CodeServiceImpl implements CodeService {
}
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
+ if (null == authInfo) {
+ throw new RenException("未授权");
+ }
//调用微信API发布代码
WxResult wxResult = wxMaCodeService.release(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) {
@@ -274,13 +311,15 @@ public class CodeServiceImpl implements CodeService {
if (customerMpService.getAuthFlag(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType())) {
throw new RenException("未授权");
}
- //TODO 获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
+ if (null == authInfo) {
+ throw new RenException("未授权");
+ }
//获取审核结果信息
CodeAuditResultDTO codeAuditResultDTO = codeAuditResultService.getAuditResultByCodeId(formDTO.getCodeId());
result.setReason(codeAuditResultDTO.getReason());
String[] mediaIds = codeAuditResultDTO.getScreenShot().split("[|]");
- List mediaIdList = new ArrayList<>(mediaIds.length);
+ List mediaIdList = new ArrayList<>(mediaIds.length);
Collections.addAll(mediaIdList, mediaIds);
List urlList = new ArrayList<>();
mediaIdList.forEach(mediaId -> {
@@ -328,6 +367,32 @@ public class CodeServiceImpl implements CodeService {
return new PageData<>(list, pageInfo.getTotal());
}
+ @Override
+ public String mediaUpload(MediaUploadFormDTO formDTO) {
+ try {
+ File file = MultipartFileToFileUtils.multipartFileToFile(formDTO.getMedia());
+ //获取上传代码信息
+ CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId());
+ //获取小程序调用令牌
+ AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
+ WxResult wxResult = wxMaCodeService.uploadMedia(authInfo.getAuthorizerAccessToken(), formDTO.getType(), file);
+ if (!wxResult.success()) {
+ throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
+ }
+ //将素材信息存入数据库表中
+ CodeMediaDTO codeMediaDTO = new CodeMediaDTO();
+ codeMediaDTO.setCodeId(formDTO.getCodeId());
+ codeMediaDTO.setMediaId(wxResult.getData().getMediaId());
+ codeMediaDTO.setMediaName(formDTO.getMedia().getName());
+ codeMediaDTO.setMediaType(wxResult.getData().getType());
+ codeMediaService.save(codeMediaDTO);
+ return wxResult.getData().getMediaId();
+
+ } catch (Exception e) {
+ throw new RenException("上传失败");
+ }
+ }
+
private void saveOperation(String customerId, String codeId, String version, String operation, String describe) {
CodeOperationHistoryDTO operationDTO = new CodeOperationHistoryDTO();
operationDTO.setCustomerId(customerId);
@@ -338,4 +403,22 @@ public class CodeServiceImpl implements CodeService {
codeOperationHistoryService.save(operationDTO);
}
+ /**
+ * 校验是否是Json
+ *
+ * @param content
+ * @return boolean
+ * @author zhaoqifeng
+ * @date 2020/7/17 15:43
+ */
+ private boolean isJson(String content) {
+ try {
+ JSONObject jsonStr = JSONObject.parseObject(content);
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+
}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java
index 6cd7051f28..5b48d7f65d 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java
@@ -127,4 +127,19 @@ public interface WxMaCodeConstant {
* 获取永久素材
*/
String GET_MATERIAL_URL = "https://api.weixin.qq.com/cgi-bin/material/get_material";
+
+ /**
+ * 设置服务器域名
+ */
+ String MODIFY_DOMAIN_URL = "https://api.weixin.qq.com/wxa/modify_domain";
+
+ /**
+ * 设置业务域名
+ */
+ String SET_WEBVIEW_DOMAIN_URL = "https://api.weixin.qq.com/wxa/setwebviewdomain";
+
+ /**
+ * 新增临时素材
+ */
+ String MEDIA_UPLOAD_URL = "https://api.weixin.qq.com/wxa/setwebviewdomain";
}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaModifyDomainReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaModifyDomainReq.java
new file mode 100644
index 0000000000..634d66e39d
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaModifyDomainReq.java
@@ -0,0 +1,44 @@
+package com.epmet.wxapi.param;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/7/16 17:28
+ */
+@NoArgsConstructor
+@Data
+public class WxMaModifyDomainReq implements Serializable {
+
+ private static final long serialVersionUID = 2768949609300541671L;
+ /**
+ * 操作类型
+ */
+ private String action;
+ /**
+ * request 合法域名
+ */
+ @SerializedName("requestdomain")
+ private List requestDomain;
+ /**
+ * socket 合法域名
+ */
+ @SerializedName("wsrequestdomain")
+ private List wsRequestDomain;
+ /**
+ * uploadFile 合法域名
+ */
+ @SerializedName("uploaddomain")
+ private List uploadDomain;
+ /**
+ * downloadFile 合法域名
+ */
+ @SerializedName("downloaddomain")
+ private List downloadDomain;
+}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaSetWebviewDomainReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaSetWebviewDomainReq.java
new file mode 100644
index 0000000000..78c1e2540e
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaSetWebviewDomainReq.java
@@ -0,0 +1,29 @@
+package com.epmet.wxapi.param;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/7/16 17:31
+ */
+@NoArgsConstructor
+@Data
+public class WxMaSetWebviewDomainReq implements Serializable {
+
+ private static final long serialVersionUID = 4560145267553484959L;
+ /**
+ * 操作类型
+ */
+ private String action;
+ /**
+ * 小程序业务域名
+ */
+ @SerializedName("webviewdomain")
+ private List webViewDomain;
+}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaGetCategoryResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaGetCategoryResult.java
index b120ad55df..c729095e64 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaGetCategoryResult.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaGetCategoryResult.java
@@ -1,5 +1,6 @@
package com.epmet.wxapi.result;
+import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
@@ -24,5 +25,6 @@ public class WxMaGetCategoryResult implements Serializable {
/**
* 可填选的类目信息列表
*/
+ @SerializedName("category_list")
private List categoryList;
}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaUploadMediaResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaUploadMediaResult.java
new file mode 100644
index 0000000000..3ab26aff9a
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaUploadMediaResult.java
@@ -0,0 +1,25 @@
+package com.epmet.wxapi.result;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/7/17 14:10
+ */
+@Data
+public class WxMaUploadMediaResult implements Serializable {
+ private static final long serialVersionUID = 7258823761146570668L;
+ @SerializedName("errcode")
+ private Integer errCode = 0;
+ @SerializedName("errmsg")
+ private String errMsg;
+ private String type;
+ @SerializedName("media_id")
+ private String mediaId;
+ @SerializedName("created_at")
+ private String createdAt;
+}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java
index 7a3f6dd641..111dff5f06 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java
@@ -4,11 +4,9 @@ import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
import com.epmet.wxapi.param.WxMaCodeCommitReq;
import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
import com.epmet.wxapi.param.WxMaNewsReq;
-import com.epmet.wxapi.result.WxMaAuditStatusResult;
-import com.epmet.wxapi.result.WxMaNewsResult;
-import com.epmet.wxapi.result.WxMaTemplateResult;
-import com.epmet.wxapi.result.WxResult;
+import com.epmet.wxapi.result.*;
+import java.io.File;
import java.util.List;
/**
@@ -114,7 +112,32 @@ public interface WxMaCodeService {
*/
WxResult getMaterial(String accessToken, WxMaNewsReq request);
- //TODO 设置服务器域名
+ /**
+ * 设置服务器郁闷
+ * @author zhaoqifeng
+ * @date 2020/7/16 17:21
+ * @param accessToken
+ * @return com.epmet.wxapi.result.WxResult
+ */
+ WxResult modifyDomain(String accessToken);
+
+ /**
+ * 设置业务域名
+ * @author zhaoqifeng
+ * @date 2020/7/16 17:22
+ * @param accessToken
+ * @return com.epmet.wxapi.result.WxResult
+ */
+ WxResult setWebviewDomain(String accessToken);
- //TODO 设置业务域名
+ /**
+ * 上传临时素材
+ * @author zhaoqifeng
+ * @date 2020/7/17 10:27
+ * @param accessToken
+ * @param type
+ * @param file
+ * @return com.epmet.wxapi.result.WxResult
+ */
+ WxResult uploadMedia(String accessToken, String type, File file);
}
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
index b4b8a29778..dfc9bb5cc9 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
@@ -4,17 +4,17 @@ import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.wxapi.constant.WxMaCodeConstant;
-import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
-import com.epmet.wxapi.param.WxMaCodeCommitReq;
-import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
-import com.epmet.wxapi.param.WxMaNewsReq;
+import com.epmet.wxapi.enums.WxMaErrorMsgEnum;
+import com.epmet.wxapi.param.*;
import com.epmet.wxapi.result.*;
import com.epmet.wxapi.service.WxMaCodeService;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@@ -30,6 +30,16 @@ import java.util.List;
public class WxMaCodeServiceImpl implements WxMaCodeService {
private static final String ERR_CODE = "errcode";
private static final String ERR_MSG = "errmsg";
+ @Value("${third.domain.requestdomain}")
+ private List requestDomain;
+ @Value("${third.domain.wsrequestdomain}")
+ private List wsRequestDomain;
+ @Value("${third.domain.uploaddomain}")
+ private List uploadDomain;
+ @Value("${third.domain.downloaddomain}")
+ private List downloadDomain;
+ @Value("${third.domain.webviewdomain}")
+ private List webviewDomain;
@Override
public WxResult> getTemplateList(String accessToken) {
@@ -42,7 +52,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
return result;
}
Gson gson = new Gson();
- WxMaTemplateListResult templateList = new Gson().fromJson(templateListResult.getData(), WxMaTemplateListResult.class);
+ WxMaTemplateListResult templateList = gson.fromJson(templateListResult.getData(), WxMaTemplateListResult.class);
result.setErrorCode(templateList.getErrCode());
result.setErrorMsg(templateList.getErrMsg());
result.setData(templateList.getTemplateList());
@@ -61,7 +71,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
}
JSONObject jsonObject = JSONObject.parseObject(commitResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
- result.setErrorMsg(jsonObject.getString(ERR_MSG));
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
return result;
}
@@ -79,7 +89,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
Result qrCodeResult = HttpClientManager.getInstance().sendGetFile(url.toString(), null);
if (!qrCodeResult.success()) {
result.setErrorCode(qrCodeResult.getCode());
- result.setErrorMsg(qrCodeResult.getMsg());
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(qrCodeResult.getCode()));
return result;
}
@@ -98,9 +108,10 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
result.setErrorMsg(getCategoryResult.getMsg());
return result;
}
- WxMaGetCategoryResult categoryResult = JSONObject.parseObject(getCategoryResult.getData(), WxMaGetCategoryResult.class);
+ Gson gson = new Gson();
+ WxMaGetCategoryResult categoryResult = gson.fromJson(getCategoryResult.getData(), WxMaGetCategoryResult.class);
result.setErrorCode(categoryResult.getErrcode());
- result.setErrorMsg(categoryResult.getErrmsg());
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(categoryResult.getErrcode()));
result.setData(categoryResult.getCategoryList());
return result;
}
@@ -117,7 +128,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
}
WxMaGetPageResult pageResult = JSONObject.parseObject(getPageResult.getData(), WxMaGetPageResult.class);
result.setErrorCode(pageResult.getErrcode());
- result.setErrorMsg(pageResult.getErrmsg());
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(pageResult.getErrcode()));
result.setData(pageResult.getPageList());
return result;
}
@@ -134,7 +145,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
}
JSONObject jsonObject = JSONObject.parseObject(submitResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
- result.setErrorMsg(jsonObject.getString(ERR_MSG));
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
result.setData(jsonObject.getString("auditid"));
return result;
}
@@ -152,7 +163,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
WxMaAuditStatusResult auditStatusResult = JSONObject.parseObject(statusResult.getData(), WxMaAuditStatusResult.class);
if (!auditStatusResult.success()){
result.setErrorCode(auditStatusResult.getErrcode());
- result.setErrorMsg(auditStatusResult.getErrmsg());
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(auditStatusResult.getErrcode()));
return result;
}
result.ok(auditStatusResult);
@@ -171,7 +182,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
}
JSONObject jsonObject = JSONObject.parseObject(releaseResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
- result.setErrorMsg(jsonObject.getString(ERR_MSG));
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
return result;
}
@@ -187,7 +198,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
}
JSONObject jsonObject = JSONObject.parseObject(undoResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
- result.setErrorMsg(jsonObject.getString(ERR_MSG));
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
return result;
}
@@ -201,22 +212,68 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
result.setErrorMsg(statusResult.getMsg());
return result;
}
- WxMaNewsResult newsResult = JSONObject.parseObject(statusResult.getData(), WxMaNewsResult.class);
+ Gson gson = new Gson();
+ WxMaNewsResult newsResult = gson.fromJson(statusResult.getData(), WxMaNewsResult.class);
result.ok(newsResult);
return result;
}
- public static void main(String[] args) {
- String url = "{\"errcode\":0,\"errmsg\":\"ok\",\"category_list\":[{\"first_class\":\"工具\",\"second_class\":\"备忘录\",\"first_id\":1,\"second_id\":2,}\n" +
- "{\"first_class\":\"教育\",\"second_class\":\"学历教育\",\"third_class\":\"高等\",\"first_id\":3,\"second_id\":4,\"third_id\":5,}]}";
- WxMaGetCategoryResult video = JSONObject.parseObject(url, WxMaGetCategoryResult.class);
- WxResult> result = new WxResult<>();
- result.setErrorCode(video.getErrcode());
- result.setErrorMsg(video.getErrmsg());
- result.setData(video.getCategoryList());
- System.out.println(result);
- WxMaCodeSubmitAuditRequest request = new WxMaCodeSubmitAuditRequest();
- request.setVersionDesc("aasdf");
+ @Override
+ public WxResult modifyDomain(String accessToken) {
+ WxResult result = new WxResult();
+ String url = WxMaCodeConstant.MODIFY_DOMAIN_URL + "?" + "access_token=" + accessToken;
+ WxMaModifyDomainReq request = new WxMaModifyDomainReq();
+ request.setAction("set");
+ request.setRequestDomain(requestDomain);
+ request.setUploadDomain(uploadDomain);
+ request.setWsRequestDomain(wsRequestDomain);
+ request.setDownloadDomain(downloadDomain);
+ Result modifyResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
+ if (!modifyResult.success()) {
+ result.setErrorCode(modifyResult.getCode());
+ result.setErrorMsg(modifyResult.getMsg());
+ return result;
+ }
+ JSONObject jsonObject = JSONObject.parseObject(modifyResult.getData());
+ result.setErrorCode(jsonObject.getInteger(ERR_CODE));
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
+ return result;
+ }
+
+ @Override
+ public WxResult setWebviewDomain(String accessToken) {
+ WxResult result = new WxResult();
+ String url = WxMaCodeConstant.SET_WEBVIEW_DOMAIN_URL + "?" + "access_token=" + accessToken;
+ WxMaSetWebviewDomainReq request = new WxMaSetWebviewDomainReq();
+ request.setAction("set");
+ request.setWebViewDomain(webviewDomain);
+ Result modifyResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
+ if (!modifyResult.success()) {
+ result.setErrorCode(modifyResult.getCode());
+ result.setErrorMsg(modifyResult.getMsg());
+ return result;
+ }
+ JSONObject jsonObject = JSONObject.parseObject(modifyResult.getData());
+ result.setErrorCode(jsonObject.getInteger(ERR_CODE));
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
+ return result;
+ }
+
+ @Override
+ public WxResult uploadMedia(String accessToken, String type, File file) {
+ WxResult result = new WxResult<>();
+ String url = WxMaCodeConstant.MEDIA_UPLOAD_URL + "?" + "access_token=" + accessToken + "&type=" + type;
+ Result mediaResult = HttpClientManager.getInstance().uploadWxMedia(url, file);
+ if (!mediaResult.success()) {
+ result.setErrorCode(mediaResult.getCode());
+ result.setErrorMsg(mediaResult.getMsg());
+ return result;
+ }
+ Gson gson = new Gson();
+ WxMaUploadMediaResult mediaInfo = gson.fromJson(mediaResult.getData(), WxMaUploadMediaResult.class);
+ result.setErrorCode(mediaInfo.getErrCode());
+ result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(mediaInfo.getErrCode()));
+ return result;
}
private String toJson(Object object) {
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml
index 0eaf3270c2..3a35da5bb6 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml
@@ -103,4 +103,15 @@ third:
appId: wxd63ff476314c7c3e
appSecret: 4733aa5ba6dfe0efc569ebac7c4fe56b
aesKey: d6dbde92c67e11eabac1c03fd56f7847qazxswedcvg
- token: 1ae5f230c67f11eabac1c03fd56f7847
\ No newline at end of file
+ token: 1ae5f230c67f11eabac1c03fd56f7847
+ domain:
+ requestdomain:
+ - "https://epmet-cloud.elinkservice.cn"
+ wsrequestdomain:
+ - "https://epmet-cloud.elinkservice.cn"
+ uploaddomain:
+ - "https://epmet-cloud.elinkservice.cn"
+ downloaddomain:
+ - "https://epmet-cloud.elinkservice.cn"
+ webviewdomain:
+ - "https://epmet-cloud.elinkservice.cn"
\ No newline at end of file
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeExtDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeExtDao.xml
new file mode 100644
index 0000000000..1afa087a7a
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeExtDao.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SELECT
+ EXT_JSON
+ FROM
+ code_ext
+ WHERE
+ DEL_FLAG = '0'
+ AND CUSTOMER_ID = '*'
+ AND CLIENT_TYPE = #{clientType}
+
+
+ SELECT
+ *
+ FROM
+ code_ext
+ WHERE
+ DEL_FLAG = '0'
+ AND CUSTOMER_ID = #{customerId}
+ AND CLIENT_TYPE = #{clientType}
+
+
+
+
\ No newline at end of file