admin/src/views/timer/components/OperaTimerWindow.vue
@@ -8,16 +8,16 @@ > <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼"> <el-form-item label="Beanåç§°" prop="beanName"> <el-input v-model="form.beanName" placeholder="请è¾å ¥Beanåç§°" :maxlength="10" v-trim/> <el-input v-model="form.beanName" placeholder="请è¾å ¥Beanåç§°" v-trim/> </el-form-item> <el-form-item label="模ååç§°" prop="module"> <el-input v-model="form.module" placeholder="请è¾å ¥æ¨¡ååç§°" :maxlength="10" v-trim/> <el-input v-model="form.module" placeholder="请è¾å ¥æ¨¡ååç§°" v-trim/> </el-form-item> <el-form-item label="Cron表达å¼" prop="cronExpres"> <el-input v-model="form.cronExpres" placeholder="请è¾å ¥Cron表达å¼" :maxlength="10" v-trim/> <el-input v-model="form.cronExpres" placeholder="请è¾å ¥Cron表达å¼" v-trim/> </el-form-item> <el-form-item label="夿³¨" prop="remark"> <el-input v-model="form.remark" placeholder="请è¾å ¥å¤æ³¨" :maxlength="10" v-trim/> <el-input v-model="form.remark" placeholder="请è¾å ¥å¤æ³¨" v-trim/> </el-form-item> <el-form-item label="æ§è¡åæ°" prop="params"> <el-input v-model="form.params" type="textarea" placeholder="请è¾å ¥æ§è¡åæ°" v-trim/> admin/src/views/timer/timer.vue
@@ -70,7 +70,7 @@ import TableLayout from '@/layouts/TableLayout' import Pagination from '@/components/common/Pagination' import OperaTimerWindow from '@/views/timer/components/OperaTimerWindow' import {runOnceById} from "@/api/timer/timer"; import {pauseById, resumeById, runOnceById} from '@/api/timer/timer' export default { name: 'Devices', extends: BaseTable, @@ -109,7 +109,7 @@ this.$dialog.actionConfirm('确认æå该任å¡å?') .then(() => { this.pausing = true this.api.paustById(row.id) this.api.pauseById(row.id) .then(() => { this.$message.info('æåæå') this.search() @@ -161,7 +161,7 @@ }) .catch(() => {}) } }, } } </script> server/admin/src/main/java/com/doumee/api/business/CustomerUserController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,90 @@ package com.doumee.api.business; import com.doumee.api.BaseController; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.dao.business.model.CustomerUser; import com.doumee.service.business.CustomerUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * @author æ±è¹è¹ * @date 2024/07/15 10:21 */ @Api(tags = "客æ·å¯¼è´å ³è表") @RestController @RequestMapping("/business/customerUser") public class CustomerUserController extends BaseController { @Autowired private CustomerUserService customerUserService; @PreventRepeat @ApiOperation("æ°å»º") @PostMapping("/create") @RequiresPermissions("business:customeruser:create") public ApiResponse create(@RequestBody CustomerUser customerUser) { return ApiResponse.success(customerUserService.create(customerUser)); } @ApiOperation("æ ¹æ®IDå é¤") @GetMapping("/delete/{id}") @RequiresPermissions("business:customeruser:delete") public ApiResponse deleteById(@PathVariable Long id) { customerUserService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("æ¹éå é¤") @GetMapping("/delete/batch") @RequiresPermissions("business:customeruser:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids) { String [] idArray = ids.split(","); List<Long> idList = new ArrayList<>(); for (String id : idArray) { idList.add(Long.valueOf(id)); } customerUserService.deleteByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("æ ¹æ®IDä¿®æ¹") @PostMapping("/updateById") @RequiresPermissions("business:customeruser:update") public ApiResponse updateById(@RequestBody CustomerUser customerUser) { customerUserService.updateById(customerUser); return ApiResponse.success(null); } @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") @RequiresPermissions("business:customeruser:query") public ApiResponse<PageData<CustomerUser>> findPage (@RequestBody PageWrap<CustomerUser> pageWrap) { return ApiResponse.success(customerUserService.findPage(pageWrap)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @RequiresPermissions("business:customeruser:exportExcel") public void exportExcel (@RequestBody PageWrap<CustomerUser> pageWrap, HttpServletResponse response) { ExcelExporter.build(CustomerUser.class).export(customerUserService.findPage(pageWrap).getRecords(), "客æ·å¯¼è´å ³è表", response); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @GetMapping("/{id}") @RequiresPermissions("business:customeruser:query") public ApiResponse findById(@PathVariable Long id) { return ApiResponse.success(customerUserService.findById(id)); } } server/admin/src/main/java/com/doumee/api/timer/QuartzController.java
@@ -54,7 +54,7 @@ } @ApiOperation( "æ§è¡ä¸æ¬¡") @GetMapping("RequiresPermissions") @GetMapping("/runOnce/{id}") @RequiresPermissions("business:quartz:update") public ApiResponse runOnce(@PathVariable("id") Integer id) { quartzJobService.runOnce(id) ; return ApiResponse.success(null); server/admin/src/main/java/com/doumee/timer/CustomerUserUpdateBiz.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ package com.doumee.timer; import com.doumee.core.utils.DateUtil; import com.doumee.service.business.CustomerUserService; import com.doumee.service.business.InitService; 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("customerBindDaogou") public class CustomerUserUpdateBiz implements JobService { private static final Logger log = LoggerFactory.getLogger(CustomerUserUpdateBiz.class); @Autowired CustomerUserService customerUserService; @Override public void run(String params,String module) { Method method = null; try { if(StringUtils.equals(module,"syncYesterday")){ String date = DateUtil.getYesterday(); customerUserService.syncYesterday(date); }else{ log.info("\n ======== 宿¶ä»»å¡å·²æ§è¡ï¼zbomRedisResut.========"+module); } } catch (Exception e) { e.printStackTrace(); } } } server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
@@ -1,8 +1,12 @@ package com.doumee.biz.zbom; import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel; import com.doumee.biz.zbom.model.IamUpateShopModel; import com.doumee.biz.zbom.model.IamUpateUserModel; import com.doumee.biz.zbom.model.crm.CRMConstants; import com.doumee.biz.zbom.model.crm.CrmCustomerInfoRequest; import com.doumee.biz.zbom.model.crm.CrmCustomerListRequest; import com.doumee.biz.zbom.model.crm.CrmDaogouBindListRequest; import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse; import com.doumee.biz.zbom.model.crm.response.CRMCustomerListResponse; import com.doumee.biz.zbom.model.crm.response.CRMDaogouBindListResponse; import com.doumee.dao.business.model.CustomerLog; import org.springframework.stereotype.Service; @@ -16,7 +20,9 @@ @Service public interface ZbomCRMService { void dealCustomerLogData(CustomerLog customerLog); int dealCustomerLogData(CustomerLog customerLog); String zbomEncode(String str); int postDataToCrm(CrmCustomerSubmmitModel entity ); CRMBaseResponse<List<CRMCustomerListResponse>> getCustomerList(CrmCustomerListRequest entity ); CRMBaseResponse<List<CRMDaogouBindListResponse>> getDaogouBindList(CrmDaogouBindListRequest entity ); } server/service/src/main/java/com/doumee/biz/zbom/ZbomSMSService.java
@@ -1,6 +1,5 @@ package com.doumee.biz.zbom; import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel; import org.springframework.stereotype.Service; /** server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
@@ -21,6 +21,7 @@ ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param); boolean userLogout(ZTBaseRequst param); List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param); List<ZTTagInfoResponse> getTagList(ZTCatalogListRequest param); ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param); ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param); boolean collectDo(ZTActionDoRequest param); server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
@@ -1,10 +1,18 @@ package com.doumee.biz.zbom.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.zbom.ZbomCRMService; import com.doumee.biz.zbom.model.CrmCustomerInfoModel; import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel; import com.doumee.biz.zbom.model.crm.CRMConstants; import com.doumee.biz.zbom.model.crm.CrmCustomerInfoRequest; import com.doumee.biz.zbom.model.crm.CrmCustomerListRequest; import com.doumee.biz.zbom.model.crm.CrmDaogouBindListRequest; import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse; import com.doumee.biz.zbom.model.crm.response.CRMCustomerListResponse; import com.doumee.biz.zbom.model.crm.response.CRMDaogouBindListResponse; import com.doumee.biz.zbom.model.zhongtai.ZTConstants; import com.doumee.biz.zbom.model.zhongtai.response.ZTBaseResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.HttpsUtil; @@ -12,6 +20,7 @@ import com.doumee.dao.business.CustomerLogMapper; import com.doumee.dao.business.model.CrmInterfaceLog; import com.doumee.dao.business.model.CustomerLog; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +28,12 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.*; /** @@ -27,6 +42,7 @@ * @date 2023/11/30 15:33 */ @Service @Slf4j public class ZbomCRMServiceImpl implements ZbomCRMService { @Autowired @@ -38,93 +54,109 @@ private RedisTemplate<String, Object> redisTemplate; @Override @Async public void dealCustomerLogData(CustomerLog customerLog){ CrmCustomerSubmmitModel entity = new CrmCustomerSubmmitModel(); List<CrmCustomerInfoModel> cusInfo = new ArrayList(); CrmCustomerInfoModel crmCustomerInfoModel = new CrmCustomerInfoModel(); crmCustomerInfoModel.setId(customerLog.getId()); crmCustomerInfoModel.setName(customerLog.getName()); crmCustomerInfoModel.setPhone(customerLog.getPhone()); crmCustomerInfoModel.setAreaname(customerLog.getAreaName()); crmCustomerInfoModel.setAreacode(customerLog.getAreaCode()); crmCustomerInfoModel.setOpenid(customerLog.getOpenid()); crmCustomerInfoModel.setSource(Constants.CrmSources.SOURCE_ZBJX); crmCustomerInfoModel.setChannel(crmCustomerInfoModel.getSource()+"00"); crmCustomerInfoModel.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm")); cusInfo.add(crmCustomerInfoModel); entity.setCusInfo(cusInfo); this.postDataToCrm(entity); } /** * å¿é¦å®¢æ·ä¿¡æ¯æäº¤æ¥å£ * @param entity * @param customerLog * @return */ @Override public int postDataToCrm(CrmCustomerSubmmitModel entity ) { // TODO Auto-generated method stub int status = 2; if(entity==null || entity.getCusInfo()==null || entity.getCusInfo().size() ==0){ return status; } String type = "postCusData"; String appid = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_KEY); String urlStr = (String)redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL) ; long _t = System.currentTimeMillis(); String crmInfo="æäº¤å¤±è´¥"; if (StringUtils.isNotBlank(appid)||StringUtils.isNotBlank(urlStr)) { @Async public int dealCustomerLogData(CustomerLog customerLog){ CrmCustomerInfoRequest entity = new CrmCustomerInfoRequest(); entity.setId(customerLog.getId()); entity.setName(customerLog.getName()); entity.setPhone(zbomEncode(customerLog.getPhone())); entity.setAreaname(customerLog.getAreaName()); entity.setAreacode(customerLog.getAreaCode()); entity.setOpenid(customerLog.getOpenid()); entity.setSource(CRMConstants.CRM_SOURCE.SOURCE_ZBJX); entity.setChannel(CRMConstants.CRM_SOURCE.SOURCE_ZBJX+"00"); entity.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm")); int status ; String crmInfo; String param = JSONObject.toJSONString(entity); String result = null; int success =1; String url = urlStr; try { String token = DigestUtils.md5Hex(type + _t + appid); url = urlStr + "?type=" + type + "&_t=" + _t + "&token=" + token;// æäº¤CRMå°å result = HttpsUtil.postJson(url,param); if (StringUtils.isNotBlank(result)) { JSONObject r = JSONObject.parseObject(result.replace("(", "").replace(")", "")); if (r != null && (StringUtils.equalsIgnoreCase(r.getString("code"), "1") || StringUtils.equalsIgnoreCase(r.getString("code"), "2"))) { CRMBaseResponse result = sendHttpRequest(CRMConstants.IntegerUrl.POST_CUS_DATA_URL,CRMConstants.IntegerName.POST_CUS_DATA_NAME,param); if (result != null && (StringUtils.equalsIgnoreCase(result.getCode(), CRMConstants.CODE_SUCCESS))) { status = 1; crmInfo="æäº¤æå"; success =0; }else{ status = 2; crmInfo="æäº¤å¤±è´¥["+ result+"]"; crmInfo="æäº¤å¤±è´¥["+ result!=null?result.getMsg():"æ¥å£è¯·æ±å¤±è´¥ï¼"+"]"; } } }catch (Exception e){ e.printStackTrace(); crmInfo+= e.getMessage(); }finally { saveInterfaceLog(url,"å¿é¦CRM客æ·çèµä¿¡æ¯æäº¤",param,success,result); } }else{ status = 2; crmInfo="æäº¤å¤±è´¥crmé ç½®æè¯¯ï¼appid:["+ appid+"]"+"url:["+ urlStr+"]"; } List<Long> idList = new ArrayList<>(); for(CrmCustomerInfoModel info : entity.getCusInfo()){ idList.add(info.getId()); } // 妿æäº¤æå CustomerLog d = new CustomerLog(); d.setId(entity.getCusInfo().get(0).getId()); d.setCrmStatus(Constants.ONE); customerLogMapper.update(null,new UpdateWrapper<CustomerLog>().lambda() .in(CustomerLog::getId,idList) .eq(CustomerLog::getId,entity.getId()) .set(CustomerLog::getCrmStatus,Constants.ONE ) .set(CustomerLog::getCrmInfo,crmInfo ) .set(CustomerLog::getCrmDate,new Date() ));// æ´æ°ç¶æ return status;// é»è®¤å¤±è´¥ } /** * è·å导è´ç»å®å表 * @param entity * @return */ @Override public CRMBaseResponse<List<CRMDaogouBindListResponse>> getDaogouBindList(CrmDaogouBindListRequest entity ){ int status ; String crmInfo; String param = JSONObject.toJSONString(entity); CRMBaseResponse<List<CRMDaogouBindListResponse>> result = sendHttpRequest(CRMConstants.IntegerUrl.DAOGOU_BIND_LIST_URL,CRMConstants.IntegerName.DAOGOU_BIND_LIST_NAME,param); return result;// é»è®¤å¤±è´¥ } /** * è·å客æ·å表 * @param entity * @return */ @Override public CRMBaseResponse<List<CRMCustomerListResponse>> getCustomerList(CrmCustomerListRequest entity ){ int status ; String crmInfo; String param = JSONObject.toJSONString(entity); CRMBaseResponse<List<CRMCustomerListResponse>> result = sendHttpRequest(CRMConstants.IntegerUrl.CUS_BEFORE_PAGE_LIST_URL,CRMConstants.IntegerName.CUS_BEFORE_PAGE_LIST_NAME,param); return result;// é»è®¤å¤±è´¥ } public <T> CRMBaseResponse<T> sendHttpRequest(String interfaceUrl, String name, String param){ log.info("ã"+name+"ã================å¼å§===="+ JSONObject.toJSONString(param)); String appKey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_KEY); String url = redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL) + interfaceUrl ; long _t = System.currentTimeMillis(); if (StringUtils.isNotBlank(appKey)||StringUtils.isNotBlank(url)) { String res = null; int success = 0; try { url += "?timestamp=" + _t + "&sign=" + DigestUtils.md5Hex( _t + appKey); Map<String,String> headers = new HashMap<>(); String index = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL); res = HttpsUtil.postJson(url,param); TypeReference typeReference = new TypeReference<CRMBaseResponse<T>>(){}; CRMBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,name); if(StringUtils.equals(result.getCode(),CRMConstants.CODE_SUCCESS)){ return result; }else{ success =1; } }catch (Exception e){ success = 1; log.error("ã"+name+"ã================失败===="+ JSONObject.toJSONString(param)); }finally { saveInterfaceLog(url,name,param,success,res); } } return null; } private static void logResult(CRMBaseResponse res,String name) { if(StringUtils.equals(res.getCode(), CRMConstants.CODE_SUCCESS)){ log.info("ãCRMæ¥å£ï¼"+name+"ã================æå====\n"+res); }else{ log.error("ãCRMæ¥å£ï¼"+name+"ã================失败====ï¼\n"+ res); } } public void saveInterfaceLog(String url,String name,String param,Integer success,String respone){ if(crmInterfaceLogMapper ==null){ return; @@ -142,4 +174,29 @@ log.setRepose(respone); crmInterfaceLogMapper.insert(log); } /** * å¿é¦å符串å å¯ * @param str * @return */ @Override public String zbomEncode(String str) { StringBuffer sb = new StringBuffer(); String result = null; try { // å建StringBufferå¯¹è±¡ç¨æ¥æä½å符串 String urlStr = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ENCODE_URL); sb = new StringBuffer( urlStr + "?code=" + URLEncoder.encode(str, "UTF-8") + "&type=0&numstr=wy?"); result = HttpsUtil.sendGet(sb.toString()); }catch (Exception e){ e.printStackTrace(); }finally { saveInterfaceLog(sb.toString(),"å¿é¦å符串å 坿¥å£",str, result==null?1:0,result ); } return result; } } server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
@@ -1,17 +1,10 @@ package com.doumee.biz.zbom.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.zbom.ZbomCRMService; import com.doumee.biz.zbom.ZbomSMSService; import com.doumee.biz.zbom.model.CrmCustomerInfoModel; import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; import com.doumee.dao.business.CrmInterfaceLogMapper; import com.doumee.dao.business.CustomerLogMapper; import com.doumee.dao.business.model.CrmInterfaceLog; import com.doumee.dao.business.model.CustomerLog; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -23,16 +16,14 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * å¿é¦CRM客æ·ä¿¡æ¯æäº¤æ¥å£ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ //@Service @Service public class ZbomSMSServiceImpl implements ZbomSMSService { @Autowired server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -113,6 +113,24 @@ } return null; } /** * è·ååç±»ååç±»ä¸çæ ç¾ * @param param * @return */ @Override public List<ZTTagInfoResponse> getTagList(ZTCatalogListRequest param){ ZTBaseResponse<List<ZTTagInfoResponse>> result = sendHttpRequest( ZTConstants.IntegerUrl.TAG_LIST_URL, ZTConstants.IntegerName.TAG_LIST_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * è·åå 容å表å页 @@ -298,7 +316,7 @@ new TypeReference<ZTBaseResponse<T>>(){}; ZTBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,name); if(StringUtils.equals(result.getCode(),ZTConstants.CODE_SUCCESS)){ if(Constants.equalsInteger(result.getCode(),ZTConstants.CODE_SUCCESS)){ return result; }else{ success =1; @@ -329,7 +347,7 @@ interfaceLogMapper.insert(log); } private static void logResult(ZTBaseResponse res,String name) { if(StringUtils.equals(res.getCode(), ZTConstants.CODE_SUCCESS)){ if(Constants.equalsInteger(res.getCode(),ZTConstants.CODE_SUCCESS)){ log.info("ãä¸å°æ¥å£ï¼"+name+"ã================æå====\n"+res); }else{ log.error("ãä¸å°æ¥å£ï¼"+name+"ã================失败====ï¼\n"+ res); server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerSubmmitModel.java
ÎļþÒÑɾ³ý server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMBaseRequst.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.doumee.biz.zbom.model.crm; import lombok.Data; /** * crm请æ±å ¬å ±åæ° */ @Data public class CRMBaseRequst { /** * ç¶çº§ç¼ç */ private Integer timestamp; private String sign; } server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.doumee.biz.zbom.model.crm; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.gson.annotations.SerializedName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; public class CRMConstants { 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"; } public interface IntegerName{ String POST_CUS_DATA_NAME ="çèµæ°æ®æäº¤"; String CUS_BEFORE_PAGE_LIST_NAME ="æ¥è¯¢ç®¡ç客æ·/æ½å®¢å表"; String DAOGOU_BIND_LIST_NAME ="æ¥è¯¢å®¢æ·å¯¼è´"; } public interface CRM_SOURCE{ String SOURCE_DKXD = "DKXD";// 代客ä¸å(DKXD) String SOURCE_LYSJ = "LYSJ";// é¶å 设计(LYSJ) String SOURCE_ZBSJSQ = "ZBSJSQ";// å¿é¦è®¾è®¡ç³è¯·(ZBSJSQ) String SOURCE_ZBDXFX = "ZBDXFX";// å¿é¦çä¿¡å享(ZBDXFX) String SOURCE_ZBLLJL = "ZBLLJL";// å¿é¦æµè§è®°å½å享(ZBLLJL) String SOURCE_ZBWDSC = "ZBWDSC";// å¿é¦æçæ¶èå享(ZBWDSC) String SOURCE_ZBLYSJ = "ZBLYSJ";// å¿é¦é¶å 设计(ZBLYSJ) String SOURCE_ZBLDX = "ZBLDX";// å¿é¦è带æ°(ZBLDX) String SOURCE_ZBFGCS = "ZBFGCS";// å¿é¦é£æ ¼æµè¯(ZBFGCS) String SOURCE_ZBJX = "DSLX22";// å¿é¦å®¶é(ZBJX) } } server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerInfoRequest.java
ÎļþÃû´Ó server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerInfoModel.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.doumee.biz.zbom.model; package com.doumee.biz.zbom.model.crm; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -7,8 +7,8 @@ import java.io.Serializable; @Data @ApiModel("å¿é¦CRM客æ·çèµæäº¤æç»åæ°") public class CrmCustomerInfoModel implements Serializable { @ApiModel("å¿é¦CRM客æ·çèµæäº¤åæ°") public class CrmCustomerInfoRequest extends CRMBaseRequst implements Serializable { @ApiModelProperty(value = "人åç¼ç ") private Long id; @ApiModelProperty(value = "å§å") @@ -39,4 +39,6 @@ private String openid; @ApiModelProperty(value = "ç»ç«¯ä¿¡æ¯") private String terminal; @ApiModelProperty(value = "æ¥æºç±»å 3ç¬¬ä¸æ¹å¹³å° 12 å°ç¨åº)") private String lyType; } server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.doumee.biz.zbom.model.crm; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel("æ¥è¯¢ç®¡ç客æ·/æ½å®¢å表请æ±åæ°") public class CrmCustomerListRequest extends CRMBaseRequst implements Serializable { @ApiModelProperty(value = "ç¨æ·å",required = true) private String userName; @ApiModelProperty(value = "ç±»å 管ç客æ·:0 æ½å®¢å表ï¼1" ,required = true) private String flag; @ApiModelProperty(value = "åé¡µå¤§å° ï¼é»è®¤ï¼10ï¼ 10") private int pageSize; @ApiModelProperty(value = "å页页ç ï¼é»è®¤ï¼1ï¼") private int page; @ApiModelProperty(value = "客æ·åç§°,å®¢æ·ææºå·ç ,å°å") private String keyWords; } server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmDaogouBindListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.doumee.biz.zbom.model.crm; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel("æ¥è¯¢ç®¡ç客æ·/æ½å®¢å表请æ±åæ°") public class CrmDaogouBindListRequest extends CRMBaseRequst implements Serializable { @ApiModelProperty(value = "ç¨æ·å",required = true) private String userName; @ApiModelProperty(value = "æ¯å¦å®æ¶ 1:æ¯ 0å¦ï¼å½ä¸º1æ¶ ï¼keyWords éå¿ å¡«é¡¹ç®ï¼ " ,required = true) private String timing; @ApiModelProperty(value = "åé¡µå¤§å° ï¼é»è®¤ï¼10ï¼ 10") private int pageSize; @ApiModelProperty(value = "å页页ç ï¼é»è®¤ï¼1ï¼") private int page; @ApiModelProperty(value = "客æ·åç§°,å®¢æ·ææºå·ç ,å°å",required = true) private String keyWords; @ApiModelProperty(value = "timing æ¯1æ¶åå¿ ä¼ ï¼yyyy-MM-dd,å½å¤©å建çæå",required = true) private String creationDate; } server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMBaseResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.doumee.biz.zbom.model.crm.response; import lombok.Data; import java.io.Serializable; @Data public class CRMBaseResponse<T> implements Serializable { /** * æ¶æ¯ç ,200:æå;å ¶ä»code:失败 */ private String code; /** * æç¤ºæ¶æ¯ */ private String msg; private int total; /** * æ°æ® */ private T data; } server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMCustomerListResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.doumee.biz.zbom.model.crm.response; import lombok.Data; import java.io.Serializable; /** * æ¥è¯¢ç®¡ç客æ·/æ½å®¢å表è¿å */ @Data public class CRMCustomerListResponse implements Serializable { private String dgName ;//导è´åç§° private String dgPhone ;//å¯¼è´ææºå·ç private String orgName ;//ç»ç»åç§° private String useName;// ç¨æ·ç»å½è´¦å· private String userId ;//ç¨æ·idä¸»é® private String productCodeName;// 产ååç§° private String customerPhone;// 客æ·å§å private String customerName;// å®¢æ·ææºå· private String address ;//å°å详æ } server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMDaogouBindListResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.doumee.biz.zbom.model.crm.response; import lombok.Data; import java.io.Serializable; /** * æ¥å®¢æ·å¯¼è´ è¿å */ @Data public class CRMDaogouBindListResponse implements Serializable { private String dgName ;//导è´åç§° private String dgPhone ;//å¯¼è´ææºå·ç private String orgName ;//ç»ç»åç§° private String useName;// ç¨æ·ç»å½è´¦å· private String userId ;//ç¨æ·idä¸»é® private String productCodeName;// 产ååç§° private String customerPhone;// 客æ·å§å private String customerName;// å®¢æ·ææºå· private String address ;//å°å详æ private String creationDate ;//æ¶é´ yyyy-MM-dd } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java
@@ -4,15 +4,32 @@ public static String PLATFORM_MP_WX = "mp-weixin";//å°ç¨åºå¹³å° public static String PLATFORM_WEBPAD = "web-pad";//PAD端 public static String CODE_SUCCESS = "200";//æ¥å£æåè¿åç public static Integer CODE_SUCCESS = 200;//æ¥å£æåè¿åç public static String HEADER_USERTYPE = "userType";//userTypeå¨HEADERä¸çåå public static String HEADER_TOKEN = "token";//token public static String DEFAULT_PID = "1";//é»è®¤çå¸åºpid=1表示åå ¨ä¸å½ /** * åç±»code * ä¸ç´codeï¼å¿è¯´è£ ä¿® zb_deco 产å product_intro èµè®¯product_info å ¨å±æ¡ä¾ whole_caseï¼ * è³æºç´codeï¼å¿è¯´è£ ä¿®ï¼ å ¨å±è®¾è®¡ zb_deco_qwsj 卿¿è®¾è®¡ zb_deco_cfsj æ¶çº³è®¾è®¡ zb_deco_snsj å®¶çiD zb_deco_jdidï¼ */ public interface CatalogCode{ String ZHISHUO_ZHUANGXIU ="zb_deco"; String CHANPING ="product_intro"; String ZIXUN ="product_info"; String QW_CASE ="whole_case"; String QW_SHEJI ="zb_deco_qwsj"; String CHUFANGSHEJI ="zb_deco_cfsj"; String SHOUNASHEJI ="zb_deco_snsj"; String JIADE_ID ="zb_deco_jdid"; } public interface IntegerUrl{ String USER_UPDATE_URL ="customer/api/sync"; String USER_GET_TOKEN_URL ="/customer/api/login"; String USER_LOGOUT_URL ="/customer/api/disable"; String CATALOG_LIST_URL ="/content/api/catalog"; String TAG_LIST_URL ="/content/api/tag"; String CONTENT_LIST_URL ="/content/api/page"; String CONTENT_INFO_URL ="/content/api/detail/"; String COLLECT_DO_URL ="/content/api/collect"; @@ -27,7 +44,8 @@ String USER_UPDATE_NAME ="ç¨æ·ä¿¡æ¯åæ¥"; String USER_GET_TOKEN_NAME ="ç¨æ·ç»é"; String USER_LOGOUT_NAME ="注éç¨æ·"; String CATALOG_LIST_NAME ="è·ååç±»ååç±»ä¸çæ ç¾"; String CATALOG_LIST_NAME ="æ ¹æ®ä¸çº§codeè·åä¸çº§å类信æ¯"; String TAG_LIST_NAME ="æ ¹æ®åç±»codeè·åæ ç¾ä¿¡æ¯"; String CONTENT_LIST_NAME ="è·åå 容å表å页"; String CONTENT_INFO_NAME ="è·åå 容详æ "; String COLLECT_DO_NAME ="å 容æ¶è"; server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTAreaInfoResponse.java
@@ -2,6 +2,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Map; @@ -9,7 +10,7 @@ * çå¸åºè¯¦æ è¿å */ @Data public class ZTAreaInfoResponse { public class ZTAreaInfoResponse implements Serializable { /** * id":â11000000000æ¥" * pid":"1" server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java
@@ -2,10 +2,11 @@ import lombok.Data; import java.io.Serializable; import java.util.List; @Data public class ZTBasePageResponse<T> { public class ZTBasePageResponse<T> implements Serializable { /** * å½å页 */ server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBaseResponse.java
@@ -2,8 +2,10 @@ import lombok.Data; import java.io.Serializable; @Data public class ZTBaseResponse<T> { public class ZTBaseResponse<T> implements Serializable { /** *æ¯å¦æå,true:æå;false:失败 */ @@ -11,7 +13,7 @@ /** * æ¶æ¯ç ,200:æå;å ¶ä»code:失败 */ private String code; private Integer code; /** * æç¤ºæ¶æ¯ */ server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogInfoResponse.java
@@ -2,6 +2,7 @@ import lombok.Data; import java.io.Serializable; import java.util.List; @@ -9,7 +10,7 @@ * ç¨æ·éåº */ @Data public class ZTCatalogInfoResponse { public class ZTCatalogInfoResponse implements Serializable { /** * ç®å½å¯ä¸ç¼ç */ @@ -41,11 +42,11 @@ /** * ç®å½æåº */ private String sort; private Integer sort; /** * åç®å½ */ private List<ZTCatalogInfoResponse> childCatalog; // private List<ZTCatalogInfoResponse> childCatalog; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogTagTypeResponse.java
@@ -2,6 +2,7 @@ import lombok.Data; import java.io.Serializable; import java.util.List; @@ -9,7 +10,7 @@ * ç¨æ·éåº */ @Data public class ZTCatalogTagTypeResponse { public class ZTCatalogTagTypeResponse implements Serializable { /** * åç®å½ */ server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectResponse.java
@@ -2,12 +2,14 @@ import lombok.Data; import java.io.Serializable; /** * ç¨æ·éåº */ @Data public class ZTCollectResponse { public class ZTCollectResponse implements Serializable { /** * æ¶èç±»åï¼äº§åï¼æ¡ä¾ï¼å®æ¯ å¿ é */ server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentInfoResponse.java
@@ -2,6 +2,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Map; @@ -9,7 +10,7 @@ * å 容详æ è¿å */ @Data public class ZTContentInfoResponse { public class ZTContentInfoResponse implements Serializable { /** * ä½è */ server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java
@@ -2,12 +2,14 @@ import lombok.Data; import java.io.Serializable; /** * å 容å页å表è¿åå 容 */ @Data public class ZTContentListResponse { public class ZTContentListResponse implements Serializable { /** * ä½è */ server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagChildInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.io.Serializable; import java.util.List; /** * */ @Data public class ZTTagChildInfoResponse implements Serializable { /** * æ ç¾å¼CODE */ private String labelValueCode; /** * æ ç¾å¼ID */ private String labelValueId; /** * æ ç¾å¼NAME */ private String labelValueName; /** * æ ç¾å¼æåº */ private String labelValueSort; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.io.Serializable; import java.util.List; /** * ç¨æ·éåº */ @Data public class ZTTagInfoResponse implements Serializable { /** * æ ç¾CODE */ private String labelCode; /** * æ ç¾ID */ private String labelId; /** * æ ç¾NAME */ private String labelName; /** * æ ç¾æåº */ private String labelSort; /** * åç®å½ */ private List<ZTTagChildInfoResponse> valueVos; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTUserGetTokenResponse.java
@@ -2,8 +2,10 @@ import lombok.Data; import java.io.Serializable; @Data public class ZTUserGetTokenResponse { public class ZTUserGetTokenResponse implements Serializable { /** *ç¨æ·ä¸´æ¶ç¥¨æ® */ server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -326,6 +326,7 @@ public static final String WX_PLATFORM = "WX_PLATFORM"; public static final String ZBOM_ZHONGTAI_API_URL = "ZBOM_ZHONGTAI_API_URL"; public static final String WX_PLATFORM_ACCESS_TOKEN = "WX_PLATFORM_ACCESS_TOKEN"; public static final String ZBOM_ENCODE_URL = "ZBOM_ENCODE_URL"; public static final String WX_PLATFORM_APPID = "WX_PLATFORM_APPID"; public static final String WX_PLATFORM_SECRET = "WX_PLATFORM_SECRET"; public static final String WX_PLATFORM_AUDIT_VISIT = "WX_PLATFORM_AUDIT_VISIT"; @@ -345,21 +346,6 @@ public static final String WX_SECRET_PERSONNEL = "WX_SECRET_PERSONNEL"; public interface CrmSources{ String SOURCE_DKXD = "DKXD";// 代客ä¸å(DKXD) String SOURCE_LYSJ = "LYSJ";// é¶å 设计(LYSJ) String SOURCE_ZBSJSQ = "ZBSJSQ";// å¿é¦è®¾è®¡ç³è¯·(ZBSJSQ) String SOURCE_ZBDXFX = "ZBDXFX";// å¿é¦çä¿¡å享(ZBDXFX) String SOURCE_ZBLLJL = "ZBLLJL";// å¿é¦æµè§è®°å½å享(ZBLLJL) String SOURCE_ZBWDSC = "ZBWDSC";// å¿é¦æçæ¶èå享(ZBWDSC) String SOURCE_ZBLYSJ = "ZBLYSJ";// å¿é¦é¶å 设计(ZBLYSJ) String SOURCE_ZBLDX = "ZBLDX";// å¿é¦è带æ°(ZBLDX) String SOURCE_ZBFGCS = "ZBFGCS";// å¿é¦é£æ ¼æµè¯(ZBFGCS) String SOURCE_ZBJX = "DSLX22";// å¿é¦å®¶é(ZBJX) } public interface RedisKeys { String IMPORTING_MEMBER ="IMPORTING_MEMBER"; String IMPORTING_SHOP ="IMPORTING_SHOP"; @@ -367,6 +353,7 @@ String IAM_APPID ="IAM_APPID"; String ZBOM_CRM_API_KEY ="ZBOM_CRM_API_KEY"; String ZBOM_CRM_API_URL ="ZBOM_CRM_API_URL"; String ZBOM_ENCODE_URL ="ZBOM_ENCODE_URL"; String ZBOM_SMS_API_KEY ="ZBOM_SMS_API_KEY"; String ZBOM_ZHONGTAI_API_URL ="ZBOM_ZHONGTAI_API_URL"; String ZBOM_SMS_API_URL ="ZBOM_SMS_API_URL"; server/service/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -22,6 +22,13 @@ public static String post(String url, String data, String contentType, boolean ignoreSSL) { return connection(url, "POST", data, contentType, ignoreSSL,null); } public static String sendGet(String url) { if(url.startsWith("https://")){ return connection(url, "GET", "", "text/plain; charset=utf-8", true,null); }else{ return connectionHttp(url, "GET", "", "text/plain; charset=utf-8",null); } } public static String postJson(String url, String data) { if(url.startsWith("https://")){ return connection(url, "POST", data, "application/json", true,null); server/service/src/main/java/com/doumee/dao/business/CustomerUserMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.dao.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.CustomerUser; import com.github.yulichang.base.mapper.MPJJoinMapper; /** * @author æ±è¹è¹ * @date 2024/07/15 10:21 */ public interface CustomerUserMapper extends MPJJoinMapper<CustomerUser> { } server/service/src/main/java/com/doumee/dao/business/model/CustomerUser.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ package com.doumee.dao.business.model; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; /** * 客æ·å¯¼è´å ³è表 * @author æ±è¹è¹ * @date 2024/07/15 10:21 */ @Data @ApiModel("客æ·å¯¼è´å ³è表") @TableName("`customer_user`") public class CustomerUser { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "ç¼ç ", example = "1") @ExcelColumn(name="ç¼ç ") private Long id; @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤", example = "1") @ExcelColumn(name="æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") private Integer isdeleted; @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; @ApiModelProperty(value = "å建人ç¼ç ", example = "1") @ExcelColumn(name="å建人ç¼ç ") private Integer creator; @ApiModelProperty(value = "ç¼è¾æ¶é´") @ExcelColumn(name="ç¼è¾æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date editDate; @ApiModelProperty(value = "ç¼è¾äººä»£ç ", example = "1") @ExcelColumn(name="ç¼è¾äººä»£ç ") private Integer editor; @ApiModelProperty(value = "å®¢æ·ææºå·") @ExcelColumn(name="å®¢æ·ææºå·") private String customerPhone; @ApiModelProperty(value = "客æ·å§å") @ExcelColumn(name="客æ·å§å") private String customerName; @ApiModelProperty(value = "å¯¼è´ææºå·") @ExcelColumn(name="å¯¼è´ææºå·") private String phone; @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String info; @ApiModelProperty(value = "导è´ç¼ç ï¼å ³èusers表ï¼", example = "1") @ExcelColumn(name="导è´ç¼ç ï¼å ³èusers表ï¼") private Long userId; @ApiModelProperty(value = "导è´IAMç¼ç ") @ExcelColumn(name="导è´IAMç¼ç ") private String iamUserId; @ApiModelProperty(value = "ç¨æ·ç¼ç ï¼å ³èmember表ï¼", example = "1") @ExcelColumn(name="ç¨æ·ç¼ç ï¼å ³èmember表ï¼") private Long memberId; @ApiModelProperty(value = "导è´å§å") @ExcelColumn(name="导è´å§å") private String name; @ApiModelProperty(value = "导è´ç»ç»åç§°") @ExcelColumn(name="导è´ç»ç»åç§°") private String orgName; @ApiModelProperty(value = "导è´ç»éè´¦å·") @ExcelColumn(name="导è´ç»éè´¦å·") private String username; @ApiModelProperty(value = "产ååç§°") @ExcelColumn(name="产ååç§°") private String productCodeName; @ApiModelProperty(value = "å°å详æ ") @ExcelColumn(name="å°å详æ ") private String addr; @ApiModelProperty(value = "åå»ºæ¥æ") @ExcelColumn(name="åå»ºæ¥æ") private String creationDate ;//æ¶é´ yyyy-MM-dd } server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
@@ -1,5 +1,7 @@ package com.doumee.dao.timer.scheduler; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.dao.timer.entity.JobState; import com.doumee.dao.timer.entity.QuartzJob; import org.quartz.*; @@ -142,7 +144,7 @@ this.scheduler.pauseJob(getJobKey(quartzJob.getId())); } } catch (SchedulerException e){ throw new RuntimeException("pauseJob Fail",e) ; throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"pauseJob Fail",e) ; } } server/service/src/main/java/com/doumee/service/business/CustomerUserService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ package com.doumee.service.business; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.CustomerUser; import java.util.List; /** * 客æ·å¯¼è´å ³è表Serviceå®ä¹ * @author æ±è¹è¹ * @date 2024/07/15 10:21 */ public interface CustomerUserService { /** * å建 * * @param customerUser å®ä½å¯¹è±¡ * @return Long */ Long create(CustomerUser customerUser); /** * 主é®å é¤ * * @param id ä¸»é® */ void deleteById(Long id); /** * å é¤ * * @param customerUser å®ä½å¯¹è±¡ */ void delete(CustomerUser customerUser); /** * æ¹é主é®å é¤ * * @param ids 主é®é */ void deleteByIdInBatch(List<Long> ids); /** * 䏻鮿´æ° * * @param customerUser å®ä½å¯¹è±¡ */ void updateById(CustomerUser customerUser); /** * æ¹é䏻鮿´æ° * * @param customerUsers å®ä½é */ void updateByIdInBatch(List<CustomerUser> customerUsers); /** * 䏻鮿¥è¯¢ * * @param id ä¸»é® * @return CustomerUser */ CustomerUser findById(Long id); /** * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ * * @param customerUser å®ä½å¯¹è±¡ * @return CustomerUser */ CustomerUser findOne(CustomerUser customerUser); /** * æ¡ä»¶æ¥è¯¢ * * @param customerUser å®ä½å¯¹è±¡ * @return List<CustomerUser> */ List<CustomerUser> findList(CustomerUser customerUser); /** * å页æ¥è¯¢ * * @param pageWrap å页对象 * @return PageData<CustomerUser> */ PageData<CustomerUser> findPage(PageWrap<CustomerUser> pageWrap); /** * æ¡ä»¶ç»è®¡ * * @param customerUser å®ä½å¯¹è±¡ * @return long */ long count(CustomerUser customerUser); void syncYesterday(String date); } server/service/src/main/java/com/doumee/service/business/InitService.java
@@ -40,6 +40,7 @@ redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_SMS_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_SMS_API_URL).getCode()); redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_SMS_API_KEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_SMS_API_KEY).getCode()); redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_ZHONGTAI_API_URL).getCode()); redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_ENCODE_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_ENCODE_URL).getCode()); } @PostConstruct public void cacheShopTree(){ server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,263 @@ package com.doumee.service.business.impl; import com.doumee.biz.zbom.ZbomCRMService; import com.doumee.biz.zbom.model.crm.CRMConstants; import com.doumee.biz.zbom.model.crm.CrmDaogouBindListRequest; import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse; import com.doumee.biz.zbom.model.crm.response.CRMDaogouBindListResponse; 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.business.CustomerUserMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.UsersMapper; import com.doumee.dao.business.model.CustomerUser; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Users; import com.doumee.service.business.CustomerUserService; 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 org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 客æ·å¯¼è´å ³è表Serviceå®ç° * @author æ±è¹è¹ * @date 2024/07/15 10:21 */ @Service public class CustomerUserServiceImpl implements CustomerUserService { @Autowired private CustomerUserMapper customerUserMapper; @Autowired private MemberMapper memberMapper; @Autowired private UsersMapper usersMapper; @Autowired private ZbomCRMService zbomCRMService; @Override public Long create(CustomerUser customerUser) { customerUserMapper.insert(customerUser); return customerUser.getId(); } @Override public void deleteById(Long id) { customerUserMapper.deleteById(id); } @Override public void delete(CustomerUser customerUser) { UpdateWrapper<CustomerUser> deleteWrapper = new UpdateWrapper<>(customerUser); customerUserMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List<Long> ids) { if (CollectionUtils.isEmpty(ids)) { return; } customerUserMapper.deleteBatchIds(ids); } @Override public void updateById(CustomerUser customerUser) { customerUserMapper.updateById(customerUser); } @Override public void updateByIdInBatch(List<CustomerUser> customerUsers) { if (CollectionUtils.isEmpty(customerUsers)) { return; } for (CustomerUser customerUser: customerUsers) { this.updateById(customerUser); } } @Override public CustomerUser findById(Long id) { return customerUserMapper.selectById(id); } @Override public CustomerUser findOne(CustomerUser customerUser) { QueryWrapper<CustomerUser> wrapper = new QueryWrapper<>(customerUser); return customerUserMapper.selectOne(wrapper); } @Override public List<CustomerUser> findList(CustomerUser customerUser) { QueryWrapper<CustomerUser> wrapper = new QueryWrapper<>(customerUser); return customerUserMapper.selectList(wrapper); } @Override public PageData<CustomerUser> findPage(PageWrap<CustomerUser> pageWrap) { IPage<CustomerUser> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<CustomerUser> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(CustomerUser::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(CustomerUser::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(CustomerUser::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(CustomerUser::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(CustomerUser::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(CustomerUser::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(CustomerUser::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(CustomerUser::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getPhone() != null) { queryWrapper.lambda().eq(CustomerUser::getPhone, pageWrap.getModel().getPhone()); } if (pageWrap.getModel().getInfo() != null) { queryWrapper.lambda().eq(CustomerUser::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getUserId() != null) { queryWrapper.lambda().eq(CustomerUser::getUserId, pageWrap.getModel().getUserId()); } if (pageWrap.getModel().getIamUserId() != null) { queryWrapper.lambda().eq(CustomerUser::getIamUserId, pageWrap.getModel().getIamUserId()); } if (pageWrap.getModel().getMemberId() != null) { queryWrapper.lambda().eq(CustomerUser::getMemberId, pageWrap.getModel().getMemberId()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(CustomerUser::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getOrgName() != null) { queryWrapper.lambda().eq(CustomerUser::getOrgName, pageWrap.getModel().getOrgName()); } if (pageWrap.getModel().getUsername() != null) { queryWrapper.lambda().eq(CustomerUser::getUsername, pageWrap.getModel().getUsername()); } if (pageWrap.getModel().getProductCodeName() != null) { queryWrapper.lambda().eq(CustomerUser::getProductCodeName, pageWrap.getModel().getProductCodeName()); } if (pageWrap.getModel().getAddr() != null) { queryWrapper.lambda().eq(CustomerUser::getAddr, pageWrap.getModel().getAddr()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(customerUserMapper.selectPage(page, queryWrapper)); } @Override public long count(CustomerUser customerUser) { QueryWrapper<CustomerUser> wrapper = new QueryWrapper<>(customerUser); return customerUserMapper.selectCount(wrapper); } @Override @Transactional public void syncYesterday(String date) { CrmDaogouBindListRequest request = new CrmDaogouBindListRequest(); request.setPage(0); request.setPageSize(100); request.setTiming(Constants.ONE+""); request.setCreationDate(date); boolean hasMore = true; int currentNum = 0; Date cdate = new Date(); while (hasMore){ try { request.setPage(request.getPage()+1); currentNum += currentNum; CRMBaseResponse<List<CRMDaogouBindListResponse>> response = zbomCRMService.getDaogouBindList(request); if(response==null || !StringUtils.equals(response.getCode(), CRMConstants.CODE_SUCCESS) || response.getData() ==null || response.getData().size() ==0){ hasMore = false; } if(currentNum >= response.getTotal()){ hasMore = false; } dealSyncDataBiz(cdate,response.getData()); }catch (Exception e){ hasMore = false; } } } private void dealSyncDataBiz(Date date,List<CRMDaogouBindListResponse> list) { List<CustomerUser> addList = new ArrayList<>(); for(CRMDaogouBindListResponse data : list){ if(StringUtils.isBlank(data.getCustomerPhone())){ continue; } Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() .eq(Member::getPhone,data.getCustomerPhone() ) .eq(Member::getIsdeleted,Constants.ZERO) .last("limit 1" )); Users user = usersMapper.selectOne(new QueryWrapper<Users>().lambda() .eq(Users::getIamId,data.getUserId() ) .last("limit 1" )); if(member == null){ continue; } /** * å é¤è徿°æ® */ customerUserMapper.update(null,new UpdateWrapper<CustomerUser>().lambda() .eq(CustomerUser::getPhone,data.getDgPhone() ) .eq(CustomerUser::getUsername,data.getUseName() ) .eq(CustomerUser::getIsdeleted,Constants.ZERO) .set(CustomerUser::getIsdeleted,Constants.ONE) ); CustomerUser model = new CustomerUser(); model.setCreateDate(date); model.setIsdeleted(Constants.ZERO); model.setEditDate(date); model.setName(data.getDgName()); model.setPhone(data.getDgPhone()); model.setOrgName(data.getOrgName()); model.setCustomerName(data.getCustomerName()); model.setCustomerPhone(data.getCustomerPhone()); model.setUsername(data.getUseName()); model.setIamUserId(data.getUserId()); model.setUserId(user== null?null:user.getId()); model.setCreationDate(data.getCreationDate()); addList.add(model); } if(addList .size() >0){ int temp = 0; while(temp < addList.size()){ int index; if(temp + 500 <= addList.size()){ index = temp+500; }else{ index = addList.size(); } customerUserMapper.insert(addList.subList(temp,index)); temp = index; } } } }