From fd83395529437e0c02b8d69b039fe52d40a4ec62 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期一, 04 十二月 2023 12:07:36 +0800 Subject: [PATCH] 小程序接口 --- guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppUserServiceImpl.java | 212 ++++++++ guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoDTO.java | 22 guns-admin/src/main/java/com/stylefeng/guns/modular/api/BannerController.java | 2 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HouseQuery.java | 21 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryListRes.java | 32 + guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java | 168 +++++- guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedBackServiceImpl.java | 50 ++ guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HousingDemand.java | 15 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml | 2 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedBackMapper.xml | 6 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java | 3 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryRes.java | 19 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedBackService.java | 18 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/HouseResourceMapper.java | 9 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java | 4 guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AppUser.java | 19 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectListRes.java | 72 +++ guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml | 102 ++++ guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/weChat/WeChatUtil.java | 4 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchIntermediaryReq.java | 23 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectRes.java | 27 + guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAppUserService.java | 20 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoQuery.java | 17 guns-admin/src/main/java/com/stylefeng/guns/modular/api/HousingDemandController.java | 14 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AppUserMapper.java | 11 guns-admin/src/main/java/com/stylefeng/guns/modular/api/AppUserController.java | 172 ++++++ guns-admin/src/main/java/com/stylefeng/guns/modular/api/EncyclopedicKnowledgeController.java | 10 guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java | 1 guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java | 56 + guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/FeedBack.java | 52 ++ guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedBackMapper.java | 16 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml | 36 + guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IHouseResourceService.java | 10 guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HouseResource.java | 23 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java | 6 guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UpdateAppUser.java | 31 + guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/AddHouseReq.java | 80 +++ 37 files changed, 1,301 insertions(+), 84 deletions(-) diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java index c60adfa..b0f29b1 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java @@ -51,7 +51,6 @@ ByteSource credentialsSalt = new Md5Hash(salt); SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( new ShiroUser(), credentials, credentialsSalt, ""); - //校验用户账号密码 HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AppUserController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AppUserController.java index 55d15fd..6067cfb 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AppUserController.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AppUserController.java @@ -1,17 +1,26 @@ package com.stylefeng.guns.modular.api; +import com.stylefeng.guns.modular.system.model.AppUser; +import com.stylefeng.guns.modular.system.model.FeedBack; +import com.stylefeng.guns.modular.system.model.HouseResource; import com.stylefeng.guns.modular.system.service.IAppUserService; +import com.stylefeng.guns.modular.system.service.IFeedBackService; +import com.stylefeng.guns.modular.system.service.IHouseResourceService; +import com.stylefeng.guns.modular.system.service.impl.FeedBackServiceImpl; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.stylefeng.guns.modular.system.warpper.req.RegisterAccountReq; +import com.stylefeng.guns.modular.system.warpper.req.*; import com.stylefeng.guns.modular.system.warpper.res.AppletLoginRes; +import com.stylefeng.guns.modular.system.warpper.res.CollectRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryRes; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; /** * @author zhibing.pu @@ -23,7 +32,10 @@ @Autowired private IAppUserService appUserService; - + @Autowired + private IFeedBackService feedBackService; + @Autowired + private IHouseResourceService houseResourceService; @ResponseBody @@ -32,19 +44,157 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "jscode", value = "微信jscode", required = true) }) - public ResultUtil<AppletLoginRes> appletLogin(String jscode){ - return appUserService.appletLogin(jscode); + public ResultUtil<AppletLoginRes> appletLogin(String jscode,String encryptedPhoneData,String phoneIv){ + RegisterAccountReq req = new RegisterAccountReq(); + req.setJscode(jscode); + req.setEncryptedPhoneData(encryptedPhoneData); + req.setPhone_iv(phoneIv); + return appUserService.appletLogin(req); } - - @ResponseBody @PostMapping("/base/appUser/registerAccount") @ApiOperation(value = "小程序注册账户", tags = {"登录注册"}) - public ResultUtil<AppletLoginRes> registerAccount(RegisterAccountReq req){ + public ResultUtil<AppletLoginRes> registerAccount(@RequestBody RegisterAccountReq req){ return appUserService.registerAccount(req); } + // todo 放行 + @ResponseBody + @PostMapping("/base/appUser/userInfo") + @ApiOperation(value = "个人中心", tags = {"个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") + }) + public ResultUtil<AppUser> userInfo(){ + return appUserService.userInfo(); + } + // todo 放行 + @ResponseBody + @PostMapping("/base/appUser/release") + @ApiOperation(value = "发布", tags = {"个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") + }) + public ResultUtil<CollectRes> release(){ + return appUserService.collect(); + } + + // todo 放行 + @ResponseBody + @PostMapping("/base/appUser/collect") + @ApiOperation(value = "收藏", tags = {"个人中心"}) + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") + public ResultUtil<CollectRes> collect(@RequestBody UserInfoQuery query){ + return appUserService.release(query); + } + + // todo 放行 + @ResponseBody + @GetMapping("/base/appUser/edit/{id}") + @ApiOperation(value = "编辑发布的房源", tags = {"个人中心"}) + public ResultUtil<HouseResource> edit(@PathVariable("id") Integer id){ + + return ResultUtil.success(houseResourceService.selectById(id)); + } + // todo 放行 + @ResponseBody + @PostMapping("/base/appUser/auth/{id}") + @ApiOperation(value = "中介认证", tags = {"个人中心"}) + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", + required = true, paramType = "header") + public ResultUtil auth(@RequestBody AppUser appUser){ + AppUser appUser1 = appUserService.getAppUser(); + appUser1.setAgentLicenceCode(appUser.getAgentLicenceCode()); + appUser1.setCompanyName(appUser.getCompanyName()); + appUser1.setCompanyAddress(appUser.getCompanyAddress()); + appUser1.setBusinessCardPhoto(appUser.getBusinessCardPhoto()); + appUser1.setCityId(appUser.getCityId()); + appUser1.setDistrictId(appUser.getDistrictId()); + appUser1.setAuditStatus(1); + appUserService.updateById(appUser1); + return ResultUtil.success(); + } + // todo 放行 + @ResponseBody + @GetMapping("/base/appUser/editSubmit") + @ApiOperation(value = "编辑提交", tags = {"个人中心"}) + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", + required = true, paramType = "header") + public ResultUtil editSubmit(@RequestBody AddHouseReq req){ + HouseResource houseResource = new HouseResource(); + BeanUtils.copyProperties(req,houseResource); + houseResource.setInsertTime(new Date()); + houseResource.setAuthStatus(1); + houseResource.setIsDelete(0); + houseResource.setUpdateUserId(appUserService.getAppUser().getId()); + houseResource.setUpdateTime(new Date()); + houseResource.setStatus(0); + houseResource.setLeaseTime(req.getTime()); + houseResource.setFirmHouse(req.getFirmHouse()); + if (req.getTime().contains("年")){ + houseResource.setRentalDuration(2); + }else{ + houseResource.setRentalDuration(1); + } + return ResultUtil.success(); + } + // todo 放行 + @ResponseBody + @GetMapping("/base/appUser/operate") + @ApiOperation(value = "发布-删除/下架/顶上去", tags = {"个人中心"}) + public ResultUtil delete(@RequestBody UserInfoDTO dto){ + switch (dto.getType()){ + case 1: + HouseResource houseResource = houseResourceService.selectById(dto.getId()); + houseResource.setIsDelete(1); + houseResourceService.updateById(houseResource); + break; + case 2: + HouseResource houseResource1 = houseResourceService.selectById(dto.getId()); + houseResource1.setStatus(0); + houseResourceService.updateById(houseResource1); + break; + case 3: + HouseResource houseResource2 = houseResourceService.selectById(dto.getId()); + houseResource2.setInsertTime(new Date()); + houseResourceService.updateById(houseResource2); + break; + } + + return ResultUtil.success(); + } + + // todo 放行 + @ResponseBody + @PostMapping("/base/appUser/feedback") + @ApiOperation(value = "意见反馈", tags = {"个人中心"}) + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", + required = true, paramType = "header") + public ResultUtil feedback(@RequestBody FeedBack feedBack){ + feedBack.setAppUserId(appUserService.getAppUser().getId()); + feedBack.setInsertTime(new Date()); + feedBackService.insert(feedBack); + return ResultUtil.success(); + } + + // todo 放行 + @ResponseBody + @PostMapping("/base/appUser/update") + @ApiOperation(value = "个人资料修改", tags = {"个人中心"}) + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", + required = true, paramType = "header") + public ResultUtil update(@RequestBody UpdateAppUser user){ + AppUser appUser = appUserService.getAppUser(); + if (StringUtils.hasLength(user.getProfilePhoto())){ + appUser.setProfilePhoto(user.getProfilePhoto()); + } + if (StringUtils.hasLength(user.getNickname())){ + appUser.setNickname(user.getNickname()); + } + appUserService.updateById(appUser); + return ResultUtil.success(); + } } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BannerController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BannerController.java index d496a7f..f1669a7 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BannerController.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BannerController.java @@ -31,7 +31,7 @@ @GetMapping("/base/banner/getBanners") @ApiOperation(value = "获取各种banner", tags = {"首页"}) @ApiImplicitParams({ - @ApiImplicitParam(name = "position", value = "位置(1=首页,2=详情)", required = true) + @ApiImplicitParam(name = "position", value = "位置(1=首页,2=租房,3=买房,4=公司盘,5=求房源)", required = true) }) public ResultUtil<List<BannerRes>> getBanners(Integer position){ List<BannerRes> banners = bannerService.getBanners(position); diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/EncyclopedicKnowledgeController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/EncyclopedicKnowledgeController.java index df3893c..688632c 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/EncyclopedicKnowledgeController.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/EncyclopedicKnowledgeController.java @@ -2,11 +2,13 @@ import com.stylefeng.guns.modular.system.model.EncyclopedicKnowledge; import com.stylefeng.guns.modular.system.model.SysDataType; +import com.stylefeng.guns.modular.system.service.IAppUserService; import com.stylefeng.guns.modular.system.service.IEncyclopedicKnowledgeService; import com.stylefeng.guns.modular.system.service.ISysDataTypeService; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.stylefeng.guns.modular.system.warpper.res.EncyclopedicKnowledgeInfoRes; -import com.stylefeng.guns.modular.system.warpper.res.EncyclopedicKnowledgeRes; +import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; +import com.stylefeng.guns.modular.system.warpper.req.SearchIntermediaryReq; +import com.stylefeng.guns.modular.system.warpper.res.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -75,4 +77,8 @@ public ResultUtil upvoteEncyclopedicKnowledge(Integer id){ return encyclopedicKnowledgeService.upvoteEncyclopedicKnowledge(id); } + + + + } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java index 05aab6c..631d412 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HouseResourceController.java @@ -1,13 +1,9 @@ package com.stylefeng.guns.modular.api; import com.stylefeng.guns.modular.system.model.HouseType; -import com.stylefeng.guns.modular.system.service.ICollectionHouseResourceService; -import com.stylefeng.guns.modular.system.service.IHouseResourceService; -import com.stylefeng.guns.modular.system.service.IHouseTypeService; -import com.stylefeng.guns.modular.system.service.IReportHouseResourceService; +import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; -import com.stylefeng.guns.modular.system.warpper.req.ReportHouseResourceReq; -import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; +import com.stylefeng.guns.modular.system.warpper.req.*; import com.stylefeng.guns.modular.system.warpper.res.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -33,8 +29,28 @@ private ICollectionHouseResourceService collectionHouseResourceService; @Autowired private IReportHouseResourceService reportHouseResourceService; + @Autowired + private IAppUserService appUserService; - + // todo 放行 + @ResponseBody + @PostMapping("/base/addHouse/confirm") + @ApiOperation(value = "中介身份提示", tags = {"发布"}) + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", + required = true, paramType = "header") + public ResultUtil confirm(@RequestBody Integer userType){ + return houseResourceService.confirm(userType); + } + // todo 放行 + @ResponseBody + @PostMapping("/base/addHouse/add") + @ApiOperation(value = "发布房源", tags = {"发布"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") + }) + public ResultUtil addHouse(@RequestBody AddHouseReq req){ + return houseResourceService.addHouse(req); + } @ResponseBody @GetMapping("/base/houseResource/searchHouseResource") @@ -44,9 +60,6 @@ return ResultUtil.success(searchHouseResource); } - - - @ResponseBody @GetMapping("/base/houseType/getHouseType") @ApiOperation(value = "获取房源类型", tags = {"首页"}) @@ -54,7 +67,6 @@ List<HouseType> houseTypes = houseTypeService.selectList(null); return ResultUtil.success(houseTypes); } - @ResponseBody @GetMapping("/base/houseResource/getDistrictHouseResourceNumber") @@ -74,7 +86,7 @@ @ApiOperation(value = "获取房源详情", tags = {"详情"}) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "房源id", required = true), - @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = false, paramType = "header") +// @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = false, paramType = "header") }) public ResultUtil<HouseResourceInfoRes> getHouseResourceInfo(Integer id){ HouseResourceInfoRes houseResourceInfo = houseResourceService.getHouseResourceInfo(id); @@ -123,9 +135,25 @@ @ResponseBody @PostMapping("/api/houseResource/addReportHouseResource") @ApiOperation(value = "添加房源举报", tags = {"详情"}) - public ResultUtil addReportHouseResource(ReportHouseResourceReq req){ + public ResultUtil addReportHouseResource(@RequestBody ReportHouseResourceReq req){ return reportHouseResourceService.addReportHouseResource(req); } - + @ResponseBody + @PostMapping("/base/intermediary/list") + @ApiOperation(value = "找中介", tags = {"服务"}) + public ResultUtil<SearchIntermediaryRes> searchIntermediaryList(@RequestBody SearchIntermediaryReq req){ + SearchIntermediaryRes res= appUserService.searchIntermediaryList(req); + return ResultUtil.success(res); + } + @ResponseBody + @PostMapping("/base/intermediary/listHouse") + @ApiOperation(value = "个人详情-我的房源", tags = {"服务"}) + @ApiImplicitParams({ +// @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") + }) + public ResultUtil<SearchHouseResourceRes> listHouse(@RequestBody HouseQuery query){ + SearchHouseResourceRes res= houseResourceService.listHouse(query); + return ResultUtil.success(res); + } } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HousingDemandController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HousingDemandController.java index 9ba0b8b..a76d17a 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HousingDemandController.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/HousingDemandController.java @@ -4,6 +4,7 @@ import com.stylefeng.guns.modular.system.service.IHousingDemandService; import com.stylefeng.guns.modular.system.service.IReportHousingDemandService; import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.warpper.req.AddHouseReq; import com.stylefeng.guns.modular.system.warpper.req.HousingDemandReq; import com.stylefeng.guns.modular.system.warpper.req.ReportHousingDemandReq; import com.stylefeng.guns.modular.system.warpper.req.SearchHousingDemandReq; @@ -41,16 +42,15 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") }) - public ResultUtil addHousingDemand(HousingDemandReq req){ + public ResultUtil addHousingDemand(@RequestBody HousingDemandReq req){ return housingDemandService.addHousingDemand(req); } - @ResponseBody @GetMapping("/base/housingDemand/searchHousingDemand") @ApiOperation(value = "求房源列表", tags = {"求房源"}) - public ResultUtil<SearchHousingDemandRes> searchHousingDemand(SearchHousingDemandReq req){ + public ResultUtil<SearchHousingDemandRes> searchHousingDemand(@RequestBody SearchHousingDemandReq req){ SearchHousingDemandRes searchHousingDemandRes = housingDemandService.searchHousingDemand(req); return ResultUtil.success(searchHousingDemandRes); } @@ -64,7 +64,7 @@ @ApiImplicitParam(name = "id", value = "数据id", required = true), @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = false, paramType = "header") }) - public ResultUtil<HousingDemandInfoRes> housingDemandInfo(Integer id){ + public ResultUtil<HousingDemandInfoRes> housingDemandInfo(@RequestBody Integer id){ HousingDemandInfoRes housingDemandInfoRes = housingDemandService.housingDemandInfo(id); return ResultUtil.success(housingDemandInfoRes); } @@ -77,7 +77,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") }) - public ResultUtil addReportHousingDemand(ReportHousingDemandReq req){ + public ResultUtil addReportHousingDemand(@RequestBody ReportHousingDemandReq req){ return reportHousingDemandService.addReportHousingDemand(req); } @@ -91,7 +91,7 @@ @ApiImplicitParam(name = "id", value = "房源id", required = true), @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header") }) - public ResultUtil collectionHousingDemand(Integer id){ + public ResultUtil collectionHousingDemand(@RequestBody Integer id){ return collectionHousingDemandService.collectionHousingDemand(id); } @@ -101,7 +101,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "房源id", required = true), }) - public ResultUtil<ContactInformationRes> getContactInformation(Integer id){ + public ResultUtil<ContactInformationRes> getContactInformation(@RequestBody Integer id){ ContactInformationRes contactInformation = housingDemandService.getContactInformation(id); return ResultUtil.success(contactInformation); } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AppUserMapper.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AppUserMapper.java index 6a3f31f..3b197f0 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AppUserMapper.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AppUserMapper.java @@ -2,10 +2,17 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.stylefeng.guns.modular.system.model.AppUser; +import com.stylefeng.guns.modular.system.warpper.req.SearchIntermediaryReq; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryListRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryRes; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface AppUserMapper extends BaseMapper<AppUser> { - - + List<SearchIntermediaryListRes> searchIntermediaryList(@Param("req") SearchIntermediaryReq req, + @Param("districtIds") List<Integer> districtIds, + @Param("cityIds")List<Integer> cityIds); } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedBackMapper.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedBackMapper.java new file mode 100644 index 0000000..e58e161 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedBackMapper.java @@ -0,0 +1,16 @@ +package com.stylefeng.guns.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.stylefeng.guns.modular.system.model.AppUser; +import com.stylefeng.guns.modular.system.model.FeedBack; +import com.stylefeng.guns.modular.system.warpper.req.SearchIntermediaryReq; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryListRes; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface FeedBackMapper extends BaseMapper<FeedBack> { + + + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/HouseResourceMapper.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/HouseResourceMapper.java index acc7a2a..aef4d41 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/HouseResourceMapper.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/HouseResourceMapper.java @@ -2,7 +2,10 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.stylefeng.guns.modular.system.model.HouseResource; +import com.stylefeng.guns.modular.system.warpper.req.HouseQuery; import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; +import com.stylefeng.guns.modular.system.warpper.req.UserInfoQuery; +import com.stylefeng.guns.modular.system.warpper.res.CollectListRes; import com.stylefeng.guns.modular.system.warpper.res.DistrictHouseResourceNumberRes; import com.stylefeng.guns.modular.system.warpper.res.SearchHouseResourceListRes; import org.apache.ibatis.annotations.Param; @@ -50,4 +53,10 @@ */ List<DistrictHouseResourceNumberRes> getDistrictHouseResourceNumber(@Param("userType") Integer userType, @Param("dataType") Integer dataType); + List<SearchHouseResourceListRes> listHouse(@Param("query") HouseQuery query); + + List<CollectListRes> collect(@Param("ids") List<Integer> ids); + + List<CollectListRes> release(@Param("query") UserInfoQuery query,@Param("ids")List<Integer> collect); + } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml index bed90e0..55c7584 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AppUserMapper.xml @@ -2,6 +2,38 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.stylefeng.guns.modular.system.dao.AppUserMapper"> - - + <select id="searchIntermediaryList" + resultType="com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryListRes"> + select t1.id,t1.profile_photo as profilePhoto,t1.nickname as nickname,t1.company_name as companyName, + t1.company_address as companyAddress,t1.introduce as introduce,t1.phone as phone, + COUNT(t2.id) AS houseCount + from t_app_user t1 + left join t_house_resource t2 on t1.id = t2.insert_user_id + <where> + <if test="null != req.name and '' != req.name"> + and t1.nickname = CONCAT('%', #{req.name}, '%') + </if> + <if test="null != cityIds"> + and t1.city_id in + <foreach collection="cityIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> + <if test="null != districtIds"> + and t1.district_id in + <foreach collection="districtIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> + and t1.audit_status = 2 + and t1.status = 1 + and t1.user_type = 3 + and t2.auth_status = 2 + and t2.is_delete = 0 + and t2.status = 1 + and t2.type=2 + </where> + group by t1.id + order by houseCount desc + </select> </mapper> \ No newline at end of file diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedBackMapper.xml b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedBackMapper.xml new file mode 100644 index 0000000..572f658 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedBackMapper.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.stylefeng.guns.modular.system.dao.FeedBackMapper"> + + +</mapper> \ No newline at end of file diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml index be88f26..e872552 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HouseResourceMapper.xml @@ -29,6 +29,7 @@ left join t_region rc on (hr.district_id = rc.id) left join t_region rp on (rp.id = rc.parent_id) where hr.is_delete = 0 and hr.`status` = 1 and hr.auth_status = 2 + and hr.type=2 <if test="null != req.type"> and hr.data_type = #{req.type} </if> @@ -41,13 +42,13 @@ <if test="null != req.content and '' != req.content"> and hr.title = CONCAT('%', #{req.content}, '%') </if> - <if test="null != cityIds"> + <if test="null != cityIds and cityIds.size()>0" > and hr.city_id in <foreach collection="cityIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </if> - <if test="null != districtIds"> + <if test="null != districtIds and districtIds.size()>0"> and hr.district_id in <foreach collection="districtIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -124,6 +125,7 @@ from t_house_resource hr left join t_app_user au on (hr.app_user_id = au.id) where hr.is_delete = 0 and hr.`status` = 1 and hr.auth_status = 2 + and hr.type=2 <if test="null != req.type"> and hr.data_type = #{req.type} </if> @@ -136,13 +138,13 @@ <if test="null != req.content and '' != req.content"> and hr.title = CONCAT('%', #{req.content}, '%') </if> - <if test="null != cityIds"> + <if test="null != cityIds and cityIds.size()>0" > and hr.city_id in <foreach collection="cityIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </if> - <if test="null != districtIds"> + <if test="null != districtIds and districtIds.size()>0"> and hr.district_id in <foreach collection="districtIds" item="item" index="index" separator="," open="(" close=")"> #{item} @@ -215,6 +217,7 @@ from t_house_resource hr left join t_app_user au on (hr.app_user_id = au.id) where hr.is_delete = 0 and hr.`status` = 1 and hr.auth_status = 2 + and hr.type=2 <if test="null != userType and 4 != userType"> and au.user_type = #{userType} and au.status = 1 and au.audit_status = 2 </if> @@ -229,6 +232,97 @@ left join t_region r on (dn.district_id = r.id) left join t_region pr on (pr.id = r.parent_id) </select> + <select id="listHouse" + resultType="com.stylefeng.guns.modular.system.warpper.res.SearchHouseResourceListRes"> + select + hr.id, + hr.house_photo as imgUrl, + hr.title, + hr.house_area as houseArea, + hr.house_model as houseModel, + concat(rp.`name`, rc.`name`) as address, + hr.longitude, + hr.latitude, + hr.sale_amount as saleAmount, + hr.elevator, + hr.drying_area as dryingArea, + hr.garden, + hr.carport, + hr.balcony, + hr.keep_pet as keepPet + from t_house_resource hr + left join t_region rc on (hr.district_id = rc.id) + left join t_region rp on (rp.id = rc.parent_id) + where hr.is_delete = 0 and hr.`status` = 1 and hr.auth_status = 2 + and hr.type=2 + and hr.app_user_id = #{query.id} + and hr.data_type = #{query.type} + </select> + <select id="collect" resultType="com.stylefeng.guns.modular.system.warpper.res.CollectListRes"> + select + hr.id, + hr.title, + hr.sale_amount as saleAmount, + hr.elevator, + hr.drying_area as dryingArea, + hr.garden, + hr.carport, + hr.balcony, + hr.city_id as cityId, + hr.district_id as districtId, + hr.keep_pet as keepPet, + hr.views_number as viewsNumber, + hr.code as code, + hr.leaseTime as leaseTime, + hr.data_type as dataType, + hr.insert_time as insertTime,hr.type as `type`, + hr.status as status + from t_house_resource hr + left join t_collection_house_resource t1 on hr.id = t1.house_resource_id + where hr.is_delete = 0 and hr.`status` = 1 and hr.auth_status = 2 + <if test="null != ids and ids.size()>0"> + and hr.id in + <foreach collection="ids" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> + </select> + <select id="release" resultType="com.stylefeng.guns.modular.system.warpper.res.CollectListRes"> + select + hr.id, + hr.title, + hr.sale_amount as saleAmount, + hr.elevator, + hr.drying_area as dryingArea, + hr.garden, + hr.carport, + hr.balcony, + hr.app_user_id as appUserId, + hr.city_id as cityId, + hr.district_id as districtId, + hr.keep_pet as keepPet, + hr.views_number as viewsNumber, + hr.code as code, + hr.leaseTime as leaseTime, + hr.data_type as dataType, + hr.house_photo as housePhoto, + hr.house_video as houseVideo, + hr.insert_time as insertTime,hr.type as `type`, + hr.status as status, + au.profile_photo as profilePhoto, + au.nickname as nickname, + au.user_type as userType + from t_house_resource hr + left join t_collection_house_resource t1 on hr.id = t1.house_resource_id + left join t_app_user au on hr.app_user_id = au.id + where hr.is_delete = 0 and hr.`status` = 1 and hr.auth_status = 2 + <if test="null != ids and ids.size()>0"> + and hr.id in + <foreach collection="ids" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> + </select> </mapper> \ No newline at end of file diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml index 51dad7e..6fdf4c0 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/HousingDemandMapper.xml @@ -6,6 +6,7 @@ <select id="searchHousingDemand" resultType="com.stylefeng.guns.modular.system.warpper.res.SearchHousingDemandListRes"> select hd.id, + hd.app_user_id as appuserId, hd.title, hd.house_model as houseModel, hd.sale_amount as saleAmount, @@ -16,6 +17,7 @@ hd.garden, hd.carport, hd.balcony, + hd.type, hd.keep_pet as keepPet from t_housing_demand hd left join t_app_user au on (hd.app_user_id = au.id) diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AppUser.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AppUser.java index 96ff0b7..ae96820 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AppUser.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AppUser.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @@ -14,7 +15,7 @@ * @Date 2021/12/1 12:03 */ @Data -@TableName("db_user") +@TableName("t_app_user") public class AppUser { /** * 主键 @@ -100,5 +101,21 @@ * 注册时间 */ @TableField("insert_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date insertTime; + /** + * 中介的个人简介 + */ + @TableField("introduce") + private String introduce; + /** + * 中介所在公司所在的市 + */ + @TableField("city_id") + private Integer cityId; + /** + * 中介所在公司所在的区 + */ + @TableField("district_id") + private Integer districtId; } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/FeedBack.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/FeedBack.java new file mode 100644 index 0000000..8f64a25 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/FeedBack.java @@ -0,0 +1,52 @@ +package com.stylefeng.guns.modular.system.model; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 管理员表 + * </p> + * + * @author stylefeng + * @since 2017-07-11 + */ +@TableName("t_feedback") +@Data +public class FeedBack extends Model<FeedBack> { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value="id", type= IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("app_user_id") + private Integer appUserId; + /** + * 反馈内容 + */ + @TableField("content") + private String content; + /** + * 反馈内容 + */ + @TableField("insertTime") + private Date insertTime; + + @Override + protected Serializable pkVal() { + return null; + } +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HouseResource.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HouseResource.java index b12e3dc..af93d21 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HouseResource.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HouseResource.java @@ -135,7 +135,7 @@ * 区id */ @TableField("district_id") - private String districtId; + private Integer districtId; /** * 房屋地址 */ @@ -231,5 +231,24 @@ */ @TableField("update_user_id") private Integer updateUserId; - + /** + * 起租时间 + */ + @TableField("startTime") + private String startTime; + /** + * 性别要求 1男2女3不限 + */ + @TableField("sex") + private Integer sex; + /** + * 租期 + */ + @TableField("leaseTime") + private String leaseTime; + /** + * 类型 1为收藏 2为草稿 + */ + @TableField("type") + private Integer type; } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HousingDemand.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HousingDemand.java index e01d03e..d695956 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HousingDemand.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HousingDemand.java @@ -150,4 +150,19 @@ */ @TableField("update_user_id") private Integer updateUserId; + /** + * 性别要求1男2女3不限 + */ + @TableField("sex") + private Integer sex; + /** + * 1草稿2发布 + */ + @TableField("type") + private Integer type; + /** + * 起租日期 + */ + @TableField("startTime") + private String startTime; } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAppUserService.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAppUserService.java index 398ed5d..3674ae6 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAppUserService.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAppUserService.java @@ -4,7 +4,13 @@ import com.stylefeng.guns.modular.system.model.AppUser; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.req.RegisterAccountReq; +import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; +import com.stylefeng.guns.modular.system.warpper.req.SearchIntermediaryReq; +import com.stylefeng.guns.modular.system.warpper.req.UserInfoQuery; import com.stylefeng.guns.modular.system.warpper.res.AppletLoginRes; +import com.stylefeng.guns.modular.system.warpper.res.CollectRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryListRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryRes; /** * @author zhibing.pu @@ -26,10 +32,10 @@ /** * 小程序登录 - * @param jscode + * * @return */ - ResultUtil<AppletLoginRes> appletLogin(String jscode); + ResultUtil<AppletLoginRes> appletLogin(RegisterAccountReq req); /** @@ -38,4 +44,14 @@ * @return */ ResultUtil<AppletLoginRes> registerAccount(RegisterAccountReq req); + + + SearchIntermediaryRes searchIntermediaryList(SearchIntermediaryReq req); + + ResultUtil<AppUser> userInfo(); + + + ResultUtil<CollectRes> collect(); + + ResultUtil<CollectRes> release(UserInfoQuery query); } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedBackService.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedBackService.java new file mode 100644 index 0000000..e5d171c --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedBackService.java @@ -0,0 +1,18 @@ +package com.stylefeng.guns.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.stylefeng.guns.modular.system.model.AppUser; +import com.stylefeng.guns.modular.system.model.FeedBack; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.warpper.req.RegisterAccountReq; +import com.stylefeng.guns.modular.system.warpper.req.SearchIntermediaryReq; +import com.stylefeng.guns.modular.system.warpper.res.AppletLoginRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryRes; + +/** + * @author zhibing.pu + * @Date 2023/11/7 11:07 + */ +public interface IFeedBackService extends IService<FeedBack> { + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IHouseResourceService.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IHouseResourceService.java index 9a9f67f..4b40a5b 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IHouseResourceService.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IHouseResourceService.java @@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.service.IService; import com.stylefeng.guns.modular.system.model.HouseResource; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.warpper.req.AddHouseReq; +import com.stylefeng.guns.modular.system.warpper.req.HouseQuery; import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; +import com.stylefeng.guns.modular.system.warpper.req.UserInfoQuery; import com.stylefeng.guns.modular.system.warpper.res.*; import java.util.List; @@ -53,6 +57,12 @@ ContactInformationRes getContactInformation(Integer id); + SearchHouseResourceRes listHouse(HouseQuery query); + ResultUtil addHouse(AddHouseReq req); + + ResultUtil confirm(Integer userType); + + List<CollectListRes> collect(List<Integer> ids); } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppUserServiceImpl.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppUserServiceImpl.java index 0eed1d8..6acf120 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppUserServiceImpl.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppUserServiceImpl.java @@ -1,27 +1,41 @@ package com.stylefeng.guns.modular.system.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.JwtTokenUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.dao.AppUserMapper; import com.stylefeng.guns.modular.system.model.AppUser; +import com.stylefeng.guns.modular.system.model.CollectionHouseResource; +import com.stylefeng.guns.modular.system.model.HouseResource; +import com.stylefeng.guns.modular.system.model.Region; import com.stylefeng.guns.modular.system.service.IAppUserService; +import com.stylefeng.guns.modular.system.service.ICollectionHouseResourceService; +import com.stylefeng.guns.modular.system.service.IHousingDemandService; +import com.stylefeng.guns.modular.system.service.IRegionService; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.UUIDUtil; import com.stylefeng.guns.modular.system.util.weChat.WXCore; import com.stylefeng.guns.modular.system.util.weChat.WeChatUtil; -import com.stylefeng.guns.modular.system.warpper.req.RegisterAccountReq; -import com.stylefeng.guns.modular.system.warpper.res.AppletLoginRes; +import com.stylefeng.guns.modular.system.warpper.req.*; +import com.stylefeng.guns.modular.system.warpper.res.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import sun.rmi.runtime.Log; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author zhibing.pu @@ -34,6 +48,16 @@ private WeChatUtil weChatUtil; @Autowired private RedisUtil redisUtil; + @Autowired + private IRegionService regionService; + @Autowired + private IAppUserService appUserService; + @Autowired + private HouseResourceService houseResourceService; + @Autowired + private CollectionHouseResourceServiceImpl collectionHouseResourceService; + + /** @@ -45,7 +69,9 @@ ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = servletRequestAttributes.getRequest(); String authorization = request.getHeader("Authorization"); - if(ToolUtil.isNotEmpty(authorization) && authorization.contains("Bearer")){ + // todo 这里注释了一段代码 + // && authorization.contains("Bearer") + if(ToolUtil.isNotEmpty(authorization) && authorization.contains("Bearer") ){ String token = authorization.substring(7); //通过token获取用户id Integer appUserId = getAppUserIdFromToken(token); @@ -61,14 +87,13 @@ /** * 小程序登录 - * @param jscode * @return */ @Override - public ResultUtil<AppletLoginRes> appletLogin(String jscode) { + public ResultUtil<AppletLoginRes> appletLogin(RegisterAccountReq req) { try { //调用微信获取用户小程序openid - Map<String, Object> map = weChatUtil.code2Session(jscode); + Map<String, Object> map = weChatUtil.code2Session(req.getJscode()); if(null == map){ return ResultUtil.error("获取微信身份信息失败"); } @@ -81,7 +106,40 @@ if(null != appUser){ String token = JwtTokenUtil.generateToken(appUser.getPhone()); appletLoginRes.setToken(token); + appletLoginRes.setUserType(appUser.getUserType()); + }else{ + System.err.println("新增"); + String sessionKey = map.get("sessionKey").toString(); + //解密手机号 + String phone = WXCore.decrypt(req.getEncryptedPhoneData(), sessionKey, req.getPhone_iv()); + appUser = this.selectOne(new EntityWrapper<AppUser>() + .eq("phone", phone) + .eq("audit_status", 2) + .eq("status", 1)); + if(null == appUser){ + JSONObject jsonObject = JSONObject.parseObject(phone); + String phone1 = jsonObject.getString("phoneNumber"); + System.err.println("看看json"); + System.err.println(jsonObject); + System.err.println(phone1); + //注册新账号 + addNewAppUser(openid, phone1); + }else{ + appUser.setWechatOpenid(openid); + this.updateById(appUser); + } } + AppUser appUser1 = this.selectOne(new EntityWrapper<AppUser>() + .eq("wechat_openid", openid) + .eq("audit_status", 2) + .eq("status", 1)); + //生成token + String token = JwtTokenUtil.generateToken(appUser1.getPhone()); + appletLoginRes.setToken(token); + appletLoginRes.setUserType(appUser1.getUserType()); + System.err.println("看看TOKEN:"+token); + //存入缓存中 + addTokenToRedis(token, appUser1.getId()); return ResultUtil.success(appletLoginRes); }catch (Exception e){ e.printStackTrace(); @@ -103,6 +161,8 @@ if(null == map){ return ResultUtil.error("获取微信身份信息失败"); } + System.err.println("看看返回结果map"); + System.err.println(map); String openid = map.get("openid").toString(); AppUser appUser = this.selectOne(new EntityWrapper<AppUser>() .eq("wechat_openid", openid) @@ -118,18 +178,28 @@ .eq("audit_status", 2) .eq("status", 1)); if(null == appUser){ + JSONObject jsonObject = JSONObject.parseObject(phone); + String phone1 = jsonObject.getString("phoneNumber"); + System.err.println("看看json"); + System.err.println(jsonObject); + System.err.println(phone1); //注册新账号 - addNewAppUser(openid, phone); + addNewAppUser(openid, phone1); }else{ appUser.setWechatOpenid(openid); this.updateById(appUser); } } + AppUser appUser1 = this.selectOne(new EntityWrapper<AppUser>() + .eq("wechat_openid", openid) + .eq("audit_status", 2) + .eq("status", 1)); //生成token - String token = JwtTokenUtil.generateToken(appUser.getPhone()); + String token = JwtTokenUtil.generateToken(appUser1.getPhone()); appletLoginRes.setToken(token); + appletLoginRes.setUserType(appUser1.getUserType()); //存入缓存中 - addTokenToRedis(token, appUser.getId()); + addTokenToRedis(token, appUser1.getId()); return ResultUtil.success(appletLoginRes); }catch (Exception e){ e.printStackTrace(); @@ -137,6 +207,130 @@ } } + @Override + public SearchIntermediaryRes searchIntermediaryList(SearchIntermediaryReq req) { + req.setPageNum((req.getPageNum() - 1) * req.getPageSize()); + //区域 + List<Integer> districtIds = new ArrayList<>(); + List<Integer> cityIds = new ArrayList<>(); + if (req.getDistrict() != null &&(!req.getDistrict().equals("")) ){ + // 一级id + Integer integer = Integer.valueOf(req.getDistrict()); + districtIds.add(integer); + if (req.getArea()!=null && (!req.getArea().equals(""))){ + String[] split = req.getArea().split(","); + for (String s : split) { + cityIds.add(Integer.valueOf(s)); + } + } + } + SearchIntermediaryRes searchIntermediaryRes = new SearchIntermediaryRes(); + List<SearchIntermediaryListRes> res =this.baseMapper.searchIntermediaryList(req,districtIds,cityIds); + searchIntermediaryRes.setList(res); + searchIntermediaryRes.setTotal(res.size()); + return searchIntermediaryRes; + } + + @Override + public ResultUtil<AppUser> userInfo() { + // 获取当前登录用户 + AppUser appUser = appUserService.getAppUser(); + return ResultUtil.success(appUser); + + } + @Autowired + private IHousingDemandService housingDemandService; + @Override + public ResultUtil<CollectRes> collect() { + // 查询发布的求房源信息 + SearchHousingDemandReq req = new SearchHousingDemandReq(); + SearchHousingDemandRes searchHousingDemandRes = housingDemandService.searchHousingDemand(req); + List<SearchHousingDemandListRes> list1 = searchHousingDemandRes.getList(); + List<SearchHousingDemandListRes> collect1 = list1.stream().filter(t -> t.getAppuserId() == appUserService.getAppUser().getId()). + collect(Collectors.toList()); + // 拿到收藏的房源ids + List<Integer> ids = new ArrayList<>(); + CollectRes searchIntermediaryRes = new CollectRes(); + searchIntermediaryRes.setList1(collect1); + List<CollectListRes> list = houseResourceService.collect(ids); + long count1 = collect1.stream().filter(t -> t.getType() == 1).count(); + long count = list.stream().filter(t -> t.getType() == 1).count(); + // 草稿数量 + searchIntermediaryRes.setDraft(Integer.parseInt(String.valueOf(count))+Integer.parseInt(String.valueOf(count1))); + // 上架房源数 + int size = list.stream().filter(t -> t.getStatus() == 1 && t.getType()==2).collect(Collectors.toList()).size(); + searchIntermediaryRes.setOn(size); + // 下架房源数 + int size1 = list.stream().filter(t -> t.getStatus() == 0 && t.getType()==2).collect(Collectors.toList()).size(); + searchIntermediaryRes.setOff(size1); + for (CollectListRes collectListRes : list) { + // 查询这个房源的收藏 + int collect = collectionHouseResourceService.selectList(new EntityWrapper<CollectionHouseResource>() + .eq("house_resource_id", collectListRes.getId())).size(); + collectListRes.setCollect(collect); + // 根据区id 查询下级 + Region city = regionService.selectById(collectListRes.getCityId()); + Region dis = regionService.selectById(collectListRes.getDistrictId()); + Region region = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",dis.getId())); + StringBuilder stringBuilder = new StringBuilder(""); + stringBuilder.append(dis.getName()); + if (region!=null){ + stringBuilder.append("/"+region.getName()); + Region region1 = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",region.getId())); + if (region!=null){ + stringBuilder.append(region1.getName()); + Region region2 = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",region1.getId())); + if (region2!=null){ + stringBuilder.append("/"+region2.getName()); + } + } + } + collectListRes.setAddress(city.getName()+">"+stringBuilder.toString()); + } + searchIntermediaryRes.setList(list); + searchIntermediaryRes.setTotal(list.size()); + return ResultUtil.success(searchIntermediaryRes); + } + + @Override + public ResultUtil<CollectRes> release(UserInfoQuery query) { + query.setPageNum((query.getPageNum() - 1) * query.getPageSize()); + // 房源ids + List<Integer> ids = collectionHouseResourceService.selectList(new EntityWrapper<CollectionHouseResource>() + .eq("app_user_id", appUserService.getAppUser().getId())) + .stream().map(CollectionHouseResource::getHouseResourceId).collect(Collectors.toList()); + List<Integer> collect = houseResourceService.selectList(new EntityWrapper<HouseResource>() + .eq("is_delete", 0) + .eq("status", 1) + .eq("auth_status", 2) + .in("id", ids)).stream().map(HouseResource::getId).collect(Collectors.toList()); + List<CollectListRes> list = houseResourceService.release(query,collect); + for (CollectListRes collectListRes : list) { + // 根据区id 查询下级 + Region city = regionService.selectById(collectListRes.getCityId()); + Region dis = regionService.selectById(collectListRes.getDistrictId()); + Region region = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",dis.getId())); + StringBuilder stringBuilder = new StringBuilder(""); + stringBuilder.append(dis.getName()); + if (region!=null){ + stringBuilder.append("/"+region.getName()); + Region region1 = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",region.getId())); + if (region!=null){ + stringBuilder.append(region1.getName()); + Region region2 = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",region1.getId())); + if (region2!=null){ + stringBuilder.append("/"+region2.getName()); + } + } + } + collectListRes.setAddress(city.getName()+">"+stringBuilder.toString()); + } + CollectRes searchIntermediaryRes = new CollectRes(); + searchIntermediaryRes.setList(list); + searchIntermediaryRes.setTotal(list.size()); + return ResultUtil.success(); + } + /** * 添加新用户到数据库 diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedBackServiceImpl.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedBackServiceImpl.java new file mode 100644 index 0000000..122fdbc --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedBackServiceImpl.java @@ -0,0 +1,50 @@ +package com.stylefeng.guns.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.core.util.JwtTokenUtil; +import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.dao.AppUserMapper; +import com.stylefeng.guns.modular.system.dao.FeedBackMapper; +import com.stylefeng.guns.modular.system.model.AppUser; +import com.stylefeng.guns.modular.system.model.FeedBack; +import com.stylefeng.guns.modular.system.model.Region; +import com.stylefeng.guns.modular.system.service.IAppUserService; +import com.stylefeng.guns.modular.system.service.IFeedBackService; +import com.stylefeng.guns.modular.system.service.IHouseResourceService; +import com.stylefeng.guns.modular.system.service.IRegionService; +import com.stylefeng.guns.modular.system.util.RedisUtil; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.util.UUIDUtil; +import com.stylefeng.guns.modular.system.util.weChat.WXCore; +import com.stylefeng.guns.modular.system.util.weChat.WeChatUtil; +import com.stylefeng.guns.modular.system.warpper.req.RegisterAccountReq; +import com.stylefeng.guns.modular.system.warpper.req.SearchIntermediaryReq; +import com.stylefeng.guns.modular.system.warpper.res.AppletLoginRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryListRes; +import com.stylefeng.guns.modular.system.warpper.res.SearchIntermediaryRes; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author zhibing.pu + * @Date 2023/11/7 11:07 + */ +@Service +public class FeedBackServiceImpl extends ServiceImpl<FeedBackMapper, FeedBack> implements IFeedBackService { + + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java index a5d177c..87ef518 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/HouseResourceService.java @@ -9,9 +9,14 @@ import com.stylefeng.guns.modular.system.dao.HouseResourceMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; +import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.PointLocation; +import com.stylefeng.guns.modular.system.warpper.req.AddHouseReq; +import com.stylefeng.guns.modular.system.warpper.req.HouseQuery; import com.stylefeng.guns.modular.system.warpper.req.SearchHouseResourceReq; +import com.stylefeng.guns.modular.system.warpper.req.UserInfoQuery; import com.stylefeng.guns.modular.system.warpper.res.*; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Circle; import org.springframework.data.geo.Distance; @@ -27,6 +32,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -49,6 +55,8 @@ private ICollectionHouseResourceService collectionHouseResourceService; @Resource private MongoTemplate mongoTemplate; + @Autowired + private IHousingDemandService housingDemandService; @@ -65,27 +73,37 @@ if(req.getType() == 1){ fillSearchHistory(req); } - //区域 - List<Integer> districtIds = null; - List<Integer> cityIds = null; - if(StringUtils.hasLength(req.getDistrict())){ - cityIds = new ArrayList<>(); - districtIds = new ArrayList<>(); - JSONArray jsonArray = JSON.parseArray(req.getDistrict()); - for (int i = 0; i < jsonArray.size(); i++) { - JSONObject jsonObject = jsonArray.getJSONObject(i); - Integer cityId = jsonObject.getInteger("cityId"); - Integer districtId = jsonObject.getInteger("districtId"); - //不限区域 - if(0 == districtId || null == districtId){ - List<Region> regions = regionService.selectList(new EntityWrapper<Region>().eq("parent_id", cityId)); - districtIds.addAll(regions.stream().map(Region::getId).collect(Collectors.toList())); + List<Integer> districtIds = new ArrayList<>(); + List<Integer> cityIds = new ArrayList<>(); + if (req.getDistrict() != null &&(!req.getDistrict().equals("")) ){ + // 一级id + Integer integer = Integer.valueOf(req.getDistrict()); + districtIds.add(integer); + if (req.getArea()!=null && (!req.getArea().equals(""))){ + String[] split = req.getArea().split(","); + for (String s : split) { + cityIds.add(Integer.valueOf(s)); } - cityIds.add(cityId); - districtIds.add(districtId); } } +// if(StringUtils.hasLength(req.getDistrict())){ +// cityIds = new ArrayList<>(); +// districtIds = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(req.getDistrict()); +// for (int i = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject = jsonArray.getJSONObject(i); +// Integer cityId = jsonObject.getInteger("cityId"); +// Integer districtId = jsonObject.getInteger("districtId"); +// //不限区域 +// if(0 == districtId || null == districtId){ +// List<Region> regions = regionService.selectList(new EntityWrapper<Region>().eq("parent_id", cityId)); +// districtIds.addAll(regions.stream().map(Region::getId).collect(Collectors.toList())); +// } +// cityIds.add(cityId); +// districtIds.add(districtId); +// } +// } //价格范围 Double saleAmountStart = null; @@ -128,7 +146,8 @@ AppUser appUser = appUserService.getAppUser(); if(null != appUser){ //获取历史搜索数据 - SearchHistoryCondition searchHistoryCondition = searchHistoryConditionService.selectOne(new EntityWrapper<SearchHistoryCondition>().eq("app_user_id", appUser.getId())); + SearchHistoryCondition searchHistoryCondition = searchHistoryConditionService + .selectOne(new EntityWrapper<SearchHistoryCondition>().eq("app_user_id", appUser.getId())); if(null == searchHistoryCondition){ //没有历史记录,将现有记录添加进去 searchHistoryCondition = new SearchHistoryCondition(); @@ -144,11 +163,11 @@ if(ToolUtil.isEmpty(req.getDistrict()) && ToolUtil.isEmpty(req.getSaleAmount()) && ToolUtil.isEmpty(req.getHouseModel()) && ToolUtil.isEmpty(req.getElevator()) && ToolUtil.isEmpty(req.getHouseTypeId())){ - req.setDistrict(searchHistoryCondition.getDistrict()); - req.setSaleAmount(searchHistoryCondition.getPrice()); - req.setHouseModel(searchHistoryCondition.getHouseModels()); - req.setElevator(searchHistoryCondition.getElevator()); - req.setHouseTypeId(searchHistoryCondition.getHouseTypeIds()); +// req.setDistrict(searchHistoryCondition.getDistrict()); +// req.setSaleAmount(searchHistoryCondition.getPrice()); +// req.setHouseModel(searchHistoryCondition.getHouseModels()); +// req.setElevator(searchHistoryCondition.getElevator()); +// req.setHouseTypeId(searchHistoryCondition.getHouseTypeIds()); }else{ //更新历史搜索记录 searchHistoryCondition.setDistrict(req.getDistrict()); @@ -190,7 +209,7 @@ houseResourceInfoRes.setSaleAmount(houseResource.getSaleAmount()); houseResourceInfoRes.setHouseModel(houseResource.getHouseModel()); houseResourceInfoRes.setRentalDuration(houseResource.getRentalDuration()); - houseResourceInfoRes.setSaleDate(sdf.format(houseResource.getSaleDate())); + houseResourceInfoRes.setSaleDate(houseResource.getStartTime()); houseResourceInfoRes.setHousePhoto(houseResource.getHousePhoto()); HouseType houseType = houseTypeService.selectById(houseResource.getHouseTypeId()); houseResourceInfoRes.setHouseType(houseType.getName()); @@ -211,7 +230,9 @@ houseResourceInfoRes.setNickname(appUser1.getNickname()); houseResourceInfoRes.setUserType(appUser1.getUserType()); houseResourceInfoRes.setInsertTime(sdf.format(houseResource.getInsertTime())); - houseResourceInfoRes.setUpdateTime(sdf.format(houseResource.getUpdateTime())); + if (houseResource.getUpdateTime()!=null){ + houseResourceInfoRes.setUpdateTime(sdf.format(houseResource.getUpdateTime())); + } houseResourceInfoRes.setCode(houseResource.getCode()); int collectionTimes = collectionHouseResourceService.selectCount(new EntityWrapper<CollectionHouseResource>().eq("house_resource_id", id)); houseResourceInfoRes.setCollectionTimes(collectionTimes); @@ -252,6 +273,7 @@ Query query = Query.query(Criteria.where("geoJsonPoint").withinSphere(circle)); List<PointLocation> pointLocations = mongoTemplate.find(query, PointLocation.class); List<Integer> ids = pointLocations.stream().map(PointLocation::getHouseId).collect(Collectors.toList()); + if (ids.size()!= 0){ List<HouseResource> houseResources = this.selectBatchIds(ids); List<SearchHouseResourceListRes> list = new ArrayList<>(); //遍历解析出返回数据 @@ -276,7 +298,11 @@ searchHouseResourceListRes.setKeepPet(resource.getKeepPet()); list.add(searchHouseResourceListRes); } + return list; + } + List<SearchHouseResourceListRes> list = new ArrayList<>(); return list; + } @@ -295,6 +321,98 @@ return contactInformationRes; } + @Override + public SearchHouseResourceRes listHouse(HouseQuery query) { + SearchHouseResourceRes res = new SearchHouseResourceRes(); + res.setList(this.baseMapper.listHouse(query)); + res.setTotal(res.getList().size()); + return res; + } + + @Override + public ResultUtil addHouse(AddHouseReq req) { + Integer appUserId = appUserService.getAppUser().getId(); + AppUser appUser = appUserService.selectOne(new EntityWrapper<AppUser>() + .eq("id", appUserId) + .eq("audit_status", 2) + .eq("status", 1)); + if (appUser!=null){ + + if (appUser.getAgentLicenceCode()==null){ + // 未认证 只能能发布三条房源信息 + List<HouseResource> houseResources = this.selectList(new EntityWrapper<HouseResource>() + .eq("app_user_id", appUserId) + .eq("is_delete", 1) + .eq("status", 1) + ); + if (houseResources.size()>=3){ + return ResultUtil.error("中介账号未认证,只能同时上架3条房源信息"); + } + }else{ + // 已经认证 只能能发布20条房源信息 + List<HouseResource> houseResources = this.selectList(new EntityWrapper<HouseResource>() + .eq("app_user_id", appUserId) + .eq("is_delete", 1) + .eq("status", 1) + ); + if (houseResources.size()>=20){ + return ResultUtil.error("当前中介账号只能同时上架20条房源信息"); + } + } + + HouseResource houseResource = new HouseResource(); + BeanUtils.copyProperties(req,houseResource); + System.err.println(houseResource); + houseResource.setInsertTime(new Date()); + houseResource.setAuthStatus(1); + houseResource.setIsDelete(0); + houseResource.setInsertUserId(appUserId); + houseResource.setViewsNumber(0); + houseResource.setStatus(0); + houseResource.setLeaseTime(req.getTime()); + houseResource.setFirmHouse(req.getFirmHouse()); + if (req.getTime().contains("年")){ + houseResource.setRentalDuration(2); + }else{ + houseResource.setRentalDuration(1); + } + this.baseMapper.insert(houseResource); + return ResultUtil.success(); + } + return ResultUtil.success(); + } + + @Override + public ResultUtil confirm(Integer userType) { + AppUser appUser = appUserService.getAppUser(); + if (userType == 3){ + // 需要下架所有个人房源和求房源信息 + List<HouseResource> list = this.selectList(new EntityWrapper<HouseResource>() + .eq("app_user_id", appUser.getId())); + for (HouseResource houseResource : list) { + houseResource.setStatus(0); + this.baseMapper.updateById(houseResource); + } + List<HousingDemand> list2 = housingDemandService.selectList(new EntityWrapper<HousingDemand>() + .eq("app_user_id", appUser.getId())); + for (HousingDemand housingDemand : list2) { + housingDemand.setStatus(0); + housingDemandService.updateById(housingDemand); + } +// housingDemandService.updateBatchById(list2); + } + appUser.setUserType(userType); + appUserService.updateById(appUser); + return ResultUtil.success(); + } + + @Override + public List<CollectListRes> collect(List<Integer> ids) { + return this.baseMapper.collect(ids); + } + public List<CollectListRes> release(UserInfoQuery query, List<Integer> collect) { + return this.baseMapper.release(query,collect); + } } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/weChat/WeChatUtil.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/weChat/WeChatUtil.java index b6f5cc9..7b08e00 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/weChat/WeChatUtil.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/weChat/WeChatUtil.java @@ -95,6 +95,8 @@ * @return */ public Map<String, Object> code2Session(String jscode) throws Exception{ + System.err.println("看看调用奥"); + System.err.println("jsCode"+"========="+jscode); String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret + "&js_code=" + jscode + "&grant_type=authorization_code"; HttpResult httpResult = httpClientUtil.pushHttpRequset("GET", url, null, null, "form"); @@ -102,9 +104,11 @@ return null; } JSONObject jsonObject = JSON.parseObject(httpResult.getData()); + System.err.println("返回json串"+jsonObject); int errcode = jsonObject.getIntValue("errcode"); Map<String, Object> map = new HashMap<>(); map.put("errcode", errcode); + System.err.println("返回code"+errcode); if(errcode == 0){//成功 map.put("openid", jsonObject.getString("openid")); map.put("sessionKey", jsonObject.getString("session_key")); diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/AddHouseReq.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/AddHouseReq.java new file mode 100644 index 0000000..ebb1f2f --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/AddHouseReq.java @@ -0,0 +1,80 @@ +package com.stylefeng.guns.modular.system.warpper.req; + +import com.baomidou.mybatisplus.annotations.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 找中介-个人详情-我的房源 + */ +@Data +@ApiModel +public class AddHouseReq { + + @ApiModelProperty(value = "类型 1=租赁 2=买卖", required = true) + private Integer dataType; + @ApiModelProperty(value = "户型", required = true) + private String houseModel; + @ApiModelProperty(value = "出租时长(买卖房不填该字段) 例:1 = 不限 /1年1月 ", required = true) + private String time; + @ApiModelProperty(value = "出租(售卖)日期 例:随时/九月上旬", required = true) + private String startTime; + @ApiModelProperty(value = "售卖金额(月租金额)", required = true) + private BigDecimal saleAmount; + @ApiModelProperty(value = "房屋类型", required = true) + private Integer houseTypeId; + @ApiModelProperty(value = "所在楼层", required = true) + private String floor; + @ApiModelProperty(value = "是否有电梯(0=否,1=是)", required = true) + private Integer elevator; + @ApiModelProperty(value = "是否有晾晒区(0=否,1=是)", required = true) + private Integer dryingArea; + @ApiModelProperty(value = "是否有花园(0=否,1=是)", required = true) + private Integer garden; + @ApiModelProperty(value = "是否有车位(0=否,1=是)", required = true) + private Integer carport; + @ApiModelProperty(value = "是否有平台(0=否,1=是)", required = true) + private Integer balcony; + @ApiModelProperty(value = "是否可养宠物(0=否,1=是)", required = true) + private Integer keepPet; + @ApiModelProperty(value = "房屋面积", required = true) + private String houseArea; + @ApiModelProperty(value = "市id", required = true) + private Integer cityId; + @ApiModelProperty(value = "区id", required = true) + private Integer districtId; + @ApiModelProperty(value = "地址", required = true) + private String houseAddress; + @ApiModelProperty(value = "所属小区", required = true) + private String cellName; + @ApiModelProperty(value = "房源照片", required = true) + private String housePhoto; + @ApiModelProperty(value = "房源视频", required = true) + private String houseVideo; + @ApiModelProperty(value = "标题", required = true) + private String title; + @ApiModelProperty(value = "更多介绍(求租描述)", required = true) + private String moreIntroduction; + @ApiModelProperty(value = "微信二维码", required = false) + private String wechatQRCode; + @ApiModelProperty(value = "whatsApp", required = false) + private String watchApp; + @ApiModelProperty(value = "电话号码", required = false) + private String phone; + @ApiModelProperty(value = "房屋朝向", required = false) + private String buildingOrientation; + @ApiModelProperty(value ="公司盘 0=否1=是",required = false) + private Integer firmHouse; + @ApiModelProperty(value ="经度",required = true) + private String longitude; + @ApiModelProperty(value ="纬度",required = true) + private String latitude; + @ApiModelProperty(value ="性别要求 1男2女3不限",required = true) + private Integer sex; + @ApiModelProperty(value ="类型1为草稿 2为发布",required = true) + private Integer type; + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HouseQuery.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HouseQuery.java new file mode 100644 index 0000000..0d6ec42 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/HouseQuery.java @@ -0,0 +1,21 @@ +package com.stylefeng.guns.modular.system.warpper.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 找中介-个人详情-我的房源 + */ +@Data +@ApiModel +public class HouseQuery { + @ApiModelProperty(value = "中介id", required = true) + private Integer id; + @ApiModelProperty(value = "类型 1=租赁 2=买卖", required = true) + private Integer type; + @ApiModelProperty(value = "页码,首页1", required = true) + private Integer pageNum; + @ApiModelProperty(value = "页条数", required = true) + private Integer pageSize; +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java index daff766..32dbd86 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchHouseResourceReq.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @author zhibing.pu * @Date 2023/11/8 15:20 @@ -17,8 +19,10 @@ private Integer userType; @ApiModelProperty(value = "搜索内容", required = false) private String content; - @ApiModelProperty(value = "区域[{cityId:1,districtId:0},{cityId:2,districtId:6}]", required = false) + @ApiModelProperty(value = "区域id", required = false) private String district; + @ApiModelProperty(value = "二级区域不限不传 1,2,3", required = false) + private String area; @ApiModelProperty(value = "租金1000-2000", required = false) private String saleAmount; @ApiModelProperty(value = "户型,多个逗号分隔", required = false) diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchIntermediaryReq.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchIntermediaryReq.java new file mode 100644 index 0000000..eec750e --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/SearchIntermediaryReq.java @@ -0,0 +1,23 @@ +package com.stylefeng.guns.modular.system.warpper.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 找中介列表 + */ +@Data +@ApiModel +public class SearchIntermediaryReq { + @ApiModelProperty(value = "经纪人姓名", required = false) + private String name; + @ApiModelProperty(value = "区域id", required = false) + private String district; + @ApiModelProperty(value = "二级区域不限不传 1,2,3", required = false) + private String area; + @ApiModelProperty(value = "页码,首页1", required = true) + private Integer pageNum; + @ApiModelProperty(value = "页条数", required = true) + private Integer pageSize; +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UpdateAppUser.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UpdateAppUser.java new file mode 100644 index 0000000..e63c2df --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UpdateAppUser.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.warpper.req; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** +* APP用户 +* @author pzb +* @Date 2021/12/1 12:03 +*/ +@Data +public class UpdateAppUser { + /** + * 头像 + */ + @ApiModelProperty(value = "头像", required = false) + private String profilePhoto; + /** + * 昵称 + */ + @ApiModelProperty(value = "昵称", required = true) + private String nickname; + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoDTO.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoDTO.java new file mode 100644 index 0000000..f87d0d4 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoDTO.java @@ -0,0 +1,22 @@ +package com.stylefeng.guns.modular.system.warpper.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 找中介-个人详情-我的房源 + */ +@Data +@ApiModel +public class UserInfoDTO { + + @ApiModelProperty(value = "类型 1=删除 2=下架 3=顶上去", required = true) + private Integer type; + + @ApiModelProperty(value = "房源id", required = true) + private Integer id; + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoQuery.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoQuery.java new file mode 100644 index 0000000..8f269ba --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/req/UserInfoQuery.java @@ -0,0 +1,17 @@ +package com.stylefeng.guns.modular.system.warpper.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 个人中心-收藏/发布 + */ +@Data +@ApiModel +public class UserInfoQuery { + @ApiModelProperty(value = "页码,首页1", required = true) + private Integer pageNum; + @ApiModelProperty(value = "页条数", required = true) + private Integer pageSize; +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java index 38d5c0f..50a5c1f 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/AppletLoginRes.java @@ -13,4 +13,7 @@ public class AppletLoginRes { @ApiModelProperty("token") private String token; + + @ApiModelProperty("登录用户类型1=普通用户 2=房东 3=中介") + private Integer userType; } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectListRes.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectListRes.java new file mode 100644 index 0000000..b6f38f9 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectListRes.java @@ -0,0 +1,72 @@ +package com.stylefeng.guns.modular.system.warpper.res; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + 个人中心 房源列表 + */ +@Data +@ApiModel +public class CollectListRes { + @ApiModelProperty("数据库-房源id") + private Integer id; + @ApiModelProperty("房源类型") + private Integer dataType; + @ApiModelProperty("标题") + private String title; + @ApiModelProperty("市id") + private Integer cityId; + @ApiModelProperty("区id") + private Integer districtId; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("售卖金额(月租金额)") + private BigDecimal saleAmount; + @ApiModelProperty("浏览量") + private Integer viewsNumber; + @ApiModelProperty("收藏量") + private Integer collect; + @ApiModelProperty("发布时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date insertTime; + @ApiModelProperty("展示使用的房源id") + private String code; + @ApiModelProperty("是否有电梯(0=否,1=是)") + private Integer elevator; + @ApiModelProperty("是否有晾晒区(0=否,1=是)") + private Integer dryingArea; + @ApiModelProperty("是否有花园(0=否,1=是)") + private Integer garden; + @ApiModelProperty("是否有车位(0=否,1=是)") + private Integer carport; + @ApiModelProperty("是否有平台(0=否,1=是)") + private Integer balcony; + @ApiModelProperty("是否可养宠物(0=否,1=是)") + private Integer keepPet; + @ApiModelProperty("租期") + private String leaseTime; + @ApiModelProperty("状态 0下架 1上架") + private Integer status; + @ApiModelProperty("状态 0下架 1上架") + private Integer type; + @ApiModelProperty("照片") + private String housePhoto; + @ApiModelProperty("视频") + private String houseVideo; + @ApiModelProperty("发布用户id--前端忽略") + private Integer appUserId; + @ApiModelProperty("发布用户头像") + private String profilePhoto; + @ApiModelProperty("发布用户名称") + private String nickname; + @ApiModelProperty("发布用户身份 1=普通 2=房东 3=中介") + private Integer userType; + + +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectRes.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectRes.java new file mode 100644 index 0000000..f23649e --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/CollectRes.java @@ -0,0 +1,27 @@ +package com.stylefeng.guns.modular.system.warpper.res; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 个人中心 房源列表 + */ +@Data +@ApiModel +public class CollectRes { + @ApiModelProperty("总数量") + private Integer total; + @ApiModelProperty("上架") + private Integer on; + @ApiModelProperty("下架") + private Integer off; + @ApiModelProperty("草稿") + private Integer draft; + @ApiModelProperty("房源") + private List<CollectListRes> list; + @ApiModelProperty("求房源") + private List<SearchHousingDemandListRes> list1; +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java index 26a5e44..2221e67 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchHousingDemandListRes.java @@ -15,6 +15,8 @@ public class SearchHousingDemandListRes { @ApiModelProperty("数据id") private Integer id; + @ApiModelProperty("用户id") + private Integer appuserId; @ApiModelProperty("标题") private String title; @ApiModelProperty("户型") @@ -39,4 +41,6 @@ private Integer balcony; @ApiModelProperty("是否可养宠物(0=否,1=是)") private Integer keepPet; + @ApiModelProperty("类型 1=草稿 2=发布") + private Integer type; } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryListRes.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryListRes.java new file mode 100644 index 0000000..539dfba --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryListRes.java @@ -0,0 +1,32 @@ +package com.stylefeng.guns.modular.system.warpper.res; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2023/11/21 15:38 + */ +@Data +@ApiModel +public class SearchIntermediaryListRes { + @ApiModelProperty("用户id") + private Integer id; + @ApiModelProperty("昵称") + private String nickname; + @ApiModelProperty("公司名称") + private String companyName; + @ApiModelProperty("公司地址") + private String companyAddress; + @ApiModelProperty("个人简介") + private String introduce; + @ApiModelProperty("头像") + private String profilePhoto; + @ApiModelProperty("电话") + private String phone; + @ApiModelProperty("房源上传量") + private Integer houseCount; +} diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryRes.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryRes.java new file mode 100644 index 0000000..f372307 --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/res/SearchIntermediaryRes.java @@ -0,0 +1,19 @@ +package com.stylefeng.guns.modular.system.warpper.res; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 找中介列表 + */ +@Data +@ApiModel +public class SearchIntermediaryRes { + @ApiModelProperty("总数量") + private Integer total; + @ApiModelProperty("列表数据") + private List<SearchIntermediaryListRes> list; +} -- Gitblit v1.7.1