diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java index 247a8ce..31b8aa5 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java @@ -29,6 +29,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; +import java.util.Objects; @CrossOrigin(origins = "*") @RestController @@ -60,32 +61,18 @@ public class LoginContoller { RedisUtil redisUtil; -// @RequestMapping("/wx/business/login") + @RequestMapping("/wx/business/login") public Result wxBusinessLogin(@RequestParam(value = "code", required = false) String code, - @RequestParam(value = "rawData", required = false) String rawData, - @RequestParam(value = "signature", required = false) String signature + @RequestParam(value = "shopId", required = false) String shopId ) { - - // 用户非敏感信息:rawData - // 签名:signature - JSONObject rawDataJson = JSON.parseObject(rawData); - // 1.接收小程序发送的code - // 2.开发者服务器 登录凭证校验接口 appi + appsecret + code JSONObject SessionKeyOpenId = WechatUtil.getSessionKeyOrOpenId(code, businessAppId, businessSecrete); - // 3.接收微信接口服务 获取返回的参数 String openid = SessionKeyOpenId.getString("openid"); - String sessionKey = SessionKeyOpenId.getString("session_key"); - - // 4.校验签名 小程序发送的签名signature与服务器端生成的签名signature2 = sha1(rawData + sessionKey) - String signature2 = DigestUtils.sha1Hex(rawData + sessionKey); - if (!signature.equals(signature2)) { - return Result.fail("签名校验失败"); + if(Objects.isNull(openid)){ + return Result.fail("获取微信id失败"); } - - return Result.success(CodeEnum.ENCRYPT); - + return loginService.wxBusinessLogin(openid,shopId); } /** diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java index 1b28a97..c1ba094 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java @@ -148,4 +148,10 @@ public class UserContoller { // String userSign = jsonObject.getString("userSign"); return userService.userAll(integralFlowVo,"userSign"); } + + + + + + } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserShopMsgMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserShopMsgMapper.java new file mode 100644 index 0000000..a0f9b47 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserShopMsgMapper.java @@ -0,0 +1,21 @@ +package com.chaozhanggui.system.cashierservice.dao; + +import com.chaozhanggui.system.cashierservice.entity.TbUserShopMsg; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Component; + +@Component +@Mapper +public interface TbUserShopMsgMapper { + int deleteByPrimaryKey(Integer shopId); + + int insert(TbUserShopMsg record); + + int insertSelective(TbUserShopMsg record); + + TbUserShopMsg selectByPrimaryKey(Integer shopId); + + int updateByPrimaryKeySelective(TbUserShopMsg record); + + int updateByPrimaryKey(TbUserShopMsg record); +} \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbUserShopMsg.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbUserShopMsg.java new file mode 100644 index 0000000..70e45dd --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbUserShopMsg.java @@ -0,0 +1,68 @@ +package com.chaozhanggui.system.cashierservice.entity; + +import java.io.Serializable; +import java.util.Date; + +public class TbUserShopMsg implements Serializable { + private Integer shopId; + + private String openId; + + private String remark; + + private String status; + + private Date createTime; + + private Date updateTime; + + private static final long serialVersionUID = 1L; + + public Integer getShopId() { + return shopId; + } + + public void setShopId(Integer shopId) { + this.shopId = shopId; + } + + public String getOpenId() { + return openId; + } + + public void setOpenId(String openId) { + this.openId = openId == null ? null : openId.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java index 3773928..390482f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java @@ -53,6 +53,34 @@ public class LoginService { RedisUtil redisUtil; + @Autowired + TbUserShopMsgMapper tbUserShopMsgMapper; + + + + + + public Result wxBusinessLogin(String openId,String shopId){ + TbUserShopMsg shopMsg= tbUserShopMsgMapper.selectByPrimaryKey(Integer.valueOf(shopId)); + if(Objects.isNull(shopMsg)){ + shopMsg=new TbUserShopMsg(); + + shopMsg.setShopId(Integer.valueOf(shopId)); + shopMsg.setOpenId(openId); + shopMsg.setCreateTime(new Date()); + shopMsg.setStatus("1"); + tbUserShopMsgMapper.insert(shopMsg); + }else { + shopMsg.setOpenId(openId); + shopMsg.setUpdateTime(new Date()); + tbUserShopMsgMapper.updateByPrimaryKey(shopMsg); + } + + return Result.success(CodeEnum.SUCCESS,shopMsg); + + } + + @Transactional(rollbackFor = Exception.class) public Result wxCustomLogin(String openId, String headImage, String nickName, String telephone, String ip) throws Exception { TbUserInfo userInfo = new TbUserInfo(); diff --git a/src/main/resources/mapper/TbUserShopMsgMapper.xml b/src/main/resources/mapper/TbUserShopMsgMapper.xml new file mode 100644 index 0000000..5b2d1f4 --- /dev/null +++ b/src/main/resources/mapper/TbUserShopMsgMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + shop_id, open_id, remark, status, create_time, update_time + + + + delete from tb_user_shop_msg + where shop_id = #{shopId,jdbcType=INTEGER} + + + insert into tb_user_shop_msg (shop_id, open_id, remark, + status, create_time, update_time + ) + values (#{shopId,jdbcType=INTEGER}, #{openId,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{status,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP} + ) + + + insert into tb_user_shop_msg + + + shop_id, + + + open_id, + + + remark, + + + status, + + + create_time, + + + update_time, + + + + + #{shopId,jdbcType=INTEGER}, + + + #{openId,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{status,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + + + update tb_user_shop_msg + + + open_id = #{openId,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + where shop_id = #{shopId,jdbcType=INTEGER} + + + update tb_user_shop_msg + set open_id = #{openId,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + status = #{status,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP} + where shop_id = #{shopId,jdbcType=INTEGER} + + \ No newline at end of file