From 87ea11cb159443aa70f02b4a83914d8d5ab16c6a Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 03 一月 2024 09:08:59 +0800
Subject: [PATCH] 小程序二维码

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/api/AppUserController.java |  343 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 328 insertions(+), 15 deletions(-)

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..f52a002 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,33 @@
 package com.stylefeng.guns.modular.api;
 
-import com.stylefeng.guns.modular.system.service.IAppUserService;
+import com.alibaba.druid.sql.visitor.functions.If;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.service.impl.FeedBackServiceImpl;
+import com.stylefeng.guns.modular.system.service.impl.HouseTypeServiceImpl;
+import com.stylefeng.guns.modular.system.util.HttpUtils;
+import com.stylefeng.guns.modular.system.util.Page;
 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.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -23,28 +39,325 @@
 
     @Autowired
     private IAppUserService appUserService;
-
-
+    @Autowired
+    private IFeedBackService feedBackService;
+    @Autowired
+    private IHouseResourceService houseResourceService;
+    @Autowired
+    private IHousingDemandService housingDemandService;
+    @Autowired
+    private IHouseTypeService houseTypeService;
+    @Autowired
+    private IRegionService regionService;
+    @Autowired
+    private IBannerService bannerService;
+    @Autowired
+    private IReportHouseResourceService reportHouseResource;
+    @ResponseBody
+    @GetMapping("/base/appUser/agreement")
+    @ApiOperation(value = "协议", tags = {"协议"})
+    public ResultUtil agreement(Integer type){
+        Banner banners = bannerService.selectOne(new EntityWrapper<Banner>().eq("position",type));
+        return ResultUtil.success(banners);
+    }
 
     @ResponseBody
     @PostMapping("/base/appUser/appletLogin")
     @ApiOperation(value = "微信小程序登录", tags = {"登录注册"})
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "jscode", value = "微信jscode", required = true)
-    })
-    public ResultUtil<AppletLoginRes> appletLogin(String jscode){
-        return appUserService.appletLogin(jscode);
+            @ApiImplicitParam(name = "jscode", value = "微信jscode", required = true)})
+    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(UserInfoQuery query){
+        return appUserService.collect(query);
+    }
+
+    // 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}/{data}")
+    @ApiOperation(value = "编辑发布的房源", tags = {"个人中心"})
+    public ResultUtil<Object> edit(@PathVariable("id") Integer id,@PathVariable("data")Integer type){
+        // type=1 求房源
+        if (type == 1){
+            HousingDemand housingDemand = housingDemandService.selectById(id);
+            if (StringUtils.hasLength(housingDemand.getDistrict())){
+                JSONArray jsonArray = JSON.parseArray(housingDemand.getDistrict());
+                housingDemand.setDistrict(jsonArray.toString());
+            }
+            if (housingDemand.getHouseTypeId()!=null && (!housingDemand.getHouseTypeId().equals("0"))){
+                HouseType houseType = houseTypeService.selectById(housingDemand.getHouseTypeId());
+                if (houseType!=null){
+                    housingDemand.setHouseTypeName(houseType.getName());
+                }
+            }
+            if (housingDemand.getHouseTypeId()!=null && housingDemand.getHouseTypeId().equals("0")){
+                housingDemand.setHouseTypeName("不限");
+            }
+            housingDemand.setUpdateTime(new Date());
+            // 查询求房源选择的区域
+            return ResultUtil.success(housingDemand);
+        }else{
+            HouseResource houseResource = houseResourceService.selectById(id);
+            if (houseResource.getHouseTypeId()!=null){
+                HouseType houseType = houseTypeService.selectById(houseResource.getHouseTypeId());
+                if (houseType!=null)houseResource.setHouseTypeName(houseType.getName());
+            }
+            if (houseResource.getCityId()!=null){
+                Region region = regionService.selectById(houseResource.getCityId());
+                if (region!=null)houseResource.setCityName(region.getName());
+            }
+            if (houseResource.getDistrictId()!=null && houseResource.getDistrictId()==0){
+                houseResource.setDistrictName("不限");
+            }else{
+                Region region = regionService.selectById(houseResource.getDistrictId());
+                if (region!=null)houseResource.setDistrictName(region.getName());
+            }
+            houseResource.setUpdateTime(new Date());
+            return ResultUtil.success(houseResource);
+        }
+    }
+    // todo 放行
+    @ResponseBody
+    @PostMapping("/base/appUser/auth/{id}")
+    @ApiOperation(value = "中介认证", tags = {"个人中心"})
+    @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....",
+            required = true, paramType = "header")
+    public ResultUtil auth(@RequestBody AuthDTO dto){
+        AppUser appUser = appUserService.getAppUser();
+        if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){
+            return ResultUtil.errorLogin("当前账号已被冻结或删除");
+        }
+        appUser.setAgentLicenceCode(dto.getAgentLicenceCode());
+        appUser.setCompanyName(dto.getCompanyName());
+        appUser.setCompanyAddress(dto.getCompanyAddress());
+        appUser.setBusinessCardPhoto(dto.getBusinessCardPhoto());
+        appUser.setCityId(dto.getCityId());
+        appUser.setDistrictId(dto.getDistrictId());
+        appUser.setAuth(1);
+        appUserService.updateById(appUser);
+        return ResultUtil.success();
+    }
+    @ResponseBody
+    @PostMapping("/base/appUser/authInfo")
+    @ApiOperation(value = "中介认证信息", tags = {"个人中心"})
+    @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....",
+            required = true, paramType = "header")
+    public ResultUtil authInfo(){
+        AppUser appUser = appUserService.getAppUser();
+        AppUserDTO appUserDTO = new AppUserDTO();
+        BeanUtils.copyProperties(appUser,appUserDTO);
+        if (appUser.getCityId()!=null){
+            Region region = regionService.selectById(appUser.getCityId());
+            appUserDTO.setCityName(region.getName());
+        }
+        if (appUser.getDistrictId()!=null){
+            Region region = regionService.selectById(appUser.getDistrictId());
+            appUserDTO.setDistrictName(region.getName());
+        }
+        if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){
+            return ResultUtil.errorLogin("当前账号已被冻结或删除");
+        }
+        return ResultUtil.success(appUserDTO);
+    }
+
+
+
+    /**
+     *地图查询
+     */
+    @ResponseBody
+    @ApiOperation(value = "地图查询", tags = {"个人中心"})
+    @GetMapping("/base/appUser/queryMap")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "name", value = "位置", required = true)
+    })
+    public ResultUtil queryMap(String name)
+    {
+        String url ="https://apis.map.qq.com/ws/geocoder/v1/?address="+name+"&key=AAIBZ-NO7AQ-RKQ5G-2YSBL-3MEJH-VTFH4";
+        String result = HttpUtils.sendGet(url);
+        JSONArray data = JSONObject.parseObject(result).getJSONArray("data");
+        return ResultUtil.success(data);
+    }
+
+    public static void main(String[] args) {
+        String url ="https://apis.map.qq.com/ws/place/v1/suggestion/?keyword="+"四川省成都市青羊区大墙西街72号"+"&key=AAIBZ-NO7AQ-RKQ5G-2YSBL-3MEJH-VTFH4";
+        String result = HttpUtils.sendGet(url);
+        System.err.println(result);
+        JSONArray data = JSONObject.parseObject(result).getJSONArray("data");
+        System.err.println("返回结果:"+data);
+    }
+//    // 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
+    @PostMapping("/base/appUser/operate")
+    @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....",
+            required = true, paramType = "header")
+    @ApiOperation(value = "发布-删除/下架/顶上去/上架", tags = {"个人中心"})
+    public ResultUtil delete(@RequestBody UserInfoDTO dto){
+        AppUser appUser = appUserService.getAppUser();
+        if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){
+            return ResultUtil.errorLogin("当前账号已被冻结或删除");
+        }
+        Integer id = appUser.getId();
+        if (dto.getData() == 2){
+        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());
+                houseResource2.setUpTime(new Date());
+                houseResourceService.updateById(houseResource2);
+                break;
+            case 4:
+                // 判断当前房源是否有被举报的记录
+                int size = reportHouseResource.selectList(new EntityWrapper<ReportHouseResource>()
+                        .eq("house_resource_id", dto.getId())
+                        .eq("audit", 0)).size();
+                if (size>0)return ResultUtil.errorAdd("当前房源被举报,暂时不能上架");
+                HouseResource houseResource3 = houseResourceService.selectById(dto.getId());
+                houseResource3.setStatus(1);
+                houseResource3.setAuthStatus(2);
+                houseResourceService.updateById(houseResource3);
+                break;
+        }
+        }else{
+            switch (dto.getType()){
+                case 1:
+                    HousingDemand houseResource = housingDemandService.selectById(dto.getId());
+                    houseResource.setIsDelete(1);
+                    housingDemandService.updateById(houseResource);
+                    break;
+                case 2:
+                    HousingDemand houseResource1 = housingDemandService.selectById(dto.getId());
+                    houseResource1.setStatus(0);
+                    housingDemandService.updateById(houseResource1);
+                    break;
+                case 3:
+                    HousingDemand houseResource2 = housingDemandService.selectById(dto.getId());
+                    houseResource2.setInsertTime(new Date());
+                    houseResource2.setUpTime(new Date());
+                    housingDemandService.updateById(houseResource2);
+                    break;
+                case 4:
+                    HousingDemand houseResource3 = housingDemandService.selectById(dto.getId());
+                    houseResource3.setStatus(1);
+                    housingDemandService.updateById(houseResource3);
+                    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){
+        AppUser appUser = appUserService.getAppUser();
+        if(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){
+            return ResultUtil.errorLogin("当前账号已被冻结或删除");
+        }
+        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(null != appUser && (appUser.getStatus() == 2|| appUser.getStatus() == 3)){
+            return ResultUtil.errorLogin("当前账号已被冻结或删除");
+        }
+        if (StringUtils.hasLength(user.getProfilePhoto())){
+            appUser.setProfilePhoto(user.getProfilePhoto());
+        }
+        if (StringUtils.hasLength(user.getNickname())){
+            appUser.setNickname(user.getNickname());
+        }
+        appUserService.updateById(appUser);
+        return ResultUtil.success();
+    }
 
 }

--
Gitblit v1.7.1