| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.config.Jwt.JwtProperties; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.dao.business.dto.WebQwSingatureDto; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.vo.WebQwSingatureVO; |
| | | import com.doumee.dao.web.dto.LoginH5DTO; |
| | | import com.doumee.dao.web.dto.UpdEmailDTO; |
| | | import com.doumee.service.business.MemberService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.http.server.reactive.ServerHttpRequest; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.server.ServerWebExchange; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigInteger; |
| | | import java.security.MessageDigest; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.UUID; |
| | | |
| | | /** |
| | | * JWT获取令牌和刷新令牌接口 |
| | |
| | | @RestController |
| | | @Api(tags ="web端用户相关接口") |
| | | @RequestMapping("/web/member") |
| | | @Slf4j |
| | | public class WebMemberController { |
| | | @Resource |
| | | private JwtTokenUtil jwtTokenUtil; |
| | | |
| | | @Resource |
| | | private MemberService memberService; |
| | | |
| | | @Resource |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @PreventRepeat(limit = 10, lockTime = 10000) |
| | | @ApiOperation("H5业务登录") |
| | |
| | | return ApiResponse.failed( "登录已失效"); |
| | | } |
| | | |
| | | @ApiOperation("获取企业微信JS签名") |
| | | @PostMapping("/getQwSignature") |
| | | @ResponseBody |
| | | public ApiResponse<WebQwSingatureVO> getQwSignature(@RequestBody WebQwSingatureDto param) { |
| | | try { |
| | | String jsapiTicket = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_JS_API_TICKET).getCode(); |
| | | String noncestr = UUID.randomUUID().toString(); |
| | | Long timestamp = System.currentTimeMillis() / 1000; |
| | | String jsapiTicketStr = jsapiTicket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url=" + param.getUrl(); |
| | | MessageDigest instance = MessageDigest.getInstance("SHA-1"); |
| | | instance.update(jsapiTicketStr.getBytes()); |
| | | byte[] digest = instance.digest(); |
| | | BigInteger bigInteger = new BigInteger(1, digest); |
| | | String string = bigInteger.toString(); |
| | | WebQwSingatureVO result = new WebQwSingatureVO(); |
| | | result.setNoncestr( noncestr); |
| | | result.setSignature( string); |
| | | result.setTimestamp( timestamp); |
| | | result.setUrl( param.getUrl()); |
| | | // result.put("ticket", jsapiTicket); |
| | | return ApiResponse.success( result); |
| | | } catch ( Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("获取签名失败"+e.getMessage()); |
| | | } |
| | | |
| | | return ApiResponse.failed("获取签名失败"); |
| | | } |
| | | } |