From 1be9f9fdb13f7c5cdcf29494cb72ced35cd7af10 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 16 七月 2024 22:18:04 +0800
Subject: [PATCH] 提交

---
 /dev/null                                                                           |   37 ------
 server/service/src/main/java/com/doumee/core/utils/Constants.java                   |   19 +-
 server/web/src/main/java/com/doumee/api/web/PersonnelApi.java                       |    3 
 server/service/src/main/java/com/doumee/dao/web/reqeust/ContentShareImgDto.java     |    4 
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java |   67 ++++++++++
 server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java             |  164 +++++++++++++++++++++++++++
 server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java       |   20 ++-
 server/service/src/main/java/com/doumee/service/timer/QuartzJobService.java         |    3 
 server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java                  |   11 +
 server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java        |    6 
 10 files changed, 268 insertions(+), 66 deletions(-)

diff --git a/server/admin/src/main/java/com/doumee/timer/ZbomIAMSyncJobBiz.java b/server/admin/src/main/java/com/doumee/timer/ZbomIAMSyncJobBiz.java
deleted file mode 100644
index 1e5d324..0000000
--- a/server/admin/src/main/java/com/doumee/timer/ZbomIAMSyncJobBiz.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.doumee.timer;
-
-import com.doumee.biz.zbom.ZbomIAMService;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Method;
-
-/**
- * @author 鍏紬鍙�:鐭ヤ簡涓�绗�
- * @since 2023-07-26 11:44
- */
-@Component("iamServiceJob")
-public class ZbomIAMSyncJobBiz implements JobService {
-    private static final Logger log = LoggerFactory.getLogger(ZbomIAMSyncJobBiz.class);
-
-    @Autowired
-    ZbomIAMService zbomIAMService;
-    @Override
-    public void run(String params,String module) {
-        Method method = null;
-        try {
-            if(StringUtils.equals(module,"userInit")){
-                zbomIAMService.startUserInit(params);
-            }else  if(StringUtils.equals(module,"orgInit")){
-                zbomIAMService.startOrgInit(params);
-            }else
-                log.info("\n ======== 瀹氭椂浠诲姟宸叉墽琛岋細iamServiceJob.========"+module);
-        } catch (Exception e) {
-           e.printStackTrace();
-        }
-    }
-
-}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java
index c97f9d5..21710ea 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java
@@ -14,9 +14,9 @@
     public static final CharSequence CODE_SUCCESS = "1";
     public interface IntegerUrl{
         String POST_CUS_DATA_URL ="/api/public/zbom/postCusData";
-        String CUS_BEFORE_PAGE_LIST_URL ="api/public/mini/program/cusOrBeforeList";
-        String DAOGOU_BIND_LIST_URL ="api/public/mini/program/list";
-        String GO_CRM_AUTH_URL ="oauth/authorize/jump";
+        String CUS_BEFORE_PAGE_LIST_URL ="/api/public/mini/program/cusOrBeforeList";
+        String DAOGOU_BIND_LIST_URL ="/api/public/mini/program/list";
+        String GO_CRM_AUTH_URL ="/oauth/authorize/jump";
 
     }
     public interface IntegerName{
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 6a4960e..9f56acb 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -334,6 +334,7 @@
     public static final String WEIXIN_DEFAULT_IMGS = "WEIXIN_DEFAULT_IMGS";
     public static final String USER_CARD_DEFAULT_IMG = "USER_CARD_DEFAULT_IMG";
     public static final String USERS_FILE = "USERS_FILE";
+    public static final String SHARES_FILE = "SHARES_FILE";
     public static final String NEWS_FILE = "NEWS_FILE";
     public static final String USER_LABEL = "USER_LABEL";
     //鍙戦�佷細璁紑濮�  瀹氭椂鎻愬墠澶氬皯鍒嗛挓鍙戦��
@@ -366,6 +367,7 @@
 
 
     public static final String WX_MINI_CONFIG = "WX_MINI_CONFIG";
+    public static final String SHARE_HAIBAO_HEADER_TITLE = "SHARE_HAIBAO_HEADER_TITLE";
     public static final String WX_APPID_CUSTOMER = "WX_APPID_CUSTOMER";
     public static final String WX_SECRET_CUSTOMER = "WX_SECRET_CUSTOMER";
     public static final String WX_APPID_PERSONNEL = "WX_APPID_PERSONNEL";
@@ -706,19 +708,20 @@
             Response response = client.newCall(request).execute();
             if (response.isSuccessful()) {
                 InputStream inputStream = new ByteArrayInputStream(response.body().bytes());
-//                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-//                    byte[] buffer = new byte[1024];
-//                    int len = -1;
-//                    while ((len = inputStream.read(buffer)) != -1) {
-//                        baos.write(buffer, 0, len);
-//                    }
-//                System.out.println("data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray()));
+          /*      ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                    byte[] buffer = new byte[1024];
+                    int len = -1;
+                    while ((len = inputStream.read(buffer)) != -1) {
+                        baos.write(buffer, 0, len);
+                    }
+                System.out.println("data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray()));*/
                 return inputStream;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢熸垚鍥剧墖澶辫触");
+        return  null;
+//        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢熸垚鍥剧墖澶辫触");
     }
 
 
diff --git a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
index a09dcac..7d16eae 100644
--- a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
@@ -5,6 +5,7 @@
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.http.MediaType;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
@@ -13,6 +14,7 @@
 import javax.imageio.stream.ImageOutputStream;
 import java.awt.*;
 import java.awt.geom.Ellipse2D;
+import java.awt.geom.RoundRectangle2D;
 import java.awt.image.BufferedImage;
 import java.io.*;
 import java.math.BigDecimal;
@@ -301,7 +303,6 @@
             g2.drawRect( 0, 0, 750, 700);
         }
 
-        int th = 30;
         //鍚嶇О
         if(name.length()>5){
             name = name.substring(0,5)+"...";
@@ -382,11 +383,170 @@
         }
     }
 
-    private static BufferedImage getImgIO(String imgurl) {
+    public static BufferedImage getImgIO(String imgurl) {
         try {
         return     ImageIO.read(new URL(imgurl));
         }catch (Exception e){
 
         }return null;
     }
+    private static BufferedImage getImgIO(InputStream is) {
+        try {
+             return     ImageIO.read(is);
+        }catch (Exception e){
+
+        }return null;
+    }
+
+    public static InputStream generateShareImg(String imgurl, InputStream mpCode, String title) {
+
+        BufferedImage bi =  new BufferedImage(750, 976, BufferedImage.TYPE_INT_RGB);
+        //寰楀埌瀹冪殑缁樺埗鐜(杩欏紶鍥剧墖鐨勭瑪)
+        Graphics2D g2 = (Graphics2D) bi.getGraphics();
+        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+        g2.fillRect(0, 0, 750, 976);
+        //鑳屾櫙鍥剧墖
+        dealTitleCenter(g2,th,title);
+        if(StringUtils.isNotBlank(imgurl)){
+            BufferedImage img1 =getImgIO(imgurl);
+            if(img1!=null){
+                int w = img1.getWidth();
+                int h = img1.getHeight();
+                int h1 = (int)((double)w *502/670);
+                int w1 = (int)((double)h *670/502);
+                if(h>h1){
+                    h = h1;
+                }
+                if(w>w1){
+                    w = w1;
+                }
+                img1 = img1.getSubimage(0,0,w,h);
+                g2.drawImage(setRadius(img1,20,0,0), 40, 204, 670 ,502, null);
+
+            }
+        }
+
+//        g2.setColor(Color.white);
+//        g2.drawRoundRect(39,204, 672, 502, 1,1);//鐢讳竴涓渾瑙掔煩褰�
+
+        g2.setColor(Color.black);
+        g2.setFont(new Font("榛戜綋", Font.BOLD, 40));
+        g2.drawString("闀挎寜璇嗗埆灏忕▼搴�", 40,768+th);
+        g2.setColor(Color.gray);
+        g2.setFont(new Font("榛戜綋", Font.PLAIN, 32));
+        g2.drawString("鏌ョ湅鏇村绮惧僵鍐呭", 40,820+th);
+
+
+        BufferedImage img3 = getImgIO(mpCode);
+        if(img3!=null){
+            g2.drawImage(img3, 530, 736, 180, 180, null);
+        }
+        InputStream inputStream = bufferedImageToInputStream(bi);
+        return inputStream;
+    }
+
+    /**
+     * 鍥剧墖璁剧疆鍦嗚
+     * @param srcImage
+     * @return
+     * @throws
+     */
+    public static BufferedImage setRadius(BufferedImage srcImage, int radius, int border, int padding){
+        int width = srcImage.getWidth();
+        int height = srcImage.getHeight();
+        int canvasWidth = width + padding * 2;
+        int canvasHeight = height + padding * 2;
+
+        BufferedImage image = new BufferedImage(canvasWidth, canvasHeight, BufferedImage.TYPE_INT_ARGB);
+        Graphics2D gs = image.createGraphics();
+        gs.setComposite(AlphaComposite.Src);
+        gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        gs.setColor(Color.WHITE);
+        gs.fill(new RoundRectangle2D.Float(0, 0, canvasWidth, canvasHeight, radius, radius));
+        gs.setComposite(AlphaComposite.SrcAtop);
+        gs.drawImage(setClip(srcImage, radius), padding, padding, null);
+        if(border !=0){
+            gs.setColor(Color.white);
+            gs.setStroke(new BasicStroke(border));
+            gs.drawRoundRect(padding, padding, canvasWidth - 2 * padding, canvasHeight - 2 * padding, radius, radius);
+        }
+        gs.dispose();
+        return image;
+    }
+
+
+    /**
+     * 鍥剧墖鍒囧渾瑙�
+     * @param srcImage
+     * @param radius
+     * @return
+     */
+    public static BufferedImage setClip(BufferedImage srcImage, int radius){
+        int width = srcImage.getWidth();
+        int height = srcImage.getHeight();
+        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
+        Graphics2D gs = image.createGraphics();
+
+        gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        gs.setClip(new RoundRectangle2D.Double(0, 0, width, height, radius, radius));
+        gs.drawImage(srcImage, 0, 0, null);
+        gs.dispose();
+        return image;
+    }
+
+    private static void dealTitleCenter(Graphics2D g2, int th, String title) {
+        String[] titles  = title.split("&");
+        for (int i = 0; i < titles.length && i<2; i++) {
+            String name = titles[i];
+            //鍚嶇О
+            if(name.length()>=17){
+                name = name.substring(0,17);
+            }
+            Font font =new Font("榛戜綋", Font.BOLD, 38);
+            FontMetrics fontMetrics = g2.getFontMetrics(font);
+            int centerX = 750 / 2;
+            int textWidth = fontMetrics.stringWidth(name);
+            g2.setColor(Color.black);
+            g2.setFont(font);
+            g2.drawString(name, centerX - textWidth / 2, 60+th+i*55);
+        }
+    }
+    public static int th = 30;
+    public static InputStream generateShareWithUserImg(BufferedImage imgurl, InputStream mpCode, String header, String name) {
+        int w = imgurl.getWidth();
+        int h = imgurl.getHeight();
+        double rate = (double)w/750d;
+
+        //寰楀埌瀹冪殑缁樺埗鐜(杩欏紶鍥剧墖鐨勭瑪)
+        Graphics2D g2 = (Graphics2D) imgurl.getGraphics();
+        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+        //鑳屾櫙鍥剧墖
+      
+        BufferedImage img1 =getImgIO(header);
+        if(img1!=null){
+            g2.drawImage(setRadius(img1,img1.getWidth(),0,0), (int)(20*rate), (int)(h-68*rate), (int)(48*rate) ,(int)(48*rate), null);
+        }
+
+        Font font =new Font("榛戜綋", Font.PLAIN, (int)(28 * rate));
+        FontMetrics fontMetrics = g2.getFontMetrics(font);
+        int textWidth = fontMetrics.stringWidth(name);
+
+        g2.setColor(Color.white);
+        g2.setFont(font);
+        g2.drawString(name, (int) (80*rate),h-(int)((64-th)*rate));
+        g2.setColor(Color.white);
+        g2.setFont(new Font("榛戜綋", Font.PLAIN, (int)(24* rate)));
+        g2.drawString("鎵弿鐪嬫洿澶�", (int)(w -(textWidth+30*rate)),h-(int)(rate*(50-th)));
+
+        BufferedImage img3 = getImgIO(mpCode);
+        if(img3!=null){
+            g2.setColor(Color.white);
+            g2.fillOval((int)(w-130*rate), (int)(h-rate*150), (int)(100*rate) , (int)(100*rate));
+            g2.drawImage(img3, (int)(w-130*rate), (int)(h-rate*150), (int)(100*rate) , (int)(100*rate), null);
+        }
+        InputStream inputStream = bufferedImageToInputStream(imgurl);
+        return inputStream;
+    }
 }
diff --git a/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java b/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
index 53331b5..599446e 100644
--- a/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
+++ b/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
@@ -87,14 +87,18 @@
             CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
                                                 .cronSchedule(quartzJob.getCronExpres())
                                                 .withMisfireHandlingInstructionDoNothing();
-            // 浠诲姟瑙﹀彂鍣�
-            CronTrigger trigger = getCronTrigger(quartzJob.getId())
-                                .getTriggerBuilder().withIdentity(triggerKey)
-                                .withSchedule(scheduleBuilder).build();
-            trigger.getJobDataMap().put(QuartzJob.JOB_PARAM_KEY, quartzJob);
-            scheduler.rescheduleJob(triggerKey, trigger);
-            // 鐘舵�佹牎楠�
-            checkStop(quartzJob) ;
+            CronTrigger t =  getCronTrigger(quartzJob.getId());
+            if(t !=null){
+                // 浠诲姟瑙﹀彂鍣�
+                CronTrigger trigger = t
+                        .getTriggerBuilder().withIdentity(triggerKey)
+                        .withSchedule(scheduleBuilder).build();
+                trigger.getJobDataMap().put(QuartzJob.JOB_PARAM_KEY, quartzJob);
+                scheduler.rescheduleJob(triggerKey, trigger);
+                // 鐘舵�佹牎楠�
+                checkStop(quartzJob) ;
+            }
+
         } catch (SchedulerException e) {
             throw new RuntimeException("updateJob Fail",e) ;
         }
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/ContentShareImgDto.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/ContentShareImgDto.java
index 854dd31..c9594a0 100644
--- a/server/service/src/main/java/com/doumee/dao/web/reqeust/ContentShareImgDto.java
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/ContentShareImgDto.java
@@ -17,6 +17,10 @@
 public class ContentShareImgDto {
     @ApiModelProperty(value = "鍥剧墖鍦板潃锛屽畬鏁磋矾寰�")
     private String imgurl;
+    @ApiModelProperty(value = "灏忕▼搴忕椤甸潰璺緞")
+    private String pageUrl;
+    @ApiModelProperty(value = "鍏宠仈鏂囩珷缂栫爜")
+    private String articleId;
     @ApiModelProperty(value = "鍒嗕韩绫诲瀷 0娴锋姤鍒嗕韩 1涓嬭浇甯﹀皬绋嬪簭鐮�")
     private int type;
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 712ddd5..9ae75bf 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -52,6 +52,7 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.awt.image.BufferedImage;
 import java.io.InputStream;
 import java.util.*;
 import java.util.concurrent.Callable;
@@ -623,22 +624,78 @@
 
 
     @Override
-    public  String getContentShareImg(Users loginUserInfo, ContentShareImgDto param){
+    public  String getContentShareImg(Users users, ContentShareImgDto param){
         if(StringUtils.isBlank(param.getImgurl())){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        String url = null;
+
+        String shareFolder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.SHARES_FILE).getCode();
+        String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
         if(param.getType() == 1){
             //澶氬浘甯︿簩缁寸爜涓嬭浇
-            String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
-            String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
+            return dealShareImgWithUser(param,users,shareFolder,path);
         }else{
-            //鍐呭鍒嗕韩娴锋姤鍥剧墖
+          return dealShareImgNoUser(param,users,shareFolder,path);
+        }
+    }
 
+    private String dealShareImgWithUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
+        BufferedImage img1 =GeneratePicUtil.getImgIO(param.getImgurl());
+        if(img1 ==null){
+            return param.getImgurl();
+        }
+      /*  if(img1.getWidth() <200 && img1.getHeight()<100){
+            return  param.getImgurl();
+        }
+*/
+        String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
+        String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode())+users.getImgurl():defualtHeader;
+        String url =null;
+        //鍐呭鍒嗕韩娴锋姤鍥剧墖
+        InputStream mpCode =  Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
+                "userId="+users.getId()+"&articleId="+param.getArticleId(),
+                param.getPageUrl());//灏忕▼搴�
 
+        InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
+                img1
+                ,mpCode
+                ,imgurl
+        ,StringUtils.defaultString(users.getName(),"-"));
+        TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
+                systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
+                systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
+        String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String fileName =shareFolder+ key;
+        if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+            url =  path+fileName;
+        }
+        return  url;
+
+    }
+
+    private String dealShareImgNoUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
+       String url =null;
+        //鍐呭鍒嗕韩娴锋姤鍥剧墖
+        InputStream mpCode =  Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
+                "userId="+users.getId()+"&articleId="+param.getArticleId(),
+                param.getPageUrl());//灏忕▼搴�
+
+        String title = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.SHARE_HAIBAO_HEADER_TITLE).getCode();
+        InputStream inputStream = GeneratePicUtil.generateShareImg(
+                param.getImgurl()
+                ,mpCode
+                ,title);
+        TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
+                systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
+                systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
+        String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String fileName =shareFolder+ key;
+        if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+            url =  path+fileName;
         }
         return  url;
     }
+
     @Override
     public     String getUserCard(Users users){
         String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
diff --git a/server/service/src/main/java/com/doumee/service/timer/QuartzJobService.java b/server/service/src/main/java/com/doumee/service/timer/QuartzJobService.java
index 4b218d8..a312bad 100644
--- a/server/service/src/main/java/com/doumee/service/timer/QuartzJobService.java
+++ b/server/service/src/main/java/com/doumee/service/timer/QuartzJobService.java
@@ -7,11 +7,13 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.timer.entity.JobState;
 import com.doumee.dao.timer.entity.QuartzJob;
 import com.doumee.dao.timer.mapper.QuartzJobMapper;
 import com.doumee.dao.timer.scheduler.QuartzManage;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -41,6 +43,7 @@
      * 鏂板浠诲姟
      */
     public int insert(QuartzJob quartzJob) {
+        quartzJob.setState(Constants.ZERO);
         int flag = quartzJobMapper.insert(quartzJob) ;
         if (flag > 0){
             quartzManage.createJob(quartzJob) ;
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
index 1e284a3..22c3422 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -1,5 +1,6 @@
 package com.doumee.api.web;
 
+import com.doumee.biz.zbom.ZbomCRMService;
 import com.doumee.biz.zbom.ZbomZhongTaiService;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
@@ -32,11 +33,19 @@
     @Autowired
     public SmsEmailService smsEmailService;
 
+    @Autowired
+    public ZbomCRMService zbomCRMService;
 
-    @ApiOperation(value = "C绔皬绋嬪簭-鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁", notes = "鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁")
+
+    @ApiOperation(value = "銆怌绔皬绋嬪簭銆戣幏鍙栭椤靛織璇磋淇洓涓ā鍧楃被鐩暟鎹�", notes = "鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁锛岃儗鏅浘鏆傛椂鍐欐锛屽弬鑰僓I")
     @PostMapping("/getZSZXCatalogs")
     public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
         return  ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs());
     }
+    @ApiOperation(value = "銆愮灏忕▼搴忋�戣幏鍙栧鎴风鐞嗘巿鏉冭烦杞湴鍧�", notes = "鑾峰彇瀹㈡埛绠$悊鎺堟潈璺宠浆鍦板潃")
+    @PostMapping("/getCrmAuthUrl")
+    public ApiResponse<String> getCrmAuthUrl() {
+        return  ApiResponse.success(zbomCRMService.getCrmGoUrl(this.getLoginUserInfo().getIamUsername()));
+    }
 
 }
diff --git a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
index 4f0fa09..42bac63 100644
--- a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -1,5 +1,6 @@
 package com.doumee.api.web;
 
+import com.doumee.biz.zbom.ZbomCRMService;
 import com.doumee.config.annotation.LoginRequired;
 import com.doumee.config.annotation.UserLoginRequired;
 import com.doumee.core.annotation.trace.Trace;
@@ -49,7 +50,6 @@
     @Autowired
     public ShopService shopService;
 
-
     @ApiOperation(value = "灏忕▼搴忕櫥闄�", notes = "鍛樺伐绔皬绋嬪簭")
     @GetMapping("/loginByWx")
     @ApiImplicitParams({
@@ -58,7 +58,6 @@
     public ApiResponse<AccountResponse> loginByWx(@RequestParam String code) {
         return  ApiResponse.success(usersService.wxLogin(code));
     }
-
 
     @ApiOperation(value = "鍙戦�佺煭淇¢獙璇佺爜", notes = "鍛樺伐绔皬绋嬪簭")
     @GetMapping("/sendSms")

--
Gitblit v1.9.3