package com.boman.web.core.controller;

import com.boman.common.core.web.controller.BaseController;
import com.boman.common.log.annotation.Log;
import com.boman.common.log.enums.BusinessType;
import com.boman.common.security.annotation.PreAuthorize;
import com.boman.domain.TableDataInfo;
import com.boman.domain.Czrk;
import com.boman.domain.dto.AjaxResult;
import com.boman.web.core.service.czrk.ICzrkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author shiqian
 * @description 人员认领
 * @date 2022年01月05日 14:26
 **/
@RestController
@RequestMapping("/core/ryrl")
public class RyrlController extends BaseController {

    @Autowired
    private ICzrkService czrkService;

    /**
     * 功能描述: 户籍认领人员list
     *2022/3/24修复户籍人员认领接口列表,逻辑:所有人都能看到所有没有确认,没有认领的人员
     * @param czrk czrk
     * @return com.boman.domain.TableDataInfo
     */
    @GetMapping("/listHj")
    public TableDataInfo listHj(Czrk czrk) {
        List<Czrk> list = czrkService.listByRlryHj(czrk);
        return getDataTable(list);
    }

    /**
     * 功能描述: 常住认领人员list
     *2022/3/24修复常住人员认领接口列表,逻辑:所有人都能看到所有没有确认,没有认领的人员
     * @param czrk czrk
     * @return com.boman.domain.TableDataInfo
     */
    @GetMapping("/listCz")
    public TableDataInfo listCz(Czrk czrk) {
        List<Czrk> list = czrkService.listByRlryCz(czrk);
        return getDataTable(list);
    }

    /**
     * 功能描述: 新增
     *
     * @param czrk czrk
     * @return com.boman.domain.dto.AjaxResult
     */
    @PostMapping("/addRlry")
    public AjaxResult addRlry(@RequestBody Czrk czrk) {
        return czrkService.addRlry(czrk);
    }

    /**
     * 功能描述: 人员认领菜单中认领接口
     *
     * @param czrk czrk
     * @return com.boman.domain.dto.AjaxResult
     */
    @PostMapping("/editRlry")
    public AjaxResult editRlry(@RequestBody Czrk czrk) {
        return czrkService.editRlry(czrk);
    }

    /**
     * 功能描述: 根据id回显 查czrk和czrk_jzdd
     *
     * @param id id
     * @return com.boman.domain.dto.AjaxResult
     */
    @GetMapping("/getById/{id}")
    public AjaxResult getById(@PathVariable Long id) {
        return AjaxResult.success("成功", czrkService.getById(id));
    }

    /**
     * 功能描述: 小程序   人员新页面，统计全部、已认领、未认领各多少人
     *
     * @return com.boman.domain.dto.AjaxResult
     */
    @PostMapping("/sts")
    public AjaxResult stsByApplet(@RequestBody Czrk czrk) {
        return AjaxResult.success("成功", czrkService.stsByApplet(czrk));
    }

    /**
     * 一键确认家庭成员
     */
    @Log(title = "一键确认家庭成员", businessType = BusinessType.UPDATE)
    @GetMapping("/confirmInfo/{ids}")
    public AjaxResult confirmInfo(@PathVariable Long[] ids)
    {
        if (ids == null || ids.length < 1){
            return AjaxResult.error("未获取到家庭成员信息");
        }
        return czrkService.confirmInfoByIds(ids);
    }
}
