he2802 2 gadi atpakaļ
vecāks
revīzija
fde3ba9f66

+ 11 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -20,6 +20,7 @@ import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserVisitLogService;
 import com.zhongzheng.modules.user.service.IUserWxFollowService;
 import com.zhongzheng.modules.user.vo.UserVo;
+import com.zhongzheng.modules.wx.bo.WxIdBody;
 import com.zhongzheng.modules.wx.bo.WxLoginBody;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -195,6 +196,16 @@ public class UserController extends BaseController {
         return AjaxResult.success("成功",userVo.getGzhOpenId());
     }
 
+    @ApiOperation("检查账号是否绑定该openid")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @PostMapping("/checkBindOpenId")
+    public AjaxResult<Boolean> checkBindOpenId(@RequestBody WxIdBody loginBody)
+    {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        UserVo userVo = iUserService.queryById(loginUser.getUser().getUserId());
+        return AjaxResult.success("成功",wxLoginService.checkBindOpenId(loginBody));
+    }
+
     @ApiOperation("把其他用户踢下线")
     @Log(title = "把其他用户踢下线", businessType = BusinessType.UPDATE)
     @PostMapping("/offline")

+ 43 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/WxLoginService.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -29,6 +30,7 @@ import com.zhongzheng.modules.distribution.vo.SellerWxVo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.user.bo.UserWxFollowAddBo;
 import com.zhongzheng.modules.user.domain.User;
@@ -1271,6 +1273,47 @@ public class WxLoginService implements IWxLoginService {
         }
         return user;
     }
+
+    public Boolean checkBindOpenId(WxIdBody loginBody) {
+        if(Validator.isEmpty(loginBody.getOpenid())||Validator.isEmpty(loginBody.getFromPlat())){
+            throw new CustomException("参数缺失");
+        }
+        User user = iUserService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserId,loginBody.getUserId()));
+        if(loginBody.getFromPlat()==1){
+            if(Validator.isEmpty(user.getGzhOpenId())){
+                LambdaUpdateWrapper<User> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                objectLambdaUpdateWrapper.eq(User::getUserId, loginBody.getUserId());
+                objectLambdaUpdateWrapper.set(User::getGzhOpenId, loginBody.getOpenid());
+                objectLambdaUpdateWrapper.set(User::getUpdateTime, DateUtils.getNowTime());
+                iUserService.update(null, objectLambdaUpdateWrapper);
+                return true;
+            }else{
+                if(user.getGzhOpenId().equals(loginBody.getOpenid())){
+                    return true;
+                }else{
+                    return false;
+                }
+            }
+        }
+        else if(loginBody.getFromPlat()==2){
+            if(Validator.isEmpty(user.getOpenId())){
+                LambdaUpdateWrapper<User> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                objectLambdaUpdateWrapper.eq(User::getUserId, loginBody.getUserId());
+                objectLambdaUpdateWrapper.set(User::getOpenId, loginBody.getOpenid());
+                objectLambdaUpdateWrapper.set(User::getUpdateTime, DateUtils.getNowTime());
+                iUserService.update(null, objectLambdaUpdateWrapper);
+                return true;
+            }else{
+                if(user.getOpenId().equals(loginBody.getOpenid())){
+                    return true;
+                }else{
+                    return false;
+                }
+            }
+        }
+        return false;
+    }
+
     public DistributionSeller bindWxGzhOpenIdSeller(WxLoginBody loginBody) {
         DistributionSeller seller = iDistributionSellerService.getOne(new LambdaQueryWrapper<DistributionSeller>().eq(DistributionSeller::getSellerId,loginBody.getSellerId()));
         if (seller == null) {

+ 31 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/bo/WxIdBody.java

@@ -0,0 +1,31 @@
+package com.zhongzheng.modules.wx.bo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 微信登录
+ *
+ * @author hjl
+ * @date 2021-06-11
+ */
+
+@ApiModel("登录用户")
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class WxIdBody {
+
+    @ApiModelProperty("openid")
+    private String openid;
+
+    @ApiModelProperty("平台 1公众号 2小程序")
+    private Integer fromPlat;
+
+    @ApiModelProperty("用户ID")
+    private Long userId;
+}

+ 2 - 1
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -589,7 +589,8 @@
                 where cgu.user_id = #{userId}
                   and cgg.goods_id = g.goods_id
                   and cg.`status` = 1
-                  and unix_timestamp(now()) BETWEEN cg.class_start_time and cg.class_end_time)    as grade_id
+                  and unix_timestamp(now()) BETWEEN cg.class_start_time and cg.class_end_time)    as grade_id,
+               cb.goods_learning_order
         FROM goods g
                  LEFT JOIN pay_supply ps ON g.supply_id = ps.supply_id
                  LEFT JOIN course_education_type cet ON g.education_type_id = cet.id