luo
2023-12-25 23c4967b4cb8dbce8277f830f7152d315c5a4a57
guns-management/src/main/java/com/stylefeng/guns/modular/code/controller/HouseController.java
@@ -1,27 +1,36 @@
package com.stylefeng.guns.modular.code.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.modular.system.dto.Host;
import com.stylefeng.guns.modular.system.dto.THouseResource;
import com.stylefeng.guns.modular.system.model.HouseResource;
import com.stylefeng.guns.modular.system.model.HouseType;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.IAppUserService;
import com.stylefeng.guns.modular.system.service.IHouseResourceService;
import com.stylefeng.guns.modular.system.service.IHouseTypeService;
import com.stylefeng.guns.modular.system.service.IHousingDemandService;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.req.AddHouseReq;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.bouncycastle.cms.PasswordRecipient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Controller
@RequestMapping("/base/house")
@@ -32,6 +41,84 @@
    @Autowired
    private IHouseResourceService houseResourceService;
    @Autowired
    private IHousingDemandService demandService;
    @Autowired
    private IAppUserService appUserService;
    @Autowired
    private RedisUtil redisUtil;
    @ResponseBody
    @GetMapping("/data")
    @ApiOperation(value = "统计", tags = {"后台-主页"})
    public List<Integer> data(){
        Date date = new Date(); // 假设这是您的java.util.Date对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = sdf.format(date);
        LocalDate today = LocalDate.now();
        List<Integer> data = new ArrayList<>();
        //总房源
        Integer one = houseResourceService.selectCount(new EntityWrapper<HouseResource>().eq("is_delete", 0));
        data.add(one);
        //总出租房源
        Integer two = houseResourceService.selectCount(new EntityWrapper<HouseResource>().eq("is_delete", 0).eq("data_type",1));
        data.add(two);
        //总卖房源
        Integer three = houseResourceService.selectCount(new EntityWrapper<HouseResource>().eq("is_delete", 0).eq("data_type",2));
        data.add(three);
        //总求买房
        Integer four = demandService.selectCount(new EntityWrapper<HousingDemand>().eq("is_delete", 0).eq("data_type",2));
        data.add(four);
        //总求租房
        Integer five = demandService.selectCount(new EntityWrapper<HousingDemand>().eq("is_delete", 0).eq("data_type",1));
        data.add(five);
        //总中介
        Integer six = appUserService.selectCount(new EntityWrapper<AppUser>().eq("user_type",3).ne("status",3));
        data.add(six);
        //总房东
        Integer seven = appUserService.selectCount(new EntityWrapper<AppUser>().eq("user_type",3).ne("status",2));
        data.add(seven);
        //总用户
        Integer eight = appUserService.selectCount(new EntityWrapper<AppUser>().ne("status",2));
        data.add(eight);
        //今日新增中介
        Integer nine = appUserService.selectCount(new EntityWrapper<AppUser>()
                .eq("user_type", 3)
                .ne("status", 3)
                .like("changeTime", formattedDate));
        data.add(nine);
        //今日新增房东
        Integer ten = appUserService.selectCount(new EntityWrapper<AppUser>()
                .eq("user_type",2)
                .ne("status",3)
                .like("changeTime", formattedDate));
        data.add(ten);
        //今日新增用户
        Integer eleven = appUserService.selectCount(new EntityWrapper<AppUser>().ne("status",3).like("insert_time", formattedDate));
        data.add(eleven);
        //今日新增房源出租
        Integer twelve = houseResourceService.selectCount(new EntityWrapper<HouseResource>().eq("is_delete", 0).ne("type",1).eq("data_type",1).like("auth_time", formattedDate));
        data.add(twelve);
        //今日卖房源
        Integer thirteen = houseResourceService.selectCount(new EntityWrapper<HouseResource>().eq("is_delete", 0).ne("type",1).eq("data_type",2).like("auth_time", formattedDate));
        data.add(thirteen);
        //今日求租房
        Integer fourteen = demandService.selectCount(new EntityWrapper<HousingDemand>().eq("is_delete", 0).ne("type",1).eq("data_type",1).like("insert_time", formattedDate));
        data.add(fourteen);
        //今日求买房
        Integer fifteen = demandService.selectCount(new EntityWrapper<HousingDemand>().eq("is_delete", 0).ne("type",1).eq("data_type",2).like("insert_time", formattedDate));
        data.add(fifteen);
        return data;
    }
    @ResponseBody
@@ -50,14 +137,28 @@
        return ResultUtil.success(houseTypes);
    }
    @ResponseBody
    @GetMapping("/getHouseTypeList")
    @ApiOperation(value = "获取房源类型列表", tags = {"后台-房源管理"})
    public Object getHouseTypeList(@RequestParam int pageNum,@RequestParam int pageSize){
        PageHelper.startPage(pageNum,pageSize);
        List<HouseType> houseTypes = houseTypeService.list();
        PageInfo<HouseType> info=new PageInfo<>(houseTypes);
        System.err.println(info);
        return info;
    }
    @ResponseBody
    @PostMapping("/addHouseType")
    @ApiOperation(value = "增加房源类型", tags = {"后台-房源管理"})
    public ResultUtil addHouseType(HouseType houseType){
    public ResultUtil addHouseType(@RequestBody HouseType houseType){
        houseType.setInsertTime(new Date());
        houseType.setCreateBy(Objects.requireNonNull(ShiroKit.getUser()).id);
        houseTypeService.insert(houseType);
        return ResultUtil.success("增加成功");
    }
@@ -76,8 +177,28 @@
        HouseResource houseResource = houseResourceService.selectById(id);
        AddHouseReq addHouseReq = new AddHouseReq();
        BeanUtils.copyProperties(houseResource,addHouseReq);
        addHouseReq.setTime(houseResource.getLeaseTime());
        return addHouseReq;
    }
    @ResponseBody
    @GetMapping("/auth/setting")
    @ApiOperation(value = "房源审核设置", tags = {"后台-房源审核设置"})
    public ResultUtil setting(){
        String tt = redisUtil.getValue("HouseAuthSetting");
        if (tt.equals("null")){
            tt = "0";
        }
        return ResultUtil.success(tt);
    }
    @ResponseBody
    @PutMapping("/auth/setting/update")
    @ApiOperation(value = "房源审核设置修改", tags = {"后台-房源审核设置"})
    public ResultUtil settingUpdate(Integer num){
        redisUtil.setStrValue("HouseAuthSetting", String.valueOf(num));
        return ResultUtil.success("保存成功");
    }
@@ -91,7 +212,7 @@
    @ResponseBody
    @GetMapping("/list")
    @ApiOperation(value = "列表", tags = {"后台-房源管理"})
    @ApiOperation(value = "列表", tags = {"后台-房源管理"},response = THouseResource.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "int", paramType = "query"),
            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "int", paramType = "query"),
@@ -122,7 +243,7 @@
    @ResponseBody
    @GetMapping("/au/list")
    @ApiOperation(value = "审核列表", tags = {"后台-房源管理"})
    @ApiOperation(value = "审核列表", tags = {"后台-房源管理"},response = THouseResource.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageNum", value = "页码", required = true, dataType = "int", paramType = "query"),
            @ApiImplicitParam(name = "pageSize", value = "每页数量", required = true, dataType = "int", paramType = "query"),
@@ -154,20 +275,26 @@
    @ResponseBody
    @PutMapping("/change")
    @ApiOperation(value = "(0=下架,1=上架,2=删除,3通过审核,4拒绝审核)", tags = {"后台-房源管理"})
    public ResultUtil change(Integer id,Integer status){
        HouseResource houseResource = houseResourceService.selectById(id);
    public ResultUtil change(String ids,Integer status,String reason){
        String[] split = ids.split(",");
        for (String id : split) {
        HouseResource houseResource = houseResourceService.selectById(Integer.valueOf(id));
        if (status==0||status==1){
            houseResource.setStatus(status);
        }else if (status==2){
            houseResource.setIsDelete(1);
        }else if (status ==3){
            houseResource.setAuthTime(new Date());
            houseResource.setAuthStatus(2);
        }else if (status == 4){
            houseResource.setAuthTime(new Date());
            houseResource.setReason(reason);
            houseResource.setAuthStatus(3);
        }
        houseResourceService.updateById(houseResource);
        }
        return ResultUtil.success("操作成功");