| | |
| | | package com.doumee.api.web; |
| | | |
| | | 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.ZTContentListRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.*; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.reqeust.EditMemberRequest; |
| | | import com.doumee.dao.web.reqeust.WxPhoneRequest; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | 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; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | * @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; |
| | |
| | | @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 = "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()); |
| | | //同步导购绑定信息 |
| | | if(StringUtils.isNotBlank(editMemberRequest.getPhone())){ |
| | | customerUserService.syncByPhone(editMemberRequest.getPhone()); |
| | | } |
| | | return ApiResponse.success("更新成功",memberService.updMemberDetail(editMemberRequest)); |
| | | } |
| | | |
| | | @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()); |
| | | //同步导购绑定信息 |
| | | if(StringUtils.isNotBlank(editMemberRequest.getPhone())){ |
| | | customerUserService.syncByPhone(editMemberRequest.getPhone()); |
| | | } |
| | | return ApiResponse.success("更新成功",memberService.updMemberPhone(editMemberRequest)); |
| | | } |
| | | |
| | | |
| | | @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) { |
| | | customerUserService.syncByPhone(phone); |
| | | return ApiResponse.success("同步成功"); |
| | | } |
| | | |
| | | @LoginRequired |
| | |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "装修计算器信息存储", notes = "客户端小程序") |
| | | @PostMapping("/saveRenovationCalculator") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse saveRenovationCalculator(@RequestBody RenovationCalculatorDTO renovationCalculatorDTO) { |
| | | renovationCalculatorDTO.setMemberId(getMemberId()); |
| | | CustomerLog customerLog =customerService.saveRenovationCalculator(renovationCalculatorDTO); |
| | | zbomCRMService.dealCustomerLogData(customerLog); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "0元定制信息", notes = "客户端小程序") |
| | | @PostMapping("/saveFreeCustomizationApply") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse saveFreeCustomizationApply(@RequestBody FreeCustomizationDTO freeCustomizationDTO) { |
| | | freeCustomizationDTO.setMemberId(getMemberId()); |
| | | CustomerLog customerLog = customerService.saveFreeCustomizationApply(freeCustomizationDTO); |
| | | zbomCRMService.dealCustomerLogData(customerLog); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | /* @LoginRequired |
| | | @ApiOperation(value = "测试装修风格", notes = "客户端小程序") |
| | | @PostMapping("/saveTestTrimStyle") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse saveTestTrimStyle(@RequestBody TestTrimStyleDTO testTrimStyleDTO) { |
| | | testTrimStyleDTO.setMemberId(getMemberId()); |
| | | CustomerLog customerLog = customerService.saveTestTrimStyle(testTrimStyleDTO); |
| | | zbomCRMService.dealCustomerLogData(customerLog); |
| | | return ApiResponse.success("操作成功"); |
| | | }*/ |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "用户注销", notes = "客户端小程序") |
| | | @GetMapping("/logOff") |
| | | public ApiResponse logOff() { |
| | | getZhongTaiDataService.userLogout(memberService.logOff(getMemberId())); |
| | | 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("我的导购列表") |
| | | @PostMapping("/myUserPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<PageData<Users>> myUserPage (@RequestBody PageWrap<Users> pageWrap) { |
| | | 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 = "测试小程序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 = "客户端小程序") |
| | | @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().setCostomerId(getMemberId().toString()); |
| | | return ApiResponse.success(customerLogService.findPage(pageWrap)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @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 ) { |
| | | List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest); |
| | | return ApiResponse.success("查询成功",ztCatalogInfoResponseList); |
| | | } |
| | | |
| | | |
| | | |
| | | @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 ) { |
| | | List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest); |
| | | return ApiResponse.success("查询成功",ztTagInfoResponseList); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "内容分页 - 中台", notes = "客户端小程序") |
| | | @PostMapping("/pageContentList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTContentListResponse>> pageContentList(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(Constants.CUSTOMER); |
| | | ZTBasePageResponse<ZTContentListResponse> ztBasePageResponse= getZhongTaiDataService.pageContentList(ztContentListRequest); |
| | | return ApiResponse.success("查询成功",ztBasePageResponse); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "内容详情 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/getContentInfo") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse<ZTContentInfoResponse> getContentInfo(@RequestParam String id) { |
| | | ZTContentInfoResponse ztContentInfoResponse= getZhongTaiDataService.getContentInfo(id,Constants.CUSTOMER,getMemberId()); |
| | | return ApiResponse.success("查询成功",ztContentInfoResponse); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "内容收藏 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/collectContent") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse collectContent(@RequestParam String id) { |
| | | getZhongTaiDataService.collectContent(getMemberId(),Constants.CUSTOMER,id); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "内容喜欢 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/likeContent") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse likeContent(@RequestParam String id) { |
| | | getZhongTaiDataService.likeContent(getMemberId(),Constants.CUSTOMER,id); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "内容分享 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/shareContent") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse shareContent(@RequestParam String id) { |
| | | getZhongTaiDataService.shareContent(getMemberId(),Constants.CUSTOMER,id); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "内容浏览 - 中台", notes = "客户端小程序") |
| | | @GetMapping("/viewContent") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true), |
| | | }) |
| | | public ApiResponse viewContent(@RequestParam String id) { |
| | | getZhongTaiDataService.viewContent(getMemberId(),Constants.CUSTOMER,id); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | @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)); |
| | | } |
| | | |
| | | |
| | | @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)); |
| | | } |
| | | |
| | | @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(Constants.CUSTOMER); |
| | | 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<ZTBasePageResponse<ZTCusCarouselImageResponse>> getZhongTaiCarouselImage(@RequestBody ZTContentListRequest ztContentListRequest) { |
| | | ztContentListRequest.setUserId(getMemberId()+""); |
| | | ztContentListRequest.setUserType(Constants.CUSTOMER); |
| | | ZTBasePageResponse<ZTCusCarouselImageResponse> ztBasePageResponse = getZhongTaiDataService.getZhongTaiCarouselImage(ztContentListRequest); |
| | | return ApiResponse.success("获取成功",ztBasePageResponse); |
| | | } |
| | | |
| | | } |