package com.zhongzheng.controller.base; import com.zhongzheng.common.core.controller.BaseController; import com.zhongzheng.common.core.domain.AjaxResult; import com.zhongzheng.common.core.page.TableDataInfo; import com.zhongzheng.common.core.redis.RedisCache; import com.zhongzheng.common.utils.ServletUtils; import com.zhongzheng.framework.web.service.WxTokenService; import com.zhongzheng.modules.base.bo.*; import com.zhongzheng.modules.base.domain.UserProfile; import com.zhongzheng.modules.base.service.IProfileTpService; import com.zhongzheng.modules.base.service.IUserProfileService; import com.zhongzheng.modules.base.vo.ProfileTpVo; import com.zhongzheng.modules.base.vo.UserProfileVo; import com.zhongzheng.modules.user.bo.CommitmentSealBo; import com.zhongzheng.modules.user.entity.ClientLoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import net.polyv.common.v1.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** * 资料模板Controller * * @author hjl * @date 2021-11-19 */ @Api(value = "资料模板控制器", tags = {"资料模板管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/base/profile/tp") public class ProfileTpController extends BaseController { private final IProfileTpService iProfileTpService; private final WxTokenService wxTokenService; private final IUserProfileService iUserProfileService; private final RedisCache redisCache; /** * 查询资料模板列表 */ @ApiOperation("查询资料模板列表") @GetMapping("/list") public TableDataInfo list(ProfileTpQueryBo bo) { startPage(); if (StringUtils.isNotBlank(bo.getStatus())){ List collect = Arrays.asList(bo.getStatus().split(",")).stream().map(x -> Integer.valueOf(x)).collect(Collectors.toList()); bo.setStatusList(collect); } List list = iProfileTpService.selectList(bo); return getDataTable(list); } /** * 学员上传承诺书 */ @ApiOperation("学员上传承诺书") @PostMapping("/commitment/upload") public AjaxResult commitmentSealUpload(@RequestBody CommitmentSealBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); return toAjax(iProfileTpService.commitmentSealUpload(bo) ? 1:0 ); } /** * 获取资料模板详细信息 */ @ApiOperation("获取资料模板详细信息") @GetMapping("/{goodsId}") public AjaxResult queryByGoodsId(@PathVariable("goodsId" ) Long goodsId) { return AjaxResult.success(iProfileTpService.queryByGoodsId(goodsId)); } /** * 新增填写资料审核 */ @ApiOperation("新增填写资料审核") @PostMapping() public AjaxResult add(@RequestBody UserProfileAddBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); String key = "PROFILE_"+loginUser.getUser().getUserId(); Long value = redisCache.getCacheObject(key); if(value!=null){ return toAjax(0); } redisCache.setCacheObject(key,1L,5, TimeUnit.SECONDS);//10秒 if(iUserProfileService.insertByAddBo(bo)){ return toAjax(1); } return toAjax(0); } /** * 修改填写资料审核 */ @ApiOperation("修改填写资料审核") @PostMapping("edit") public AjaxResult edit(@RequestBody UserProfileEditBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); return toAjax(iUserProfileService.updateByEditBo(bo) ? 1 : 0); } /** * 获取填写资料审核详细信息 */ @ApiOperation("获取填写资料审核详细信息") @GetMapping("/getInfo") public AjaxResult getInfo(UserProfileQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); bo.setTypeStatus(1L); return AjaxResult.success(iUserProfileService.getInfo(bo)); } /** * 查询填写资料审核列表 */ @ApiOperation("查询填写资料审核列表") @PreAuthorize("@ss.hasPermi('system:profile:list')") @GetMapping("/listProfile") public TableDataInfo list(UserProfileQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); bo.setTypeStatus(1L); startPage(); List list = iUserProfileService.queryList(bo); return getDataTable(list); } @ApiOperation("获取最新一次资料审核详细信息") @GetMapping("/queryLast") public AjaxResult queryLast(UserProfileQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); return AjaxResult.success(iUserProfileService.queryLast(bo)); } }