package com.panzhihua.applets.api; 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.dtos.partybuilding.*; 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 com.alibaba.fastjson.JSONObject; import com.panzhihua.applets.weixin.CheckService; import com.panzhihua.common.controller.BaseController; 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 * @description: 党群服务 * @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; 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) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); if (loginUserInfo != null) { partyBuildingComPbDynVO.setCommunityId(loginUserInfo.getCommunityId()); } Integer type = partyBuildingComPbDynVO.getType(); if (ObjectUtils.isEmpty(type)) { return R.fail("类型不能为空"); } partyBuildingComPbDynVO.setStatus(2); return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO); } @ApiOperation(value = "分页查询党员活动", response = PageActivityMembersVO.class) @PostMapping("pageactivity") public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) { 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 = "增加阅读记录") // @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) { 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(); } 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); } return r; } @ApiOperation(value = "分页党委查询", response = PartyCommitteeVO.class) @PostMapping("pagepartycommittee") public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) { // 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) @GetMapping("activityinfo") public R activityinfo(@RequestParam("id") Long id) { Long userId = this.getUserId(); return partyBuildingService.activityinfo(id, userId); } @ApiOperation(value = "党员活动人员参入列表", response = PartyBuildingMemberVO.class) @GetMapping("listpartybuildingmember") public R listPartyBuildingMember(@RequestParam("id") Long id) { return partyBuildingService.listPartyBuildingMember(id); } @ApiOperation(value = "报名、取消报名党员活动") @PutMapping("activitysignup") public R putActivitySignUp(@RequestBody @Validated ActivitySignUpDTO 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); } @PostMapping("/getProject/list") public R getProjectList(@RequestBody ProjectVO projectVO){ return partyBuildingService.getProjectList(projectVO); } @PostMapping("/add/project") public R addProject(@RequestBody ProjectVO projectVO){ return partyBuildingService.addProject(projectVO); } @PostMapping("/update/project") public R updateProject(@RequestBody ProjectVO projectVO){ return partyBuildingService.updateProject(projectVO); } @PostMapping("/delete/project") public R deleteProject(@RequestBody ProjectVO projectVO){ return partyBuildingService.deleteProject(projectVO); } @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); } }