admin/src/components/system/dict/OperaDictDataWindow.vue
@@ -14,7 +14,7 @@ <span class="status-text">{{form.istext | disabledText1}}</span> </el-form-item> <el-form-item label="æ°æ®å¼" prop="code" required> <el-input v-if="!form.istext" v-model="form.code" placeholder="请è¾å ¥æ°æ®å¼" v-trim maxlength="50"/> <el-input v-if="!form.istext" v-model="form.code" placeholder="请è¾å ¥æ°æ®å¼" v-trim maxlength="500"/> <RichEditor v-else :richData="form.code" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/> </el-form-item> <el-form-item label="ç¶æ" prop="disabled" required class="form-item-status"> admin/src/views/business/member.vue
@@ -2,41 +2,11 @@ <TableLayout :permissions="['business:member:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="主é®" prop="id"> <el-input v-model="searchForm.id" placeholder="请è¾å ¥ä¸»é®" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="å建人ç¼ç " prop="creator"> <el-input v-model="searchForm.creator" placeholder="请è¾å ¥å建人ç¼ç " @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="å建æ¶é´" prop="createDate"> <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å ¥å建æ¶é´" @change="search"/> </el-form-item> <el-form-item label="æ´æ°äººç¼ç " prop="editor"> <el-input v-model="searchForm.editor" placeholder="请è¾å ¥æ´æ°äººç¼ç " @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æ´æ°æ¶é´" prop="editDate"> <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å ¥æ´æ°æ¶é´" @change="search"/> </el-form-item> <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> <el-input v-model="searchForm.isdeleted" placeholder="请è¾å ¥æ¯å¦å é¤0å¦ 1æ¯" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="夿³¨" prop="remark"> <el-input v-model="searchForm.remark" placeholder="请è¾å ¥å¤æ³¨" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="头å" prop="imgurl"> <el-input v-model="searchForm.imgurl" placeholder="请è¾å ¥å¤´å" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç±»å 0æ¶è´¹è " prop="type"> <el-input v-model="searchForm.type" placeholder="请è¾å ¥ç±»å 0æ¶è´¹è " @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æµç§°" prop="nickname"> <el-input v-model="searchForm.nickname" placeholder="请è¾å ¥æµç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="å§å" prop="name"> <el-input v-model="searchForm.name" placeholder="请è¾å ¥å§å" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="åºçæ¥æ" prop="birthday"> <el-date-picker v-model="searchForm.birthday" value-format="yyyy-MM-dd" placeholder="请è¾å ¥åºçæ¥æ" @change="search"/> </el-form-item> <el-form-item label="ææºå·" prop="phone"> <el-input v-model="searchForm.phone" placeholder="请è¾å ¥ææºå·" @keypress.enter.native="search"></el-input> @@ -44,62 +14,15 @@ <el-form-item label="微信openid" prop="openid"> <el-input v-model="searchForm.openid" placeholder="请è¾å ¥å¾®ä¿¡openid" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç¶æ 0æ£å¸¸ 1ç¦ç¨" prop="status"> <el-input v-model="searchForm.status" placeholder="请è¾å ¥ç¶æ 0æ£å¸¸ 1ç¦ç¨" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ä¸å°ä¸´æ¶ç¥¨æ®è¿ææ¶é´" prop="tokenDate"> <el-date-picker v-model="searchForm.tokenDate" value-format="yyyy-MM-dd" placeholder="请è¾å ¥ä¸å°ä¸´æ¶ç¥¨æ®è¿ææ¶é´" @change="search"/> </el-form-item> <el-form-item label="ä¸å°ä¸´æ¶ç¥¨æ®" prop="token"> <el-input v-model="searchForm.token" placeholder="请è¾å ¥ä¸å°ä¸´æ¶ç¥¨æ®" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æ§å« 1ç· 2女" prop="sex"> <el-input v-model="searchForm.sex" placeholder="请è¾å ¥æ§å« 1ç· 2女" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æè¿ç»å½æ¶é´" prop="lastLoginDate"> <el-date-picker v-model="searchForm.lastLoginDate" value-format="yyyy-MM-dd" placeholder="请è¾å ¥æè¿ç»å½æ¶é´" @change="search"/> </el-form-item> <el-form-item label="ç»å½æ¬¡æ°" prop="loginNum"> <el-input v-model="searchForm.loginNum" placeholder="请è¾å ¥ç»å½æ¬¡æ°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç份åç§°" prop="provinceName"> <el-input v-model="searchForm.provinceName" placeholder="请è¾å ¥ç份åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="åå¸åç§°" prop="cityName"> <el-input v-model="searchForm.cityName" placeholder="请è¾å ¥åå¸åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="åºååç§°" prop="areaName"> <el-input v-model="searchForm.areaName" placeholder="请è¾å ¥åºååç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç份code" prop="provicneCode"> <el-input v-model="searchForm.provicneCode" placeholder="请è¾å ¥ç份code" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="åå¸code" prop="cityCode"> <el-input v-model="searchForm.cityCode" placeholder="请è¾å ¥åå¸code" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="åºåcode" prop="areaCode"> <el-input v-model="searchForm.areaCode" placeholder="请è¾å ¥åºåcode" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="å°åºåç§°" prop="district"> <el-input v-model="searchForm.district" placeholder="请è¾å ¥å°åºåç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æ·åä¿¡æ¯ï¼å®¤å å¨å«é³æ°éï¼æ ¼å¼ï¼1-1-1-1-1ï¼" prop="housetype"> <el-input v-model="searchForm.housetype" placeholder="请è¾å ¥æ·åä¿¡æ¯ï¼å®¤å å¨å«é³æ°éï¼æ ¼å¼ï¼1-1-1-1-1ï¼" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç»åº¦" prop="longitude"> <el-input v-model="searchForm.longitude" placeholder="请è¾å ¥ç»åº¦" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="纬度" prop="latitude"> <el-input v-model="searchForm.latitude" placeholder="请è¾å ¥çº¬åº¦" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ææç¶æ 0æªæææªç»å® 1å·²æææªç»å® 2å·²ææå·²ç»å®" prop="authStatus"> <el-input v-model="searchForm.authStatus" placeholder="请è¾å ¥ææç¶æ 0æªæææªç»å® 1å·²æææªç»å® 2å·²ææå·²ç»å®" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æè¿ææç»å®æ¶é´" prop="authDate"> <el-date-picker v-model="searchForm.authDate" value-format="yyyy-MM-dd" placeholder="请è¾å ¥æè¿ææç»å®æ¶é´" @change="search"/> </el-form-item> <el-form-item label="æè¿ææç»å®å¤æ³¨" prop="authInfo"> <el-input v-model="searchForm.authInfo" placeholder="请è¾å ¥æè¿ææç»å®å¤æ³¨" @keypress.enter.native="search"></el-input> <el-form-item label="ææç¶æ" prop="authStatus"> <el-select v-model="searchForm.authStatus" clearable @change="search"> <el-option value="0" label="æªæææªç»å®" ></el-option> <el-option value="1" label="å·²æææªç»å®"></el-option> <el-option value="2" label="å·²ææå·²ç»å®"></el-option> </el-select> </el-form-item> <section> <el-button type="primary" @click="search">æç´¢</el-button> @@ -109,10 +32,10 @@ </el-form> <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']"> <!-- <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']"> <li><el-button type="primary" @click="$refs.operaMemberWindow.open('æ°å»ºç¨æ·ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»º</el-button></li> <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">å é¤</el-button></li> </ul> </ul>--> <el-table v-loading="isWorking.search" :data="tableData.list" @@ -120,39 +43,55 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="id" label="主é®" min-width="100px"></el-table-column> <el-table-column prop="creator" label="å建人ç¼ç " min-width="100px"></el-table-column> <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> <el-table-column prop="imgurl" label="头å" min-width="100px"></el-table-column> <el-table-column prop="type" label="ç±»å 0æ¶è´¹è " min-width="100px"></el-table-column> <el-table-column prop="nickname" label="æµç§°" min-width="100px"></el-table-column> <el-table-column prop="name" label="å§å" min-width="100px"></el-table-column> <el-table-column fixed label="头å" align="center" min-width="100px"> <template slot-scope="{row}"> <el-image v-if="row.imgurlFull" style="width: 60px; height: 60px" :src="row.imgurlFull" :preview-src-list="[row.imgurlFull]"> </el-image> </template> </el-table-column> <el-table-column prop="nickname" align="center" fixed label="æµç§°/å§å" min-width="180px"> <template slot-scope="{row}"> {{row.nickname||'-'}} / {{row.name||'-'}} </template> </el-table-column> <el-table-column prop="phone" label="ææºå·" fixed min-width="100px"></el-table-column> <el-table-column prop="birthday" label="åºçæ¥æ" min-width="100px"></el-table-column> <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="openid" label="微信openid" min-width="100px"></el-table-column> <el-table-column prop="status" label="ç¶æ 0æ£å¸¸ 1ç¦ç¨" min-width="100px"></el-table-column> <el-table-column prop="tokenDate" label="ä¸å°ä¸´æ¶ç¥¨æ®è¿ææ¶é´" min-width="100px"></el-table-column> <el-table-column prop="token" label="ä¸å°ä¸´æ¶ç¥¨æ®" min-width="100px"></el-table-column> <el-table-column prop="sex" label="æ§å« 1ç· 2女" min-width="100px"></el-table-column> <el-table-column prop="lastLoginDate" label="æè¿ç»å½æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="loginNum" label="ç»å½æ¬¡æ°" min-width="100px"></el-table-column> <el-table-column prop="provinceName" label="ç份åç§°" min-width="100px"></el-table-column> <el-table-column prop="cityName" label="åå¸åç§°" min-width="100px"></el-table-column> <el-table-column prop="areaName" label="åºååç§°" min-width="100px"></el-table-column> <el-table-column prop="provicneCode" label="ç份code" min-width="100px"></el-table-column> <el-table-column prop="cityCode" label="åå¸code" min-width="100px"></el-table-column> <el-table-column prop="areaCode" label="åºåcode" min-width="100px"></el-table-column> <el-table-column prop="sex" label="æ§å«" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.sex ==1" >ç·</span> <span v-if="row.sex ==0" >女</span> </template> </el-table-column> <el-table-column prop="provinceName" align="center" label="å°å" min-width="200px"> <template slot-scope="{row}"> {{row.provinceName}}{{row.cityName}}{{row.areaName}}{{row.address}} </template> </el-table-column> <el-table-column prop="district" label="å°åºåç§°" min-width="100px"></el-table-column> <el-table-column prop="housetype" label="æ·åä¿¡æ¯ï¼å®¤å å¨å«é³æ°éï¼æ ¼å¼ï¼1-1-1-1-1ï¼" min-width="100px"></el-table-column> <el-table-column prop="longitude" label="ç»åº¦" min-width="100px"></el-table-column> <el-table-column prop="latitude" label="纬度" min-width="100px"></el-table-column> <el-table-column prop="authStatus" label="ææç¶æ 0æªæææªç»å® 1å·²æææªç»å® 2å·²ææå·²ç»å®" min-width="100px"></el-table-column> <el-table-column prop="authDate" label="æè¿ææç»å®æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="authInfo" label="æè¿ææç»å®å¤æ³¨" min-width="100px"></el-table-column> <el-table-column prop="housetypeInfo" label="æ·åä¿¡æ¯" min-width="100px"></el-table-column> <el-table-column prop="area" label="é¢ç§¯(ã¡)" min-width="80px"></el-table-column> <el-table-column prop="longitude" label="ç»çº¬åº¦" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.longitude && row.latitude" style="color:red;">[{{row.longitude}},{{row.latitude}}]</span> </template> </el-table-column> <el-table-column prop="authStatus" label="ææç¶æ" min-width="100px"> <template slot-scope="{row}"> <span v-if="(row.authStatus|| 0) ==0" style="color:red;">æªæææªç»å®</span> <span v-if="row.authStatus ==1" style="color:blue;">å·²æææªç»å®</span> <span v-if="row.authStatus ==2" style="color:green;">å·²ææå·²ç»å®</span> </template> </el-table-column> <el-table-column prop="loginNum" label="ç»å½æ¬¡æ°" min-width="100px"></el-table-column> <el-table-column prop="lastLoginDate" label="æè¿ç»å½æ¶é´" min-width="120px"></el-table-column> <el-table-column prop="authDate" label="ææç»å®æ¶é´" min-width="120px"></el-table-column> <el-table-column prop="token" label="ä¸å°ç¥¨æ®" min-width="100px"></el-table-column> <el-table-column prop="tokenDate" label="ç¥¨æ®æææ" min-width="100px"></el-table-column> <el-table-column v-if="containPermissions(['business:member:update', 'business:member:delete'])" label="æä½" server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
@@ -1,8 +1,12 @@ package com.doumee.biz.zbom; import com.doumee.biz.zbom.model.zhongtai.*; import com.doumee.biz.zbom.model.zhongtai.response.*; import com.doumee.dao.business.MemberMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * å¿é¦ä¸å°å¯¹æ¥ä¸å¡æ¥å£ @@ -13,5 +17,20 @@ public interface ZbomZhongTaiService { ZTUserGetTokenResponse getUserToken(ZTUserGetTokenRequest param); ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param); boolean userLogout(ZTBaseRequst param); List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param); ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param); ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param); boolean collectDo(ZTActionDoRequest param); boolean likeDo(ZTActionBatchDoRequest param); boolean shareDo(ZTActionDoRequest param); boolean viewDo(ZTActionDoRequest param); ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param); ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param); List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param); } server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
@@ -15,7 +15,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.*; @@ -51,16 +50,16 @@ 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)) { String token = DigestUtils.md5Hex(type + _t + appid); String url = urlStr + "?type=" + type + "&_t=" + _t + "&token=" + token;// æäº¤CRMå°å String param = JSONObject.toJSONString(entity); int success =1; 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(")", "")); server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
@@ -32,7 +32,7 @@ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service //@Service public class ZbomSMSServiceImpl implements ZbomSMSService { @Autowired @@ -57,8 +57,10 @@ if(StringUtils.isBlank(content)){ return false; } String appkey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_KEY); String urlStr = (String)redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_URL) ; String appkey ="581ba98d70ae2b85c4ecb9c785"; String urlStr = "http://wx.zhibang.com/api/QR/Face_UserSms?TenantId=2&smstype=6&" ; // String appkey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_KEY); // String urlStr = (String)redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_URL) ; try { StringBuffer sb = new StringBuffer(urlStr); Integer _t = (int) System.currentTimeMillis(); @@ -90,6 +92,7 @@ saveInterfaceLog(urlStr,"å¿é¦çä¿¡å鿥å£", sb.toString(), 0,inputline); return true;// }catch (Exception e){ e.printStackTrace(); return false; } server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -1,9 +1,30 @@ package com.doumee.biz.zbom.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.doumee.biz.zbom.ZbomZhongTaiService; import com.doumee.biz.zbom.model.zhongtai.*; import com.doumee.biz.zbom.model.zhongtai.response.*; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.HKTools; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.VisitAppointmentCancelRequest; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; import com.doumee.dao.business.CrmInterfaceLogMapper; import com.doumee.dao.business.InterfaceLogMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.model.CrmInterfaceLog; import com.doumee.dao.business.model.InterfaceLog; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 人åä¿¡æ¯è¡¨Serviceå®ç° @@ -11,10 +32,301 @@ * @date 2023/11/30 15:33 */ @Service @Slf4j public class ZbomZhongTaiServiceImpl implements ZbomZhongTaiService { @Autowired private MemberMapper memberMapper; private InterfaceLogMapper interfaceLogMapper; /** * è·åç¨æ·ç»étoken * @param param * @return */ @Override public ZTUserGetTokenResponse getUserToken(ZTUserGetTokenRequest param){ ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest( ZTConstants.IntegerUrl.USER_GET_TOKEN_URL, ZTConstants.IntegerName.USER_GET_TOKEN_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * ç¨æ·ä¿¡æ¯åæ¥ * @param param * @return */ @Override public ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param){ ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest( ZTConstants.IntegerUrl.USER_UPDATE_URL, ZTConstants.IntegerName.USER_UPDATE_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * 注éç¨æ· * @param param * @return */ @Override public boolean userLogout(ZTBaseRequst param){ ZTBaseResponse result = sendHttpRequest( ZTConstants.IntegerUrl.USER_LOGOUT_URL, ZTConstants.IntegerName.USER_LOGOUT_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null ){ return true; } return false; } /** * è·ååç±»ååç±»ä¸çæ ç¾ * @param param * @return */ @Override public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param){ ZTBaseResponse<List<ZTCatalogInfoResponse>> result = sendHttpRequest( ZTConstants.IntegerUrl.CATALOG_LIST_URL, ZTConstants.IntegerName.CATALOG_LIST_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * è·åå 容å表å页 * @param param * @return */ @Override public ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param){ ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest( ZTConstants.IntegerUrl.CONTENT_LIST_URL, ZTConstants.IntegerName.CONTENT_LIST_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * è·åå 容详æ * @param param * @return */ @Override public ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param){ ZTBaseResponse<ZTContentInfoResponse> result = sendHttpRequest( ZTConstants.IntegerUrl.CONTENT_INFO_URL+ param.getArticleId(), ZTConstants.IntegerName.CONTENT_INFO_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * å 容æ¶è * @param param * @return */ @Override public boolean collectDo(ZTActionDoRequest param){ ZTBaseResponse result = sendHttpRequest( ZTConstants.IntegerUrl.COLLECT_DO_URL, ZTConstants.IntegerName.COLLECT_DO_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null ){ return true; } return false; } /** * å 容忬¢ * @param param * @return */ @Override public boolean likeDo(ZTActionBatchDoRequest param){ ZTBaseResponse result = sendHttpRequest( ZTConstants.IntegerUrl.LIKE_DO_URL, ZTConstants.IntegerName.LIKE_DO_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null ){ return true; } return false; } /** * å 容å享 * @param param * @return */ @Override public boolean shareDo(ZTActionDoRequest param){ ZTBaseResponse result = sendHttpRequest( ZTConstants.IntegerUrl.SHARE_DO_URL, ZTConstants.IntegerName.SHARE_DO_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null ){ return true; } return false; } /** * å 容æµè§ * @param param * @return */ @Override public boolean viewDo(ZTActionDoRequest param){ ZTBaseResponse result = sendHttpRequest( ZTConstants.IntegerUrl.VIEW_DO_URL, ZTConstants.IntegerName.VIEW_DO_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null ){ return true; } return false; } /** * è·åæçæ¶èå表å页 * @param param * @return */ @Override public ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param){ ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest( ZTConstants.IntegerUrl.COLLECT_LIST_URL, ZTConstants.IntegerName.COLLECT_LIST_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * è·åæç忬¢å表å页 * @param param * @return */ @Override public ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param){ ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest( ZTConstants.IntegerUrl.LIKE_LIST_URL, ZTConstants.IntegerName.LIKE_LIST_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } /** * è·åè·åçå¸åºéå * @param param * @return */ @Override public List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param){ if(StringUtils.isBlank(param.getPid())){ param.setPid(ZTConstants.DEFAULT_PID);//é»è®¤åå ¨é¨ç份 } ZTBaseResponse<List<ZTAreaInfoResponse>> result = sendHttpRequest( ZTConstants.IntegerUrl.AREA_LIST_URL, ZTConstants.IntegerName.AREA_LIST_NAME, param.getToken(), param.getUserType(), JSONObject.toJSONString(param )); if(result!=null){ return result.getData(); } return null; } public <T> ZTBaseResponse<T> sendHttpRequest(String url,String name,String token,String userType,String param){ log.info("ã"+name+"ã================å¼å§===="+ JSONObject.toJSONString(param)); String res = null; int success = 0; try { Map<String,String> headers = new HashMap<>(); headers.put(ZTConstants.HEADER_TOKEN,token); headers.put(ZTConstants.HEADER_USERTYPE,userType); res = HttpsUtil.postJsonWithHeaders(url,param,headers); TypeReference typeReference = new TypeReference<ZTBaseResponse<T>>(){}; ZTBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,name); if(StringUtils.equals(result.getCode(),ZTConstants.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; } public void saveInterfaceLog(String url,String name,String param,Integer success,String respone){ if(interfaceLogMapper ==null){ return; } InterfaceLog log = new InterfaceLog(); log.setCreateDate(new Date()); log.setUrl(url); log.setEditDate(log.getCreateDate()); log.setPlat(Constants.ZERO); log.setName(name); log.setIsdeleted(Constants.ZERO); log.setRequest(param); log.setType(Constants.ONE); log.setSuccess(success); log.setRepose(respone); interfaceLogMapper.insert(log); } private static void logResult(ZTBaseResponse res,String name) { if(StringUtils.equals(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/zhongtai/ZTActionBatchDoRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; import java.util.List; /** * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 */ @Data public class ZTActionBatchDoRequest extends ZTBaseRequst { /** * æç« ID */ private List<ZTActionDoRequest> list; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTActionDoRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 */ @Data public class ZTActionDoRequest extends ZTBaseRequst { /** * æç« ID */ private String articleId; /** * OpenID */ private String openId; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTAreaListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 */ @Data public class ZTAreaListRequest extends ZTBaseRequst{ /** * ç¶çº§ç¼ç */ private String pid; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBaseRequst.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 */ @Data public class ZTBaseRequst { /** * ç¶çº§ç¼ç */ private String userType; private String token; private String openid; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCatalogListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·éåº */ @Data public class ZTCatalogListRequest extends ZTBaseRequst{ /** * ç®å½å¯ä¸ç¼ç ,ç¼ç 为空ï¼åè¿åå ¨é¨ä¸çº§ç®å½ */ private String catalogCode; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCollectListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·éåº */ @Data public class ZTCollectListRequest extends ZTBaseRequst{ /** * æ¶èç±»åï¼äº§åï¼æ¡ä¾ï¼å®æ¯ å¿ é */ private String favoriteType; /** * OpenID å¿ é */ private String openId; /** * æåºæ¹å¼ å¯é */ private String sort; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.doumee.biz.zbom.model.zhongtai; public class ZTConstants { public static String PLATFORM_MP_WX = "mp-weixin";//å°ç¨åºå¹³å° public static String PLATFORM_WEBPAD = "web-pad";//PAD端 public static String 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表示åå ¨ä¸å½ public interface IntegerUrl{ String USER_UPDATE_URL ="customer/api/sync"; String USER_GET_TOKEN_URL ="http://api.dev.zbom.7zcloud.com/customer/api/login"; String USER_LOGOUT_URL ="http://api.dev.zbom.7zcloud.com/customer/api/disable"; String CATALOG_LIST_URL ="/content/api/catalog"; String CONTENT_LIST_URL ="/content/api/page"; String CONTENT_INFO_URL ="/content/api/detail/"; String COLLECT_DO_URL ="/content/api/collect"; String VIEW_DO_URL ="/content/api/view"; String SHARE_DO_URL ="/content/api/share"; String LIKE_DO_URL ="/content/api/like"; String COLLECT_LIST_URL ="/behavior/getFavorite"; String LIKE_LIST_URL ="/behavior/getLike"; String AREA_LIST_URL ="/admin/bAreaRegion/getChildren"; } public interface IntegerName{ String USER_UPDATE_NAME ="ç¨æ·ä¿¡æ¯åæ¥"; String USER_GET_TOKEN_NAME ="ç¨æ·ç»é"; String USER_LOGOUT_NAME ="注éç¨æ·"; String CATALOG_LIST_NAME ="è·ååç±»ååç±»ä¸çæ ç¾"; String CONTENT_LIST_NAME ="è·åå 容å表å页"; String CONTENT_INFO_NAME ="è·åå 容详æ "; String COLLECT_DO_NAME ="å 容æ¶è"; String VIEW_DO_NAME ="å 容æµè§"; String SHARE_DO_NAME ="å 容å享"; String LIKE_DO_NAME ="å 容忬¢"; String COLLECT_LIST_NAME ="è·åæçæ¶èå表å页"; String LIKE_LIST_NAME ="è·åæç忬¢å表å页"; String AREA_LIST_NAME ="è·åçå¸åºéå"; } } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentInfoRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·éåº */ @Data public class ZTContentInfoRequest extends ZTBaseRequst{ /** * 临æ¶ç¥¨æ® */ private String articleId; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; import java.util.List; /** * ç¨æ·éåº */ @Data public class ZTContentListRequest extends ZTBaseRequst { /** * ç®å½å¯ä¸ç¼ç ï¼ç®å½å¯ä¸ç¼ç */ private String catalogCode; /** * æ¯å¦ç½®é¡¶ï¼é»è®¤false */ private Boolean isTop; /** * å½å页 */ private String pageNum; /** * æ¯é¡µæ¡æ° */ private String pageSize; /** * æç´¢å ³é®åï¼æ ¹æ®æ é¢æç´¢å ³é®å */ private String search; /** * æåºæ¹å¼ï¼NORMAL - é»è®¤ * HOT - æç * LATEST - ææ° */ private String sortType; /** * å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表ï¼å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表 */ private List<String> tagCode; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserGetTokenRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·è·å临æ¶ç¥¨æ® */ @Data public class ZTUserGetTokenRequest extends ZTBaseRequst { /** * åºç¨ç ï¼åºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½ç»å½è¡ä¸ºæ¥å¿è®°å½ */ private String appCode; /** * åºç¨IDï¼åºç¨ID, ç¨ä½ç»å½è¡ä¸ºæ¥å¿è®°å½ */ private String appId; /** * OpenIDï¼OpenIDææºå· */ private String openId; /** * ååºç¨ç ï¼ååºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½ç»å½è¡ä¸ºæ¥å¿è®°å½ */ private String subAppCode; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserInfoUpdateRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,127 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * æ ¹æ®OpenIDç»å®ä¸å°çç¨æ·å ³ç³»åç¨æ·ä¿¡æ¯ï¼è¿åä¸å°çç¨æ·ä»¤ç */ @Data public class ZTUserInfoUpdateRequest extends ZTBaseRequst{ /** * å°åï¼çå¸åºç宿´åç¬¦ä¸²ï¼æ¯å¦"广ä¸ç广å·å¸ç½äºåº" */ private String address; /** * å¹´é¾ï¼å¡«æ°å, "18" */ private String age; /** * åºç¨ç ï¼åºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½åæ¥ä¿¡æ¯è¡ä¸ºæ¥å¿è®°å½ */ private String appCode; /** * åºç¨IDï¼å°ç¨åºçAppID å¿ é */ private String appId; /** * 头åï¼å¤´åå°å, * æ¯å¦"https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=64&d=identicon" */ private String avatarUrl; /** * çæ¥ï¼XXXXå¹´XæXæ¥ */ private String birthday; /** * å®¢æ·æ¸ 鿥æºç¼ç */ private String channelSourceCode; /** * 客æ·åä½ */ private String customerCompany; /** * 客æ·çº§å« */ private String customerLevel; /** * å®¢æ·æå±è¡ä¸ */ private String customerTrade; /** * çµåé®ç®± */ private String email; /** * 详ç»å°åï¼åºä»¥ä¸ç详ç»å°å */ private String fullAddress; /** * æ§å«ï¼æ§å«ï¼âç·","女" */ private String gender; /** * æ¿å±é¢ç§¯ï¼â120â */ private String houseArea; /** * æ¿å±æ·åï¼"3室ä¸å ä¸å¨ä¸å«" */ private String houseLayout; /** * èº«ä»½è¯ */ private String idCard; /** * å§å */ private String name; /** * OpenIDï¼å¾®ä¿¡ç¨æ·çOpenID å¿ é */ private String openId; /** * ææº */ private String phone; /** * å¹³å°ç±»åï¼å°ç¨åºä¼ mp-weixinï¼padç«¯ä¼ web-pad å¿ é */ private String platform; /** * èä¸ */ private String position; /** * æå产åç¼ç ï¼ç¨éå·éå¼ */ private String productCode; /** * æ¨è人 */ private String referee; /** * 夿³¨ */ private String remark; /** * æ¥æºç³»ç»å®¢æ·IDï¼å¯¹åºçæ¥æºç³»ç»éç客æ·ID */ private String sourceCustomerId; /** * ååºç¨ç ï¼ååºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½åæ¥ä¿¡æ¯è¡ä¸ºæ¥å¿è®°å½ */ private String subAppCode; /** * UnionIdï¼å¾®ä¿¡ç¨æ·çUnionID */ private String unionId; /** * å°åºï¼âXXå°åºâ */ private String uptown; /** * å¾®ä¿¡å· */ private String weixin; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserLogoutRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.doumee.biz.zbom.model.zhongtai; import lombok.Data; /** * ç¨æ·éåº */ @Data public class ZTUserLogoutRequest extends ZTBaseRequst{ /** * 临æ¶ç¥¨æ® */ private String token; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTAreaInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.util.Map; /** * çå¸åºè¯¦æ è¿å */ @Data public class ZTAreaInfoResponse { /** * id":â11000000000æ¥" * pid":"1" * "shortname":"å京â * "name":"å京å¸" * "mergename":"ä¸å½.å京å¸" * "level": 2 */ private String id; private String pid; private String code; private String shortname; private String mergename; private String name; //å±çº§ private String level; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.util.List; @Data public class ZTBasePageResponse<T> { /** * å½å页 */ private double current; /** * è®°å½å表 */ private List<T> records; /** * æ¯é¡µæ¾ç¤ºæ¡æ° */ private double size; /** * æ»è®°å½æ° */ private double total; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBaseResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; @Data public class ZTBaseResponse<T> { /** *æ¯å¦æå,true:æå;false:失败 */ private Boolean success; /** * æ¶æ¯ç ,200:æå;å ¶ä»code:失败 */ private String code; /** * æç¤ºæ¶æ¯ */ private String msg; /** * æ°æ® */ private T data; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.util.List; /** * ç¨æ·éåº */ @Data public class ZTCatalogInfoResponse { /** * ç®å½å¯ä¸ç¼ç */ private String code; /** * ç®å½é¢å¤ä¿¡æ¯ */ private String expandInfo; /** * ç®å½ID */ private String id; /** * ç®å½åç§° */ private String name; /** * å°é¢å¾URL */ private String picture; /** * ç¶çº§ç®å½ID */ private String pid; /** * 夿³¨ */ private String remark; /** * ç®å½æåº */ private String sort; /** * åç®å½ */ private List<ZTCatalogInfoResponse> childCatalog; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogTagTypeResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.util.List; /** * ç¨æ·éåº */ @Data public class ZTCatalogTagTypeResponse { /** * åç®å½ */ private List<ZTCatalogTagTypeResponse> tags; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; /** * ç¨æ·éåº */ @Data public class ZTCollectResponse { /** * æ¶èç±»åï¼äº§åï¼æ¡ä¾ï¼å®æ¯ å¿ é */ private String favoriteType; /** * OpenID å¿ é */ private String openId; /** * æåºæ¹å¼ å¯é */ private String sort; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,54 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; import java.util.Map; /** * å 容详æ è¿å */ @Data public class ZTContentInfoResponse { /** * ä½è */ private String author; /** * å 容详æ */ private Map<String, Object> content; /** * æç« ç±»å */ private String contentType; /** * æç« ID */ private String id; /** * è¯è¨ç¼ç */ private String langCode; /** * å¤å¾çå表 */ private String picUrls; /** * å叿¥æ */ private String publishDate; /** * åå¸ç»ç» */ private String publishDepartment; /** * åæ é¢ */ private String subtitle; /** * æç« æ é¢ */ private String title; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; /** * å 容å页å表è¿åå 容 */ @Data public class ZTContentListResponse { /** * ä½è */ private String author; /** * å°é¢å¾ */ private String coverImage; /** * æ¶èé */ private double favoriteCount; /** * æç« ID */ private String id; /** * æ¯å¦ç½®é¡¶ */ private String isTop; /** * è¯è¨ç¼ç */ private String langCode; /** * ç¹èµé */ private double likeCount; /** * å叿¥æ */ private String publishDate; /** * åå¸ç»ç» */ private String publishDepartment; /** * é 读é */ private double readCount; /** * æåº */ private String sort; /** * åæ é¢ */ private String subtitle; /** * æ é¢ */ private String title; /** * æç« ç±»å */ private String type; /** * æç« å¤é¾URLï¼è§é¢åå ¶ä»è·³è½¬é¾æ¥ç±»å */ private String url; } server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTUserGetTokenResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.biz.zbom.model.zhongtai.response; import lombok.Data; @Data public class ZTUserGetTokenResponse { /** *ç¨æ·ä¸´æ¶ç¥¨æ® */ private String token; } server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -327,6 +327,7 @@ public static final String ZBOM_CRM_API_URL = "ZBOM_CRM_API_URL"; public static final String ZBOM_CRM_API_KEY = "ZBOM_CRM_API_KEY"; public static final String ZBOM_SMS_API_KEY = "ZBOM_SMS_API_KEY"; public static final String ZBOM_IAM_API_URL = "ZBOM_IAM_API_URL"; public static final String ZBOM_SMS_API_URL = "ZBOM_SMS_API_URL"; public static final String WX_PLATFORM_PREFIX = "WX_PLATFORM_PREFIX"; server/service/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -11,25 +11,33 @@ import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Map; public class HttpsUtil { public static String get(String url,boolean ignoreSSL) { return connection(url, "GET", null, null,ignoreSSL); return connection(url, "GET", null, null,ignoreSSL,null); } public static String post(String url, String data, String contentType, boolean ignoreSSL) { return connection(url, "POST", data, contentType, ignoreSSL); return connection(url, "POST", data, contentType, ignoreSSL,null); } public static String postJson(String url, String data) { if(url.startsWith("https://")){ return connection(url, "POST", data, "application/json", true); return connection(url, "POST", data, "application/json", true,null); }else{ return connectionHttp(url, "POST", data, "application/json"); return connectionHttp(url, "POST", data, "application/json",null); } } public static String postJsonWithHeaders(String url, String data, Map<String,String> headers) { if(url.startsWith("https://")){ return connection(url, "POST", data, "application/json", true,headers); }else{ return connectionHttp(url, "POST", data, "application/json",headers); } } public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL, Map<String,String> headers){ HttpsURLConnection connection = null; try { URL _url = new URL(url); @@ -41,7 +49,11 @@ if(contentType != null){ connection.setRequestProperty("Content-Type", contentType); } if (headers!=null && headers.size()>0) { for (String s : headers.keySet()) { connection.setRequestProperty(s, headers.get(s)); } } if(ignoreSSL){ //ä¿¡ä»»ææsslè¯ä¹¦åä¸»æº TrustManager[] trustManagers = {new HttpsTrustManager()}; @@ -56,7 +68,6 @@ }); } connection.connect(); if(data != null){ @@ -64,7 +75,6 @@ outputStream.write(data.getBytes("utf-8")); outputStream.close(); } int responseCode = connection.getResponseCode(); if (responseCode == HttpsURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); @@ -87,7 +97,7 @@ } return null; } public static String connectionHttp(String url,String method,String data,String contentType ){ public static String connectionHttp(String url,String method,String data,String contentType, Map<String,String> headers){ HttpURLConnection connection = null; try { URL _url = new URL(url); @@ -99,7 +109,11 @@ if(contentType != null){ connection.setRequestProperty("Content-Type", contentType); } if (headers!=null && headers.size()>0) { for (String s : headers.keySet()) { connection.setRequestProperty(s, headers.get(s)); } } connection.connect(); if(data != null){ server/service/src/main/java/com/doumee/dao/business/vo/ShopTreeVo.java
@@ -82,4 +82,11 @@ @ApiModelProperty(value = "ä¸çº§é¨é¨éå", example = "1") @TableField(exist = false) private List<ShopTreeVo> childList; @ApiModelProperty(value = "é¨é¨ç¼ç 级å«è·¯å¾", example = "1") private String idPath; @ApiModelProperty(value = "é¨é¨çº§å«è·¯å¾", example = "1") private String namePath; @ApiModelProperty(value = "é¨é¨çº§å«è·¯å¾", example = "1") private Long parentId; } server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -841,10 +841,16 @@ s.setIdPath(s.getId()+"/"); shopMapper.updateById(s); }else{ String idPath = StringUtils.defaultString(parent.getIdPath(),"")+ shop.getId()+"/"; String namePath =StringUtils.defaultString(parent.getNamePath(),"")+"/"+shop.getName(); s.setParentId(parent.getId()); s.setNamePath(parent.getNamePath()+"/"+s.getName()); s.setIdPath(parent.getIdPath()+s.getId()+"/"); shopMapper.updateById(s); s.setNamePath(namePath); s.setIdPath(idPath); if(!(Constants.equalsLong(parent.getId(),shop.getParentId()) && StringUtils.equals(idPath,shop.getIdPath()) &&StringUtils.equals(namePath,shop.getNamePath())) ){ shopMapper.updateById(s); } } if(shop.getChildList()!=null && shop.getChildList().size()>0){ updateNamePath(s,shop.getChildList());