package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.redis.UserBadgeRedis; import com.epmet.service.BadgeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotBlank; import java.util.List; import java.util.Map; /** * @author zhaoqifeng * @dscription * @date 2020/11/3 16:09 */ @RestController @RequestMapping("badge") public class BadgeController { @Autowired private BadgeService badgeService; @Autowired private UserBadgeRedis badgeRedis; /** * 徽章列表 * @author zhaoqifeng * @date 2020/11/4 14:27 * @param tokenDto * @return com.epmet.commons.tools.utils.Result> */ @PostMapping("list") public Result> list(@LoginUser TokenDto tokenDto) { List result = badgeService.getList(tokenDto.getCustomerId()); return new Result>().ok(result); } /** * 添加徽章 * @author zhaoqifeng * @date 2020/11/4 14:27 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("add") public Result add(@LoginUser TokenDto tokenDto, @RequestBody AddBadgeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); badgeService.add(tokenDto, formDTO); return new Result(); } /** * 徽章详情 * @author zhaoqifeng * @date 2020/11/4 14:27 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("detail") public Result detail(@LoginUser TokenDto tokenDto, @RequestBody BadgeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, BadgeFormDTO.ManageGroup.class); BadgeDetailResultDTO result = badgeService.detail(tokenDto, formDTO); return new Result().ok(result); } /** * 修改 * @author zhaoqifeng * @date 2020/11/4 15:32 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("edit") @NoRepeatSubmit public Result edit(@LoginUser TokenDto tokenDto, @RequestBody EditBadgeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); badgeService.edit(tokenDto, formDTO); return new Result(); } /** * 删除徽章 * @author zhaoqifeng * @date 2020/11/4 15:34 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("delete") public Result delete(@LoginUser TokenDto tokenDto, @RequestBody BadgeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, BadgeFormDTO.ManageGroup.class); badgeService.deleteBadge(tokenDto, formDTO); return new Result(); } @PostMapping("test-cache") public Result testCache(){ badgeService.testCache(); return new Result(); } /** * 待审核列表 * @author zhaoqifeng * @date 2020/11/5 9:51 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result> */ @PostMapping("auditinglist") public Result> auditingList(@LoginUser TokenDto tokenDto, @RequestBody BadgeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, BadgeFormDTO.AuditGroup.class); List result = badgeService.auditingList(tokenDto, formDTO); return new Result>().ok(result); } /** * 审核历史列表 * @author zhaoqifeng * @date 2020/11/5 10:59 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result> */ @PostMapping("auditrecord") public Result> auditRecord(@LoginUser TokenDto tokenDto, @RequestBody BadgeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, BadgeFormDTO.AuditGroup.class); List result = badgeService.auditRecord(tokenDto, formDTO); return new Result>().ok(result); } /** * 审核 * @author zhaoqifeng * @date 2020/11/5 11:09 * @param tokenDto * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("audit") @NoRepeatSubmit public Result audit(@LoginUser TokenDto tokenDto, @RequestBody BadgeAuditFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); badgeService.audit(tokenDto, formDTO); return new Result(); } /** * @Description 供其他服务调用 查询指定用户需要显示的徽章信息(缓存补偿) * @param param * @return com.epmet.commons.tools.utils.Result>> * @author wangc * @date 2020.11.10 15:59 */ @PostMapping("usershowbadge") public Result>> userShowBadge(@RequestBody UserGroupFormDTO param){ ValidatorUtils.validateEntity(param); return new Result>>().ok(badgeRedis.batchObtainUserBadge(param.getCustomerId(),param.getUserIds())); } /** * @param gridIdList * @author yinzuomei * @description 根据网格id, 查询每个网格有多少个徽章申请单 * @Date 2020/11/12 15:51 **/ @PostMapping("querygridauditingbadgecount") public Result> queryGridAuditingBadgeCount(@RequestBody List gridIdList) { return new Result>().ok(badgeService.queryGridAuditingBadgeCount(gridIdList)); } /** * @Description 查询用户徽章 * @Param formDTO * @author zxc * @date 2021/4/22 下午4:17 */ @PostMapping("userbadges") public Result> userBadges(@RequestBody UserBadgesFormDTO formDTO){ return new Result>().ok(badgeService.userBadges(formDTO)); } /** * @Description * @return * @author wxz * @date 2021.08.02 10:27 */ @PostMapping("list-users-by-badge") public Result> listUsersByBadge(@RequestBody ListUserByBadgeFormDTO input) { ValidatorUtils.validateEntity(input); String customerId = input.getCustomerId(); String badgeKey = input.getBadgeKey(); List users = badgeService.listUsersByBadge(customerId, badgeKey); return new Result>().ok(users); } }