| | |
| | | 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.dto.LoginWeChatDTO; |
| | | import com.stylefeng.guns.modular.system.model.AppUser; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import com.stylefeng.guns.modular.system.dao.AppUserMapper; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import com.stylefeng.guns.modular.system.util.*; |
| | | 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.*; |
| | | import com.stylefeng.guns.modular.system.warpper.res.*; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import org.springframework.beans.BeanUtils; |
| | | import com.stylefeng.guns.modular.system.service.IAppUserService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.stylefeng.guns.modular.system.util.Md5Util; |
| | | 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 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.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2023/11/7 11:07 |
| | | * <p> |
| | | * 用户表 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author 无关风月 |
| | | * @since 2024-02-06 |
| | | */ |
| | | @Service |
| | | public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> implements IAppUserService { |
| | | |
| | | @Autowired |
| | | private WeChatUtil weChatUtil; |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | @Autowired |
| | | private IRegionService regionService; |
| | | @Autowired |
| | | private IAppUserService appUserService; |
| | | @Autowired |
| | | private HouseResourceService houseResourceService; |
| | | @Autowired |
| | | private IHousingDemandService housingDemandService; |
| | | @Autowired |
| | | private CollectionHouseResourceServiceImpl collectionHouseResourceService; |
| | | @Autowired |
| | | private ICollectionHousingDemandService collectionHousingDemandService; |
| | | @Autowired |
| | | private IHouseTypeService houseTypeService; |
| | | |
| | | /** |
| | | * 通过token获取用户信息 |
| | | * @return |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 小程序登录 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ResultUtil<AppletLoginRes> |
| | | appletLogin(RegisterAccountReq req) { |
| | | try { |
| | | //调用微信获取用户小程序openid |
| | | Map<String, Object> map = weChatUtil.code2Session(req.getJscode()); |
| | | if(null == map){ |
| | | return ResultUtil.error("获取微信身份信息失败"); |
| | | } |
| | | String openid = map.get("openid").toString(); |
| | | String sessionKey = map.get("sessionKey").toString(); |
| | | //解密手机号 |
| | | String phone = WXCore.decrypt(req.getEncryptedPhoneData(), sessionKey, req.getPhone_iv()); |
| | | JSONObject jsonObject = JSONObject.parseObject(phone); |
| | | String phone1 = jsonObject.getString("phoneNumber"); |
| | | AppUser appUser = this.selectOne(new EntityWrapper<AppUser>() |
| | | .eq("wechat_openid", openid) |
| | | .eq("phone",phone1) |
| | | .ne("status",3)); |
| | | if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){ |
| | | return ResultUtil.errorLogin("当前账号已被冻结或删除"); |
| | | } |
| | | AppletLoginRes appletLoginRes = new AppletLoginRes(); |
| | | if(null == appUser){ |
| | | //注册新账号 |
| | | appUser = addNewAppUser(openid, phone1); |
| | | } |
| | | //生成token |
| | | String token = JwtTokenUtil.generateToken(appUser.getPhone()); |
| | | System.err.println("token1111--->" + token); |
| | | appletLoginRes.setState(appUser.getAuth()); |
| | | appletLoginRes.setToken(token); |
| | | appletLoginRes.setUserType(appUser.getUserType()); |
| | | System.err.println("看看TOKEN:"+token); |
| | | //存入缓存中 |
| | | addTokenToRedis(token, appUser.getId()); |
| | | return ResultUtil.success(appletLoginRes); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 小程序注册账号 |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ResultUtil<AppletLoginRes> registerAccount(RegisterAccountReq req) { |
| | | try { |
| | | //调用微信获取用户小程序openid |
| | | Map<String, Object> map = weChatUtil.code2Session(req.getJscode()); |
| | | 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) |
| | | .ne("audit_status", 3) |
| | | .eq("status", 1)); |
| | | if(null != appUser && appUser.getAuditStatus() == 1){ |
| | | return ResultUtil.error("账号审核中"); |
| | | } |
| | | AppletLoginRes appletLoginRes = new AppletLoginRes(); |
| | | if(null == appUser){ |
| | | 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); |
| | | //注册新账号 |
| | | appUser = addNewAppUser(openid, phone1); |
| | | }else{ |
| | | appUser.setWechatOpenid(openid); |
| | | this.updateById(appUser); |
| | | } |
| | | } |
| | | //生成token |
| | | String token = JwtTokenUtil.generateToken(appUser.getPhone()); |
| | | appletLoginRes.setToken(token); |
| | | appletLoginRes.setUserType(appUser.getUserType()); |
| | | //存入缓存中 |
| | | addTokenToRedis(token, appUser.getId()); |
| | | return ResultUtil.success(appletLoginRes); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | @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); |
| | | List<SearchIntermediaryListRes> res1 =this.baseMapper.searchIntermediaryList1(req,districtIds,cityIds); |
| | | searchIntermediaryRes.setList(res); |
| | | searchIntermediaryRes.setTotal(res1.size()); |
| | | return searchIntermediaryRes; |
| | | } |
| | | |
| | | @Override |
| | | public ResultUtil<AppUser> userInfo() { |
| | | // 获取当前登录用户 |
| | | AppUser appUser = appUserService.getAppUser(); |
| | | if (!StringUtils.hasLength(appUser.getProfilePhoto())){ |
| | | appUser.setProfilePhoto("https://bizuphk.oss-cn-hongkong.aliyuncs.com/1703841554373"); |
| | | } |
| | | if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){ |
| | | return ResultUtil.errorLogin("当前账号已被冻结或删除"); |
| | | } |
| | | return ResultUtil.success(appUser); |
| | | |
| | | } |
| | | public static boolean isToday(Date date) { |
| | | // 将Date类型转换为LocalDate |
| | | LocalDate inputDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
| | | // 获取当前日期 |
| | | LocalDate currentDate = LocalDate.now(); |
| | | // 比较日期是否相等 |
| | | return inputDate.isEqual(currentDate); |
| | | } |
| | | @Override |
| | | public ResultUtil<CollectRes> collect(UserInfoQuery query) { |
| | | AppUser appUser = appUserService.getAppUser(); |
| | | SearchHousingDemandRes searchHousingDemandRes = housingDemandService |
| | | .searchHousingDemand1(appUser.getId()); |
| | | if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){ |
| | | return ResultUtil.errorLogin("当前账号已被冻结或删除"); |
| | | } |
| | | List<SearchHousingDemandListRes> list1 = searchHousingDemandRes.getList(); |
| | | for (SearchHousingDemandListRes searchHousingDemandListRes : list1) { |
| | | if (StringUtils.hasLength(searchHousingDemandListRes.getHouseTypeId())){ |
| | | String[] split = searchHousingDemandListRes.getHouseTypeId().split(","); |
| | | if (split.length>0){ |
| | | HouseType houseType = houseTypeService.selectById(split[0]); |
| | | if (houseType!=null)searchHousingDemandListRes.setHouseTypeName(houseType.getName()); |
| | | |
| | | } |
| | | } |
| | | } |
| | | CollectRes searchIntermediaryRes = new CollectRes(); |
| | | List<CollectListRes> list = houseResourceService.collect(appUserService.getAppUser().getId()); |
| | | for (SearchHousingDemandListRes temp : list1) { |
| | | // 判断顶上去时间是不是今天 |
| | | CollectListRes collectListRes = new CollectListRes(); |
| | | collectListRes.setSaleAmount(temp.getSaleAmount()); |
| | | collectListRes.setData(1); |
| | | collectListRes.setAuthStatus(2); |
| | | BeanUtils.copyProperties(temp,collectListRes); |
| | | StringBuilder stringBuilder = new StringBuilder(""); |
| | | if (temp.getAddress()!=null){ |
| | | for (String address : temp.getAddress()) { |
| | | stringBuilder.append(address+","); |
| | | } |
| | | String string = stringBuilder.toString(); |
| | | String substring = string.substring(0, string.length() - 1); |
| | | collectListRes.setAddress(substring); |
| | | } |
| | | list.add(collectListRes); |
| | | } |
| | | for (CollectListRes collectListRes : list) { |
| | | // 没有顶过 |
| | | if (collectListRes.getUpTime() == null){ |
| | | collectListRes.setUp(1); |
| | | continue; |
| | | } |
| | | if (isToday(collectListRes.getUpTime())){ |
| | | // 时间相同的话 就不能顶 |
| | | collectListRes.setUp(0); |
| | | }else{ |
| | | collectListRes.setUp(1); |
| | | } |
| | | } |
| | | List<CollectListRes> collect3 = list.stream().distinct().collect(Collectors.toList()); |
| | | // 房源数据 |
| | | List<CollectListRes> collect1 = collect3.stream().filter(t->t.getData()==2).distinct().collect(Collectors.toList()); |
| | | // 求房源数据 |
| | | List<CollectListRes> collect2 = collect3.stream().filter(t->t.getData()==1).distinct().collect(Collectors.toList()); |
| | | for (CollectListRes collectListRes : collect1) { |
| | | // 查询这个房源的收藏 |
| | | int collect = collectionHouseResourceService.selectList(new EntityWrapper<CollectionHouseResource>() |
| | | .eq("house_resource_id", collectListRes.getId())).size(); |
| | | collectListRes.setCollect(collect); |
| | | // 根据区id 查询下级 |
| | | if (collectListRes.getCityId()==null){ |
| | | continue; |
| | | } |
| | | 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()); |
| | | } |
| | | for (CollectListRes collectListRes : collect2) { |
| | | // 查询这个房源的收藏 |
| | | int collect = collectionHousingDemandService.selectList(new EntityWrapper<CollectionHousingDemand>() |
| | | .eq("housing_demand_id", collectListRes.getId())).size(); |
| | | collectListRes.setCollect(collect); |
| | | |
| | | } |
| | | collect1.addAll(collect2); |
| | | // 使用 Collections.sort() 方法排序 |
| | | Collections.sort(collect1, Comparator.comparing(CollectListRes::getInsertTime).reversed()); |
| | | List<CollectListRes> testing = testing(collect1.size(), query.getPageNum(), query.getPageSize(), collect1); |
| | | List<CollectListRes> collect = testing.stream().filter(t -> t.getData() == 2).distinct().collect(Collectors.toList()); |
| | | List<CollectListRes> collectt = testing.stream().filter(t -> t.getData() == 1).distinct().collect(Collectors.toList()); |
| | | |
| | | // 草稿数量 |
| | | long count1 = collect1.stream().filter(t -> t.getType() == 1).count(); |
| | | // 上架数量 |
| | | long count2 = collect1.stream().filter(t -> t.getType() == 2 && t.getStatus()==1).count(); |
| | | // 下架数量 |
| | | long count3 = collect1.stream().filter(t -> t.getType() == 2 && t.getStatus()==0).count(); |
| | | searchIntermediaryRes.setDraft(Integer.parseInt(String.valueOf(count1))); |
| | | searchIntermediaryRes.setOff(Integer.parseInt(String.valueOf(count3))); |
| | | searchIntermediaryRes.setOn(Integer.parseInt(String.valueOf(count2))); |
| | | // @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; |
| | | |
| | | for (CollectListRes t : testing) { |
| | | int a =0; |
| | | // 将时间转化为指定格式 |
| | | // 创建一个日期格式化对象,指定要转换的格式 |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日"); |
| | | String format = formatter.format(t.getInsertTime()); |
| | | t.setTime(format); |
| | | StringBuilder temp = new StringBuilder(""); |
| | | if (StringUtils.hasLength(t.getHouseTypeName())){ |
| | | if (a<4){ |
| | | temp.append(t.getHouseTypeName()+","); |
| | | a++; |
| | | } |
| | | } |
| | | if (t.getElevator()!=null&&t.getElevator()==1){ |
| | | if (a<4) { |
| | | temp.append("有电梯,"); |
| | | a++; |
| | | } |
| | | } |
| | | if (t.getBalcony()!=null&&t.getBalcony()==1){ |
| | | if (a<4) { |
| | | temp.append("有阳台,"); |
| | | a++; |
| | | } |
| | | } |
| | | if (t.getDryingArea()!=null&&t.getDryingArea()==1){ |
| | | if (a<4) { |
| | | temp.append("有天台,"); |
| | | a++; |
| | | } |
| | | } |
| | | if (t.getGarden()!=null&&t.getGarden()==1){ |
| | | if (a<4) { |
| | | temp.append("有花园,"); |
| | | a++; |
| | | } |
| | | } |
| | | if (t.getCarport()!=null&&t.getCarport()==1){ |
| | | if (a<4) { |
| | | temp.append("有车位,"); |
| | | a++; |
| | | } |
| | | } |
| | | if (t.getKeepPet()!=null&&t.getKeepPet()==1){ |
| | | if (a<4) { |
| | | temp.append("可养宠物,"); |
| | | a++; |
| | | } |
| | | } |
| | | String string = temp.toString(); |
| | | if (StringUtils.hasLength(string)){ |
| | | String substring = string.substring(0, string.length() - 1); |
| | | t.setHead(substring); |
| | | }else{ |
| | | t.setHead(""); |
| | | } |
| | | } |
| | | |
| | | searchIntermediaryRes.setList(testing); |
| | | searchIntermediaryRes.setTotal(collect1.size()); |
| | | return ResultUtil.success(searchIntermediaryRes); |
| | | } |
| | | |
| | | public static List<CollectListRes> testing(long total, long current, long size, List<CollectListRes> str){ |
| | | List<CollectListRes> result = new ArrayList<>(); |
| | | //获取初始化分页结构 |
| | | Page<CollectListRes> page = new Page().getPage(total, size, current - 1); |
| | | //获取集合下标初始值 |
| | | long startIndex = page.getStartIndex(); |
| | | //获取集合下标结束值 |
| | | long endInddex = 0; |
| | | if(startIndex + page.getCurrent() >= total || size > total){ |
| | | endInddex = total; |
| | | }else { |
| | | endInddex = Math.min(startIndex + page.getSize(), total); |
| | | } |
| | | //如果输入的开始查询下标大于集合大小,则查询为空值 |
| | | if(startIndex > total){ |
| | | result = Collections.emptyList(); |
| | | }else{ |
| | | result = str.subList((int)startIndex,(int)endInddex); |
| | | } |
| | | return result; |
| | | } |
| | | @Override |
| | | public ResultUtil<CollectRes> release(UserInfoQuery query) { |
| | | AppUser appUser = appUserService.getAppUser(); |
| | | if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){ |
| | | return ResultUtil.errorLogin("当前账号已被冻结或删除"); |
| | | } |
| | | // 房源ids |
| | | List<Integer> ids = collectionHouseResourceService.selectList(new EntityWrapper<CollectionHouseResource>() |
| | | .eq("app_user_id", appUser.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 = new ArrayList<>(); |
| | | if (collect.size()==0){ |
| | | }else{ |
| | | list = houseResourceService.release(query,collect); |
| | | } |
| | | |
| | | List<CollectListRes> collect1 = list.stream().distinct().collect(Collectors.toList()); |
| | | if (ids.size()==0){ |
| | | collect=new ArrayList<>(); |
| | | list = new ArrayList<>(); |
| | | collect1 = new ArrayList<>(); |
| | | } |
| | | for (CollectListRes collectListRes : collect1) { |
| | | // 查询房源的收藏量 |
| | | int house_resource_id = collectionHouseResourceService.selectList(new EntityWrapper<CollectionHouseResource>() |
| | | .eq("house_resource_id", collectListRes.getId())).size(); |
| | | collectListRes.setCollect(house_resource_id); |
| | | // 根据区id 查询下级 |
| | | Region city = regionService.selectById(collectListRes.getCityId()); |
| | | StringBuilder stringBuilder = new StringBuilder(""); |
| | | if (city!=null){ |
| | | Region dis = regionService.selectById(collectListRes.getDistrictId()); |
| | | if (dis!=null){ |
| | | Region region = regionService.selectOne(new EntityWrapper<Region>().eq("parent_id",dis.getId())); |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | | // 查询收藏的求房源ids |
| | | List<Integer> demand = collectionHousingDemandService.selectList |
| | | (new EntityWrapper<CollectionHousingDemand>() |
| | | .eq("app_user_id", appUserService.getAppUser().getId())) |
| | | .stream().map(CollectionHousingDemand::getHousingDemandId) |
| | | .collect(Collectors.toList()); |
| | | if (demand.size()!=0){ |
| | | SearchHousingDemandRes searchHousingDemandRes = housingDemandService.searchHousingDemand2(demand); |
| | | List<SearchHousingDemandListRes> list1 = searchHousingDemandRes.getList(); |
| | | for (SearchHousingDemandListRes temp : list1) { |
| | | if (StringUtils.hasLength(temp.getHouseTypeId())){ |
| | | String[] split = temp.getHouseTypeId().split(","); |
| | | if (split.length>0){ |
| | | HouseType houseType = houseTypeService.selectById(split[0]); |
| | | if (houseType!=null)temp.setHouseTypeName(houseType.getName()); |
| | | |
| | | } |
| | | } |
| | | CollectListRes collectListRes = new CollectListRes(); |
| | | // 求房源的收藏数量 |
| | | int housing_demand_id = collectionHousingDemandService.selectList(new EntityWrapper<CollectionHousingDemand>() |
| | | .eq("housing_demand_id", temp.getId())).size(); |
| | | collectListRes.setSaleAmount(temp.getSaleAmount()); |
| | | collectListRes.setData(1); |
| | | |
| | | BeanUtils.copyProperties(temp,collectListRes); |
| | | collectListRes.setCollect(housing_demand_id); |
| | | StringBuilder stringBuilder = new StringBuilder(""); |
| | | if (temp.getAddress()!=null){ |
| | | for (String address : temp.getAddress()) { |
| | | stringBuilder.append(address+","); |
| | | } |
| | | String string = stringBuilder.toString(); |
| | | String substring = string.substring(0, string.length() - 1); |
| | | collectListRes.setAddress(substring); |
| | | } |
| | | if (temp.getRentalDuration()!=null){ |
| | | Integer rentalDuration = temp.getRentalDuration(); |
| | | // 计算年数和剩余月数 |
| | | int years = rentalDuration / 12; |
| | | int remainingMonths = rentalDuration % 12; |
| | | if (years==0){ |
| | | collectListRes.setLeaseTime(remainingMonths+"月"); |
| | | }else{ |
| | | if (remainingMonths==0){ |
| | | collectListRes.setLeaseTime(years+"年"); |
| | | }else{ |
| | | collectListRes.setLeaseTime(years+"年"+remainingMonths+"月"); |
| | | } |
| | | } |
| | | } |
| | | collect1.add(collectListRes); |
| | | } |
| | | } |
| | | |
| | | CollectRes searchIntermediaryRes = new CollectRes(); |
| | | Collections.sort(collect1, Comparator.comparing(CollectListRes::getInsertTime).reversed()); |
| | | List<CollectListRes> testing = testing(collect1.size(), query.getPageNum(), query.getPageSize(), collect1); |
| | | for (CollectListRes t : testing) { |
| | | // 将时间转化为指定格式 |
| | | // 创建一个日期格式化对象,指定要转换的格式 |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日"); |
| | | String format = formatter.format(t.getInsertTime()); |
| | | t.setTime(format); |
| | | StringBuilder temp = new StringBuilder(""); |
| | | if (StringUtils.hasLength(t.getHouseTypeName())){ |
| | | temp.append(t.getHouseTypeName()+","); |
| | | } |
| | | if (t.getElevator()!=null&&t.getElevator()==1){ |
| | | temp.append("有电梯,"); |
| | | } |
| | | if (t.getBalcony()!=null&&t.getBalcony()==1){ |
| | | temp.append("有阳台,"); |
| | | } |
| | | if (t.getDryingArea()!=null&&t.getDryingArea()==1){ |
| | | temp.append("有天台,"); |
| | | } |
| | | if (t.getGarden()!=null&&t.getGarden()==1){ |
| | | temp.append("有花园,"); |
| | | } |
| | | if (t.getCarport()!=null&&t.getCarport()==1){ |
| | | temp.append("有车位,"); |
| | | } |
| | | |
| | | if (t.getKeepPet()!=null&&t.getKeepPet()==1){ |
| | | temp.append("可养宠物,"); |
| | | } |
| | | String string = temp.toString(); |
| | | if (StringUtils.hasLength(string)){ |
| | | String substring = string.substring(0, string.length() - 1); |
| | | t.setHead(substring); |
| | | }else{ |
| | | t.setHead(""); |
| | | } |
| | | } |
| | | |
| | | searchIntermediaryRes.setList(testing); |
| | | searchIntermediaryRes.setTotal(collect1.size()); |
| | | return ResultUtil.success(searchIntermediaryRes); |
| | | } |
| | | |
| | | @Override |
| | | public SearchIntermediaryListRes searchIntermediaryInfo(Integer id) { |
| | | return this.baseMapper.searchIntermediaryInfo(id); |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 添加新用户到数据库 |
| | | * @param openid 微信openid |
| | | * @param phone 手机号 |
| | | */ |
| | | private AppUser addNewAppUser(String openid, String phone){ |
| | | AppUser appUser = new AppUser(); |
| | | appUser.setCode(UUIDUtil.getNumberRandom(16)); |
| | | appUser.setUserType(1); |
| | | appUser.setPhone(phone); |
| | | appUser.setWechatOpenid(openid); |
| | | appUser.setAuditStatus(2); |
| | | appUser.setStatus(1); |
| | | appUser.setAuth(0); |
| | | appUser.setInsertTime(new Date()); |
| | | appUser.setProfilePhoto("https://bizuphk.oss-cn-hongkong.aliyuncs.com/1703841554373"); |
| | | this.insert(appUser); |
| | | return appUser; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 将用户标识存入缓存中用于后期接口的身份校验 |
| | | * @param token |
| | | * @param id |
| | | */ |
| | | private void addTokenToRedis(String token, Integer id){ |
| | | String key = token; |
| | | int length = token.length(); |
| | | if(length > 32){ |
| | | key = token.substring(token.length() - 32); |
| | | } |
| | | //30天有效期 |
| | | redisUtil.setStrValue(key, id.toString(), 2592000); |
| | | } |
| | | |
| | | |
| | | /** |