From 20b11236b4364034f52df294b9240776f539ede1 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 16 七月 2024 14:49:01 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
---
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java | 55 +
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectResponse.java | 4
server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java | 271 +++++
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCusFavoritesInfoResponse.java | 31
server/web/src/main/java/com/doumee/api/web/CustomerApi.java | 52 +
server/web/src/main/java/com/doumee/api/web/ApiController.java | 43
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserInfoUpdateRequest.java | 11
server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerInfoRequest.java | 12
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentInfoResponse.java | 3
server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java | 11
server/service/src/main/java/com/doumee/core/utils/Constants.java | 26
server/service/src/main/java/com/doumee/service/business/InitService.java | 2
server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java | 2
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java | 24
server/service/src/main/java/com/doumee/service/business/ShopService.java | 15
server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMDaogouBindListResponse.java | 24
server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java | 5
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBaseResponse.java | 6
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogTagTypeResponse.java | 3
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java | 46
server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMBaseRequst.java | 17
server/service/src/main/java/com/doumee/dao/business/model/Users.java | 26
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java | 52 +
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCatalogListRequest.java | 3
server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMBaseResponse.java | 24
server/service/src/main/java/com/doumee/dao/web/response/ZSZXCatalogResponse.java | 31
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java | 167 +++
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 114 +
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTAreaInfoResponse.java | 3
admin/src/views/timer/timer.vue | 102 +-
server/service/src/main/java/com/doumee/dao/business/CustomerUserMapper.java | 13
server/service/src/main/java/com/doumee/dao/business/model/CustomerUser.java | 115 ++
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java | 262 ++++-
server/service/src/main/java/com/doumee/core/utils/HttpsUtil.java | 7
server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java | 21
server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 90 +
server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java | 90 +
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java | 42
server/admin/src/main/java/com/doumee/api/timer/QuartzController.java | 2
server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerListRequest.java | 22
server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java | 12
server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java | 17
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java | 158 ++
server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmDaogouBindListRequest.java | 24
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagInfoResponse.java | 36
server/service/src/main/java/com/doumee/service/business/UsersService.java | 5
admin/src/views/timer/components/OperaTimerWindow.vue | 8
server/admin/src/main/java/com/doumee/timer/CustomerUserUpdateBiz.java | 39
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTUserGetTokenResponse.java | 4
server/service/src/main/java/com/doumee/service/business/CustomerUserService.java | 99 ++
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java | 14
server/service/src/main/java/com/doumee/dao/business/model/Shop.java | 26
server/service/src/main/java/com/doumee/biz/zbom/ZbomSMSService.java | 1
server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMCustomerListResponse.java | 23
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 74 +
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagChildInfoResponse.java | 31
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java | 11
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java | 20
server/admin/src/main/java/com/doumee/api/business/CustomerUserController.java | 90 +
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBaseRequst.java | 8
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java | 28
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBehaviorInfoResponse.java | 38
server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java | 4
server/service/src/main/java/com/doumee/core/utils/DateUtil.java | 4
/dev/null | 25
server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerPostRequest.java | 18
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogInfoResponse.java | 7
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentInfoRequest.java | 4
server/web/src/main/java/com/doumee/api/web/CatalogApi.java | 46
server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java | 44
server/web/src/main/java/com/doumee/api/web/PublicController.java | 18
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBindCusFavoriteDoRequest.java | 27
72 files changed, 2,473 insertions(+), 339 deletions(-)
diff --git a/admin/src/views/timer/components/OperaTimerWindow.vue b/admin/src/views/timer/components/OperaTimerWindow.vue
index f3e8b6d..f710051 100644
--- a/admin/src/views/timer/components/OperaTimerWindow.vue
+++ b/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="璇疯緭鍏ean鍚嶇О" :maxlength="10" v-trim/>
+ <el-input v-model="form.beanName" placeholder="璇疯緭鍏ean鍚嶇О" 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="璇疯緭鍏ron琛ㄨ揪寮�" :maxlength="10" v-trim/>
+ <el-input v-model="form.cronExpres" placeholder="璇疯緭鍏ron琛ㄨ揪寮�" 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/>
diff --git a/admin/src/views/timer/timer.vue b/admin/src/views/timer/timer.vue
index 912f85c..91e4b1e 100644
--- a/admin/src/views/timer/timer.vue
+++ b/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,
@@ -83,13 +83,13 @@
beanName: '',
module: ''
},
- pausing:false,
- running:false,
- resuming:false,
+ pausing: false,
+ running: false,
+ resuming: false,
room: []
}
},
- provide() {
+ provide () {
return {
room: () => this.room
}
@@ -107,61 +107,61 @@
pauseById (row) {
this.__checkApi()
this.$dialog.actionConfirm('纭鏆傚仠璇ヤ换鍔″悧?')
- .then(() => {
- this.pausing = true
- this.api.paustById(row.id)
- .then(() => {
- this.$message.info('鏆傚仠鎴愬姛')
- this.search()
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.pausing = false
- })
- })
- .catch(() => {})
+ .then(() => {
+ this.pausing = true
+ this.api.pauseById(row.id)
+ .then(() => {
+ this.$message.info('鏆傚仠鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ // this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.pausing = false
+ })
+ })
+ .catch(() => {})
},
resumeById (row) {
this.__checkApi()
this.$dialog.actionConfirm('纭鎭㈠璇ヤ换鍔″悧?')
- .then(() => {
- this.resuming = true
- this.api.resumeById(row.id)
- .then(() => {
- this.$message.info('鎭㈠鎴愬姛')
- this.search()
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.resuming = false
- })
- })
- .catch(() => {})
+ .then(() => {
+ this.resuming = true
+ this.api.resumeById(row.id)
+ .then(() => {
+ this.$message.info('鎭㈠鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ // this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.resuming = false
+ })
+ })
+ .catch(() => {})
},
runById (row) {
this.__checkApi()
this.$dialog.actionConfirm('纭鎵ц涓�娆¤浠诲姟鍚�?')
- .then(() => {
- this.running = true
- this.api.runOnceById(row.id)
- .then(() => {
- this.$message.info('鎵ц鎴愬姛')
- this.search()
- })
- .catch(e => {
- // this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.running = false
- })
- })
- .catch(() => {})
+ .then(() => {
+ this.running = true
+ this.api.runOnceById(row.id)
+ .then(() => {
+ this.$message.info('鎵ц鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ // this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.running = false
+ })
+ })
+ .catch(() => {})
}
- },
+ }
}
</script>
diff --git a/server/admin/src/main/java/com/doumee/api/business/CustomerUserController.java b/server/admin/src/main/java/com/doumee/api/business/CustomerUserController.java
new file mode 100644
index 0000000..e380b16
--- /dev/null
+++ b/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));
+ }
+}
diff --git a/server/admin/src/main/java/com/doumee/api/timer/QuartzController.java b/server/admin/src/main/java/com/doumee/api/timer/QuartzController.java
index 220def6..3524a93 100644
--- a/server/admin/src/main/java/com/doumee/api/timer/QuartzController.java
+++ b/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);
diff --git a/server/admin/src/main/java/com/doumee/timer/CustomerUserUpdateBiz.java b/server/admin/src/main/java/com/doumee/timer/CustomerUserUpdateBiz.java
new file mode 100644
index 0000000..d22869e
--- /dev/null
+++ b/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();
+ }
+ }
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java b/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
index 5d02b44..77b2005 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
+++ b/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,10 @@
@Service
public interface ZbomCRMService {
- void dealCustomerLogData(CustomerLog customerLog);
+ int dealCustomerLogData(CustomerLog customerLog);
+ String zbomEncode(String str);
+ String getCrmGoUrl(String userName);
- int postDataToCrm(CrmCustomerSubmmitModel entity );
+ CRMBaseResponse<List<CRMCustomerListResponse>> getCustomerList(CrmCustomerListRequest entity );
+ CRMBaseResponse<List<CRMDaogouBindListResponse>> getDaogouBindList(CrmDaogouBindListRequest entity );
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/ZbomSMSService.java b/server/service/src/main/java/com/doumee/biz/zbom/ZbomSMSService.java
index 906ae4e..9c9cf66 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/ZbomSMSService.java
+++ b/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;
/**
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java b/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
index f3ac168..0b41ced 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
@@ -3,6 +3,7 @@
import com.doumee.biz.zbom.model.zhongtai.*;
import com.doumee.biz.zbom.model.zhongtai.response.*;
import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.web.response.ZSZXCatalogResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -21,16 +22,18 @@
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);
boolean likeDo(ZTActionBatchDoRequest param);
boolean shareDo(ZTActionDoRequest param);
boolean viewDo(ZTActionDoRequest param);
- ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param);
+ ZTBasePageResponse<ZTCollectInfoResponse> pageCollectList(ZTContentListRequest param);
ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param);
+ ZTBasePageResponse<ZTBehaviorInfoResponse> pageBehavoirList(ZTContentListRequest param);
List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param);
-
-
-
+ boolean bindCustomerFavorites(ZTBindCusFavoriteDoRequest param);
+ ZSZXCatalogResponse getZSZXCatalogs();
+ ZTBasePageResponse<ZTCusFavoritesInfoResponse> pageCusFavoriteList(ZTContentListRequest param);
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
index f6d1d27..bd00ca2 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
@@ -1,10 +1,15 @@
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.*;
+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.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.HttpsUtil;
@@ -12,6 +17,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 +25,7 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
+import java.net.URLEncoder;
import java.util.*;
/**
@@ -27,6 +34,7 @@
* @date 2023/11/30 15:33
*/
@Service
+@Slf4j
public class ZbomCRMServiceImpl implements ZbomCRMService {
@Autowired
@@ -38,93 +46,152 @@
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;
+ @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());
+// 鎻愪氦绫诲瀷 0-娴嬭瘯瑁呬慨椋庢牸锛�1-0鍏冨畾鍒讹紱2瑁呬慨璁$畻鍣�
+ if(Constants.equalsInteger(customerLog.getType(),Constants.ONE)){
+ entity.setSource(CRMConstants.CRM_SOURCE.SOURCE_MP01);
+ entity.setChannel(CRMConstants.CRM_SOURCE.SOURCE_MP01+"00");
+ }else{
+ entity.setSource(CRMConstants.CRM_SOURCE.SOURCE_MP02);
+ entity.setChannel(CRMConstants.CRM_SOURCE.SOURCE_MP02+"00");
}
- 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 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"))) {
- status = 1;
- crmInfo="鎻愪氦鎴愬姛";
- success =0;
- }else{
- status = 2;
- crmInfo="鎻愪氦澶辫触["+ result+"]";
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- crmInfo+= e.getMessage();
- }finally {
- saveInterfaceLog(url,"蹇楅偊CRM瀹㈡埛鐣欒祫淇℃伅鎻愪氦",param,success,result);
- }
+ entity.setOpenid(customerLog.getOpenid());
+ entity.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm"));
+ CrmCustomerPostRequest obj = new CrmCustomerPostRequest();
+ obj.setCusInfo(new ArrayList<>());
+ obj.getCusInfo().add(entity);
+ int status ;
+ String crmInfo;
+ String param = JSONObject.toJSONString(obj);
+ CRMBaseResponse result = sendCusHttpRequest(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="鎻愪氦鎴愬姛";
}else{
status = 2;
- crmInfo="鎻愪氦澶辫触crm閰嶇疆鏈夎锛宎ppid:["+ appid+"]"+"url:["+ urlStr+"]";
+ crmInfo="鎻愪氦澶辫触["+ result!=null?result.getMsg():"鎺ュ彛璇锋眰澶辫触锛�"+"]";
}
- 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,
+ new TypeReference<CRMBaseResponse<List<CRMDaogouBindListResponse>>>(){});
+ 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
+ ,new TypeReference<CRMBaseResponse<List<CRMCustomerListResponse>>>(){});
+ return result;// 榛樿澶辫触
+ }
+
+ public <T> CRMBaseResponse<T> sendCusHttpRequest(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 += "?type=postCusData&_t=" + _t + "&token=" + DigestUtils.md5Hex( "postCusData" + _t + appKey);
+ Map<String,String> headers = new HashMap<>();
+ 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;
+ }
+ public <T> CRMBaseResponse<T> sendHttpRequest(String interfaceUrl, String name, String param,TypeReference<CRMBaseResponse<T>> typeReference){
+ 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<>();
+ res = HttpsUtil.postJson(url,param);
+ 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("銆怌RM鎺ュ彛锛�"+name+"銆�================鎴愬姛====\n"+res);
+ }else{
+ log.error("銆怌RM鎺ュ彛锛�"+name+"銆�================澶辫触====锛歕n"+ res);
+ }
+ }
public void saveInterfaceLog(String url,String name,String param,Integer success,String respone){
if(crmInterfaceLogMapper ==null){
return;
@@ -142,4 +209,55 @@
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;
+ }
+
+ /**
+ * 璺宠浆crm鍔熻兘 鑾峰彇鎺堟潈鍦板潃
+ * http://localhost:8080/core/oauth/authorize/jump?timestamp=1719998741&sign=41fbeb13965c43916876db7b5799e8ac&agent_phone_number=199077&bindKey=mp
+ * @param userName
+ * @return
+ */
+ @Override
+ public String getCrmGoUrl(String userName){
+ StringBuffer sb = new StringBuffer();
+ String result = null;
+ try {
+ // 鍒涘缓StringBuffer瀵硅薄鐢ㄦ潵鎿嶄綔瀛楃涓�
+ int _t = (int)(System.currentTimeMillis());
+ String appkey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_AUTH_API_KEY);
+ String url = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL)
+ +CRMConstants.IntegerUrl.GO_CRM_AUTH_URL
+ + "?timestamp="+_t
+ +"&agent_phone_number=" + URLEncoder.encode(userName, "UTF-8")
+ + "&bindKey=mp&sign="+ DigestUtils.md5Hex( _t + appkey);;
+ return url;
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鑾峰彇璺宠浆鍦板潃澶辫触鍝︼紒");
+ }
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
index dbe6b43..61cf379 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomSMSServiceImpl.java
+++ b/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
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
index 663aa5c..2837a38 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -16,6 +16,7 @@
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.model.CrmInterfaceLog;
import com.doumee.dao.business.model.InterfaceLog;
+import com.doumee.dao.web.response.ZSZXCatalogResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,11 +53,37 @@
ZTConstants.IntegerName.USER_GET_TOKEN_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTUserGetTokenResponse>>(){});
if(result!=null){
return result.getData();
}
return null;
+ }
+ /**
+ * 鑾峰彇鐢ㄦ埛鐧婚檰token
+ * @return
+ */
+ @Override
+ public ZSZXCatalogResponse getZSZXCatalogs(){
+ ZSZXCatalogResponse response = new ZSZXCatalogResponse();
+ ZTCatalogListRequest param = new ZTCatalogListRequest();
+ param.setCatalogCode(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU);
+ List<ZTCatalogInfoResponse> cataList = getCatalogList(param);
+ if(cataList!=null ){
+ for(ZTCatalogInfoResponse data : cataList){
+ if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.JIADE_ID)){
+ response.setJdId(data);
+ }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.CHUFANGSHEJI)){
+ response.setCfsj(data);
+ }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.QW_SHEJI)){
+ response.setQwsj(data);
+ }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.SHOUNASHEJI)){
+ response.setSnsj(data);
+ }
+ }
+ }
+ return response;
}
/**
* 鐢ㄦ埛淇℃伅鍚屾
@@ -70,7 +97,8 @@
ZTConstants.IntegerName.USER_UPDATE_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTUserGetTokenResponse>>(){});
if(result!=null){
return result.getData();
}
@@ -88,7 +116,8 @@
ZTConstants.IntegerName.USER_LOGOUT_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<Object>>(){});
if(result!=null ){
return true;
}
@@ -102,12 +131,33 @@
*/
@Override
public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param){
- ZTBaseResponse<List<ZTCatalogInfoResponse>> result = sendHttpRequest(
+
+ ZTBaseResponse<List<ZTCatalogInfoResponse>> result = sendHttpRequest(
ZTConstants.IntegerUrl.CATALOG_LIST_URL,
ZTConstants.IntegerName.CATALOG_LIST_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<List<ZTCatalogInfoResponse>>>(){});
+ if(result!=null){
+ return result.getData();
+ }
+ 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 ),
+ new TypeReference<ZTBaseResponse<List<ZTTagInfoResponse>>>(){});
if(result!=null){
return result.getData();
}
@@ -126,7 +176,8 @@
ZTConstants.IntegerName.CONTENT_LIST_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>>>(){});
if(result!=null){
return result.getData();
}
@@ -140,11 +191,12 @@
@Override
public ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param){
ZTBaseResponse<ZTContentInfoResponse> result = sendHttpRequest(
- ZTConstants.IntegerUrl.CONTENT_INFO_URL+ param.getArticleId(),
+ ZTConstants.IntegerUrl.CONTENT_INFO_URL+ param.getId(),
ZTConstants.IntegerName.CONTENT_INFO_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTContentInfoResponse>>(){});
if(result!=null){
return result.getData();
}
@@ -162,7 +214,8 @@
ZTConstants.IntegerName.COLLECT_DO_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<Object>>(){});
if(result!=null ){
return true;
}
@@ -180,7 +233,8 @@
ZTConstants.IntegerName.LIKE_DO_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<Object>>(){});
if(result!=null ){
return true;
}
@@ -198,7 +252,8 @@
ZTConstants.IntegerName.SHARE_DO_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<Object>>(){});
if(result!=null ){
return true;
}
@@ -216,7 +271,27 @@
ZTConstants.IntegerName.VIEW_DO_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<Object>>(){});
+ if(result!=null ){
+ return true;
+ }
+ return false;
+ }
+ /**
+ * 鐢ㄦ埛缁戝畾瀹㈡埛鍠滄娓呭崟锛屽彲缁戝畾澶氫釜鍐呭
+ * @param param
+ * @return
+ */
+ @Override
+ public boolean bindCustomerFavorites(ZTBindCusFavoriteDoRequest param){
+ ZTBaseResponse result = sendHttpRequest(
+ ZTConstants.IntegerUrl.BIND_CUSTOMER_FAVORITES_URL,
+ ZTConstants.IntegerName.BIND_CUSTOMER_FAVORITES_NAME,
+ param.getToken(),
+ param.getUserType(),
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<Object>>(){});
if(result!=null ){
return true;
}
@@ -228,13 +303,52 @@
* @return
*/
@Override
- public ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param){
- ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest(
+ public ZTBasePageResponse<ZTCollectInfoResponse> pageCollectList(ZTContentListRequest param){
+ ZTBaseResponse< ZTBasePageResponse<ZTCollectInfoResponse>> result = sendHttpRequest(
ZTConstants.IntegerUrl.COLLECT_LIST_URL,
ZTConstants.IntegerName.COLLECT_LIST_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCollectInfoResponse>>>(){});
+ if(result!=null){
+ return result.getData();
+ }
+ return null;
+ }
+ /**
+ * 鑾峰彇鎴戠殑鏀惰棌鍒楄〃鍒嗛〉
+ * @param param
+ * @return
+ */
+ @Override
+ public ZTBasePageResponse<ZTBehaviorInfoResponse> pageBehavoirList(ZTContentListRequest param){
+ ZTBaseResponse< ZTBasePageResponse<ZTBehaviorInfoResponse>> result = sendHttpRequest(
+ ZTConstants.IntegerUrl.BEHAVIOR_LIST_URL,
+ ZTConstants.IntegerName.BEHAVIOR_LIST_NAME,
+ param.getToken(),
+ param.getUserType(),
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTBehaviorInfoResponse>>>(){});
+ if(result!=null){
+ return result.getData();
+ }
+ return null;
+ }
+ /**
+ * 鑾峰彇瀹㈡埛鍠滄
+ * @param param
+ * @return
+ */
+ @Override
+ public ZTBasePageResponse<ZTCusFavoritesInfoResponse> pageCusFavoriteList(ZTContentListRequest param){
+ ZTBaseResponse< ZTBasePageResponse<ZTCusFavoritesInfoResponse>> result = sendHttpRequest(
+ ZTConstants.IntegerUrl.CUSTOMER_FAVORITES_LIST_URL,
+ ZTConstants.IntegerName.CUSTOMER_FAVORITES_LIST_NAME,
+ param.getToken(),
+ param.getUserType(),
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCusFavoritesInfoResponse>>>(){});
if(result!=null){
return result.getData();
}
@@ -253,7 +367,8 @@
ZTConstants.IntegerName.LIKE_LIST_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>>>(){});
if(result!=null){
return result.getData();
}
@@ -275,7 +390,8 @@
ZTConstants.IntegerName.AREA_LIST_NAME,
param.getToken(),
param.getUserType(),
- JSONObject.toJSONString(param ));
+ JSONObject.toJSONString(param ),
+ new TypeReference<ZTBaseResponse<List<ZTAreaInfoResponse>>>(){});
if(result!=null){
return result.getData();
}
@@ -283,7 +399,7 @@
}
- public <T> ZTBaseResponse<T> sendHttpRequest(String url,String name,String token,String userType,String param){
+ public <T> ZTBaseResponse<T> sendHttpRequest(String url,String name,String token,String userType,String param,TypeReference<ZTBaseResponse<T>> typeReference){
log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
String res = null;
int success = 0;
@@ -294,11 +410,9 @@
headers.put(ZTConstants.HEADER_USERTYPE,userType);
String index = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL);
res = HttpsUtil.postJsonWithHeaders(index+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)){
+ if(Constants.equalsInteger(result.getCode(),ZTConstants.CODE_SUCCESS)){
return result;
}else{
success =1;
@@ -329,7 +443,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("銆愪腑鍙版帴鍙o細"+name+"銆�================鎴愬姛====\n"+res);
}else{
log.error("銆愪腑鍙版帴鍙o細"+name+"銆�================澶辫触====锛歕n"+ res);
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerSubmmitModel.java b/server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerSubmmitModel.java
deleted file mode 100644
index b2af4d4..0000000
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerSubmmitModel.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.doumee.biz.zbom.model;
-
-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;
-
-@Data
-@ApiModel("蹇楅偊CRM瀹㈡埛鐣欒祫鎻愪氦鍙傛暟")
-public class CrmCustomerSubmmitModel implements Serializable {
- @ApiModelProperty(value = "瀹㈡埛淇℃伅")
- @JsonProperty("cus_info")
- @SerializedName("cus_info")
- private List<CrmCustomerInfoModel> cusInfo;
-}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMBaseRequst.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMBaseRequst.java
new file mode 100644
index 0000000..e8c057b
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java
new file mode 100644
index 0000000..c97f9d5
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CRMConstants.java
@@ -0,0 +1,44 @@
+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";
+ String GO_CRM_AUTH_URL ="oauth/authorize/jump";
+
+ }
+ 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";// 浠e涓嬪崟(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)
+ String SOURCE_MP01 = "MP01";// 闆跺厓璁捐
+ String SOURCE_MP02 = "MP02";//鎶ヤ环璁$畻鍣�
+ }
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerInfoModel.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerInfoRequest.java
similarity index 78%
rename from server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerInfoModel.java
rename to server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerInfoRequest.java
index 956be0c..0de506d 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/CrmCustomerInfoModel.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerInfoRequest.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 = "濮撳悕")
@@ -17,9 +17,9 @@
private String phone;
@ApiModelProperty(value = "璁捐甯堟墜鏈哄彿")
private String shopper;
- @ApiModelProperty(value = "鏉ユ簮")
+ @ApiModelProperty(value = "鏉ユ簮 MP01銆愰浂鍏冭璁°�戙�丮P02銆愭姤浠疯绠楀櫒銆�")
private String source;
- @ApiModelProperty(value = "娓犻亾")
+ @ApiModelProperty(value = "娓犻亾MP0100 锛孧P0200 ")
private String channel;
@ApiModelProperty(value = "鏃ユ湡 yyyy/MM/dd HH:mm")
private String date;
@@ -39,4 +39,4 @@
private String openid;
@ApiModelProperty(value = "缁堢淇℃伅")
private String terminal;
-}
+}
\ No newline at end of file
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerListRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerListRequest.java
new file mode 100644
index 0000000..0e76ad3
--- /dev/null
+++ b/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;
+}
\ No newline at end of file
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerPostRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerPostRequest.java
new file mode 100644
index 0000000..8088b51
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmCustomerPostRequest.java
@@ -0,0 +1,18 @@
+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;
+
+@Data
+@ApiModel("蹇楅偊CRM瀹㈡埛鐣欒祫鎻愪氦澶栧眰鍙傛暟")
+public class CrmCustomerPostRequest extends CRMBaseRequst implements Serializable {
+ @JsonProperty("cus_info")
+ @SerializedName("cus_info")
+ private List< CrmCustomerInfoRequest > cusInfo;
+}
\ No newline at end of file
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmDaogouBindListRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/CrmDaogouBindListRequest.java
new file mode 100644
index 0000000..76e357f
--- /dev/null
+++ b/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鏃� 锛宬eyWords 闈炲繀濉」鐩級 " ,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鏃跺�欏繀浼� 锛寉yyy-MM-dd,褰撳ぉ鍒涘缓鐨勬剰鍚�",required = true)
+ private String creationDate;
+}
\ No newline at end of file
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMBaseResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMBaseResponse.java
new file mode 100644
index 0000000..5d93183
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMCustomerListResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMCustomerListResponse.java
new file mode 100644
index 0000000..dd1c850
--- /dev/null
+++ b/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 userName;// 鐢ㄦ埛鐧诲綍璐﹀彿
+ private String userId ;//鐢ㄦ埛id涓婚敭
+ private String productCodeName;// 浜у搧鍚嶇О
+ private String customerPhone;// 瀹㈡埛濮撳悕
+ private String customerName;// 瀹㈡埛鎵嬫満鍙�
+ private String address ;//鍦板潃璇︽儏
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMDaogouBindListResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/crm/response/CRMDaogouBindListResponse.java
new file mode 100644
index 0000000..70c4cd8
--- /dev/null
+++ b/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 userName;// 鐢ㄦ埛鐧诲綍璐﹀彿
+ private String userId ;//鐢ㄦ埛id涓婚敭
+ private String productCodeName;// 浜у搧鍚嶇О
+ private String customerPhone;// 瀹㈡埛濮撳悕
+ private String customerName;// 瀹㈡埛鎵嬫満鍙�
+ private String address ;//鍦板潃璇︽儏
+ private String creationDate ;//鏃堕棿 yyyy-MM-dd
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBaseRequst.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBaseRequst.java
index 18a7efb..d0bb084 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBaseRequst.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBaseRequst.java
@@ -1,5 +1,6 @@
package com.doumee.biz.zbom.model.zhongtai;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -11,8 +12,13 @@
/**
* 鐖剁骇缂栫爜
*/
+
+ @ApiModelProperty(value = "C绔紶鈥淐USTOMER鈥�, B绔紶'BUSINESS")
private String userType;
+ @ApiModelProperty(value = "token" , hidden = true)
private String token;
- private String openid;
+ private String openId;
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭" , hidden = true)
+ private String userId;
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBindCusFavoriteDoRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBindCusFavoriteDoRequest.java
new file mode 100644
index 0000000..22e0c3e
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTBindCusFavoriteDoRequest.java
@@ -0,0 +1,27 @@
+package com.doumee.biz.zbom.model.zhongtai;
+
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 鐢ㄦ埛鏀惰棌銆佹祻瑙堛�佺偣璧炪�佸垎浜�+1
+ */
+@Data
+public class ZTBindCusFavoriteDoRequest extends ZTBaseRequst {
+ /**
+ * 鍐呭ID鍒楄〃
+ */
+ private List<String> articleIds;
+ /**
+ * 鐢ㄦ埛ID
+ */
+// private String userId;
+ /**
+ * OpenID
+ */
+ private String openId;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCatalogListRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCatalogListRequest.java
index 37e7fcb..635baa1 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCatalogListRequest.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCatalogListRequest.java
@@ -1,5 +1,6 @@
package com.doumee.biz.zbom.model.zhongtai;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -10,7 +11,9 @@
public class ZTCatalogListRequest extends ZTBaseRequst{
/**
* 鐩綍鍞竴缂栫爜,缂栫爜涓虹┖锛屽垯杩斿洖鍏ㄩ儴涓�绾х洰褰�
+ *
*/
+ @ApiModelProperty(value = "蹇楄瑁呬慨 zb_deco 浜у搧 product_intro 璧勮product_info 鍏ㄥ眿妗堜緥 whole_case",notes = "http://api.dev.zbom.7zcloud.com/content/api/catalog")
private String catalogCode;
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java
index 6c76b7e..abedc76 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java
+++ b/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鍦℉EADER涓殑鍚嶅瓧
public static String HEADER_TOKEN = "token";//token
public static String DEFAULT_PID = "1";//榛樿鐪佸競鍖簆id=1琛ㄧず鍙栧叏涓浗
+
+ /**
+ * 鍒嗙被code
+ * 涓�绱歝ode锛堝織璇磋淇� zb_deco 浜у搧 product_intro 璧勮product_info 鍏ㄥ眿妗堜緥 whole_case锛�
+ * 鑰虫満绱歝ode锛堝織璇磋淇細 鍏ㄥ眿璁捐 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";
@@ -22,12 +39,16 @@
String COLLECT_LIST_URL ="/behavior/getFavorite";
String LIKE_LIST_URL ="/behavior/getLike";
String AREA_LIST_URL ="/base/admin/bAreaRegion/getChildren";
+ String BIND_CUSTOMER_FAVORITES_URL ="/behavior/api/bindCustomerFavorites";
+ String CUSTOMER_FAVORITES_LIST_URL ="/behavior/api/customerFavorites";
+ String BEHAVIOR_LIST_URL ="/behavior/api/customerBehaviors";
}
public interface IntegerName{
String USER_UPDATE_NAME ="鐢ㄦ埛淇℃伅鍚屾";
String USER_GET_TOKEN_NAME ="鐢ㄦ埛鐧婚檰";
String USER_LOGOUT_NAME ="娉ㄩ攢鐢ㄦ埛";
- String CATALOG_LIST_NAME ="鑾峰彇鍒嗙被鍜屽垎绫讳笅鐨勬爣绛�";
+ String CATALOG_LIST_NAME ="鏍规嵁涓�绾ode鑾峰彇涓嬬骇鍒嗙被淇℃伅";
+ String TAG_LIST_NAME ="鏍规嵁鍒嗙被code鑾峰彇鏍囩淇℃伅";
String CONTENT_LIST_NAME ="鑾峰彇鍐呭鍒楄〃鍒嗛〉";
String CONTENT_INFO_NAME ="鑾峰彇鍐呭璇︽儏";
String COLLECT_DO_NAME ="鍐呭鏀惰棌";
@@ -37,5 +58,8 @@
String COLLECT_LIST_NAME ="鑾峰彇鎴戠殑鏀惰棌鍒楄〃鍒嗛〉";
String LIKE_LIST_NAME ="鑾峰彇鎴戠殑鍠滄鍒楄〃鍒嗛〉";
String AREA_LIST_NAME ="鑾峰彇鐪佸競鍖洪泦鍚�";
+ String BIND_CUSTOMER_FAVORITES_NAME ="缁戝畾瀹㈡埛鍠滄";
+ String CUSTOMER_FAVORITES_LIST_NAME ="鑾峰彇瀹㈡埛鍠滄";
+ String BEHAVIOR_LIST_NAME ="鑾峰彇琛屼负杞ㄨ抗";
}
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentInfoRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentInfoRequest.java
index 85a8669..003c8f6 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentInfoRequest.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentInfoRequest.java
@@ -9,8 +9,8 @@
@Data
public class ZTContentInfoRequest extends ZTBaseRequst{
/**
- * 涓存椂绁ㄦ嵁
+ * 鍐呭涓婚敭
*/
- private String articleId;
+ private String id;
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
index c362b62..f161c97 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
@@ -1,44 +1,38 @@
package com.doumee.biz.zbom.model.zhongtai;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
-/**
- * 鐢ㄦ埛閫�鍑�
- */
@Data
public class ZTContentListRequest extends ZTBaseRequst {
- /**
- * 鐩綍鍞竴缂栫爜锛岀洰褰曞敮涓�缂栫爜
- */
+ @ApiModelProperty(value = "鍒嗙被缂栫爜")
private String catalogCode;
- /**
- * 鏄惁缃《锛岄粯璁alse
- */
+
+ @ApiModelProperty(value = " 鏄惁缃《锛岄粯璁alse" , hidden = true)
private Boolean isTop;
- /**
- * 褰撳墠椤�
- */
+
+ @ApiModelProperty(value = "褰撳墠椤�")
private String pageNum;
- /**
- * 姣忛〉鏉℃暟
- */
+
+ @ApiModelProperty(value = "姣忛〉鏉℃暟")
private String pageSize;
- /**
- * 鎼滅储鍏抽敭瀛楋紝鏍规嵁鏍囬鎼滅储鍏抽敭瀛�
- */
+
+ @ApiModelProperty(value = "鎼滅储鍏抽敭瀛�")
private String search;
- /**
- * 鎺掑簭鏂瑰紡锛孨ORMAL - 榛樿
- * HOT - 鏈�鐑�
- * LATEST - 鏈�鏂�
- */
+
+ @ApiModelProperty(value = "鍐呭鏌ヨ鏉′欢")
+ private String query;
+
+ @ApiModelProperty(value = "鏍囩")
+ private String tagCodes;
+
+ @ApiModelProperty(value = "鎺掑簭鏂瑰紡 NORMAL - 榛樿锛汬OT - 鏈�鐑紱LATEST - 鏈�鏂帮紱")
private String sortType;
- /**
- * 澶氫釜鏍囩鍞竴缂栫爜鐨勫垪琛紝澶氫釜鏍囩鍞竴缂栫爜鐨勫垪琛�
- */
+
+ @ApiModelProperty(value = "澶氫釜鏍囩鍞竴缂栫爜鐨勫垪琛紝澶氫釜鏍囩鍞竴缂栫爜鐨勫垪琛�",hidden = true)
private List<String> tagCode;
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserInfoUpdateRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserInfoUpdateRequest.java
index 0f195e7..5736989 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserInfoUpdateRequest.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTUserInfoUpdateRequest.java
@@ -7,6 +7,7 @@
*/
@Data
public class ZTUserInfoUpdateRequest extends ZTBaseRequst{
+
/**
* 鍦板潃锛岀渷甯傚尯鐨勫畬鏁村瓧绗︿覆锛屾瘮濡�"骞夸笢鐪佸箍宸炲競鐧戒簯鍖�"
*/
@@ -20,7 +21,7 @@
*/
private String appCode;
/**
- * 搴旂敤ID锛屽皬绋嬪簭鐨凙ppID 蹇呴渶
+ * 搴旂敤ID锛屽皬绋嬪簭鐨凙ppID
*/
private String appId;
/**
@@ -77,7 +78,11 @@
*/
private String name;
/**
- * OpenID锛屽井淇$敤鎴风殑OpenID 蹇呴渶
+ * 鏄电О
+ */
+ private String nickname;
+ /**
+ * OpenID锛屽井淇$敤鎴风殑OpenID
*/
private String openId;
/**
@@ -85,7 +90,7 @@
*/
private String phone;
/**
- * 骞冲彴绫诲瀷锛屽皬绋嬪簭浼爉p-weixin锛宲ad绔紶web-pad 蹇呴渶
+ * 骞冲彴绫诲瀷锛屽皬绋嬪簭浼爉p-weixin锛宲ad绔紶web-pad
*/
private String platform;
/**
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTAreaInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTAreaInfoResponse.java
index 52c1541..00838af 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTAreaInfoResponse.java
+++ b/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"
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java
index 441512c..ba905a5 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBasePageResponse.java
@@ -1,25 +1,31 @@
package com.doumee.biz.zbom.model.zhongtai.response;
+import com.fasterxml.jackson.annotation.JsonAlias;
import lombok.Data;
+import java.io.Serializable;
import java.util.List;
@Data
-public class ZTBasePageResponse<T> {
- /**
- * 褰撳墠椤�
- */
- private double current;
+public class ZTBasePageResponse<T> implements Serializable {
/**
* 璁板綍鍒楄〃
*/
+ @JsonAlias(value = {"data","records","userFavoriteList","userBehaviorList","customerFavoritesList"})
private List<T> records;
/**
- * 姣忛〉鏄剧ず鏉℃暟
+ * 褰撳墠椤�
*/
- private double size;
+ @JsonAlias(value = {"pageCount","pageNum"})
+ private String pageNum;
/**
- * 鎬昏褰曟暟
+ * 姣忛〉鏉℃暟
*/
- private double total;
+ @JsonAlias(value = {"pageSize",})
+ private String pageSize;
+ /**
+ * 鎬绘暟
+ */
+ @JsonAlias(value = {"totalCount","total"})
+ private String total;
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBaseResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBaseResponse.java
index 10a6620..c3a3956 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBaseResponse.java
+++ b/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;
/**
* 鎻愮ず娑堟伅
*/
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBehaviorInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBehaviorInfoResponse.java
new file mode 100644
index 0000000..3f353e9
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTBehaviorInfoResponse.java
@@ -0,0 +1,38 @@
+package com.doumee.biz.zbom.model.zhongtai.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 鍐呭鍒嗛〉鍒楄〃杩斿洖鍐呭
+ */
+@Data
+public class ZTBehaviorInfoResponse implements Serializable {
+ /**
+ * 琛屼负绫诲瀷锛宲raise-鐐硅禐锛�
+ * praise_cancel-鐐硅禐鍙栨秷,
+ * collect-鏀惰棌,
+ * collect_cancel-鏀惰棌鍙栨秷,
+ * view-鏌ョ湅,
+ * share-鍒嗕韩,
+ * download-涓嬭浇,
+ * like-鍠滄,
+ * like_cancel-鍙栨秷鍠滄
+ */
+ private String actionType;
+ /**
+ * 鍐呭ID
+ */
+ private String contentId;
+ /**
+ * 鍙戠敓鏃堕棿锛寉yyy-MM-dd HH:mm:ss
+ */
+ private String createTime;
+ /**
+ * 鏍囬
+ */
+ private String title;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogInfoResponse.java
index 0755f2d..e8511dd 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogInfoResponse.java
+++ b/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<ZTTagInfoResponse> childTagList;
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogTagTypeResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogTagTypeResponse.java
index 03c8568..461cbab 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCatalogTagTypeResponse.java
+++ b/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 {
/**
* 瀛愮洰褰�
*/
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java
new file mode 100644
index 0000000..dbd7ab3
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java
@@ -0,0 +1,55 @@
+package com.doumee.biz.zbom.model.zhongtai.response;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 鍐呭鍒嗛〉鍒楄〃杩斿洖鍐呭
+ */
+@Data
+public class ZTCollectInfoResponse implements Serializable {
+ /**
+ * 鏀惰棌鏁�
+ */
+ private String collectCount;
+ /**
+ * 鍐呭ID
+ */
+ private String contentId;
+ /**
+ * 鍐呭鏍囬
+ */
+ private String contentTitle;
+ /**
+ * 鍐呭灏侀潰
+ */
+ private String coverImage;
+ /**
+ * 鏀惰棌鍒涘缓鏃堕棿
+ */
+ private String createTime;
+ /**
+ * 涓嬭浇鏁�
+ */
+ private String downloadCount;
+ /**
+ * 鍐呭璺宠浆URL锛屾棤璺宠浆鍒欎负绌哄瓧绗︿覆
+ */
+ private String jumpUrl;
+ /**
+ * 鐐硅禐鏁�
+ */
+ private String praiseCount;
+ /**
+ * 鍒嗕韩鏁�
+ */
+ private String shareCount;
+ /**
+ * 鏌ョ湅鏁�
+ */
+ private String viewCount;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectResponse.java
index f15c7ec..b18f4c2 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectResponse.java
+++ b/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 {
/**
* 鏀惰棌绫诲瀷锛屼骇鍝侊紝妗堜緥锛屽疄鏅� 蹇呴渶
*/
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentInfoResponse.java
index 504177b..cc2cf79 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentInfoResponse.java
+++ b/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 {
/**
* 浣滆��
*/
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java
index e783704..9bc6d41 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTContentListResponse.java
@@ -1,72 +1,90 @@
package com.doumee.biz.zbom.model.zhongtai.response;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+
+import java.io.Serializable;
/**
* 鍐呭鍒嗛〉鍒楄〃杩斿洖鍐呭
*/
@Data
-public class ZTContentListResponse {
+public class ZTContentListResponse implements Serializable {
/**
* 浣滆��
*/
+ @ApiModelProperty(value = "浣滆��")
private String author;
/**
* 灏侀潰鍥�
*/
+ @ApiModelProperty(value = "灏侀潰鍥�")
private String coverImage;
/**
* 鏀惰棌閲�
*/
+ @ApiModelProperty(value = "鏀惰棌閲�")
private double favoriteCount;
/**
* 鏂囩珷ID
*/
+ @ApiModelProperty(value = "鏂囩珷ID")
private String id;
/**
* 鏄惁缃《
*/
+ @ApiModelProperty(value = "鏄惁缃《")
private String isTop;
/**
* 璇█缂栫爜
*/
+ @ApiModelProperty(value = "璇█缂栫爜")
private String langCode;
/**
* 鐐硅禐閲�
*/
+ @ApiModelProperty(value = "鐐硅禐閲�")
private double likeCount;
/**
* 鍙戝竷鏃ユ湡
*/
+ @ApiModelProperty(value = "鍙戝竷鏃ユ湡")
private String publishDate;
/**
* 鍙戝竷缁勭粐
*/
+ @ApiModelProperty(value = "鍙戝竷缁勭粐")
private String publishDepartment;
/**
* 闃呰閲�
*/
+ @ApiModelProperty(value = "闃呰閲�")
private double readCount;
/**
* 鎺掑簭
*/
+ @ApiModelProperty(value = "鎺掑簭")
private String sort;
/**
* 瀛愭爣棰�
*/
+ @ApiModelProperty(value = "瀛愭爣棰�")
private String subtitle;
/**
* 鏍囬
*/
+ @ApiModelProperty(value = "鏍囬")
private String title;
/**
* 鏂囩珷绫诲瀷
*/
+ @ApiModelProperty(value = "鏂囩珷绫诲瀷")
private String type;
/**
* 鏂囩珷澶栭摼URL锛岃棰戝拰鍏朵粬璺宠浆閾炬帴绫诲瀷
*/
+ @ApiModelProperty(value = "鏂囩珷澶栭摼URL锛岃棰戝拰鍏朵粬璺宠浆閾炬帴绫诲瀷")
private String url;
}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCusFavoritesInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCusFavoritesInfoResponse.java
new file mode 100644
index 0000000..6054903
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCusFavoritesInfoResponse.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 ZTCusFavoritesInfoResponse implements Serializable {
+ /**
+ * 鍐呭ID
+ */
+ private String contentId;
+ /**
+ * 灏侀潰URL
+ */
+ private String cover;
+ /**
+ * 鍠滄鏃堕棿锛寉yyy-MM-dd HH:mm:ss
+ */
+ private String favoriteTime;
+ /**
+ * 鏍囬
+ */
+ private String title;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagChildInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagChildInfoResponse.java
new file mode 100644
index 0000000..91bb89e
--- /dev/null
+++ b/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 {
+ /**
+ * 鏍囩鍊糃ODE
+ */
+ private String labelValueCode;
+ /**
+ * 鏍囩鍊糏D
+ */
+ private String labelValueId;
+ /**
+ * 鏍囩鍊糔AME
+ */
+ private String labelValueName;
+ /**
+ * 鏍囩鍊兼帓搴�
+ */
+ private String labelValueSort;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTTagInfoResponse.java
new file mode 100644
index 0000000..dedebe8
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTUserGetTokenResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTUserGetTokenResponse.java
index 4eae486..7c622c8 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTUserGetTokenResponse.java
+++ b/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 {
/**
*鐢ㄦ埛涓存椂绁ㄦ嵁
*/
diff --git a/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java b/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
index e427737..132bfa8 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
@@ -49,6 +49,8 @@
public static final String HEADER_KEY = "token";
//鍙栧�煎悕绉�
public static final String UserId_Name = "AppUserId";
+ //鍙栧�煎悕绉�
+ public static final String UserType = "UserType";
//鍔犲瘑瀵嗛挜
private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1";
//杩囨湡鏃堕棿(s) 86400L=1澶� 604800L=7澶�
diff --git a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index a5b106c..8fd806c 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -13,6 +13,7 @@
import io.jsonwebtoken.JwtException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
@@ -40,6 +41,12 @@
@Autowired
private RedisTemplate<String,Object> redisTemplate;
+
+ /**
+ * 鏄惁寮�鍙戣��
+ */
+ @Value("${debug_model}")
+ private Boolean isDebug;
/**
* 娣诲姞鎷︽埅鍣�
@@ -111,6 +118,7 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
}
request.setAttribute(JwtTokenUtil.UserId_Name, memberId);
+ request.setAttribute(JwtTokenUtil.UserType, Constants.CUSTOMER);
return true;
} catch (IllegalArgumentException | JwtException e) {
throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
@@ -120,6 +128,9 @@
public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response){
String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
try {
+ if(isDebug){
+ return true;
+ }
//鍒ゆ柇Token鏄惁瓒呮椂
boolean expiration = JwtTokenUtil.isTokenExpired(token);
if (expiration) {
@@ -142,6 +153,7 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
}
request.setAttribute(JwtTokenUtil.UserId_Name, userId);
+ request.setAttribute(JwtTokenUtil.UserType, Constants.BUSINESS);
return true;
} catch (IllegalArgumentException | JwtException e) {
throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 7a19d73..4841bbb 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -38,11 +38,12 @@
public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ;
public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ;
public static final String REDIS_TOKEN_KEY = "token_";
- public static final String CUSTOMER = "CUSTOMER";
+ public static final String CUSTOMER = "CUSTOMER";
public static final String BUSINESS = "BUSINESS";
//琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
+ public static final String ZBOM_CRM_AUTH_API_KEY = "ZBOM_CRM_AUTH_API_KEY";
public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID";
public static final String LW_BEVISITED_USER_VALID = "LW_BEVISITED_USER_VALID";
public static final String SELECT_DOORS_VISIT_REQUIRED = "SELECT_DOORS_VISIT_REQUIRED";
@@ -92,6 +93,9 @@
public static final String ZBOM = "ZBOM" ;
public static final String ZBOM_IAM_APPKEY = "ZBOM_IAM_APPKEY";
public static final String ZBOM_IAM_APPID = "ZBOM_IAM_APPID";
+ public static final String USER_CARD_HEADER_IMG ="USER_CARD_HEADER_IMG" ;
+ public static final String USER_CARD_PHONE_IMG ="USER_CARD_PHONE_IMG" ;
+ public static final String USER_CARD_ADDR_IMG ="USER_CARD_ADDR_IMG" ;
public static Integer parseIntByStr(String idtOrgStatus) {
try {
@@ -308,6 +312,8 @@
public static final String ACCESS_KEY = "ACCESS_KEY";
public static final String ENDPOINT = "ENDPOINT";
public static final String RESOURCE_PATH = "RESOURCE_PATH";
+ public static final String WEIXIN_DEFAULT_IMGS = "WEIXIN_DEFAULT_IMGS";
+ public static final String USER_CARD_DEFAULT_IMG = "USER_CARD_DEFAULT_IMG";
public static final String USERS_FILE = "USERS_FILE";
public static final String NEWS_FILE = "NEWS_FILE";
//鍙戦�佷細璁紑濮� 瀹氭椂鎻愬墠澶氬皯鍒嗛挓鍙戦��
@@ -326,6 +332,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,28 +352,15 @@
public static final String WX_SECRET_PERSONNEL = "WX_SECRET_PERSONNEL";
- public interface CrmSources{
-
-
- String SOURCE_DKXD = "DKXD";// 浠e涓嬪崟(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";
String IMPORTING_USERS ="IMPORTING_USERS";
String IAM_APPID ="IAM_APPID";
String ZBOM_CRM_API_KEY ="ZBOM_CRM_API_KEY";
+ String ZBOM_CRM_AUTH_API_KEY ="ZBOM_CRM_AUTH_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";
diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
index 2ccb323..ab78baa 100644
--- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -356,7 +356,7 @@
* @return String
* @throws Exception
*/
- public static String getNowShortDate() throws Exception {
+ public static String getNowShortDate() {
String nowDate = "";
try {
java.sql.Date date = null;
@@ -364,7 +364,7 @@
nowDate = sdfShort.format(date);
return nowDate;
} catch (Exception e) {
- throw e;
+ return "";
}
}
diff --git a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
index 8a443f0..c467fde 100644
--- a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
@@ -4,6 +4,7 @@
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.http.MediaType;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
@@ -43,8 +44,8 @@
System.out.println("缁撴潫锛�" + (System.currentTimeMillis() - starttime) / 1000);
}
- private static final int width = 898;
- private static final int height = 1308;
+ private static final int width = 750;
+ private static final int height = 1140;
/**
* 鐢熸垚鍒嗕韩鍥剧墖
@@ -133,9 +134,7 @@
g2.drawRect(0, 0, width - 1, height - 1);
InputStream inputStream = bufferedImageToInputStream(bi);
return inputStream;
-// String fileName = "8701EAC36DEC405A94C530F0E6796589.jpg"; //ID.nextGUID() + ".jpg";
-// GeneratePicUtil.saveFile(inputStream, filePath+ File.separator+fileName);
-// return filePath + File.separator+ fileName;
+
}
public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) {
@@ -197,7 +196,7 @@
}
}
- public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage) throws IOException {
+ public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage) {
return bufferedImageToInputStream(backgroundImage, "jpg");
}
@@ -209,7 +208,7 @@
* @return
* @throws IOException
*/
- public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage, String format) throws IOException {
+ public static InputStream bufferedImageToInputStream(BufferedImage backgroundImage, String format) {
ByteArrayOutputStream bs = new ByteArrayOutputStream();
try (
ImageOutputStream
@@ -217,6 +216,8 @@
ImageIO.write(backgroundImage, format, imOut);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
return is;
+ }catch (Exception e){
+ return null;
}
}
@@ -267,8 +268,83 @@
}
return resMatrix;
}
+ public static InputStream generateUserCardImg(String imgurl, String qrcode, String name,String type, String phone, String shopaddr, String shopname,String phoneIcon,String addrIcon) {
+ BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ //寰楀埌瀹冪殑缁樺埗鐜(杩欏紶鍥剧墖鐨勭瑪)
+ Graphics2D g2 = (Graphics2D) bi.getGraphics();
+ g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
+ g2.fillRect(0, 0, width, height);
+ //鑳屾櫙鍥剧墖
+ BufferedImage img1 =getImgIO(imgurl);
+ if(img1!=null){
+ g2.drawImage(img1, 0, 0, 750, 700, null);
+ }else{
+ g2.setColor(new Color(102, 102, 102, 1));
+ g2.drawRect( 0, 0, 750, 700);
+ }
+ //鍟嗗搧鍚嶇О
+ if(name.length()>5){
+ name = name.substring(0,5)+"...";
+ }
+ g2.setColor(Color.black);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 40));
+ g2.drawString(name, 40, 990-242);
+ int w = 40+ name.length()*40;
+ g2.setColor(Color.GRAY);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+ g2.drawString(type, w, 990-242);
+ if(StringUtils.isNotBlank(qrcode)){
+ //涓汉浜岀淮鐮�
+ BufferedImage img2 = getImgIO(qrcode);
+ if(img2!=null){
+ g2.drawImage(img2, 522, 982-242, 188, 188, null);
+ }
+ g2.setColor(Color.GRAY);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 24));
+ g2.drawString("鎵爜娣诲姞濂藉弸", 544, 1186-242);
+ }
+ //鎵嬫満鍙�
+ BufferedImage img4 = getImgIO(phoneIcon);
+ if(img4!=null){
+ g2.drawImage(img4, 40, 1072-28-242, 34, 36, null);
+ }
+ g2.setColor(Color.GRAY);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+ g2.drawString(phone, 94, 1072-242);
+
+ BufferedImage img3 = getImgIO(addrIcon);
+ if(img3!=null){
+ g2.drawImage(img3, 40, 1142-28-242, 34, 36, null);
+ }
+ if(shopaddr.length()>12){
+ shopaddr = shopaddr.substring(0,12)+"\n"+shopaddr.substring(12);
+ }
+ //鍦板潃
+ g2.setColor(Color.GRAY);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+ g2.drawString(shopaddr, 94, 1142-242);
+
+ //搴曢儴
+ if(shopname.length()>15){
+ shopname = shopname.substring(0,15)+"...";
+ }
+ g2.setColor(Color.GRAY);
+ g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+ g2.drawString(shopname, 180, 1300-242);
+
+ InputStream inputStream = bufferedImageToInputStream(bi);
+ return inputStream;
+ }
+
+ private static BufferedImage getImgIO(String imgurl) {
+ try {
+ return ImageIO.read(new URL(imgurl));
+ }catch (Exception e){
+
+ }return null;
+ }
}
diff --git a/server/service/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/service/src/main/java/com/doumee/core/utils/HttpsUtil.java
index 46015fb..2d2d4f2 100644
--- a/server/service/src/main/java/com/doumee/core/utils/HttpsUtil.java
+++ b/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);
diff --git a/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java b/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
index cb8a032..16cbafd 100644
--- a/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
@@ -9,14 +9,19 @@
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;
+import com.doumee.core.oss.FileContent;
+import com.doumee.core.oss.FileModel;
import com.doumee.core.utils.FileDigest;
import java.io.*;
import java.net.URL;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import com.doumee.core.utils.ID;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;
diff --git a/server/service/src/main/java/com/doumee/dao/business/CustomerUserMapper.java b/server/service/src/main/java/com/doumee/dao/business/CustomerUserMapper.java
new file mode 100644
index 0000000..1b8830f
--- /dev/null
+++ b/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> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/CustomerUser.java b/server/service/src/main/java/com/doumee/dao/business/model/CustomerUser.java
new file mode 100644
index 0000000..910efeb
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/CustomerUser.java
@@ -0,0 +1,115 @@
+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 = "瀵艰喘缂栫爜锛堝叧鑱攗sers琛級", example = "1")
+ @ExcelColumn(name="瀵艰喘缂栫爜锛堝叧鑱攗sers琛級")
+ private Long userId;
+
+ @ApiModelProperty(value = "瀵艰喘IAM缂栫爜")
+ @ExcelColumn(name="瀵艰喘IAM缂栫爜")
+ private String iamUserId;
+
+ @ApiModelProperty(value = "鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級", example = "1")
+ @ExcelColumn(name="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級")
+ 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
+
+ @ApiModelProperty(value = "鏉ユ簮 0灏忕▼搴� 1涓彴", example = "1")
+ @ExcelColumn(name="鏉ユ簮 0灏忕▼搴� 1涓彴")
+ private Integer source;
+ @ApiModelProperty(value = "涓彴鎻愪氦鐘舵�� 0鏈彁浜� 1宸叉彁浜� 2鎻愪氦澶辫触", example = "1")
+ @ExcelColumn(name="涓彴鎻愪氦鐘舵�� 0鏈彁浜� 1宸叉彁浜� 2鎻愪氦澶辫触")
+ private Integer ztStatus;
+
+ @ApiModelProperty(value = "涓彴鎻愪氦鏃堕棿")
+ @ExcelColumn(name="涓彴鎻愪氦鏃堕棿")
+ private Date ztDate;
+
+ @ApiModelProperty(value = "涓彴鎻愪氦澶囨敞")
+ @ExcelColumn(name="涓彴鎻愪氦澶囨敞")
+ private String ztInfo;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Shop.java b/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
index c58df25..ce9b58c 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
@@ -9,6 +9,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -120,7 +122,7 @@
@ApiModelProperty(value = "鎵�灞炲叧鑱擲鐮�", example = "1")
@ExcelColumn(name="鎵�灞炲叧鑱擲鐮�")
private String scode;
- @ApiModelProperty(value = "娉ㄥ唽鍦�" )
+ @ApiModelProperty(value = "娉ㄥ唽鍦�(IAM)" )
@ExcelColumn(name="娉ㄥ唽鍦�")
private String regAddr;
@ApiModelProperty(value = "娉曚汉韬唤璇佸彿" )
@@ -188,6 +190,19 @@
@ApiModelProperty(value = "閮ㄩ棬绾у埆璺緞", example = "1")
@ExcelColumn(name="閮ㄩ棬绾у埆璺緞")
private String namePath;
+
+ @ApiModelProperty(value = "缁忓害", example = "1")
+ @ExcelColumn(name="缁忓害")
+ private BigDecimal longitude;
+
+ @ApiModelProperty(value = "绾害", example = "1")
+ @ExcelColumn(name="绾害")
+ private BigDecimal latitude;
+
+ @ApiModelProperty(value = "鍦板潃")
+ @ExcelColumn(name="鍦板潃")
+ private String address;
+
@ApiModelProperty(value = "鐖剁骇閮ㄩ棬绾у埆璺緞", example = "1")
@TableField(exist = false)
private String parentIdPath;
@@ -215,4 +230,13 @@
@ApiModelProperty(value = "涓嬬骇閮ㄩ棬闆嗗悎", example = "1")
@TableField(exist = false)
private List<Shop> childList;
+
+ @ApiModelProperty(value = "璺濈 ", example = "1")
+ @TableField(exist = false)
+ private BigDecimal distance;
+
+ @ApiModelProperty(value = "闂ㄥ簵瀵艰喘鍒楄〃 ", example = "1")
+ @TableField(exist = false)
+ private List<Users> usersList;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Users.java b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
index 54c9563..962847e 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Users.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
@@ -134,8 +134,8 @@
@ExcelColumn(name="鏈嶅姟瀹㈡埛鏁�")
private Integer costomerNum;
- @ApiModelProperty(value = "浠庝笟骞存湀(yyyy-MM)")
- @ExcelColumn(name="浠庝笟骞存湀(yyyy-MM)")
+ @ApiModelProperty(value = "浠庝笟骞翠唤")
+ @ExcelColumn(name="浠庝笟骞存湀")
private String jobDate;
@ApiModelProperty(value = "瀹d紶璇�")
@@ -145,6 +145,18 @@
@ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
@ExcelColumn(name="涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
private String qrcodeImg;
+
+ @ApiModelProperty(value = "浼佷笟浜岀淮鐮佸浘鐗囧湴鍧�")
+ @ExcelColumn(name="浼佷笟浜岀淮鐮佸浘鐗囧湴鍧�")
+ private String companyQrcodeImg;
+
+ @ApiModelProperty(value = "涓彴涓存椂绁ㄦ嵁杩囨湡鏃堕棿")
+ @ExcelColumn(name="涓彴涓存椂绁ㄦ嵁杩囨湡鏃堕棿")
+ private Date tokenDate;
+
+ @ApiModelProperty(value = "涓彴涓存椂绁ㄦ嵁")
+ @ExcelColumn(name="涓彴涓存椂绁ㄦ嵁")
+ private String token;
@ApiModelProperty(value = "閭")
@ExcelColumn(name="閭")
@@ -179,7 +191,15 @@
@ApiModelProperty(value = "瀹屾暣澶村儚褰�")
@TableField(exist = false)
private String imgurlFull;
- @ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
+ @ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧畬鏁村湴鍧�")
@TableField(exist = false)
private String qrcodeImgFull;
+ @ApiModelProperty(value = "闂ㄥ簵鍦板潃")
+ @TableField(exist = false)
+ private String shopAddress;
+
+ @ApiModelProperty(value = "浼佷笟浜岀淮鐮佸浘鐗囧畬鏁村湴鍧�")
+ @TableField(exist = false)
+ private String companyQrcodeImgFull;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java b/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
index e0191a9..53331b5 100644
--- a/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
+++ b/server/service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
@@ -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) ;
}
}
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java
new file mode 100644
index 0000000..756b2f4
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java
@@ -0,0 +1,21 @@
+package com.doumee.dao.web.reqeust;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+public class ShopQueryByLLDTO {
+
+ @ApiModelProperty(value = "缁忓害")
+ private String longitude;
+
+ @ApiModelProperty(value = "绾害")
+ private String latitude;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/web/response/ZSZXCatalogResponse.java b/server/service/src/main/java/com/doumee/dao/web/response/ZSZXCatalogResponse.java
new file mode 100644
index 0000000..86311b3
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/web/response/ZSZXCatalogResponse.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.biz.zbom.model.zhongtai.response.ZTCatalogInfoResponse;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Users;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:25
+ */
+@Data
+@ApiModel("蹇楄瑁呬慨棣栭〉鍥涗釜妯″潡瀵硅薄")
+public class ZSZXCatalogResponse implements Serializable {
+
+ @ApiModelProperty(value = "瀹剁殑ID")
+ private ZTCatalogInfoResponse jdId;
+ @ApiModelProperty(value = "鏀剁撼璁捐")
+ private ZTCatalogInfoResponse snsj;
+ @ApiModelProperty(value = "鍘ㄦ埧璁捐")
+ private ZTCatalogInfoResponse cfsj;
+ @ApiModelProperty(value = "鍏ㄥ眿璁捐")
+ private ZTCatalogInfoResponse qwsj;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/CustomerUserService.java b/server/service/src/main/java/com/doumee/service/business/CustomerUserService.java
new file mode 100644
index 0000000..d3b2aca
--- /dev/null
+++ b/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;
+
+/**
+ * 瀹㈡埛瀵艰喘鍏宠仈琛⊿ervice瀹氫箟
+ * @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);
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java b/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
new file mode 100644
index 0000000..dd08ae9
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
@@ -0,0 +1,52 @@
+package com.doumee.service.business;
+
+import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest;
+import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest;
+import com.doumee.biz.zbom.model.zhongtai.response.*;
+
+import java.util.List;
+
+/**
+ * 鐢ㄦ埛琛屼负鏁版嵁淇℃伅琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/07/04 14:40
+ */
+public interface GetZhongTaiDataService {
+
+ /**
+ * 鍒嗙被鏁版嵁
+ * @param param
+ * @return
+ */
+ List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param);
+
+ /**
+ * 鏍囩鏁版嵁
+ * @param param
+ * @return
+ */
+ List<ZTTagInfoResponse> getCataLogTagList(ZTCatalogListRequest param);
+
+ /**
+ * 鐖跺瓙绾у垎绫绘暟鎹� 鍒嗙被+鏍囩
+ * @param ztCatalogListRequest
+ * @return
+ */
+ List<ZTCatalogInfoResponse> getZTCatalogInfoResponse(ZTCatalogListRequest ztCatalogListRequest);
+
+ /**
+ * 鍐呭鍒嗛〉
+ * @param ztContentListRequest
+ * @return
+ */
+ ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest ztContentListRequest);
+
+ /**
+ * 鍐呭璇︽儏
+ * @param id 涓氬姟涓婚敭
+ * @param userType 鐢ㄦ埛绫诲瀷
+ * @param userId 鐢ㄦ埛涓婚敭
+ * @return
+ */
+ ZTContentInfoResponse getContentInfo(String id, String userType, Long userId);
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/InitService.java b/server/service/src/main/java/com/doumee/service/business/InitService.java
index d05de5d..3ac4288 100644
--- a/server/service/src/main/java/com/doumee/service/business/InitService.java
+++ b/server/service/src/main/java/com/doumee/service/business/InitService.java
@@ -36,10 +36,12 @@
redisTemplate.opsForValue().set(Constants.RedisKeys.IAM_APPKEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_APPKEY).getCode());
redisTemplate.opsForValue().set(Constants.RedisKeys.IAM_APPID,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_APPID).getCode());
redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_CRM_API_KEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_KEY).getCode());
+ redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_CRM_AUTH_API_KEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_AUTH_API_KEY).getCode());
redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_CRM_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_URL).getCode());
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(){
diff --git a/server/service/src/main/java/com/doumee/service/business/ShopService.java b/server/service/src/main/java/com/doumee/service/business/ShopService.java
index e087c15..38bd705 100644
--- a/server/service/src/main/java/com/doumee/service/business/ShopService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ShopService.java
@@ -5,6 +5,7 @@
import com.doumee.dao.admin.request.UpdateShopSortDTO;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.vo.ShopTreeVo;
+import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -110,4 +111,18 @@
void dealShopNamePath();
List<Shop> listByParent(String parentId);
+
+ /**
+ * 鏍规嵁缁忕含搴� 鑾峰彇闂ㄥ簵鍒楄〃
+ * @param pageWrap
+ * @return
+ */
+ PageData<Shop> queryShopByLL(PageWrap<Shop> pageWrap);
+
+ /**
+ * 闂ㄥ簵璇︽儏
+ * @param id
+ * @return
+ */
+ Shop shopDetail(Long id,Long memberId);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/UsersService.java b/server/service/src/main/java/com/doumee/service/business/UsersService.java
index e31e89b..3467559 100644
--- a/server/service/src/main/java/com/doumee/service/business/UsersService.java
+++ b/server/service/src/main/java/com/doumee/service/business/UsersService.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.response.AccountResponse;
import org.springframework.web.multipart.MultipartFile;
@@ -105,4 +106,8 @@
void bindingOpenid(String code,Long userId);
String importBatch(MultipartFile file);
+
+ Users usersDetail(Long userId);
+
+ String getUserCard(Users users);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
new file mode 100644
index 0000000..bd783e7
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
@@ -0,0 +1,271 @@
+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;
+
+/**
+ * 瀹㈡埛瀵艰喘鍏宠仈琛⊿ervice瀹炵幇
+ * @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<>();
+ List<String> phoneList = 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;
+ }
+ phoneList.add(data.getCustomerPhone());
+
+ 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.getUserName());
+ model.setSource(Constants.ONE);
+ model.setZtStatus(Constants.ONE);
+ model.setZtInfo("crm鍚屾");
+ model.setIamUserId(data.getUserId());
+ model.setUserId(user== null?null:user.getId());
+ model.setCreationDate(data.getCreationDate());
+ addList.add(model);
+ }
+ if(phoneList.size()>0){
+ /**
+ * 鍒犻櫎鑰佸緱鏁版嵁
+ */
+ customerUserMapper.update(null,new UpdateWrapper<CustomerUser>().lambda()
+ .in(CustomerUser::getPhone,phoneList)
+ .eq(CustomerUser::getZtStatus,Constants.ONE)
+ .eq(CustomerUser::getIsdeleted,Constants.ZERO)
+ .set(CustomerUser::getIsdeleted,Constants.ONE)
+ );
+ }
+ 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;
+ }
+ }
+ }
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
new file mode 100644
index 0000000..b834ec6
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
@@ -0,0 +1,167 @@
+package com.doumee.service.business.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.zbom.ZbomZhongTaiService;
+import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest;
+import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
+import com.doumee.biz.zbom.model.zhongtai.ZTContentInfoRequest;
+import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest;
+import com.doumee.biz.zbom.model.zhongtai.response.*;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.business.IamInterfaceLogMapper;
+import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.UsersMapper;
+import com.doumee.service.business.GetZhongTaiDataService;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/7/15 14:12
+ */
+@Service
+public class GetZhongTaiDataServiceImpl implements GetZhongTaiDataService {
+
+ @Autowired
+ private ZbomZhongTaiService zbomZhongTaiService;
+
+ @Autowired
+ private MemberMapper memberMapper;
+
+ @Autowired
+ private UsersMapper usersMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+
+
+ @Override
+ public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest ztCatalogListRequest){
+ if(Objects.isNull(ztCatalogListRequest)
+ || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.CHANPING)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.ZIXUN)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.QW_CASE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被淇℃伅閿欒");
+ }
+ return zbomZhongTaiService.getCatalogList(ztCatalogListRequest);
+ }
+
+
+ @Override
+ public List<ZTTagInfoResponse> getCataLogTagList(ZTCatalogListRequest ztCatalogListRequest){
+ if(Objects.isNull(ztCatalogListRequest)
+ || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.CHANPING)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.ZIXUN)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.QW_CASE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被淇℃伅閿欒");
+ }
+ return zbomZhongTaiService.getTagList(ztCatalogListRequest);
+ }
+
+
+ /**
+ * 鑾峰彇鐖跺瓙绾х粨鏋勬暟鎹垪琛�
+ * 蹇楄瑁呬慨 zb_deco 浜у搧 product_intro 璧勮product_info 鍏ㄥ眿妗堜緥 whole_case
+ * 鑾峰彇鐖跺瓙绾х粨鏋勬暟鎹�
+ * @return
+ */
+ @Override
+ public List<ZTCatalogInfoResponse> getZTCatalogInfoResponse(ZTCatalogListRequest ztCatalogListRequest){
+ if(Objects.isNull(ztCatalogListRequest)
+ || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.CHANPING)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.ZIXUN)
+ ||ztCatalogListRequest.getCatalogCode().equals(ZTConstants.CatalogCode.QW_CASE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被淇℃伅閿欒");
+ }
+ List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = zbomZhongTaiService.getCatalogList(ztCatalogListRequest);
+ if(CollectionUtils.isNotEmpty(ztCatalogInfoResponseList)){
+ for (ZTCatalogInfoResponse ztCatalogInfoResponse:ztCatalogInfoResponseList) {
+ ZTCatalogListRequest ztCatalogTagListRequest = new ZTCatalogListRequest();
+ ztCatalogTagListRequest.setCatalogCode(ztCatalogInfoResponse.getCode());
+ List<ZTTagInfoResponse> ztTagInfoResponseList = zbomZhongTaiService.getTagList(ztCatalogTagListRequest);
+ if(CollectionUtils.isNotEmpty(ztCatalogInfoResponseList)){
+ ztCatalogInfoResponse.setChildTagList(ztTagInfoResponseList);
+ }
+ }
+ }
+ return ztCatalogInfoResponseList;
+ }
+
+
+ /**
+ * 鍐呭 鍒嗛〉鏁版嵁
+ * @param ztContentListRequest
+ * @return
+ */
+ @Override
+ public ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest ztContentListRequest){
+ if(Objects.isNull(ztContentListRequest)
+ || Objects.isNull(ztContentListRequest.getPageNum())
+ || Objects.isNull(ztContentListRequest.getPageSize())
+ || StringUtils.isBlank(ztContentListRequest.getCatalogCode())
+ || StringUtils.isBlank(ztContentListRequest.getTagCodes())
+ || StringUtils.isBlank(ztContentListRequest.getQuery())
+ || StringUtils.isBlank(ztContentListRequest.getSortType())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ //鏌ヨ 涓彴
+ String token = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,ztContentListRequest.getUserId(),ztContentListRequest.getUserType());
+ ztContentListRequest.setToken(token);
+ String catalogCode = ztContentListRequest.getCatalogCode();
+ if(catalogCode.equals(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU)
+ ||catalogCode.equals(ZTConstants.CatalogCode.CHANPING)
+ ||catalogCode.equals(ZTConstants.CatalogCode.ZIXUN)
+ ||catalogCode.equals(ZTConstants.CatalogCode.QW_CASE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被淇℃伅閿欒");
+ }
+ ZTBasePageResponse<ZTContentListResponse> response = zbomZhongTaiService.pageContentList(ztContentListRequest);
+ return response;
+ }
+
+
+
+ @Override
+ public ZTContentInfoResponse getContentInfo(String id,String userType,Long userId){
+ //鏌ヨ 涓彴 TOKEN
+ String token = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId.toString(),userType);
+ ZTContentInfoRequest ztContentListRequest = new ZTContentInfoRequest();
+ ztContentListRequest.setToken(token);
+ ztContentListRequest.setUserType(userType);
+ ztContentListRequest.setId(id);
+ ZTContentInfoResponse response = zbomZhongTaiService.getContentInfo(ztContentListRequest);
+ return response;
+ }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 18e6aa8..9dce68e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -18,11 +18,14 @@
import com.doumee.core.oss.FileModel;
import com.doumee.core.utils.CodeVerifyUtils;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.core.wx.WxMiniConfig;
import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.UsersMapper;
import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.EditMemberRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
@@ -35,6 +38,7 @@
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
+import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
@@ -56,6 +60,9 @@
@Autowired
private MemberMapper memberMapper;
+
+ @Autowired
+ private UsersMapper usersMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -259,14 +266,13 @@
@Override
public AccountResponse wxLogin(String code){
-// try {
- //鑾峰彇寰俊鏁忔劅鏁版嵁
-// WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
-// String openId = session.getOpenid();
-// if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
-// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
-// }
- String openId = code;
+ try {
+// 鑾峰彇寰俊鏁忔劅鏁版嵁
+ WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
+ String openId = session.getOpenid();
+ if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
+ }
Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId));
if (member == null) {
member = new Member();
@@ -281,13 +287,13 @@
String token = JwtTokenUtil.generateToken(payLoad);
AccountResponse accountResponse = new AccountResponse();
accountResponse.setToken(token);
-// accountResponse.setSessionKey(session.getSessionKey());
+ accountResponse.setSessionKey(session.getSessionKey());
accountResponse.setMember(member);
return accountResponse;
-// } catch (WxErrorException e) {
-// e.printStackTrace();
-// }
-// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
+ } catch (WxErrorException e) {
+ e.printStackTrace();
+ }
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
}
@Override
@@ -311,7 +317,7 @@
public void updMemberDetail(EditMemberRequest editMemberRequest){
Member member = memberMapper.selectById(editMemberRequest.getMemberId());
ZTUserInfoUpdateRequest ztUserInfoUpdateRequest = new ZTUserInfoUpdateRequest();
- ztUserInfoUpdateRequest.setOpenid(member.getOpenid());
+ ztUserInfoUpdateRequest.setOpenId(member.getOpenid());
String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
ztUserInfoUpdateRequest.setAppId(appId);
ztUserInfoUpdateRequest.setPlatform(Constants.PLATFORM);
@@ -365,29 +371,61 @@
}
- /**
- * 鏇存柊涓彴token淇℃伅
- * @param member
- */
- public void updUserZTToken(Member member){
- //濡傛灉鏃犳湁鏁堟湡/宸茶繃鏈� 閲嶆柊鑾峰彇
- if(Objects.isNull(member.getTokenDate()) || member.getTokenDate().getTime()<=System.currentTimeMillis() ){
- ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
- //鏌ヨAPPID
- String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
- param.setAppId(appId);
- param.setOpenId(member.getOpenid());
- ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param);
- if(Objects.nonNull(ztUserGetTokenResponse)){
- member.setToken(ztUserGetTokenResponse.getToken());
- //TODO 鏆傛棤杩囨湡鏃ユ湡
- memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,ztUserGetTokenResponse.getToken())
- .eq(Member::getId,member.getId()));
- }else{
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
+
+
+ public static String getZTToken(ZbomZhongTaiService zbomZhongTaiService, MemberMapper memberMapper, UsersMapper usersMapper, SystemDictDataBiz systemDictDataBiz, String id, String userType){
+ if(userType.equals(Constants.CUSTOMER)){
+ Member member = memberMapper.selectById(id);
+ if(Objects.isNull(member)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- };
+ //濡傛灉鏃犳湁鏁堟湡/宸茶繃鏈� 閲嶆柊鑾峰彇
+ if(Objects.isNull(member.getTokenDate()) || member.getTokenDate().getTime()<=System.currentTimeMillis() ){
+ ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
+ //鏌ヨAPPID
+ String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
+ param.setAppId(appId);
+ param.setOpenId(member.getOpenid());
+ ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param);
+ if(Objects.nonNull(ztUserGetTokenResponse)){
+ member.setToken(ztUserGetTokenResponse.getToken());
+ //TODO 鏆傛棤杩囨湡鏃ユ湡
+ memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,ztUserGetTokenResponse.getToken())
+ .eq(Member::getId,member.getId()));
+ return ztUserGetTokenResponse.getToken();
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ return member.getToken();
+ }else if(userType.equals(Constants.BUSINESS)){
+ Users users = usersMapper.selectById(id);
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(Objects.isNull(users.getTokenDate()) || users.getTokenDate().getTime()<=System.currentTimeMillis() ){
+ ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
+ //鏌ヨAPPID
+ String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
+ param.setAppId(appId);
+ param.setOpenId(users.getOpenid());
+ ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param);
+ if(Objects.nonNull(ztUserGetTokenResponse)){
+ users.setToken(ztUserGetTokenResponse.getToken());
+ //TODO 鏆傛棤杩囨湡鏃ユ湡
+ usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getToken,ztUserGetTokenResponse.getToken())
+ .eq(Users::getId,users.getId()));
+ return ztUserGetTokenResponse.getToken();
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ return users.getToken();
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒");
+ }
}
+
@@ -401,11 +439,11 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸叉敞閿�");
}
//鏍¢獙鐢ㄦ埛token淇℃伅
- this.updUserZTToken(member);
+ MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId().toString(),Constants.CUSTOMER);
//璋冭捣涓彴娉ㄩ攢鎺ュ彛
ZTBaseRequst ztBaseRequst = new ZTBaseRequst();
ztBaseRequst.setUserType(Constants.CUSTOMER);
- ztBaseRequst.setOpenid(member.getOpenid());
+ ztBaseRequst.setOpenId(member.getOpenid());
ztBaseRequst.setToken(member.getToken());
Boolean logoutFlag = zbomZhongTaiService.userLogout(ztBaseRequst);
if(logoutFlag){
@@ -420,4 +458,6 @@
}
+
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index 2a03951..62ed2f3 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -12,15 +13,15 @@
import com.doumee.dao.admin.request.FcodeImport;
import com.doumee.dao.admin.request.ShopImport;
import com.doumee.dao.admin.request.UpdateShopSortDTO;
-import com.doumee.dao.business.CategoryMapper;
import com.doumee.dao.business.CategorySegMapper;
+import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.SegmentsMapper;
-import com.doumee.dao.business.ShopMapper;
+import com.doumee.dao.business.UsersMapper;
import com.doumee.dao.business.join.ShopJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ShopTree;
import com.doumee.dao.business.vo.ShopTreeVo;
-import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
import com.doumee.service.business.ShopService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -41,7 +42,6 @@
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
/**
* 蹇楅偊缁勭粐淇℃伅琛⊿ervice瀹炵幇
@@ -55,10 +55,17 @@
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private ShopJoinMapper shopMapper;
+
@Autowired
private SegmentsMapper segmentsMapper;
@Autowired
private CategorySegMapper categorySegMapper;
+ @Autowired
+ private UsersMapper usersMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private MemberMapper memberMapper;
@Override
public Long create(Shop shop) {
@@ -858,4 +865,79 @@
}
}
}
+
+
+
+ @Override
+ public PageData<Shop> queryShopByLL(PageWrap<Shop> pageWrap) {
+ if(Objects.isNull(pageWrap.getModel())
+ || Objects.isNull(pageWrap.getModel().getLatitude())
+ || Objects.isNull(pageWrap.getModel().getLongitude())){
+ return null;
+ }
+ IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+ " CONVERT (ST_Distance_Sphere (point ("+pageWrap.getModel().getLongitude()+", "+pageWrap.getModel().getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ")
+ .eq("isdeleted",Constants.ZERO)
+ .isNotNull("LATITUDE")
+ .isNotNull("LONGITUDE")
+ .eq("ATTRIBUTE",Constants.ONE)
+ .orderByAsc(" distance ");
+ Utils.MP.blankToNull(pageWrap.getModel());
+ PageData<Shop> pageData = PageData.from(shopMapper.selectPage(page, queryWrapper));
+ String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+ StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+ for (Shop shop:pageData.getRecords()) {
+ //鏌ヨ闂ㄥ簵涓嬪璐暟鎹�
+ List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
+ .eq(Users::getIsdeleted,Constants.ZERO)
+ .eq(Users::getStatus,Constants.ONE)
+ .eq(Users::getType,Constants.ZERO)
+ );
+ for (Users users:usersList) {
+ if(StringUtils.isNotBlank(users.getImgurl())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ }
+ shop.setUsersList(usersList);
+ }
+ return pageData;
+ }
+
+ @Override
+ public Shop shopDetail(Long id,Long memberId) {
+ Member member = memberMapper.selectById(memberId);
+ if(Objects.isNull(member)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鐢ㄦ埛淇℃伅");
+ }
+ QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>();
+ //濡傛灉浜哄憳娌℃湁缁忕含搴︿俊鎭紝鍒欎笉鏌ヨ璺濈
+ if(Objects.nonNull(member.getLatitude())&&Objects.nonNull(member.getLongitude())){
+ queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+ " CONVERT (ST_Distance_Sphere (point ("+member.getLongitude()+", "+member.getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ");
+ }
+ queryWrapper.eq("id",id);
+ Shop shop = shopMapper.selectOne(queryWrapper);
+ if(Objects.isNull(shop)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+ StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+ List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
+ .eq(Users::getIsdeleted,Constants.ZERO)
+ .eq(Users::getStatus,Constants.ONE)
+ .eq(Users::getType,Constants.ZERO)
+ );
+ for (Users users:usersList) {
+ if(StringUtils.isNotBlank(users.getImgurl())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ }
+ shop.setUsersList(usersList);
+ return shop;
+ }
+
+
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 64a7de6..509aafe 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,6 +1,7 @@
package com.doumee.service.business.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.hutool.core.date.DateUnit;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.model.IamUserRoleModel;
import com.doumee.biz.zbom.model.IamUserTypeModel;
@@ -13,7 +14,10 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.GeneratePicUtil;
import com.doumee.core.utils.Utils;
+import com.doumee.core.utils.tyyun.TyyZosUtil;
import com.doumee.dao.admin.request.ShopImport;
import com.doumee.dao.admin.request.UserImport;
import com.doumee.dao.business.ShopMapper;
@@ -41,10 +45,8 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.io.InputStream;
+import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -600,5 +602,69 @@
return null;
}
+
+
+ @Override
+ public String getUserCard(Users users){
+ String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
+ String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
+ String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
+ String defualtPhone = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_PHONE_IMG).getCode();
+ String defualtAddr = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_ADDR_IMG).getCode();
+ String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+users.getImgurl():defualtHeader;
+ String qrcode =StringUtils.isNotBlank(users.getQrcodeImg())?path+users.getQrcodeImg():null;
+ InputStream inputStream = GeneratePicUtil.generateUserCardImg(
+ imgurl
+ ,qrcode
+ ,StringUtils.defaultString(users.getName(),"-")
+ ,"瀵艰喘"
+ ,StringUtils.defaultString(users.getPhone(),"-")
+ ,StringUtils.defaultString(users.getShopAddress(),"-")
+ ,"ZBOM蹇楅偊瀹跺眳锝�"+ StringUtils.defaultString(users.getShopName(),"-")
+ ,defualtPhone
+ ,defualtAddr);
+ TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
+ String fileName =folder+ DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+ if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+ return path+fileName;
+ }
+ return null;
+ }
+
+ @Override
+ public Users usersDetail(Long userId){
+ Users users = usersMapper.selectById(userId);
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+ StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+ if(StringUtils.isNotBlank(users.getImgurl())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ if(StringUtils.isNotBlank(users.getQrcodeImg())){
+ users.setQrcodeImgFull(prefix + users.getQrcodeImg());
+ }
+ if(StringUtils.isNotBlank(users.getCompanyQrcodeImg())){
+ users.setCompanyQrcodeImgFull(prefix + users.getCompanyQrcodeImg());
+ }
+ if(Objects.nonNull(users.getDepartmentId())){
+ Shop shop = shopMapper.selectById(users.getDepartmentId());
+ if(Objects.nonNull(shop)){
+ users.setShopName(shop.getName());
+ if(StringUtils.isNotBlank(shop.getAddress())){
+ users.setShopAddress(shop.getAddress());
+ }else{
+ users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName()+shop.getTown()+shop.getRegAddr());
+ }
+ }
+ }
+ return users;
+ }
+
+
+
}
diff --git a/server/web/src/main/java/com/doumee/api/web/ApiController.java b/server/web/src/main/java/com/doumee/api/web/ApiController.java
index 7a5bf06..969c732 100644
--- a/server/web/src/main/java/com/doumee/api/web/ApiController.java
+++ b/server/web/src/main/java/com/doumee/api/web/ApiController.java
@@ -2,8 +2,13 @@
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Users;
+import com.doumee.service.business.MemberService;
+import com.doumee.service.business.UsersService;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.ptg.MemAreaPtg;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -17,6 +22,15 @@
@Slf4j
public class ApiController {
+ @Autowired
+ UsersService usersService;
+ @Autowired
+ MemberService memberService;
+ /**
+ * 鏄惁寮�鍙戣��
+ */
+ @Value("${debug_model}")
+ private Boolean isDebug;
/**
* 寰楀埌request瀵硅薄
@@ -38,5 +52,34 @@
Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
return obj != null ? (Long) obj : null;
}
+ protected Long getUserId() {
+ if(isDebug){
+ return 2L;
+ }
+ Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
+ return obj != null ? (Long) obj : null;
+ }
+ protected Users getLoginUserInfo() {
+ Long userId = getUserId();
+ if(userId== null){
+ return null;
+ }
+ Users user = usersService.findById(userId);
+ return user;
+ }
+ protected Member getLoginMemberInfo() {
+ Long userId = getMemberId();
+ if(userId== null){
+ return null;
+ }
+ Member user = memberService.findById(userId);
+ return user;
+ }
+
+
+ protected Long getUserType() {
+ Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserType);
+ return obj != null ? (Long) obj : null;
+ }
}
diff --git a/server/web/src/main/java/com/doumee/api/web/CatalogApi.java b/server/web/src/main/java/com/doumee/api/web/CatalogApi.java
new file mode 100644
index 0000000..5926997
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/CatalogApi.java
@@ -0,0 +1,46 @@
+package com.doumee.api.web;
+
+import com.doumee.biz.zbom.ZbomZhongTaiService;
+import com.doumee.config.annotation.UserLoginRequired;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.SmsEmail;
+import com.doumee.dao.web.response.AccountResponse;
+import com.doumee.dao.web.response.ZSZXCatalogResponse;
+import com.doumee.service.business.SmsEmailService;
+import com.doumee.service.business.UsersService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/7/10 18:06
+ */
+@Api(tags = "鍒嗙被鍜屾爣绛剧浉鍏虫帴鍙�")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/catalog")
+@Slf4j
+public class CatalogApi extends ApiController{
+
+ @Autowired
+ public ZbomZhongTaiService zbomZhongTaiService;
+
+ @Autowired
+ public SmsEmailService smsEmailService;
+
+
+ @ApiOperation(value = "C绔皬绋嬪簭-鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁", notes = "鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁")
+ @PostMapping("/getZSZXCatalogs")
+ public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
+ return ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs());
+ }
+
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
index 3c9c591..0e9ba35 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -4,19 +4,22 @@
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.CustomerLog;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.dao.web.response.BjParamConfigResponse;
-import com.doumee.service.business.BjParamService;
-import com.doumee.service.business.CustomerService;
-import com.doumee.service.business.MemberService;
+import com.doumee.service.business.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -29,7 +32,7 @@
* @Author : Rk
* @create 2024/7/10 14:03
*/
-@Api(tags = "瀹㈡埛绔皬绋嬪簭鐢ㄦ埛涓氬姟")
+@Api(tags = "銆怌绔皬绋嬪簭銆戠敤鎴蜂笟鍔�")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/customer")
@@ -48,6 +51,12 @@
@Autowired
private ZbomCRMService zbomCRMService;
+
+ @Autowired
+ private ShopService shopService;
+
+ @Autowired
+ private UsersService usersService;
@ApiOperation(value = "瀹㈡埛绔皬绋嬪簭鐧婚檰", notes = "瀹㈡埛绔皬绋嬪簭")
@GetMapping("/wxLoginCustomer")
@@ -146,5 +155,40 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @LoginRequired
+ @ApiOperation(value = "闂ㄥ簵鍒楄〃", notes = "瀹㈡埛绔皬绋嬪簭")
+ @PostMapping("/shopPage") @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse<PageData<Shop>> shopPage (@RequestBody PageWrap<Shop> pageWrap) {
+ return ApiResponse.success(shopService.queryShopByLL(pageWrap));
+ }
+
+
+ @LoginRequired
+ @ApiOperation(value = "闂ㄥ簵璇︽儏", notes = "瀹㈡埛绔皬绋嬪簭")
+ @GetMapping("/shopDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "shopId", value = "闂ㄥ簵涓婚敭", required = true)
+ })
+ public ApiResponse<Shop> shopDetail (@RequestParam Long shopId) {
+ Long memberId = this.getMemberId();
+ return ApiResponse.success(shopService.shopDetail(shopId,memberId));
+ }
+
+ @LoginRequired
+ @ApiOperation(value = "瀵艰喘璇︽儏", notes = "瀹㈡埛绔皬绋嬪簭")
+ @GetMapping("/usersDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "userId", value = "瀵艰喘涓婚敭", required = true)
+ })
+ public ApiResponse<Users> usersDetail (@RequestParam Long userId) {
+ return ApiResponse.success(usersService.usersDetail(userId));
+ }
+
+
+
}
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
new file mode 100644
index 0000000..1e284a3
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -0,0 +1,42 @@
+package com.doumee.api.web;
+
+import com.doumee.biz.zbom.ZbomZhongTaiService;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.web.response.ZSZXCatalogResponse;
+import com.doumee.service.business.SmsEmailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/7/10 18:06
+ */
+@Api(tags = "銆怋绔皬绋嬪簭銆戝鎴风鐞嗘帴鍙�")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/customer")
+@Slf4j
+public class CustomerManageApi extends ApiController{
+
+ @Autowired
+ public ZbomZhongTaiService zbomZhongTaiService;
+
+ @Autowired
+ public SmsEmailService smsEmailService;
+
+
+ @ApiOperation(value = "C绔皬绋嬪簭-鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁", notes = "鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁")
+ @PostMapping("/getZSZXCatalogs")
+ public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
+ return ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs());
+ }
+
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
index 8772dde..6b24bfd 100644
--- a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -15,10 +15,7 @@
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
/**
* Created by IntelliJ IDEA.
@@ -26,7 +23,7 @@
* @Author : Rk
* @create 2024/7/10 18:06
*/
-@Api(tags = "鍛樺伐绔皬绋嬪簭鐢ㄦ埛涓氬姟")
+@Api(tags = "銆怋绔皬绋嬪簭銆戠敤鎴蜂笟鍔�")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/personnel")
@@ -86,4 +83,11 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @ApiOperation(value = "鑾峰彇涓汉鍚嶇墖", notes = "鍛樺伐绔皬绋嬪簭")
+ @PostMapping("/getUserCard")
+ public ApiResponse<String> getUserCard() {
+ return ApiResponse.success(usersService.getUserCard(this.getLoginUserInfo()));
+ }
+
+
}
diff --git a/server/web/src/main/java/com/doumee/api/web/PublicController.java b/server/web/src/main/java/com/doumee/api/web/PublicController.java
index 03b0570..459aea0 100644
--- a/server/web/src/main/java/com/doumee/api/web/PublicController.java
+++ b/server/web/src/main/java/com/doumee/api/web/PublicController.java
@@ -3,12 +3,16 @@
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.FtpUtil;
import com.doumee.core.utils.aliyun.ALiYunUtil;
import com.doumee.core.utils.tyyun.TyyZosUtil;
+import com.doumee.dao.business.model.Users;
+import com.doumee.dao.system.model.SystemDictData;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -46,6 +50,20 @@
private SystemDictDataBiz systemDictDataBiz;
+
+ @LoginRequired
+ @ApiOperation(value = "瀛楀吀鍊兼煡璇�")
+ @GetMapping("/getDictData")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "澶х被缂栫爜", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "String", name = "label", value = "瀛愮被缂栫爜", required = true)
+ })
+ public ApiResponse<SystemDictData> getDictData (@RequestParam String code,@RequestParam String label) {
+ SystemDictData systemDictData = systemDictDataBiz.queryByCode(code,label);
+ return ApiResponse.success(systemDictData);
+ }
+
+
@ApiOperation(value = "涓婁紶", notes = "涓婁紶", httpMethod = "POST", position = 6)
@ApiImplicitParams({
@ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
deleted file mode 100644
index f978edf..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.alibaba.fastjson.JSON;
-import com.doumee.core.model.ApiResponse;
-import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
-import org.springframework.http.HttpStatus;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Shiro璁よ瘉杩囨护鍣紝澶勭悊鏈璇佹儏鍐电殑鍝嶅簲
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-public class ShiroAuthFilter extends FormAuthenticationFilter {
-
- public ShiroAuthFilter() {
- super();
- }
-
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- HttpServletResponse servletResponse = (HttpServletResponse) response;
- servletResponse.setHeader("content-type", "application/json;charset=UTF-8");
- servletResponse.getWriter().write(JSON.toJSONString(ApiResponse.failed(HttpStatus.UNAUTHORIZED.value(), "鏈櫥褰曟垨鐧诲綍淇℃伅宸茶繃鏈�")));
- return Boolean.FALSE;
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroCache.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroCache.java
deleted file mode 100644
index 36cd7af..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroCache.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.service.proxy.CacheProxy;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-
-/**
- * Shiro缂撳瓨
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Scope(value = "prototype")
-@Slf4j
-@Component
-public class ShiroCache implements Cache<Object, Serializable> {
-
- private String keyPrefix = "";
-
- @Autowired
- private CacheProxy<Object, Serializable> cacheProxy;
-
- public ShiroCache () {
- log.debug("ShiroCache: new, keyPrefix = [" + keyPrefix + "]");
- }
-
- public ShiroCache(String keyPrefix) {
- log.debug("ShiroCache: new, keyPrefix = [" + keyPrefix + "]");
- this.keyPrefix = keyPrefix;
- }
-
- @Override
- public Serializable get(Object key) throws CacheException {
- if (key == null) {
- return null;
- }
- return cacheProxy.get(getKey(key));
- }
-
- @Override
- public Serializable put(Object key, Serializable value) throws CacheException {
- if (key == null) {
- return null;
- }
- cacheProxy.put(getKey(key), value);
- return value;
- }
-
- public Serializable put(Object key, Serializable value, int timeout) throws CacheException {
- if (key == null) {
- return null;
- }
- cacheProxy.put(getKey(key), value, timeout);
- return value;
- }
-
- @Override
- public void clear() throws CacheException {
- Set<Object> keys = this.keys();
- cacheProxy.remove(keys);
- }
-
- @Override
- public int size() {
- return this.keys().size();
- }
-
- @Override
- public Set<Object> keys() {
- Set<Object> keys = cacheProxy.keys(keyPrefix + "*");
- if (CollectionUtils.isEmpty(keys)) {
- return Collections.emptySet();
- }
- return keys;
- }
-
- @Override
- public Collection<Serializable> values() {
- Collection<Serializable> values = new ArrayList<>();
- Set<Object> keys = this.keys();
- if (CollectionUtils.isEmpty(keys)) {
- return values;
- }
- for (Object k : keys) {
- values.add(cacheProxy.get(k));
- }
- return values;
- }
-
- @Override
- public Serializable remove(Object key) throws CacheException {
- if (key == null) {
- return null;
- }
- Serializable value = this.get(getKey(key));
- cacheProxy.remove(getKey(key));
- return value;
- }
-
- private Object getKey (Object key) {
- return (key instanceof String ? (this.keyPrefix + key) : key);
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
deleted file mode 100644
index fedcb98..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.doumee.config.shiro;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheException;
-import org.apache.shiro.cache.CacheManager;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Component;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * 鑷畾涔塖hiro CacheManager
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Slf4j
-@Component
-public class ShiroCacheManager implements CacheManager {
-
- private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap();
-
- private static ApplicationContext applicationContext;
-
- @Override
- public <K, V> Cache<K, V> getCache(String name) throws CacheException {
- log.debug("get cache, name=" + name);
- Cache cache = this.caches.get(name);
- if (cache == null) {
- cache = applicationContext.getBean(ShiroCache.class, "shiro:cache:");
- this.caches.put(name, cache);
- }
- return cache;
- }
-
- @Autowired
- public void setApplicationContext (ApplicationContext applicationContext) {
- if (ShiroCacheManager.applicationContext == null) {
- ShiroCacheManager.applicationContext = applicationContext;
- }
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroConfig.java
deleted file mode 100644
index 86411e1..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.doumee.config.shiro;
-
-import org.apache.shiro.mgt.SecurityManager;
-import org.apache.shiro.session.mgt.SessionManager;
-import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.servlet.Filter;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * Shiro閰嶇疆
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Configuration
-public class ShiroConfig {
-
- @Value("${cache.session.expire}")
- private int sessionExpireTime;
-
- @Autowired
- private ShiroCredentialsMatcher shiroCredentialsMatcher;
-
- @Autowired
- private ShiroSessionDAO shiroSessionDAO;
-
- @Autowired
- private ShiroCacheManager shiroCacheManager;
-
- @Autowired
- private ShiroRealm shiroRealm;
-
- @Bean
- public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
- DefaultAdvisorAutoProxyCreator autoProxyCreator = new DefaultAdvisorAutoProxyCreator();
- autoProxyCreator.setProxyTargetClass(true);
- return autoProxyCreator;
- }
-
- @Bean
- public SessionManager sessionManager() {
- ShiroSessionManager sessionManager = new ShiroSessionManager();
- sessionManager.setSessionDAO(shiroSessionDAO);
- return sessionManager;
- }
-
- @Bean
- public SecurityManager securityManager() {
- DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
- securityManager.setRealm(shiroRealm);
- securityManager.setSessionManager(this.sessionManager());
- securityManager.setCacheManager(shiroCacheManager);
- return securityManager;
- }
-
- @Bean
- public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
- ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
- shiroFilterFactoryBean.setSecurityManager(securityManager);
- Map<String, String> map = new LinkedHashMap<>();
- // 璺緞鎷︽埅閰嶇疆
- map.put("/system/login", "anon");
- map.put("/system/logout", "anon");
- map.put("/common/captcha", "anon");
- map.put("/web/**", "anon");
- //鏂囦欢涓婁紶鍙栨秷鎷︽埅
- map.put("/public/**", "anon");
- // - 鏀捐swagger
- map.put("/doc.html", "anon");
- map.put("/webjars/**", "anon");
- map.put("/swagger-resources/**", "anon");
- map.put("/v2/api-docs/**", "anon");
- // - 鍏朵粬鎺ュ彛缁熶竴鎷︽埅
- map.put("/**", "authc");
- shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
- // 娣诲姞璁よ瘉杩囨护鍣�
- Map<String, Filter> filters = new LinkedHashMap<>();
- filters.put("authc", new ShiroAuthFilter());
- shiroFilterFactoryBean.setFilters(filters);
- return shiroFilterFactoryBean;
- }
-
- @Bean
- public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
- AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
- authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
- return authorizationAttributeSourceAdvisor;
- }
-
- @Bean
- public ShiroSessionDAO getShiroSessionDAO () {
- shiroSessionDAO.setExpireTime(sessionExpireTime);
- return shiroSessionDAO;
- }
-
- @Bean
- public ShiroRealm getShiroRealm () {
- shiroRealm.setCredentialsMatcher(shiroCredentialsMatcher);
- return shiroRealm;
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
deleted file mode 100644
index 75c5280..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.system.model.SystemUser;
-import com.doumee.service.system.SystemUserService;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.UsernamePasswordToken;
-import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Component;
-
-/**
- * Shiro瀵嗙爜姣斿澶勭悊
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Component
-public class ShiroCredentialsMatcher extends HashedCredentialsMatcher {
-
- @Lazy
- @Autowired
- private SystemUserService systemUserService;
-
- @Override
- public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
- UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;
- SystemUser queryUserDto = new SystemUser();
- queryUserDto.setUsername(usernamePasswordToken.getUsername());
- queryUserDto.setDeleted(Boolean.FALSE);
- SystemUser systemUser = systemUserService.findOne(queryUserDto);
- if (systemUser == null) {
- return Boolean.FALSE;
- }
- // 鍔犲瘑瀵嗙爜
- String pwd = Utils.Secure.encryptPassword(new String(usernamePasswordToken.getPassword()), systemUser.getSalt());
- // 姣旇緝瀵嗙爜
- return this.equals(pwd, systemUser.getPassword());
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroRealm.java
deleted file mode 100644
index 690addf..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroRealm.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.core.model.LoginUserInfo;
-import com.doumee.dao.system.model.SystemPermission;
-import com.doumee.dao.system.model.SystemRole;
-import com.doumee.dao.system.model.SystemUser;
-import com.doumee.service.system.SystemPermissionService;
-import com.doumee.service.system.SystemRoleService;
-import com.doumee.service.system.SystemUserService;
-import org.apache.shiro.authc.AuthenticationException;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.SimpleAuthenticationInfo;
-import org.apache.shiro.authz.AuthorizationInfo;
-import org.apache.shiro.authz.SimpleAuthorizationInfo;
-import org.apache.shiro.realm.AuthorizingRealm;
-import org.apache.shiro.subject.PrincipalCollection;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * 鑷畾涔塕ealm锛屽鐞嗚璇佸拰鏉冮檺
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Component
-public class ShiroRealm extends AuthorizingRealm {
-
- @Lazy
- @Autowired
- private SystemUserService systemUserService;
-
- @Lazy
- @Autowired
- private SystemRoleService systemRoleService;
-
- @Lazy
- @Autowired
- private SystemPermissionService systemPermissionService;
-
- /**
- * 鏉冮檺澶勭悊
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
- @Override
- protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
- LoginUserInfo loginUserInfo = (LoginUserInfo)principalCollection.getPrimaryPrincipal();
- // 璁剧疆鐢ㄦ埛瑙掕壊鍜屾潈闄�
- SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
- authorizationInfo.addRoles(loginUserInfo.getRoles());
- authorizationInfo.addStringPermissions(loginUserInfo.getPermissions());
- return authorizationInfo;
- }
-
- /**
- * 璁よ瘉澶勭悊
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
- @Override
- protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
- // 鑾峰彇鐢ㄦ埛鍚�
- String username = authenticationToken.getPrincipal().toString();
- // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
- SystemUser queryDto = new SystemUser();
- queryDto.setUsername(username);
- queryDto.setDeleted(Boolean.FALSE);
- SystemUser user = systemUserService.findOne(queryDto);
- if (user == null) {
- return null;
- }
- // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
- List<SystemRole> roles = systemRoleService.findByUserId(user.getId());
- List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId());
- LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions);
- // 楠岃瘉鐢ㄦ埛
- return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
- }
-
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
deleted file mode 100644
index 2cc6a11..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.doumee.config.shiro;
-
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.session.UnknownSessionException;
-import org.apache.shiro.session.mgt.SimpleSession;
-import org.apache.shiro.session.mgt.eis.SessionDAO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * 鑷畾涔塖hiro SessionDAO锛屽皢浼氳瘽淇℃伅瀛樺叆缂撳瓨涓�
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Data
-@Slf4j
-@Component
-public class ShiroSessionDAO implements SessionDAO {
-
- private static final String KEY_PREFIX = "shiro:session:";
-
- @Autowired
- private ShiroCache shiroCache;
-
- private int expireTime = 1800;
-
- @Autowired
- private ShiroTokenManager shiroTokenManager;
-
- @Override
- public Serializable create(Session session) {
- if (session == null) {
- log.error("session is null");
- throw new UnknownSessionException("session is null");
- }
- Serializable sessionId = shiroTokenManager.build();
- ((SimpleSession)session).setId(sessionId);
- this.saveSession(session);
- return sessionId;
- }
-
- @Override
- public Session readSession(Serializable sessionId) throws UnknownSessionException{
- if (sessionId == null) {
- log.warn("session id is null");
- return null;
- }
- if (sessionId instanceof String) {
- // 瀵筍essionId杩涜楠岃瘉锛堝彲鐢ㄤ簬闃叉Session鎹曡幏銆佹毚鍔涙崟鎹夌瓑涓�绯诲垪瀹夊叏闂锛屾渶缁堝畨鍏ㄦ�у彇鍐充簬check濡備綍瀹炵幇锛�
- shiroTokenManager.check((String) sessionId);
- }
- log.debug("read session from cache");
- Session session = getSessionFromCache(sessionId);
- if (session == null) {
- throw new UnknownSessionException("There is no session with id [" + sessionId + "]");
- }
- return session;
- }
-
- @Override
- public void update(Session session) throws UnknownSessionException {
- this.saveSession(session);
- }
-
- @Override
- public void delete(Session session) {
- if (session != null && session.getId() != null) {
- shiroCache.remove(KEY_PREFIX + session.getId());
- }
- }
-
- @Override
- public Collection<Session> getActiveSessions() {
- Set<Session> sessions = new HashSet<>();
- Set<Object> keys = shiroCache.keys();
- if (keys != null && keys.size() > 0) {
- Iterator iter = keys.iterator();
- while(iter.hasNext()) {
- sessions.add((Session) shiroCache.get(iter.next()));
- }
- }
- return sessions;
- }
-
- private void saveSession(Session session) throws UnknownSessionException {
- if (session == null || session.getId() == null) {
- log.error("session or session id is null");
- throw new UnknownSessionException("session or session id is null");
- }
- shiroCache.put(KEY_PREFIX + session.getId(), (SimpleSession)session, expireTime);
- }
-
- private Session getSessionFromCache (Serializable sessionId) {
- Serializable object = shiroCache.get(KEY_PREFIX + sessionId);
- Session session = null;
- if (object != null) {
- session = (Session)shiroCache.get(KEY_PREFIX + sessionId);
- }
- return session;
- }
-
- public void setExpireTime (int expireTime) {
- this.expireTime = expireTime;
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
deleted file mode 100644
index ef159a7..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.doumee.config.shiro;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.session.mgt.DefaultSessionManager;
-import org.apache.shiro.session.mgt.SessionContext;
-import org.apache.shiro.session.mgt.SessionKey;
-import org.apache.shiro.web.servlet.Cookie;
-import org.apache.shiro.web.servlet.ShiroHttpServletRequest;
-import org.apache.shiro.web.servlet.SimpleCookie;
-import org.apache.shiro.web.session.mgt.WebSessionManager;
-import org.apache.shiro.web.util.WebUtils;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.Serializable;
-
-/**
- * 鑷畾涔変細璇濈鐞嗗櫒
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Slf4j
-public class ShiroSessionManager extends DefaultSessionManager implements WebSessionManager {
-
- private static final String AUTH_TOKEN = "eva-auth-token";
-
- @Override
- protected void onStart(Session session, SessionContext context) {
- super.onStart(session, context);
- if (!WebUtils.isHttp(context)) {
- log.debug("SessionContext argument is not Http compatible or does not have an Http request/response pair. No session ID cookie will be set.");
- return;
- }
- HttpServletRequest request = WebUtils.getHttpRequest(context);
- HttpServletResponse response = WebUtils.getHttpResponse(context);
- Serializable sessionId = session.getId();
- this.storeSessionId(sessionId, request, response);
- request.removeAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE);
- request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_IS_NEW, Boolean.TRUE);
- }
-
- @Override
- public Serializable getSessionId(SessionKey key) {
- Serializable sessionId = super.getSessionId(key);
- if (sessionId == null && WebUtils.isWeb(key)) {
- ServletRequest servletRequest = WebUtils.getRequest(key);
- if (!(servletRequest instanceof HttpServletRequest)) {
- log.trace("Can not get sessionId from header, the request is not HttpServletRequest");
- return null;
- }
- HttpServletRequest request = (HttpServletRequest) servletRequest;
- // 浠巆ookie涓幏鍙栬璇�
- javax.servlet.http.Cookie[] cookies = request.getCookies();
- if (cookies != null) {
- for (javax.servlet.http.Cookie cookie : cookies) {
- if (AUTH_TOKEN.equals(cookie.getName())) {
- return cookie.getValue();
- }
- }
- }
- // 浠巋eader涓幏鍙栬璇�
- return request.getHeader(AUTH_TOKEN);
- }
- return sessionId;
- }
-
- @Override
- public boolean isServletContainerSessions() {
- return false;
- }
-
- private void storeSessionId(Serializable currentId, HttpServletRequest request, HttpServletResponse response) {
- if (currentId == null) {
- String msg = "sessionId cannot be null when persisting for subsequent requests.";
- throw new IllegalArgumentException(msg);
- }
- Cookie cookie = new SimpleCookie(AUTH_TOKEN);
- cookie.setHttpOnly(false);
- String idString = currentId.toString();
- cookie.setValue(idString);
- cookie.saveTo(request, response);
- log.trace("Set session ID cookie for session with id {}", idString);
- }
-}
diff --git a/server/web/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java b/server/web/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
deleted file mode 100644
index d5f3b40..0000000
--- a/server/web/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.core.exception.UnSafeSessionException;
-import org.springframework.stereotype.Component;
-
-import java.util.UUID;
-
-/**
- * 榛樿Token绠$悊鍣�
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49 36143 45311
- */
-@Component
-public class ShiroTokenManager {
-
- String build() {
- return UUID.randomUUID().toString();
- }
-
- void check(String token) throws UnSafeSessionException {
- if (token == null || token.length() != 36) {
- throw new UnSafeSessionException();
- }
- }
-}
--
Gitblit v1.9.3