Jelajahi Sumber

促销方案快速折扣缓存清理

hu 3 tahun lalu
induk
melakukan
be1472becb

+ 1 - 1
src/custom/restcontroller/webmanage/sale/promotion/promotionItemPrice.java

@@ -92,7 +92,7 @@ public class promotionItemPrice  extends Controller{
 	}
 	}
 	
 	
 	@API(title = "快速折扣设置", apiversion = R.ID20230102163203.v1.class)
 	@API(title = "快速折扣设置", apiversion = R.ID20230102163203.v1.class)
-	@CACHEING
+	@CACHEING_CLEAN(apiversions = { R.ID20230102163103.v1.class })
 	public String updatePromotionItemsPrice() throws YosException {
 	public String updatePromotionItemsPrice() throws YosException {
 		
 		
 		Long sa_promotionid = content.getLong("sa_promotionid");
 		Long sa_promotionid = content.getLong("sa_promotionid");

+ 213 - 0
src/custom/utility/ERPDocking.java

@@ -0,0 +1,213 @@
+package utility;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.YosException;
+import utility.tools.WebRequest;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.CookieHandler;
+import java.net.CookieManager;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+
+public class ERPDocking {
+    public static boolean loginstatus = false;
+
+    public ERPDocking() {
+        try {
+            login();
+        } catch (YosException e) {
+            System.err.println(e.getMessage());
+        }
+    }
+
+    /*
+    crm登陆
+     */
+    private void login() throws YosException {
+        if (!loginstatus) {
+            /*
+            自动保存cookie
+             */
+            CookieManager manager = new CookieManager();
+            CookieHandler.setDefault(manager);
+            String s = new WebRequest().doPost("username=yosAdmin&password=yosAdmin123", "http://crm.meida.com/dmsService/ext/partner/login");
+            JSONObject object = JSONObject.parseObject(s);
+            if (object.getIntValue("code") == 1) {
+                loginstatus = true;
+            } else {
+                loginstatus = false;
+            }
+        }
+    }
+
+    /**
+     * crm账号批量查询
+     *
+     * @param fagentNum   经销商编号,可为空
+     * @param fmobile     手机号,可为空
+     * @param fupdateFlag 同步状态标识【0/1/2/99 : 未获取/已获取/获取中/待更新】
+     * @param pageSize    每页数量
+     * @param pageNumber  页码
+     * @return crm账号列表
+     * @throws YosException
+     */
+    public JSONArray getAccount(String fagentNum, String fmobile, int fupdateFlag, int pageSize, int pageNumber) throws YosException {
+        JSONObject object = new JSONObject();
+        object.put("fagentNum", fagentNum);
+        object.put("fmobile", fmobile);
+        object.put("fupdateFlag", fupdateFlag);//同步状态标识【0/1/2/99 : 未获取/已获取/获取中/待更新】
+        object.put("pageSize", pageSize);
+        object.put("pageNumber", pageNumber);
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+        String result = new WebRequest().doPost(object.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/querySynUserYosList", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+        if (resultobject.getIntValue("code") == 20001) {
+            loginstatus = false;
+            throw new YosException("crm不在登陆状态");
+        } else {
+            return resultobject.getJSONObject("data").getJSONArray("rows");
+        }
+    }
+
+    /**
+     * crm账号同步反馈
+     *
+     * @param id     crm账号id
+     * @param succ   同步是否成功
+     * @param errmsg 错误原因
+     * @return
+     * @throws YosException
+     */
+    public boolean feedback(long id, boolean succ, String errmsg) throws YosException {
+        JSONArray array = new JSONArray();
+        JSONObject object = new JSONObject();
+        object.put("id", id);
+        object.put("fupdateFlag", succ ? 1 : 4);
+        object.put("fupdateWarnLog", errmsg);
+        array.add(object);
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+        System.out.println("feedback:"+array.toString());
+        String result = new WebRequest().doPost(array.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/syncFupdateFlags", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+        return resultobject.getIntValue("code") == 1;
+    }
+    /**
+     * crm账号同步反馈
+     *
+     * @param id     crm账号id
+     * @param succ   同步是否成功
+     * @param errmsg 错误原因
+     * @return
+     * @throws YosException
+     */
+    public boolean feedback1(long id, boolean succ, String errmsg) throws YosException {
+        JSONArray array = new JSONArray();
+        JSONObject object = new JSONObject();
+        object.put("id", id);
+        object.put("fupdateFlag", succ ? 99 : 4);
+        object.put("fupdateWarnLog", errmsg);
+        array.add(object);
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+
+        System.out.println("feedback1:"+array.toString());
+        String result = new WebRequest().doPost(array.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/syncFupdateFlags", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+        return resultobject.getIntValue("code") == 1;
+    }
+    /**
+     * 获取指定的账号信息
+     *
+     * @param id crm账号id
+     * @return
+     * @throws YosException
+     */
+    public JSONObject getSingleAccount(long id) throws YosException {
+        String result = doGet("http://crm.meida.com/dmsService/ext/partner/userYos/getSynUserYos?id=" + id);
+        JSONObject resultobject = JSONObject.parseObject(result);
+        if (resultobject.getIntValue("code") == 20001) {
+            loginstatus = false;
+            throw new YosException("crm不在登陆状态");
+        } else {
+            return resultobject.getJSONObject("data");
+        }
+    }
+
+    /**
+     * 更新账号有效期
+     *
+     * @param id          crm账号id
+     * @param fexpireTime 账号到期时间
+     * @return
+     * @throws YosException
+     */
+    public boolean updateAccount(long id, String fexpireTime) throws YosException {
+        JSONObject object = new JSONObject();
+        object.put("id", id);
+        object.put("fexpireTime", fexpireTime);
+        HashMap<String, String> map = new HashMap<>();
+        map.put("content-Type", "application/json");
+        String result = new WebRequest().doPost(object.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/editSynUserYos", map);
+        JSONObject resultobject = JSONObject.parseObject(result);
+        if (resultobject.getIntValue("code") == 20001) {
+            loginstatus = false;
+            throw new YosException("crm不在登陆状态");
+        } else {
+            return resultobject.getIntValue("code") == 1;
+        }
+    }
+
+
+    private String doGet(String url) {
+
+        PrintWriter out = null;
+        BufferedReader in = null;
+        StringBuilder result = new StringBuilder();
+        HttpURLConnection conn = null;
+        try {
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            conn = (HttpURLConnection) realUrl.openConnection();
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            conn.setConnectTimeout(8000);
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result.append(line);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!");
+        } finally {// 使用finally块来关闭输出流、输入流
+            if (out != null) {
+                out.close();
+                out = null;
+            }
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                in = null;
+            }
+            if (conn != null) {
+                conn.disconnect();
+                conn = null;
+            }
+        }
+        return result.toString();
+
+    }
+}