jiangping
2024-09-27 04b4bddaac0a222760113899568d20b45af701f4
server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -1,24 +1,40 @@
package com.doumee.api.web;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.biz.zbom.model.zhongtai.*;
import com.doumee.biz.zbom.model.zhongtai.response.*;
import com.doumee.config.annotation.LoginRequired;
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.Member;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.wx.SendWxMessage;
import com.doumee.dao.business.model.*;
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.commons.lang3.StringUtils;
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.*;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.beans.Customizer;
import java.io.InputStream;
import java.util.List;
import java.util.Objects;
/**
 * Created by IntelliJ IDEA.
@@ -26,13 +42,12 @@
 * @Author : Rk
 * @create 2024/7/10 14:03
 */
@Api(tags = "客户端小程序用户业务")
@Api(tags = "【C端小程序】用户业务")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/customer")
@Slf4j
public class CustomerApi extends ApiController{
    @Autowired
    private MemberService memberService;
@@ -43,15 +58,52 @@
    @Autowired
    private CustomerService customerService;
    @Autowired
    private GetZhongTaiDataService getZhongTaiDataService;
    @Autowired
    private ShopService shopService;
    @Autowired
    private UsersService usersService;
    @Autowired
    private ZbomCRMService zbomCRMService;
    @Autowired
    private CustomerUserService customerUserService;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private CustomerLogService customerLogService;
    @Autowired
    private NewsService newsService;
    @Autowired
    private ActionsService actionsService;
    @ApiOperation(value = "客户端小程序登陆", notes = "客户端小程序")
    @GetMapping("/wxLoginCustomer")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "微信code", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "userId", value = "导购主键", required = false),
    })
    public ApiResponse<AccountResponse> wxLoginCustomer(@RequestParam String code) {
        return  ApiResponse.success(memberService.wxLogin(code));
    public ApiResponse<AccountResponse> wxLoginCustomer(@RequestParam String code,String userId) {
        return  ApiResponse.success(memberService.wxLogin(code,userId));
    }
    @ApiOperation(value = "test客户端小程序登陆", notes = "客户端小程序")
    @GetMapping("/testWxLoginCustomer")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "openid", value = "微信code", required = true),
    })
    public ApiResponse<AccountResponse> testWxLoginCustomer(@RequestParam String openid) {
        return  ApiResponse.success(memberService.testLogin(openid));
    }
    @LoginRequired
    @ApiOperation(value = "获取手机号", notes = "客户端小程序")
@@ -69,10 +121,49 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse updMemberDetail(@RequestBody EditMemberRequest editMemberRequest) {
        editMemberRequest.setMemberId(getMemberId());
        memberService.updMemberDetail(editMemberRequest);
        return  ApiResponse.success("更新成功");
    public ApiResponse<Member> editMember(@RequestBody EditMemberRequest editMemberRequest) {
        editMemberRequest.setId(getMemberId());
        String  phone = editMemberRequest.getPhone();
        //同步导购绑定信息
        Member member =memberService.updMemberDetail(editMemberRequest);
        if(StringUtils.isNotBlank(phone)){
          customerUserService.syncByPhone(member);
          member = memberService.getMemberInfo(member.getId());
        }
        return  ApiResponse.success("更新成功",member);
    }
    @LoginRequired
    @ApiOperation(value = "绑定手机号信息", notes = "客户端小程序")
    @PostMapping("/binDingPhone")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<Member> binDingPhone(@RequestBody EditMemberRequest editMemberRequest) {
        editMemberRequest.setId(getMemberId());
        String phone =editMemberRequest.getPhone();
        Member member = memberService.updMemberPhone(editMemberRequest);
        //同步导购绑定信息
        if(StringUtils.isNotBlank(phone)){
            customerUserService.syncByPhone(member);
            member = memberService.getMemberInfo(getMemberId());
        }
        return  ApiResponse.success("更新成功",member);
    }
    @LoginRequired
    @ApiOperation(value = "同步导购绑定信息", notes = "客户端小程序")
    @GetMapping("/syncCustomerUser")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "手机号信息", required = true),
    })
    public ApiResponse syncCustomerUser(@RequestParam String phone) {
        if(StringUtils.isNotBlank(getLoginMemberInfo().getPhone())){
            customerUserService.syncByPhone(getLoginMemberInfo());
        }
        return  ApiResponse.success("同步成功");
    }
    @LoginRequired
@@ -101,7 +192,8 @@
    })
    public ApiResponse saveRenovationCalculator(@RequestBody RenovationCalculatorDTO renovationCalculatorDTO) {
        renovationCalculatorDTO.setMemberId(getMemberId());
        customerService.saveRenovationCalculator(renovationCalculatorDTO);
        CustomerLog customerLog =customerService.saveRenovationCalculator(renovationCalculatorDTO);
        zbomCRMService.dealCustomerLogData(customerLog);
        return  ApiResponse.success("操作成功");
    }
@@ -114,11 +206,12 @@
    })
    public ApiResponse saveFreeCustomizationApply(@RequestBody FreeCustomizationDTO freeCustomizationDTO) {
        freeCustomizationDTO.setMemberId(getMemberId());
        customerService.saveFreeCustomizationApply(freeCustomizationDTO);
        CustomerLog customerLog = customerService.saveFreeCustomizationApply(freeCustomizationDTO);
        zbomCRMService.dealCustomerLogData(customerLog);
        return  ApiResponse.success("操作成功");
    }
    @LoginRequired
   /* @LoginRequired
    @ApiOperation(value = "测试装修风格", notes = "客户端小程序")
    @PostMapping("/saveTestTrimStyle")
    @ApiImplicitParams({
@@ -126,9 +219,424 @@
    })
    public ApiResponse saveTestTrimStyle(@RequestBody TestTrimStyleDTO testTrimStyleDTO) {
        testTrimStyleDTO.setMemberId(getMemberId());
        customerService.saveTestTrimStyle(testTrimStyleDTO);
        CustomerLog customerLog = customerService.saveTestTrimStyle(testTrimStyleDTO);
        zbomCRMService.dealCustomerLogData(customerLog);
        return  ApiResponse.success("操作成功");
    }*/
    @LoginRequired
    @ApiOperation(value = "用户注销", notes = "客户端小程序")
    @GetMapping("/logOff")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse logOff() {
        ZTBaseRequst ztBaseRequst = memberService.logOff(getUserId(),getToken());
        if(Objects.nonNull(ztBaseRequst)){
            getZhongTaiDataService.userLogout(ztBaseRequst);
        }
        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) {
        PageData<Shop> pageData = shopService.queryShopByLL(pageWrap);
        if(Objects.nonNull(pageWrap.getModel().getLatitude())&&Objects.nonNull(pageWrap.getModel().getLongitude())){
            //更新人员经纬度信息
            EditMemberRequest editMemberRequest = new EditMemberRequest();
            editMemberRequest.setId(getMemberId());
            editMemberRequest.setLatitude(pageWrap.getModel().getLatitude());
            editMemberRequest.setLongitude(pageWrap.getModel().getLongitude());
            memberService.updMemberDetail(editMemberRequest);
        }
        return ApiResponse.success(pageData);
    }
    @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("我的导购列表")
    @PostMapping("/myUserPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<PageData<Users>> myUserPage (@RequestBody PageWrap<Users> pageWrap) {
        pageWrap.getModel().setMemberId(getMemberId());
        return ApiResponse.success(usersService.findPage(pageWrap));
    }
    @LoginRequired
    @ApiOperation(value = "导购详情", notes = "客户端小程序")
    @GetMapping("/usersDetailByIamId")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "iamId", value = "导购IAM编码", required = true)
    })
    public ApiResponse<Users> usersDetailByIamId (@RequestParam String iamId) {
        return ApiResponse.success(usersService.usersDetailByIamId(iamId));
    }
    @LoginRequired
    @ApiOperation(value = "获取分享小程序二维码(图片流,img标签src指定)", notes = "客户端小程序")
    @GetMapping("/generateImg")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public void generateImg(HttpServletResponse response) {
        try{
            response.setHeader("Cache-Control", "no-store, no-cache");
            response.setContentType("image/jpeg");
            InputStream inputStream = Constants.generateWxMiniImgStream(
                    systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_TOKEN_CUSTOMER).getCode(),"123",""
            );
            ImageIO.write(ImageIO.read(inputStream),"png",response.getOutputStream());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    @LoginRequired
    @ApiOperation(value = "我的预约 分页查询",notes = "客户端小程序")
    @PostMapping("/customerLogPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<PageData<CustomerLog>> customerLogPage(@RequestBody PageWrap<CustomerLog> pageWrap) {
        pageWrap.getModel().setMemberId(getMemberId());
        pageWrap.getModel().setIsHiddenPhone(Constants.ZERO);
        return ApiResponse.success(customerLogService.findPage(pageWrap));
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "分类数据 - 中台", notes = "客户端小程序")
    @PostMapping("/getCatalogList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
        ztCatalogListRequest.setUserId(getMemberId()+"");
        ztCatalogListRequest.setUserType(getUserType());
        List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest);
        return ApiResponse.success("查询成功",ztCatalogInfoResponseList);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "标签数据 - 中台", notes = "客户端小程序")
    @PostMapping("/getCataLogTagList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
        ztCatalogListRequest.setUserId(getMemberId()+"");
        ztCatalogListRequest.setUserType(getUserType());
        List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest);
        return ApiResponse.success("查询成功",ztTagInfoResponseList);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "行为内容接口 - 中台", notes = "客户端小程序")
    @GetMapping("/actionDo")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "actionType", value = "行为类型:收藏:collect;取消收藏:collect_cancel;喜欢:like;取消喜欢:like_cancel;浏览:view;分享:share;下载:download", required = true),
    })
    public ApiResponse actionDo(@RequestParam String id,@RequestParam String actionType) {
        getZhongTaiDataService.actionDo(getMemberId(),getUserType(),id,actionType);
        return ApiResponse.success("操作成功");
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "定制服务列表", notes = "客户端小程序")
    @GetMapping("/getCustomizedNewsList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<News>> getCustomizedNewsList() {
        return ApiResponse.success("查询成功",newsService.getCustomizedNewsList(Constants.ONE,null,null));
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "定制服务详情", notes = "客户端小程序")
    @GetMapping("/getCustomizedNewsDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Long", name = "id", value = "业务数据主键", required = true),
    })
    public ApiResponse<News> getCustomizedNewsDetail(@RequestParam Long id) {
        return ApiResponse.success("查询成功",newsService.getCustomizedNewsDetail(id));
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "保存推广咨询分享记录", notes = "客户端小程序")
    @GetMapping("/saveShareRecord")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Long", name = "id", value = "推广咨询主键", required = true),
    })
    public ApiResponse saveShareRecord(@RequestParam Long id) {
        newsService.saveShareRecord(id,getMemberId());
        return ApiResponse.success("操作成功");
    }
    @LoginRequired
    @ApiOperation(value = "我的喜欢列表", notes = "客户端小程序")
    @PostMapping("/getZhongTaiCusFavorite")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTCusFavoritesInfoResponse>> getZhongTaiCusFavorite(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTCusFavoritesInfoResponse> ztBasePageResponse = getZhongTaiDataService.getZhongTaiCusFavorite(ztContentListRequest);
        return ApiResponse.success("获取成功",ztBasePageResponse);
    }
    @LoginRequired
    @ApiOperation(value = "轮播图列表", notes = "客户端小程序")
    @PostMapping("/getZhongTaiCarouselImage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<ZTCusCarouselImageResponse>> getZhongTaiCarouselImage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        List<ZTCusCarouselImageResponse> ztCusCarouselImageResponseList = getZhongTaiDataService.getZhongTaiCarouselImage(ztContentListRequest);
        return ApiResponse.success("获取成功",ztCusCarouselImageResponseList);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "轮播图详情", notes = "客户端小程序")
    @PostMapping("/getZhongTaiCarouselImageDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTCusCarouselImageResponse> getZhongTaiCarouselImageDetail(@RequestBody ZTDataDetailRequest ztDataDetailRequest) {
        ztDataDetailRequest.setUserId(getMemberId()+"");
        ztDataDetailRequest.setUserType(getUserType());
        ZTCusCarouselImageResponse ztCusCarouselImageResponse = getZhongTaiDataService.getZhongTaiCarouselImageDetail(ztDataDetailRequest);
        return ApiResponse.success("获取成功",ztCusCarouselImageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "咨询分页列表 - 中台", notes = "客户端小程序")
    @PostMapping("/getZhongTaiProductNewsPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTProductNewsInfoResponse>> getZhongTaiProductNewsPage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTProductNewsInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiProductNewsPage(ztContentListRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "产品分页列表 - 中台", notes = "客户端小程序")
    @PostMapping("/getZhongTaiProductPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTProductInfoResponse>> getZhongTaiProductPage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTProductInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiProductPage(ztContentListRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "实景分页列表 - 中台", notes = "客户端小程序")
    @PostMapping("/getZhongTaiRealcasePage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTRealcaseInfoResponse>> getZhongTaiRealcasePage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTRealcaseInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiRealcasePage(ztContentListRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "视频分页列表 - 中台", notes = "客户端小程序")
    @PostMapping("/getZhongTaiVideoPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTVideoInfoResponse>> getZhongTaiVideoPage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTVideoInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiVideoPage(ztContentListRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "全屋案例分页列表 - 中台", notes = "客户端小程序")
    @PostMapping("/getZhongTaiWholecasePage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTCaseInfoResponse>> getZhongTaiWholecasePage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTCaseInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiWholecasePage(ztContentListRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "志说装修分页列表 - 中台", notes = "客户端小程序")
    @PostMapping("/getZhongTaiZbDecoPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<ZTBasePageResponse<ZTZbDecoInfoResponse>> getZhongTaiZbDecoPage(@RequestBody ZTContentListRequest ztContentListRequest) {
        ztContentListRequest.setUserId(getMemberId()+"");
        ztContentListRequest.setUserType(getUserType());
        ZTBasePageResponse<ZTZbDecoInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiZbDecoPage(ztContentListRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "全屋案例详情 - 中台", notes = "客户端小程序")
    @GetMapping("/getWholecaseInfo")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTCaseInfoResponse> getWholecaseInfo(@RequestParam String id,String salesId) {
        ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztCaseInfoResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @GetMapping("/getProductNewsInfo")
    @ApiOperation(value = "产品资讯详情 - 中台", notes = "客户端小程序")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTProductNewsInfoResponse> getProductNewsInfo(@RequestParam String id,String salesId) {
        ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztProductNewsInfoResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "实景案例 - 中台", notes = "客户端小程序")
    @GetMapping("/getRealcaseInfo")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTRealcaseInfoResponse> getRealcaseInfo(@RequestParam String id,String salesId) {
        ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztRealcaseInfoResponse);
    }
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "产品详情 - 中台", notes = "客户端小程序")
    @GetMapping("/getProductInfo")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTProductInfoResponse> getProductInfo(@RequestParam String id,String salesId) {
        ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztProductInfoResponse);
    }
    @UserLoginRequired
    @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(getUserType());
        ZTBasePageResponse<ZTCollectLikeInfoResponse>  ztBasePageResponse= getZhongTaiDataService.collectLikePage(ztCollectLikeRequest);
        return ApiResponse.success("查询成功",ztBasePageResponse);
    }
    @ApiOperation(value = "测试发送微信消息", notes = "客户端小程序")
    @GetMapping("/testSendWxMessage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "openid", value = "小程序id", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "token", required = true),
    })
    public ApiResponse testSendWxMessage(@RequestParam String openid,@RequestParam String token) {
        SendWxMessage sendWxMessage = new SendWxMessage();
        sendWxMessage.testMessage(openid,token);
        return ApiResponse.success("操作成功");
    }
}