package com.doumee.api.web; import cn.hutool.http.HttpRequest; import com.amazonaws.util.Md5Utils; import com.doumee.biz.system.SystemDataPermissionBiz; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.biz.zbom.ZbomCRMService; import com.doumee.biz.zbom.ZbomZhongTaiService; import com.doumee.config.annotation.LoginRequired; import com.doumee.config.annotation.UserLoginRequired; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.News; import com.doumee.dao.business.model.Users; import com.doumee.dao.web.reqeust.GenerateQRCodeRequest; 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 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.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.Md5Crypt; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.tomcat.util.security.MD5Encoder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/7/10 18:06 */ @Api(tags = "【B端小程序】客户管理接口") @Trace(exclude = true) @RestController @RequestMapping("/web/customer") @Slf4j public class CustomerManageApi extends ApiController{ @Autowired public ZbomZhongTaiService zbomZhongTaiService; @Autowired public SmsEmailService smsEmailService; @Autowired public ZbomCRMService zbomCRMService; @Autowired public NewsService newsService; @Autowired public GetZhongTaiDataService getZhongTaiDataService; @Autowired public UsersService usersService; @Autowired public SystemDictDataBiz systemDictDataBiz; @UserLoginRequired @LoginRequired @ApiOperation(value = "【C端小程序】获取首页志说装修四个模块类目数据", notes = "获取首页志说装修四个模块类目数据,背景图暂时写死,参考UI") @PostMapping("/getZSZXCatalogs") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) }) public ApiResponse getZSZXCatalogs() { return ApiResponse.success(getZhongTaiDataService.getZSZXCatalogs(getMemberId(),getUserType())); } @UserLoginRequired @ApiOperation(value = "【B端小程序】每日上新数据") @GetMapping("/getDailyUpdates") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) }) public ApiResponse getDailyUpdates() { return ApiResponse.success(newsService.getDailyUpdatesResponse()); } @UserLoginRequired @ApiOperation("【B端小程序】 推广咨询分页") @PostMapping("/newsPage") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse> newsPage (@RequestBody PageWrap pageWrap) { pageWrap.getModel().setIsPublish(Constants.ONE); pageWrap.getModel().setStatus(Constants.ZERO); return ApiResponse.success(newsService.findPage(pageWrap)); } @UserLoginRequired @ApiOperation(value = "获取客户管理授权-列表跳转地址", notes = "获取客户管理授权跳转地址") @GetMapping("/getCrmAuthUrl") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "类型 0客户列表 1跳转新增意向客户", required = true) }) public ApiResponse getCrmAuthUrl(@RequestParam Integer type) { Users users = this.getLoginUserInfo(); return ApiResponse.success(zbomCRMService.getCrmGoUrl(users.getIamUsername(),type,users.getIamId())); } }