mitao
2025-05-20 179c4d64313c9b7572778da4aaaf6c6584fe457d
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerApi.java
New file
@@ -0,0 +1,147 @@
package com.panzhihua.applets.api;
import com.alibaba.excel.EasyExcel;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.listen.ComActSocialWorkerExcelListen;
import com.panzhihua.common.model.dtos.civil.*;
import com.panzhihua.common.model.dtos.property.CommonPage;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO;
import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.ClazzUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
/**
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-06-03
 * */
@Slf4j
@RestController
@RequestMapping("/comactsocialworker")
@Api(tags = {"社工"})
public class ComActSocialWorkerApi extends BaseController {
    @Resource
    private CommunityService communityService;
//    @Value("${excel.comactsocialworkerUrl}")
//    private String comactsocialworkerUrl;
    /**
     * 新增社工
     * @param {classNameFirstLower}AddDTO 添加社工传递对象
     * @return 新增结果
     */
    @PostMapping()
    @ApiOperation(value = "新增社工", response = R.class)
    R add(@Validated @RequestBody ComActSocialWorkerAddDTO comActSocialWorkerAddDTO){
        ClazzUtils.setIfStringIsEmpty(comActSocialWorkerAddDTO);
        comActSocialWorkerAddDTO.setUserId(getUserId());
        comActSocialWorkerAddDTO.setCommunityId(getCommunityId());
        return communityService.addComactsocialworker(comActSocialWorkerAddDTO);
    }
    /**
     * 修改
     * @param comActSocialWorkerEditDTO 修改社工传递对象
     * @return 修改结果
     */
    @PutMapping()
    @ApiOperation(value = "编辑社工", response = R.class)
    R edit(@Validated @RequestBody ComActSocialWorkerEditDTO comActSocialWorkerEditDTO){
        comActSocialWorkerEditDTO.setUserId(getUserId());
        return communityService.editComactsocialworker(comActSocialWorkerEditDTO);
    }
    /**
     * 分页查找
     * @param pageComActSocialWorkerDTO 查找社工传递对象
     * @return 查找结果
     */
    @GetMapping()
    @ApiOperation(value = "查询社工", response= ComActSocialWorkerVO.class)
    R query(@Validated @ModelAttribute PageComActSocialWorkerDTO pageComActSocialWorkerDTO){
        ClazzUtils.setIfStringIsEmpty(pageComActSocialWorkerDTO);
        LoginUserInfoVO loginUserInfoSureNoLogin = this.getLoginUserInfoSureNoLogin();
        if (nonNull(loginUserInfoSureNoLogin)) {
            pageComActSocialWorkerDTO.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
        } else if (isNull(pageComActSocialWorkerDTO.getCommunityId())) {
            return R.fail("缺少社区id");
        }
        return communityService.queryComactsocialworker(pageComActSocialWorkerDTO);
    }
    /**
     * 删除
     * @param comActSocialWorkerDeleteDTO 删除社工传递对象
     * @return 删除结果
     */
    @DeleteMapping()
    @ApiOperation(value = "删除社工", response = R.class)
    R delete(@Validated @RequestBody ComActSocialWorkerDeleteDTO  comActSocialWorkerDeleteDTO){
        ClazzUtils.setIfStringIsEmpty(comActSocialWorkerDeleteDTO);
        return communityService.deleteComactsocialworker(comActSocialWorkerDeleteDTO);
    }
    /**
     * 查询社工详细信息
     * @param id 社工 id
     * @return 查找结果
     */
    @GetMapping("/{id}")
    @ApiOperation(value = "查询社工详细信息")
    R<ComActSocialWorkerVO> details(@PathVariable("id") Long id){
        return communityService.comActSocialWorkerDetails(id);
    }
    /**
     * 导入社工名单
     * @return
     */
    @ApiOperation(value = "导入社工名单")
    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-data")
    public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
        String fileName = file.getOriginalFilename();  //获取文件名
        log.info("传入文件名字【{}】",fileName);
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
            EasyExcel.read(inputStream, ComActSocialWorkerExcelVO.class, new ComActSocialWorkerExcelListen(communityService,this.getCommunityId())).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
            log.error("导入模板失败【{}】", e.getMessage());
            return R.fail("信息有误");
        }
        return R.ok();
    }
    //    @GetMapping("/getTemplate")
//    @ApiOperation("获取模板")
//    public R getTemplate(){
//        return R.ok(comactsocialworkerUrl);
//    }
    @ApiOperation("根据社工获取活动")
    @PostMapping("/activityList")
    R activityList(@RequestBody CommonPage commonPage){
        return communityService.activityList(commonPage);
    }
}