package com.dsh.account.controller; import com.dsh.account.entity.TAppUser; import com.dsh.account.feignclient.other.SysLogClient; import com.dsh.account.model.vo.userBenefitDetail.*; import com.dsh.account.service.RechargeRecordsService; import com.dsh.account.service.TAppUserService; import com.dsh.account.service.UserIntegralChangesService; import com.dsh.account.util.ResultUtil; import com.dsh.account.util.TokenUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.List; /** * 使用福利 控制器 */ @RestController @RequestMapping("") public class UseBenefitsController { @Autowired private TAppUserService tauService; @Autowired private TokenUtil tokenUtil; @Resource private SysLogClient slClient; @Autowired private RechargeRecordsService rechargeRService; @Autowired private UserIntegralChangesService uicService; private final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); @ResponseBody @PostMapping("/api/useBenefit/indexOfAppUser") @ApiOperation(value = "福利主页", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil queryAppUserUser(){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } return ResultUtil.success(tauService.queryBenefitDetails(appUserId)); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/userDetails") @ApiOperation(value = "用户个人信息", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil queryAppUserDetails(){ try { AppUserDetailsVo detailsVo = new AppUserDetailsVo(); Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } TAppUser tAppUser = tauService.getBaseMapper().selectById(appUserId); if (null != tAppUser){ detailsVo.setUserImage(tAppUser.getHeadImg()); detailsVo.setUserName(tAppUser.getName()); detailsVo.setUserPhone(tAppUser.getPhone()); detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女"); detailsVo.setBirthday(format1.format(tAppUser.getBirthday())); detailsVo.setAddress(tAppUser.getProvince()+tAppUser.getCity()); detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime())); } return ResultUtil.success(detailsVo); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/cancellation") @ApiOperation(value = "个人信息-注销账号", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil cancellationAccount(){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } // 变更账号的状态为删除 tauService.cancellation(appUserId); // 增加一条注销账号的日志 slClient.cancellation(appUserId); // 删除redis中用户key tokenUtil.logout(); return ResultUtil.success(); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/logOut") @ApiOperation(value = "个人信息-退出登录", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil logOutAccount(){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } // 增加一条退出账号的日志 slClient.logOut(appUserId); // 删除redis中用户key tokenUtil.logout(); return ResultUtil.success(); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/userBilling") @ApiOperation(value = "账单", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"), @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = true, dataType = "int"), }) public ResultUtil getUserBillingDetails(String yearMonth,Integer recordId){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } return ResultUtil.success(tauService.queryUserBillingDetails(yearMonth,recordId,appUserId)); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/voucherDetail") @ApiOperation(value = "充值明细", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"), @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = true, dataType = "int"), }) public ResultUtil wpGoldRechargeRecord(String yearMonth, Integer recordId){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } return ResultUtil.success(rechargeRService.getAppUserRechargeRecord(yearMonth,recordId,appUserId)); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/voucherCenter") @ApiOperation(value = "充值中心", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil> rechargeCenterConfig(){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } return ResultUtil.success(tauService.getSysRechargeConfig(appUserId)); }catch (Exception e){ return ResultUtil.runErr(); } } /** * 充值中心-支付 */ @ResponseBody @PostMapping("/api/useBenefit/payment") @ApiOperation(value = "充值中心-支付", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil rechargeCenPayment(RechargePayRequest request){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if(null == userIdFormRedis){ return ResultUtil.tokenErr(); } return rechargeRService.rechargeCenPayment(userIdFormRedis,request); }catch (Exception e){ return ResultUtil.runErr(); } } /** * 积分商城 */ @ResponseBody @PostMapping("/api/useBenefit/integralMallList") @ApiOperation(value = "积分商城", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil pointsMallList(MallRequest request){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if(null == userIdFormRedis){ return ResultUtil.tokenErr(); } // TODO: 2023/7/10 积分商品列表查询 return ResultUtil.success(); }catch (Exception e){ return ResultUtil.runErr(); } } /** * 积分明细 */ @ResponseBody @PostMapping("/api/useBenefit/integralDetails") @ApiOperation(value = "积分明细", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"), @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = true, dataType = "int"), }) public ResultUtil pointDetails(String yearMonth, Integer recordId){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if(null == userIdFormRedis){ return ResultUtil.tokenErr(); } return ResultUtil.success(uicService.queryUserPointsDetails(yearMonth,recordId,userIdFormRedis)); }catch (Exception e){ return ResultUtil.runErr(); } } }