liukangdong
2024-07-21 f674eef2bdf97352514e5fe024518714d1996b1d
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
已添加3个文件
已修改23个文件
482 ■■■■ 文件已修改
server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/APISpaceCaseVo.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCollectLikeRequest.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/News.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Users.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/NewsService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/UsersService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/ApiController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CatalogApi.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CommonApi.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerApi.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
@@ -44,9 +44,9 @@
    List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param);
    List<ZTAreaTreeResponse> getAreaTreeList(ZTAreaListRequest param);
    boolean bindCustomerFavorites(ZTBindCusFavoriteDoRequest param);
    ZSZXCatalogResponse getZSZXCatalogs();
    ZTBasePageResponse<ZTCusFavoritesInfoResponse> pageCusFavoriteList(ZTContentListRequest param);
    List<ZTCusCarouselImageResponse> carouselImageList(ZTContentListRequest param);
    ZTCusCarouselImageResponse carouselImageDetail(ZTDataDetailRequest param);
    ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest param);
}
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -83,27 +83,7 @@
     * èŽ·å–ç”¨æˆ·ç™»é™†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;
   }
    /**
     * ç”¨æˆ·ä¿¡æ¯åŒæ­¥
     * @param param
@@ -716,4 +696,25 @@
            log.error("【中台接口:"+name+"】================失败====:\n"+ res);
        }
    }
    /**
     * èŽ·å–æˆ‘çš„å–œæ¬¢/收藏列表
     * @param param
     * @return
     */
    @Override
    public ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest param){
        ZTBaseResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> result = sendHttpRequest(
                ZTConstants.IntegerUrl.FAVORITES_PAGE_URL,
                ZTConstants.IntegerName.FAVORITES_NAME,
                param.getToken(),
                param.getUserType(),
                JSONObject.toJSONString(param ),
                new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>>>(){});
        if(result!=null){
            return result.getData();
        }
        return null;
    }
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/APISpaceCaseVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.doumee.biz.zbom.model.zhongtai;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/7/19 11:33
 */
@Data
public class APISpaceCaseVo {
    private String caseInfo;
    /**
     * ç©ºé—´ä¸»å›¾
     */
    private String coverImage;
    private String id;
    /**
     * ç©ºé—´å›¾ç‰‡
     */
    private String[] imgList;
    private String intro;
    private String publishDate;
    private String publishDt;
    /**
     * ç©ºé—´æè¿°
     */
    private String spaceDesc;
    /**
     * ç©ºé—´åç§°
     */
    private String spaceName;
    private String title;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTCollectLikeRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.doumee.biz.zbom.model.zhongtai;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ZTCollectLikeRequest extends ZTBaseRequst {
    @ApiModelProperty(value = "业务类型 æžšä¸¾å€¼: whole_case real_case product_intro")
    private String businessType;
    @ApiModelProperty(value = "当前页")
    private String pageNum;
    @ApiModelProperty(value = "每页条数")
    private String pageSize;
    @ApiModelProperty(value = "业务类别  collect like")
    private String businessCategory;
    @ApiModelProperty(value = "用户主键",hidden = true)
    private String userId;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java
@@ -77,6 +77,9 @@
        String WHOLECASE_INFO_URL ="/content/api/wholeCaseDetail";
        String REALCASE_PAGE_LIST_URL ="/content/api/realCasePageList";
        String REALCASE_INFO_URL ="/content/api/realCaseDetail";
        String FAVORITES_PAGE_URL ="/behavior/api/favoritesPageList";
    }
    public interface IntegerName{
        String USER_UPDATE_NAME ="用户信息同步";
@@ -115,5 +118,6 @@
        String REALCASE_PAGE_LIST_NAME ="获取实景案例列表";
        String REALCASE_INFO_NAME ="获取实景案例详情";
        String FAVORITES_NAME ="获取我的喜欢/收藏列表";
    }
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
@@ -32,8 +32,8 @@
    @ApiModelProperty(value = "排序方式 NORMAL - é»˜è®¤ï¼›HOT - æœ€çƒ­ï¼›LATEST - æœ€æ–°ï¼›")
    private String sortType;
    @ApiModelProperty(value = "多个标签唯一编码的列表,多个标签唯一编码的列表",hidden = true)
    private List<String> tagCode;
    @ApiModelProperty(value = "多个标签唯一编码的列表,多个标签唯一编码的列表")
    private List<String> tagCodes;
    @ApiModelProperty(value = "用户主键",hidden = true)
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java
@@ -1,5 +1,6 @@
package com.doumee.biz.zbom.model.zhongtai.response;
import com.doumee.biz.zbom.model.zhongtai.APISpaceCaseVo;
import lombok.Data;
import java.io.Serializable;
@@ -10,7 +11,7 @@
 */
@Data
public class ZTCaseInfoResponse implements Serializable {
    private String apiSpaceCaseVos;
    private APISpaceCaseVo[] apiSpaceCaseVos;
    private String caseInfo;
    /**
     * æ”¶è—é‡
@@ -42,4 +43,5 @@
     * æµè§ˆé‡
     */
    private String viewCount;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.doumee.biz.zbom.model.zhongtai.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 * æˆ‘的喜欢/收藏
 */
@Data
public class ZTCollectLikeInfoResponse implements Serializable {
    /**
     * æ”¶è—æ•°
     */
    @ApiModelProperty(value = "id")
    private String id;
    /**
     * æ ‡é¢˜
     */
    @ApiModelProperty(value = "标题")
    private String displayName;
    /**
     * ç¼©ç•¥å›¾
     */
    @ApiModelProperty(value = "缩略图")
    private String thumbnailUrl;
    @ApiModelProperty(value = "浏览量")
    private Integer viewCount;
    @ApiModelProperty(value = "收藏量")
    private Integer collectCount;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java
@@ -1,5 +1,7 @@
package com.doumee.biz.zbom.model.zhongtai.response;
import com.doumee.biz.zbom.model.zhongtai.APISpaceCaseVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@@ -10,25 +12,67 @@
 */
@Data
public class ZTRealcaseInfoResponse implements Serializable {
    private String caseInfo;
    private String collectCount;
    /**
     * ä¸»å›¾
     */
    @ApiModelProperty(value = "主图")
    private String coverImage;
    private String id;
    private String[] imgList;
    /**
     * æ˜¯å¦æ”¶è— true:收藏  false:未收藏
     */
    @ApiModelProperty(value = "是否收藏 true:收藏  false:未收藏")
    private boolean isCollection;
    /**
     * å‘布日期
     */
    @ApiModelProperty(value = "发布日期")
    private String publishDt;
    /**
     * æ ‡é¢˜
     */
    private String title;
    private String viewCount;
    private String contentCategory;
    private String intro;
    private String linkAddress;
    /**
     * æ‰“开内容
     */
    @ApiModelProperty(value = "打开内容")
    private String openContent;
    /**
     *
     */
    @ApiModelProperty(value = "内容打开方式(内部页面page、视频video、富文本text、外部链接link)")
    private String openType;
    /**
     * å›¾æ–‡è¯¦æƒ…
     */
    private APISpaceCaseVo[] apiSpaceCaseVos;
    /**
     * 720全景地址
     */
    private String layoutUlr;
    private String panorama;
    /**
     * è¯¦æƒ…图片
     */
    private String[] contentImgList;
    /**
     * æ ‡ç­¾
     */
    private String[] contentLabelList;
    /**
     * è¯¦æƒ…文本
     */
    private String contentText;
    private String recommandTitle;
}
server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -97,16 +97,15 @@
    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){
        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
        try {
            //判断Token是否超时
            boolean expiration = JwtTokenUtil.isTokenExpired(token);
            if (expiration) {
                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
            }
            //获取账号ID
            Long memberId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
            Integer userType = JwtTokenUtil.getJwtPayLoad(token).getUserType();
            if(!Constants.equalsInteger(userType,Constants.ZERO)){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"无访问权限");
            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+memberId);
            if(StringUtils.isNotBlank(tokenRedis)){
                if(!tokenRedis.equals(token)){
                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
                }
            }else{
                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
            }
            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId );
            if(Objects.isNull(member)){
@@ -129,19 +128,15 @@
    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) {
                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
            }
            //获取账号ID
            Long userId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
            Integer userType = JwtTokenUtil.getJwtPayLoad(token).getUserType();
            if(!Constants.equalsInteger(userType,Constants.ONE)){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"无访问权限");
            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+userId);
            if(StringUtils.isNotBlank(tokenRedis)){
                if(!tokenRedis.equals(token)){
                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
                }
            }else{
                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
            }
            Users users = dao.queryForObject(" select  *  from `users` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Users.class),userId);
            if(Objects.isNull(users)){
@@ -150,7 +145,7 @@
            if(Constants.equalsInteger(users.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已删除,请联系管理员");
            }
            if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
            if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已禁用,请联系管理员");
            }
            request.setAttribute(JwtTokenUtil.UserId_Name, userId);
server/service/src/main/java/com/doumee/dao/business/model/News.java
@@ -98,6 +98,8 @@
    @ApiModelProperty(value = "最近发布备注")
    @ExcelColumn(name="最近发布备注")
    private String publishInfo;
    @ApiModelProperty(value = "操作人")
    @ExcelColumn(name="操作人")
    @TableField(exist = false)
server/service/src/main/java/com/doumee/dao/business/model/Users.java
@@ -90,7 +90,7 @@
    @ExcelColumn(name="微信openid")
    private String openid;
    @ApiModelProperty(value = "账户状态 0停用,1启用", example = "1")
    @ApiModelProperty(value = "账户状态 0停用,1启用,-1删除", example = "1")
    @ExcelColumn(name="账户状态 0停用,1启用")
    private String status;
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
@@ -2,6 +2,7 @@
import com.doumee.biz.zbom.model.zhongtai.*;
import com.doumee.biz.zbom.model.zhongtai.response.*;
import com.doumee.dao.web.response.ZSZXCatalogResponse;
import java.util.List;
@@ -11,6 +12,9 @@
 * @date 2024/07/04 14:40
 */
public interface GetZhongTaiDataService {
    ZSZXCatalogResponse getZSZXCatalogs(Long userId);
    /**
     * åˆ†ç±»æ•°æ®
@@ -147,4 +151,10 @@
     */
    ZTRealcaseInfoResponse getRealcaseInfo(String id,String userType,Long userId);
    /**
     * ä¸­å° - æˆ‘的收藏/喜欢列表
     * @param ztContentListRequest
     * @return
     */
    ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest ztCollectLikeRequest);
}
server/service/src/main/java/com/doumee/service/business/NewsService.java
@@ -123,4 +123,5 @@
     * @param userId
     */
    void saveShareRecord(Long id,Long userId);
}
server/service/src/main/java/com/doumee/service/business/UsersService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Member;
@@ -118,4 +119,6 @@
    void editUserInfo(EditUsersRequest editUsersRequest);
    String getContentShareImg(Users loginUserInfo, ContentShareImgDto param);
    ZTBaseRequst logOff(Long userId);
}
server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
@@ -132,7 +132,9 @@
                            .eq(CustomerLog::getIsdeleted, Constants.ZERO)
                .eq(Objects.nonNull(pageWrap.getModel().getType()),CustomerLog::getType, pageWrap.getModel().getType())
                .eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Customer::getMemberId, pageWrap.getModel().getMemberId());
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.eq(Customer::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.eq(CustomerLog::getId, pageWrap.getModel().getId());
        }
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
@@ -13,6 +13,7 @@
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.UsersMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.web.response.ZSZXCatalogResponse;
import com.doumee.dao.web.response.ZTBaseInfoResponse;
import com.doumee.service.business.GetZhongTaiDataService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
@@ -52,7 +53,29 @@
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    @Override
    public ZSZXCatalogResponse getZSZXCatalogs(Long userId){
        ZSZXCatalogResponse response = new ZSZXCatalogResponse();
        ZTCatalogListRequest param = new ZTCatalogListRequest();
        param.setUserId(userId.toString());
        param.setUserType(ZTConstants.CUSTOMER);
        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;
    }
    @Override
    public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest ztCatalogListRequest){
@@ -60,6 +83,10 @@
        || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,Long.valueOf(ztCatalogListRequest.getUserId()),ztCatalogListRequest.getUserType());
        System.out.println(JSONObject.toJSONString(ztBaseInfoResponse));
        ztCatalogListRequest.setOpenId(ztBaseInfoResponse.getOpenId());
        ztCatalogListRequest.setToken(ztBaseInfoResponse.getToken());
        return zbomZhongTaiService.getCatalogList(ztCatalogListRequest);
    }
@@ -70,6 +97,9 @@
                || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,Long.valueOf(ztCatalogListRequest.getUserId()),ztCatalogListRequest.getUserType());
        ztCatalogListRequest.setOpenId(ztBaseInfoResponse.getOpenId());
        ztCatalogListRequest.setToken(ztBaseInfoResponse.getToken());
        return zbomZhongTaiService.getTagList(ztCatalogListRequest);
    }
@@ -116,8 +146,13 @@
        String data = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_AREA_REDIS_KEY);
        List<ZTAreaTreeResponse> ztAreaTreeResponses = new ArrayList<>();
        if(StringUtils.isBlank(data)){
            ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,Long.valueOf(ztAreaListRequest.getUserId()),ztAreaListRequest.getUserType());
            ztAreaListRequest.setOpenId(ztBaseInfoResponse.getOpenId());
            ztAreaListRequest.setToken(ztBaseInfoResponse.getToken());
            ztAreaTreeResponses =  zbomZhongTaiService.getAreaTreeList(ztAreaListRequest);
            redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_AREA_REDIS_KEY,JSONArray.toJSONString(ztAreaTreeResponses));
            if(CollectionUtils.isNotEmpty(ztAreaTreeResponses)){
                redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_AREA_REDIS_KEY,JSONArray.toJSONString(ztAreaTreeResponses));
            }
        }else{
            ztAreaTreeResponses = JSONArray.parseArray(data,ZTAreaTreeResponse.class);
        }
@@ -293,4 +328,23 @@
        return response;
    }
    @Override
    public ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest ztCollectLikeRequest){
        if(Objects.isNull(ztCollectLikeRequest)
                || Objects.isNull(ztCollectLikeRequest.getPageNum())
                || Objects.isNull(ztCollectLikeRequest.getPageSize())
                || StringUtils.isBlank(ztCollectLikeRequest.getBusinessType())
                || StringUtils.isBlank(ztCollectLikeRequest.getBusinessCategory())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        //查询 ä¸­å°
        ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,
                Long.valueOf(ztCollectLikeRequest.getUserId()),ztCollectLikeRequest.getUserType());
        ztCollectLikeRequest.setToken(ztBaseInfoResponse.getToken());
        ZTBasePageResponse<ZTCollectLikeInfoResponse> response = zbomZhongTaiService.collectLikePage(ztCollectLikeRequest);
        return response;
    }
}
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -306,18 +306,17 @@
                this.saveCustomerUser(users,member.getId());
            }else{
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(Objects.isNull(ztUserGetTokenResponse)){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!");
                }else{
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                    memberMapper.updateById(member);
                }
                this.saveCustomerUser(users,member.getId());
                member = this.getMemberInfo(member.getId());
            }
            //创建token
            JwtPayLoad payLoad = new JwtPayLoad(member.getId(),Constants.ZERO);
            String token = JwtTokenUtil.generateToken(payLoad);
            redisTemplate.opsForValue().set(ZTConstants.CUSTOMER+"_"+member.getId(),token);
            AccountResponse accountResponse = new AccountResponse();
            accountResponse.setToken(token);
            accountResponse.setSessionKey(session.getSessionKey());
@@ -439,7 +438,7 @@
        ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(member.getHousetype()));
        ZTBaseResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest);
        if(Objects.isNull(userUpdateInfo)||userUpdateInfo.getCode()!=200){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台信息更新失败,请联系管理员");
            return null;
        }
        ZTUserGetTokenResponse ztUserGetTokenResponse = (ZTUserGetTokenResponse) userUpdateInfo.getData();
        return ztUserGetTokenResponse;
@@ -545,7 +544,8 @@
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(StringUtils.isBlank(member.getPhone())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已注销");
            redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId());
           return null;
        }
        //校验用户token信息
        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER);
@@ -559,6 +559,7 @@
                .set(Member::getEditDate,new Date())
                .eq(Member::getId,member.getId())
        );
        redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId());
        return ztBaseRequst;
    }
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
import com.dingtalk.api.request.OapiMaterialNewsListRequest;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -420,4 +421,5 @@
}
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -4,8 +4,11 @@
import cn.hutool.core.date.DateUnit;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.ZbomZhongTaiService;
import com.doumee.biz.zbom.model.IamUserRoleModel;
import com.doumee.biz.zbom.model.IamUserTypeModel;
import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
import com.doumee.config.Jwt.JwtPayLoad;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.core.annotation.excel.ExcelImporter;
@@ -21,6 +24,7 @@
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.MemberMapper;
import com.doumee.dao.business.ShopMapper;
import com.doumee.core.wx.WxMiniConfig;
import com.doumee.dao.business.SmsEmailMapper;
@@ -81,6 +85,11 @@
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private ZbomZhongTaiService zbomZhongTaiService;
    @Override
    public Long create(Users users) {
@@ -323,12 +332,12 @@
        }
        Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getPhone,phone).last("limit 1"));
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到账户信息");
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,账号信息不存在!");
        }
        if(!Constants.equalsInteger(users.getIsdeleted(), Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前账户已删除");
        }
        if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
        if(StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前账户已停用,请联系管理员");
        }
        //验证短信
@@ -355,6 +364,7 @@
        //创建token
        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
        String token = JwtTokenUtil.generateToken(payLoad);
        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
        AccountResponse accountResponse = new AccountResponse();
        accountResponse.setToken(token);
        accountResponse.setUsers(users);
@@ -382,10 +392,14 @@
            if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前账户已停用,请联系管理员");
            }
            users.setOpenid(openId);
            usersMapper.updateById(users);
            //创建token
            JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
            String token = JwtTokenUtil.generateToken(payLoad);
            redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
            accountResponse.setToken(token);
            getUsersDetail(users);
            accountResponse.setUsers(users);
            return accountResponse;
        } catch (WxErrorException e) {
@@ -756,7 +770,7 @@
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
        if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户已禁用");
        }
        getUsersDetail(users);
@@ -821,7 +835,31 @@
    @Override
    public ZTBaseRequst logOff(Long userId){
        Users users = usersMapper.selectById(userId);
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(StringUtils.isBlank(users.getOpenid())){
            redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
            return null;
        }
        //校验用户token信息
        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
        //调起中台注销接口
        ZTBaseRequst ztBaseRequst = new ZTBaseRequst();
        ztBaseRequst.setUserType(ZTConstants.BUSINESS);
        ztBaseRequst.setOpenId(users.getOpenid());
        ztBaseRequst.setToken(users.getToken());
        usersMapper.update(new UpdateWrapper<Users>().lambda()
                .set(Users::getOpenid,null)
                .set(Users::getEditDate,new Date())
                .eq(Users::getId,users.getId())
        );
        redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
        return ztBaseRequst;
    }
}
server/web/src/main/java/com/doumee/api/web/ApiController.java
@@ -52,9 +52,9 @@
        return obj != null ? (Long) obj : null;
    }
    protected Long getUserId() {
        if(isDebug){
            return 2L;
        }
//        if(isDebug){
//            return 2L;
//        }
        Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
        return obj != null ? (Long) obj : null;
    }
server/web/src/main/java/com/doumee/api/web/CatalogApi.java
@@ -36,10 +36,4 @@
    @Autowired
    public SmsEmailService smsEmailService;
    @ApiOperation(value = "C端小程序-获取首页志说装修四个模块类目数据", notes = "获取首页志说装修四个模块类目数据")
    @PostMapping("/getZSZXCatalogs")
    public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
        return  ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs());
    }
}
server/web/src/main/java/com/doumee/api/web/CommonApi.java
@@ -3,6 +3,7 @@
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.biz.zbom.ZbomZhongTaiService;
import com.doumee.biz.zbom.model.zhongtai.ZTAreaListRequest;
import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
import com.doumee.biz.zbom.model.zhongtai.response.ZTAreaInfoResponse;
import com.doumee.biz.zbom.model.zhongtai.response.ZTAreaTreeResponse;
import com.doumee.config.annotation.LoginRequired;
@@ -60,8 +61,12 @@
    }
    @LoginRequired
    @ApiOperation(value = "获取区划全量树形信息", notes = "客户端小程序")
    @PostMapping("/getAreaTree")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<ZTAreaTreeResponse>> getAreaTree(@RequestBody ZTAreaListRequest ztAreaListRequest) {
        if(StringUtils.isBlank(ztAreaListRequest.getPid())){
            ztAreaListRequest.setPid("1");
@@ -69,6 +74,8 @@
        if(StringUtils.isBlank(ztAreaListRequest.getLevel())){
            ztAreaListRequest.setLevel("5");
        }
        ztAreaListRequest.setUserId(getMemberId()+"");
        ztAreaListRequest.setUserType(ZTConstants.CUSTOMER);
        List<ZTAreaTreeResponse> ztAreaInfoResponses =  getZhongTaiDataService.getZhongTaiAreaTree(ztAreaListRequest);
        return  ApiResponse.success(ztAreaInfoResponses);
    }
server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -2,10 +2,7 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest;
import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest;
import com.doumee.biz.zbom.model.zhongtai.ZTDataDetailRequest;
import com.doumee.biz.zbom.model.zhongtai.*;
import com.doumee.biz.zbom.model.zhongtai.response.*;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
@@ -35,6 +32,7 @@
import java.beans.Customizer;
import java.io.InputStream;
import java.util.List;
import java.util.Objects;
/**
 * Created by IntelliJ IDEA.
@@ -209,7 +207,10 @@
    @ApiOperation(value = "用户注销", notes = "客户端小程序")
    @GetMapping("/logOff")
    public ApiResponse logOff() {
        getZhongTaiDataService.userLogout(memberService.logOff(getMemberId()));
        ZTBaseRequst ztBaseRequst = memberService.logOff(getUserId());
        if(Objects.nonNull(ztBaseRequst)){
            getZhongTaiDataService.userLogout(ztBaseRequst);
        }
        return  ApiResponse.success("操作成功");
    }
@@ -258,18 +259,6 @@
    }
    @LoginRequired
    @ApiOperation(value = "测试小程序Token", notes = "客户端小程序")
    @GetMapping("/testToken")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse testToken () {
        systemDictDataBiz.updWxMiniToken();
        return ApiResponse.success("更新成功");
    }
    @LoginRequired
    @ApiOperation(value = "获取分享小程序二维码(图片流,img标签src指定)", notes = "客户端小程序")
@@ -297,7 +286,7 @@
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<PageData<CustomerLog>> customerLogPage(@RequestBody PageWrap<CustomerLog> pageWrap) {
        pageWrap.getModel().setCostomerId(getMemberId().toString());
        pageWrap.getModel().setMemberId(getMemberId());
        pageWrap.getModel().setIsHiddenPhone(Constants.ZERO);
        return ApiResponse.success(customerLogService.findPage(pageWrap));
    }
@@ -312,6 +301,8 @@
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
        ztCatalogListRequest.setUserId(getMemberId()+"");
        ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER);
        List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest);
        return ApiResponse.success("查询成功",ztCatalogInfoResponseList);
    }
@@ -325,6 +316,8 @@
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
        ztCatalogListRequest.setUserId(getMemberId()+"");
        ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER);
        List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest);
        return ApiResponse.success("查询成功",ztTagInfoResponseList);
    }
@@ -555,7 +548,17 @@
    }
    @LoginRequired
    @ApiOperation(value = "我的收藏/喜欢列表 - ä¸­å°", notes = "客户端小程序")
    @PostMapping("/collectLikePage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> collectLikePage(@RequestBody ZTCollectLikeRequest ztCollectLikeRequest) {
        ztCollectLikeRequest.setUserId(getMemberId()+"");
        ztCollectLikeRequest.setUserType(ZTConstants.CUSTOMER);
        ZTBasePageResponse<ZTCollectLikeInfoResponse>  ztBasePageResponse= getZhongTaiDataService.collectLikePage(ztCollectLikeRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
}
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -2,6 +2,7 @@
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.biz.zbom.ZbomZhongTaiService;
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;
@@ -9,6 +10,7 @@
import com.doumee.dao.business.model.News;
import com.doumee.dao.web.response.DailyUpdatesResponse;
import com.doumee.dao.web.response.ZSZXCatalogResponse;
import com.doumee.service.business.GetZhongTaiDataService;
import com.doumee.service.business.NewsService;
import com.doumee.service.business.SmsEmailService;
import io.swagger.annotations.Api;
@@ -45,11 +47,15 @@
    @Autowired
    public NewsService newsService;
    @Autowired
    public GetZhongTaiDataService getZhongTaiDataService;
    @LoginRequired
    @ApiOperation(value = "【C端小程序】获取首页志说装修四个模块类目数据", notes = "获取首页志说装修四个模块类目数据,背景图暂时写死,参考UI")
    @PostMapping("/getZSZXCatalogs")
    public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
        return  ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs());
        return  ApiResponse.success(getZhongTaiDataService.getZSZXCatalogs(getMemberId()));
    }
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -4,6 +4,7 @@
import com.doumee.biz.zbom.model.crm.CrmCustomerListRequest;
import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse;
import com.doumee.biz.zbom.model.crm.response.CRMCustomerListResponse;
import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest;
import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest;
@@ -17,6 +18,7 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.model.SmsEmail;
import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.EditMemberRequest;
import com.doumee.dao.web.reqeust.EditShopDTO;
import com.doumee.dao.web.reqeust.EditUsersRequest;
@@ -34,6 +36,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
 * Created by IntelliJ IDEA.
@@ -115,9 +118,8 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse getUserDetail() {
        usersService.usersDetailById(getUserId());
        return  ApiResponse.success("操作成功");
    public ApiResponse<Users> getUserDetail() {
        return  ApiResponse.success("操作成功",usersService.usersDetailById(getUserId()));
    }
    @UserLoginRequired
@@ -131,6 +133,7 @@
        usersService.editUserInfo(editUsersRequest);
        return  ApiResponse.success("更新成功");
    }
    @UserLoginRequired
    @ApiOperation(value = "门店分页", notes = "员工端小程序")
    @PostMapping("/shopPage")
@@ -154,7 +157,7 @@
    @UserLoginRequired
    @ApiOperation(value = "修改门店信息", notes = "员工端小程序")
    @GetMapping("/updShop")
    @PostMapping("/updShop")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
@@ -163,11 +166,16 @@
        return ApiResponse.success("操作成功");
    }
    @UserLoginRequired
    @ApiOperation(value = "获取个人名片", notes = "员工端小程序")
    @PostMapping("/getUserCard")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<String> getUserCard() {
        return  ApiResponse.success(usersService.getUserCard(this.getLoginUserInfo()));
    }
    @ApiOperation(value = "获取内容分享海报", notes = "获取内容分享海报,加小程序码")
    @PostMapping("/getContentShareImg")
@@ -208,5 +216,20 @@
        List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest);
        return ApiResponse.success("查询成功",ztTagInfoResponseList);
    }
    @UserLoginRequired
    @ApiOperation(value = "用户注销", notes = "员工端小程序")
    @PostMapping("/logOff")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse logOff() {
        ZTBaseRequst ztBaseRequst = usersService.logOff(getUserId());
        if(Objects.nonNull(ztBaseRequst)){
            getZhongTaiDataService.userLogout(ztBaseRequst);
        }
        return  ApiResponse.success("操作成功");
    }
}