lidongdong
2022-11-18 97bb97c13ad63c40a8baf73b0f5e08d93c0e7559
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingApi.java
@@ -1,19 +1,41 @@
package com.panzhihua.applets.api;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.partybuilding.ActivitySignUpDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.partybuilding.*;
import com.panzhihua.common.service.partybuilding.PartyBuildingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.Date;
import javax.annotation.Resource;
import cn.hutool.core.util.StrUtil;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo;
import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.applets.weixin.CheckService;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.partybuilding.ActivitySignUpDTO;
import com.panzhihua.common.model.dtos.partybuilding.ComListPartyDTO;
import com.panzhihua.common.model.dtos.partybuilding.ComPbActivityDTO;
import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.partybuilding.*;
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
import com.panzhihua.common.service.partybuilding.PartyBuildingService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.validated.AddGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -21,70 +43,131 @@
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-12-02 16:19
 **/
@Slf4j
@RestController
@RequestMapping("/partybuilding/")
@Api(tags = {"党群服务"})
public class PartyBuildingApi extends BaseController {
    @Resource
    private PartyBuildingService partyBuildingService;
    @Resource
    private PartyBuildingWestService partyBuildingWestService;
    @Resource
    private UserService userService;
    @Resource
    private CheckService checkService;
    @Resource
    private ComPbCheckUnitFeign pbCheckUnitFeign;
    @Resource
    private CommunityService communityService;
    @ApiOperation(value = "分页党建动态/政策文件",response =PartyCommitteeVO.class )
    public static void main(String[] args) {
        Date date = new Date();
        String dateFormat = String.format("%tF %tT ", date, date);
        System.out.println(dateFormat);
    }
    @ApiOperation(value = "分页党建动态/政策文件", response = PartyBuildingComPbDynVO.class)
    @PostMapping("pagedynamic")
    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO){
        Long communityId = this.getCommunityId();
    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
        if (loginUserInfo != null) {
            partyBuildingComPbDynVO.setCommunityId(loginUserInfo.getCommunityId());
        }
        Integer type = partyBuildingComPbDynVO.getType();
        if (ObjectUtils.isEmpty(type)) {
            return R.fail("类型不能为空");
        }
        partyBuildingComPbDynVO.setCommunityId(communityId);
        return partyBuildingService.pageYnamic(partyBuildingComPbDynVO);
        partyBuildingComPbDynVO.setStatus(2);
        return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO);
    }
    @ApiOperation(value = "分页查询党员活动",response = PageActivityMembersVO.class)
    @ApiOperation(value = "分页查询党员活动", response = PageActivityMembersVO.class)
    @PostMapping("pageactivity")
    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
        Long communityId = this.getCommunityId();
        partyBuildingActivityVO.setCommunityId(communityId);
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
        if (loginUserInfo != null) {
            partyBuildingActivityVO.setCommunityId(loginUserInfo.getCommunityId());
        }
        // Long communityId = this.getCommunityId();
        // partyBuildingActivityVO.setCommunityId(communityId);
        Integer status = partyBuildingActivityVO.getStatus();
        if (null != status && status.intValue() == 4) {
            partyBuildingActivityVO.setIsAppliets(1);
        }
        return partyBuildingService.pageActivity(partyBuildingActivityVO);
    }
    @ApiOperation(value = "动态/政策文件详情",response =PartyBuildingComPbDynVO.class )
    // @ApiOperation(value = "增加阅读记录")
    // @PostMapping("adddynuser")
    // public R addDynUser(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
    // Long id = partyBuildingComPbDynVO.getId();
    // if (ObjectUtils.isEmpty(id)||0==id) {
    // return R.fail("主键id不能为空");
    // }
    // Long userId = this.getUserId();
    // ComPbDynUserVO comPbDynUserVO=new ComPbDynUserVO();
    // comPbDynUserVO.setCreateAt(new Date());
    // comPbDynUserVO.setDynId(id);
    // comPbDynUserVO.setUserId(userId);
    // return partyBuildingService.addDynUser(comPbDynUserVO);
    // }
    @ApiOperation(value = "动态/政策文件详情", response = PartyBuildingComPbDynVO.class)
    @GetMapping("infodynamic")
    public R infoYnamic(@RequestParam("id") Long id) {
        return partyBuildingService.infoYnamic(id);
    }
        R r = partyBuildingWestService.infoYnamic(id);
        if (R.isOk(r)) {
            if (ObjectUtils.isEmpty(id) || 0 == id) {
                return R.fail("主键id不能为空");
            }
            Long userId = null;
            LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
            if (loginUserInfo != null) {
                userId = loginUserInfo.getUserId();
            }
    @ApiOperation(value = "增加阅读记录")
    @PostMapping("adddynuser")
    public R addDynUser(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
        Long id = partyBuildingComPbDynVO.getId();
        if (ObjectUtils.isEmpty(id)||0==id) {
            return R.fail("主键id不能为空");
            PartyBuildingComPbDynVO partyBuildingComPbDynVO =
                    JSONObject.parseObject(JSONObject.toJSONString(r.getData()), PartyBuildingComPbDynVO.class);
            if (userId != null) {
                ComPbDynUserVO comPbDynUserVO = new ComPbDynUserVO();
                comPbDynUserVO.setCreateAt(new Date());
                comPbDynUserVO.setDynId(id);
                comPbDynUserVO.setUserId(userId);
                R r1 = partyBuildingWestService.addDynUser(comPbDynUserVO);
                if (R.isOk(r1)) {
                    partyBuildingComPbDynVO.setIsAdd(1);
                } else {
                    partyBuildingComPbDynVO.setIsAdd(0);
                }
            } else {
                partyBuildingComPbDynVO.setIsAdd(0);
            }
            return R.ok(partyBuildingComPbDynVO);
        }
        Long userId = this.getUserId();
        ComPbDynUserVO comPbDynUserVO=new ComPbDynUserVO();
        comPbDynUserVO.setCreateAt(new Date());
        comPbDynUserVO.setDynId(id);
        comPbDynUserVO.setUserId(userId);
        return partyBuildingService.addDynUser(comPbDynUserVO);
        return r;
    }
    @ApiOperation(value = "分页党委查询",response =PartyCommitteeVO.class )
    @ApiOperation(value = "分页党委查询", response = PartyCommitteeVO.class)
    @PostMapping("pagepartycommittee")
    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
        Long communityId =this.getCommunityId();
        partyCommitteeVO.setCommunityId(communityId);
        // Long communityId =this.getCommunityId();
        // partyCommitteeVO.setCommunityId(communityId);
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
        if (loginUserInfo != null) {
            partyCommitteeVO.setCommunityId(loginUserInfo.getCommunityId());
        }
        return partyBuildingService.pagePartyCommittee(partyCommitteeVO);
    }
    @ApiOperation(value = "活动详情",response = PartyBuildingActivityVO.class)
    @ApiOperation(value = "活动详情", response = PartyBuildingActivityVO.class)
    @GetMapping("activityinfo")
    public R activityinfo(@RequestParam("id") Long id) {
        Long userId = this.getUserId();
        return partyBuildingService.activityinfo(id,userId);
        return partyBuildingService.activityinfo(id, userId);
    }
    @ApiOperation(value = "党员活动人员参入列表",response = PartyBuildingMemberVO.class)
    @ApiOperation(value = "党员活动人员参入列表", response = PartyBuildingMemberVO.class)
    @GetMapping("listpartybuildingmember")
    public R listPartyBuildingMember(@RequestParam("id") Long id) {
        return partyBuildingService.listPartyBuildingMember(id);
@@ -93,11 +176,161 @@
    @ApiOperation(value = "报名、取消报名党员活动")
    @PutMapping("activitysignup")
    public R putActivitySignUp(@RequestBody @Validated ActivitySignUpDTO activitySignUpDTO) {
        activitySignUpDTO.setUserId(this.getUserId());
        return partyBuildingService.putActivitySignUp(activitySignUpDTO);
        Long userId = this.getUserId();
        activitySignUpDTO.setUserId(userId);
        Long id = activitySignUpDTO.getId();
        R r = partyBuildingService.putActivitySignUp(activitySignUpDTO);
        if (R.isOk(r) && activitySignUpDTO.getType().intValue() == 1) {
            R r2 = partyBuildingService.activityinfo(id, userId);
            PartyBuildingActivityVO partyBuildingActivityVO =
                    JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), PartyBuildingActivityVO.class);
            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
            sysUserNoticeVO.setUserId(userId);
            sysUserNoticeVO.setType(1);
            sysUserNoticeVO.setTitle("报名成功");
            sysUserNoticeVO.setBusinessType(2);
            sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
            Date activityTimeBegin = partyBuildingActivityVO.getActivityTimeBegin();
            sysUserNoticeVO
                    .setBusinessContent(String.format("活动将于 %tF %tT  开始,请按时参加", activityTimeBegin, activityTimeBegin));
            sysUserNoticeVO.setBusinessId(id);
            sysUserNoticeVO.setStatus(0);
            sysUserNoticeVO.setBusinessStatus(2);
            R r1 = userService.addNotice(sysUserNoticeVO);
            if (R.isOk(r1)) {
                log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
            }
        }
        return r;
    }
    @ApiOperation(value = "创建党员活动")
    @PostMapping("activityinfo")
    public R addActivityinfo(@RequestBody @Validated(AddGroup.class) ComPbActivityDTO comPbActivityDTO) {
        // 微信内容审核
        String msg = comPbActivityDTO.getRichText();
        if (StrUtil.isNotBlank(msg)) {
            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
            if (StrUtil.isNotBlank(result)) {
                return R.fail(501, "填写内容存在 " + result + " 违规信息");
            }
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long userId = loginUserInfo.getUserId();
        Long communityId = loginUserInfo.getCommunityId();
        comPbActivityDTO.setCreateBy(userId);
        comPbActivityDTO.setCommunityId(communityId);
        Date date = new Date();
        comPbActivityDTO.setReleaseTime(date);
        Date activityTimeBegin = comPbActivityDTO.getActivityTimeBegin();
        Date activityTimeEnd = comPbActivityDTO.getActivityTimeEnd();
        boolean before = activityTimeEnd.before(activityTimeBegin);
        if (before) {
            return R.fail("活动结束时间不能早于开始时间");
        }
        // 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消
        int status = 2;
        Date enrollTimeBegin = comPbActivityDTO.getEnrollTimeBegin();
        Date enrollTimeEnd = comPbActivityDTO.getEnrollTimeEnd();
        if (enrollTimeEnd.before(enrollTimeBegin)) {
            return R.fail("报名结束时间不能早于报名开始时间");
        }
        if (enrollTimeBegin.before(date)) {
            status = 3;
        }
        comPbActivityDTO.setStatus(status);
        return partyBuildingService.addActivityApplets(comPbActivityDTO);
    }
    @ApiOperation(value = "分页查询服务团队成员", response = ComPbServiceTeamVO.class)
    @PostMapping("pageserviceteam")
    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
        if (loginUserInfo != null) {
            pageComPbServiceTeamDTO.setCommunityId(loginUserInfo.getCommunityId());
        }
        // pageComPbServiceTeamDTO.setCommunityId(this.getCommunityId());
        return partyBuildingService.pageServiceTeam(pageComPbServiceTeamDTO);
    }
    @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
    @PostMapping("listpartyorganization")
    public R listPartyOrganization(@RequestBody ComListPartyDTO comListPartyDTO) {
        // Long communityId = this.getCommunityId();
        // log.info("社区所有党组织社区id【{}】", communityId);
        // if(communityId != null){
        // comListPartyDTO.setCommunityId(communityId);
        // }
        return partyBuildingService.listPartyOrganizationByApp(comListPartyDTO);
    }
    @OperLog(operModul = "党员管理", operType = 2)
    @ApiOperation(value = "编辑党员")
    @PutMapping("updatepartybuildingmember")
    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
                return partyBuildingService.updatePartyBuildingMember(partyBuildingMemberVO);
    }
    @ApiOperation(value = "查询社区下所有党员报到单位", response = ComPbCheckUnitVo.class)
    @PostMapping("/comPbCheckUnit/list")
    public R getPbCheckUnitList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
        if (comPbCheckUnit.getCommunityId() == null) {
            comPbCheckUnit.setCommunityId(this.getCommunityId());
        }
        return pbCheckUnitFeign.queryByList(comPbCheckUnit);
    }
    @OperLog(operModul = "党员管理", operType = 1)
    @ApiOperation(value = "新增党员")
    @PostMapping("addpartybuildingmember")
    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
        Long userId = this.getUserId();
        partyBuildingMemberVO.setUserId(userId);
        R r = partyBuildingService.addPartyBuildingMember(partyBuildingMemberVO);
        if (R.isOk(r)) {
            R r1 = userService.updateUserPartyStatus(this.getUserId());
        }
        return r;
    }
    @OperLog(operModul = "党员管理", operType = 1)
    @ApiOperation(value = "分页查询党员列表",response = PartyBuildingMemberVO.class)
    @PostMapping("/page/member")
    public R pageMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
        //partyBuildingMemberVO.setCommunityId(this.getCommunityId());
        return partyBuildingService.getPagePbMember(partyBuildingMemberVO);
    }
    @ApiOperation(value = "分页查询注册党员列表",response = PartyBuildingMemberVO.class)
    @PostMapping("/page/registerMember")
    public R pageRegisterMember(@RequestBody PageMemberForInviteDTO pageMemberForInviteDTO) {
        pageMemberForInviteDTO.setAppid(this.getAppId());
        return partyBuildingService.pageRegisterMember(pageMemberForInviteDTO);
    }
    @ApiOperation(value = "查询所有社区列表", response = EventGridCommunityAdminVO.class)
    @GetMapping("/community/list")
    public R getCommunityLists() {
        return communityService.getCommunityLists();
    }
    @ApiOperation(value = "查询当前用户党员信息")
    @GetMapping("/getPartyMember")
    public R getPartyMember(@RequestParam("type")Integer type){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (StrUtil.isEmpty(loginUserInfo.getPhone())){
            return R.fail("请先实名认证");
        }
        return partyBuildingService.getPartyMember(loginUserInfo.getPhone(),type);
    }
    @ApiOperation(value = "查询报道单位详情")
    @GetMapping("/comPbCheckUnit/detailByPhone")
    public R detailById(@RequestParam("phone") String phone) {
        return partyBuildingService.detailByPhone(phone);
    }
    @ApiOperation(value = "党员详情",response =PartyBuildingMemberVO.class)
    @GetMapping("/memberDetail")
    public R memberDetail(@RequestParam("id")Long id){
        return partyBuildingService.memberDetail(id);
    }
}