package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; 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.BadgeAuditRecordResultDTO; import com.epmet.dto.result.BadgeAuditingResultDTO; import com.epmet.dto.result.BadgeDetailResultDTO; import com.epmet.dto.result.BadgeListResultDTO; import com.epmet.redis.UserBadgeRedis; import com.epmet.service.BadgeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; 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") 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") 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())); } }