浏览代码

小程序登录

shiqian 3 年之前
父节点
当前提交
3a5b064b25

+ 21 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteUserService.java

@@ -49,4 +49,25 @@ public interface RemoteUserService
 
     @PostMapping("/user/updateUnionId")
     public AjaxResult updateUnionId(@RequestBody SysUser sysUser);
+
+    /**
+     * 功能描述: queryByOpenId
+     *
+     * @param openId openId
+     * @return com.boman.domain.SysUser
+     */
+    @GetMapping("user/queryByOpenId/{openId}")
+    SysUser queryByOpenId(@PathVariable("openId") String openId);
+
+    /**
+     * 功能描述: getByPhone
+     *
+     * @param phone phone
+     * @return com.boman.domain.SysUser
+     */
+    @GetMapping("user/getByPhone/{phone}")
+    SysUser getByPhone(@PathVariable("phone") String phone);
+
+    @GetMapping("user/packInfo")
+    LoginUser packInfo(@RequestBody SysUser sysUser);
 }

+ 15 - 21
boman-auth/src/main/java/com/boman/auth/service/SysLoginService.java

@@ -32,59 +32,53 @@ public class SysLoginService
     /**
      * 登录
      */
-    public LoginUser login(String username, String password)
-    {
+    public LoginUser login(String username, String password) {
         // 用户名或密码为空 错误
-        if (StringUtils.isAnyBlank(username, password))
-        {
+        if (StringUtils.isAnyBlank(username, password)) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
             throw new BaseException("用户/密码必须填写");
         }
+
         // 密码如果不在指定范围内 错误
-        if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
+        if (password.length() < UserConstants.PASSWORD_MIN_LENGTH || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围");
             throw new BaseException("用户密码不在指定范围");
         }
+
         // 用户名不在指定范围内 错误
-        if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
+        if (username.length() < UserConstants.USERNAME_MIN_LENGTH || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围");
             throw new BaseException("用户名不在指定范围");
         }
         // 查询用户信息
         R<LoginUser> userResult = remoteUserService.getUserInfo(username);
 
-        if (R.FAIL == userResult.getCode())
-        {
+        if (R.FAIL == userResult.getCode()) {
             throw new BaseException(userResult.getMsg());
         }
 
-        if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
-        {
+        if (StringUtils.isNull(userResult.getData())) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
             throw new BaseException("登录用户:" + username + " 不存在");
         }
+
         LoginUser userInfo = userResult.getData();
         SysUser user = userResult.getData().getSysUser();
-        if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
-        {
+        if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
-
             throw new BaseException("对不起,您的账号:" + username + " 已被删除");
         }
-        if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
-        {
+
+        if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
             throw new BaseException("对不起,您的账号:" + username + " 已停用");
         }
-        if (!SecurityUtils.matchesPassword(password, user.getPassword()))
-        {
+
+        if (!SecurityUtils.matchesPassword(password, user.getPassword())) {
             remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "用户密码错误");
             throw new BaseException("用户不存在/密码错误");
         }
+
         remoteLogService.saveLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功");
         return userInfo;
     }

+ 42 - 6
boman-modules/boman-system/src/main/java/com/boman/system/controller/SysUserController.java

@@ -112,15 +112,26 @@ public class SysUserController extends BaseController
      * 获取当前用户信息
      */
     @GetMapping("/info/{username}")
-    public R<LoginUser> info(@PathVariable("username") String username)
-    {
+    public R<LoginUser> info(@PathVariable("username") String username) {
         SysUser sysUser = userService.selectUserByUserName(username);
-        if (StringUtils.isNull(sysUser))
-        {
+        if (StringUtils.isNull(sysUser)) {
             return R.fail("用户名或密码错误");
         }
-        LoginUser sysUserVo = new LoginUser();
 
+        LoginUser sysUserVo = packPermDeptRoles(sysUser);
+        return R.ok(sysUserVo);
+    }
+
+    /**
+     * 获取当前用户信息
+     */
+    @GetMapping("/packInfo")
+    public LoginUser packInfo(@RequestBody SysUser sysUser) {
+        return packPermDeptRoles(sysUser);
+    }
+
+    private LoginUser packPermDeptRoles(SysUser sysUser) {
+        LoginUser sysUserVo = new LoginUser();
         // 角色集合
         Set<String> roles = permissionService.getRolePermission(sysUser.getId());
         // 权限集合
@@ -143,7 +154,7 @@ public class SysUserController extends BaseController
         sysUserVo.setSysUser(sysUser);
         sysUserVo.setRoles(roles);
         sysUserVo.setPermissions(permissions);
-        return R.ok(sysUserVo);
+        return sysUserVo;
     }
 
     private List<Long> getUserIds(List<SysUser> users) {
@@ -311,4 +322,29 @@ public class SysUserController extends BaseController
     {
         return userService.selectUserListAll();
     }
+
+    /**
+     * 功能描述: queryByOpenId
+     *
+     * @param openId openId
+     * @return com.boman.domain.SysUser
+     */
+    @GetMapping("/queryByOpenId/{openId}")
+    public SysUser queryByOpenId(@PathVariable("openId") String openId){
+        return userService.queryByOpenId(openId);
+    }
+
+    /**
+     * 功能描述: getByPhone
+     *
+     * @param phone phone
+     * @return com.boman.domain.SysUser
+     */
+    @GetMapping("/getByPhone/{phone}")
+    public SysUser getByPhone(@PathVariable("phone") String phone) {
+        SysUser sysUser = userService.getByPhone(phone);
+        return ObjectUtils.requireNonNull(sysUser, String.format("手机号 [%s] 对应的用户不存在", sysUser.getPhonenumber()));
+    }
+
+
 }

+ 4 - 0
boman-modules/boman-system/src/main/java/com/boman/system/mapper/SysUserMapper.java

@@ -122,4 +122,8 @@ public interface SysUserMapper
     List<SysUser> selectUserListAll();
 
     int updateUnionId(SysUser user);
+
+    SysUser queryByOpenId(String openId);
+
+    SysUser getByPhone(String phone);
 }

+ 16 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/ISysUserService.java

@@ -192,4 +192,20 @@ public interface ISysUserService
      * @return
      */
     AjaxResult updateUnionId(SysUser sysUser);
+
+    /**
+     * 功能描述: queryByOpenId
+     *
+     * @param openId openId
+     * @return com.boman.domain.SysUser
+     */
+    SysUser queryByOpenId(String openId);
+
+    /**
+     * 功能描述: getByPhone
+     *
+     * @param phone phone
+     * @return com.boman.domain.SysUser
+     */
+    SysUser getByPhone(String phone);
 }

+ 22 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysUserServiceImpl.java

@@ -525,4 +525,26 @@ public class SysUserServiceImpl implements ISysUserService
 
         return AjaxResult.error(-1, "保存失败");
     }
+
+    /**
+     * 功能描述: queryByOpenId
+     *
+     * @param openId openId
+     * @return com.boman.domain.SysUser
+     */
+    @Override
+    public SysUser queryByOpenId(String openId) {
+        return userMapper.queryByOpenId(openId);
+    }
+
+    /**
+     * 功能描述: getByPhone
+     *
+     * @param phone phone
+     * @return com.boman.domain.SysUser
+     */
+    @Override
+    public SysUser getByPhone(String phone) {
+        return userMapper.getByPhone(phone);
+    }
 }

+ 8 - 0
boman-modules/boman-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -194,5 +194,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<update id="updateUnionId" parameterType="com.boman.domain.SysUser">
 		update sys_user set open_id = #{openId} where id = #{id}
 	</update>
+
+	<select id="queryByOpenId" resultType="com.boman.domain.SysUser">
+		select * from sys_user where open_id = #{openId} limit 1;
+	</select>
+
+	<select id="getByPhone" resultType="com.boman.domain.SysUser">
+		select * from sys_user where phonenumber = #{phone} limit 1;
+	</select>
 	
 </mapper> 

+ 30 - 10
boman-web-core/src/main/java/com/boman/web/core/controller/MoveYmjzDataController.java

@@ -1,15 +1,15 @@
 package com.boman.web.core.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.boman.web.core.mapper.StandardlyMapper;
-import com.google.common.collect.Lists;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
 import java.util.List;
 
 /**
@@ -23,14 +23,34 @@ public class MoveYmjzDataController {
     private StandardlyMapper mapper;
 
     @GetMapping("/moveData/{limit}/{offset}")
-    public String moveYmjzData(@PathVariable("limit") int limit, @PathVariable("offset") int offset) {
-        List<String> idCardList = mapper.listIdCard(limit, offset);
+    public String moveYmjzData(@PathVariable("limit") int limit, @PathVariable("offset") int offset) throws Exception {
+//        List<String> idCardList = mapper.listIdCard(limit, offset);
+        List<JSONObject> ymjzList = mapper.listInfo(limit, offset);
         int moveData = 0;
-        for (String idCard : idCardList) {
-            moveData += mapper.moveData(idCard);
-            System.err.println("当前是第 " + moveData + " 个");
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < ymjzList.size(); i++) {
+            JSONObject ymjz = ymjzList.get(i);
+            String idCard = ymjz.getString("身份证");
+            String 受种者编码 = ymjz.getString("受种者编码");
+            String 工作单位 = ymjz.getString("工作单位");
+            String 人群分类 = ymjz.getString("人群分类");
+            String sql = String.format("UPDATE vaccine_info set code = '%s', work_unit = '%s', crowd_classification = '%s' where id_card = '%s'; -- %s \r\n", 受种者编码, 工作单位, 人群分类, idCard, i);
+            stringBuilder.append(sql);
+
+            System.err.println("count: " + i + ", " + sql);
+            moveData++;
+        }
+        File file = new File("F:\\desk\\ymjz\\jmjl1.sql");
+        if (!file.exists()) {
+            file.createNewFile();
         }
 
-        return "成功了 " + moveData + " 条";
+        FileWriter fileWriter = new FileWriter(file, true);
+        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
+        bufferedWriter.write(stringBuilder.toString());
+        bufferedWriter.close();
+
+        return "循环了 " + moveData + " 条";
     }
+
 }

+ 3 - 0
boman-web-core/src/main/java/com/boman/web/core/mapper/StandardlyMapper.java

@@ -35,6 +35,9 @@ public interface StandardlyMapper {
     @Select({"select 身份证 FROM ymjz limit #{limit}, #{offset}"})
     List<String> listIdCard(@Param("limit") int limit, @Param("offset") int offset);
 
+    @Select({"select 受种者编码, 工作单位, 人群分类, 身份证 FROM ymjz limit #{limit}, #{offset}"})
+    List<JSONObject> listInfo(@Param("limit") int limit, @Param("offset") int offset);
+
     /** {@link SqlProvider#updateById(java.util.Map)} */
     @UpdateProvider(type = SqlProvider.class, method = "updateById")
     int updateById(@Param("tableName") String var1, @Param("model") JSONObject var2

+ 6 - 5
boman-wechat/pom.xml

@@ -108,11 +108,12 @@
             <version>${project.version}</version>
         </dependency>
 
-<!--        <dependency>-->
-<!--            <groupId>com.boman</groupId>-->
-<!--            <artifactId>boman-domain</artifactId>-->
-<!--            <version>2.5.0-SNAPSHOT</version>-->
-<!--        </dependency>-->
+       <!-- RuoYi Common Security-->
+        <dependency>
+            <groupId>com.boman</groupId>
+            <artifactId>boman-common-security</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 36 - 4
boman-wechat/src/main/java/com/boman/wechat/controller/AppletLoginController.java

@@ -1,8 +1,16 @@
 package com.boman.wechat.controller;
 
+import com.boman.common.core.enums.UserStatus;
+import com.boman.common.core.exception.BaseException;
+import com.boman.common.security.service.TokenService;
 import com.boman.domain.AppletLoginForm;
+import com.boman.domain.SysUser;
+import com.boman.domain.constant.Constants;
 import com.boman.domain.dto.AjaxResult;
 import com.boman.domain.dto.AppletSessionDTO;
+import com.boman.system.api.RemoteLogService;
+import com.boman.system.api.RemoteUserService;
+import com.boman.system.api.model.LoginUser;
 import com.boman.wechat.utils.WxCodeSessionUtil;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -10,21 +18,45 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.Map;
 
 /**
  * @author shiqian
  * @date 2021年09月08日 17:29
  **/
 @RestController
-@RequestMapping("appletLogin/")
+@RequestMapping("applet")
 public class AppletLoginController {
 
     @Resource
     private WxCodeSessionUtil codeUtil;
+    @Resource
+    private RemoteUserService remoteUserService;
+    @Resource
+    private RemoteLogService remoteLogService;
+    @Resource
+    private TokenService tokenService;
 
-    @PostMapping
-    public AjaxResult appletLogin(@RequestBody AppletLoginForm form) {
+    @PostMapping("/login")
+    public AjaxResult getPhone(@RequestBody AppletLoginForm form) {
         AppletSessionDTO dto = codeUtil.jscode2Session(form);
-        return AjaxResult.success(dto);
+        String phoneNumber = dto.getPhoneNumber();
+        SysUser user = remoteUserService.getByPhone(phoneNumber);
+        String userName = user.getUserName();
+        if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
+            remoteLogService.saveLogininfor(userName, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
+            throw new BaseException("对不起,您的账号:" + userName + " 已被删除");
+        }
+
+        if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
+            remoteLogService.saveLogininfor(userName, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
+            throw new BaseException("对不起,您的账号:" + userName + " 已停用");
+        }
+
+        remoteLogService.saveLogininfor(userName, Constants.LOGIN_SUCCESS, "登录成功");
+        LoginUser loginUser = remoteUserService.packInfo(user);
+        Map<String, Object> map = tokenService.createToken(loginUser);
+        return AjaxResult.success(map);
     }
+
 }

+ 8 - 0
boman-wechat/src/main/java/com/boman/wechat/service/AppletLoginService.java

@@ -0,0 +1,8 @@
+package com.boman.wechat.service;
+
+/**
+ * @author shiqian
+ * @date 2021年09月09日 11:12
+ **/
+public interface AppletLoginService {
+}

+ 13 - 0
boman-wechat/src/main/java/com/boman/wechat/service/impl/AppletLoginServiceImpl.java

@@ -0,0 +1,13 @@
+package com.boman.wechat.service.impl;
+
+import com.boman.wechat.service.AppletLoginService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author shiqian
+ * @date 2021年09月09日 11:12
+ **/
+@Service
+public class AppletLoginServiceImpl implements AppletLoginService {
+
+}