fix
Helius
2021-11-08 9c791d431038fe79a111805762ee2f42c96b51c5
fix
7 files modified
89 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java 55 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -16,6 +16,7 @@
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.init.LocalCache;
import com.matrix.system.common.init.UserCacheManager;
import com.matrix.system.common.interceptor.HostInterceptor;
import com.matrix.system.common.service.SysCompanyService;
import com.matrix.system.common.service.SysUsersService;
@@ -77,6 +78,8 @@
    @Autowired
    WeChatApiTools weChatApiTools;
    @Autowired
    private UserCacheManager userCacheManager;
    @Value("${file_storage_path}")
    private String fileStoragePath;
@@ -303,7 +306,57 @@
        }
        String openId = json.getString("openid");
        return null;
        res.setStatus(AjaxResult.STATUS_SUCCESS);
        res.putInMap("openId", openId);
        SysUsers hasBind = sysUsersService.findByOpenId(openId, HostInterceptor.getCompanyId());
        if (hasBind == null) {
            res.setInfo("未绑定用户");
            return res;
        }
        String token = userCacheManager.saveUserInfo(hasBind);
        LogUtil.info("用户token={}", token);
        res.putInMap("token", token);
        res.putInMap("userInfo", hasBind);
        return res;
    }
    @ApiOperation(value = "绑定用户")
    @PostMapping(value = "/bindUser")
    public AjaxResult bindUser(@RequestBody @Validated LoginDto loginDto) {
        SysUsers user = new SysUsers();
        user.setSuAccount(loginDto.getUsername());
        user.setSuPassword(loginDto.getPassword());
        LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService);
        user = authorityManager.login(apLogin);
        user.setSuPassword(null);
        user.setOpenIds(null);
        String token = userCacheManager.saveUserInfo(user);
        AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功");
        authorityManager.initUserPower(result, user);
        result.putInMap("token", token);
        result.putInMap("userInfo", user);
        synchronized (this) {
            SysUsers hasBind = sysUsersService.findByOpenId(loginDto.getOpenId(), HostInterceptor.getCompanyId());
            if (hasBind != null) {
                if(StrUtil.isNotBlank(hasBind.getOpenIds())) {
                    List<String> openIds = StrUtil.split(hasBind.getOpenIds(), ',');
                    openIds.remove(loginDto.getOpenId());
                    hasBind.setOpenIds(CollUtil.join(openIds, ","));
                    sysUsersService.modifyByModel(hasBind);
                }
            }
            List<String> openIds = StrUtil.split(user.getOpenIds(), ',');
            openIds.add(loginDto.getOpenId());
            user.setOpenIds(CollUtil.join(openIds, ","));
            sysUsersService.modifyByModel(user);
        }
        return result;
    }
}
zq-erp/src/main/java/com/matrix/system/app/dto/LoginDto.java
@@ -20,6 +20,16 @@
    @NotBlank(message = "用户名或密码错误")
    private String password;
    private String openId;
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getUsername() {
        return username;
    }
zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java
@@ -288,6 +288,16 @@
    @Extend
    private SysCompany company;
    private String openIds;
    public String getOpenIds() {
        return openIds;
    }
    public void setOpenIds(String openIds) {
        this.openIds = openIds;
    }
    public String getAllCustomer() {
        return allCustomer;
    }
zq-erp/src/main/java/com/matrix/system/common/dao/SysUsersDao.java
@@ -125,4 +125,5 @@
    public List<AppVersion> selectAppVersion();
    SysUsers selectUserByOpenId(@Param("openId") String openId, @Param("companyId") Long companyId);
}
zq-erp/src/main/java/com/matrix/system/common/service/SysUsersService.java
@@ -173,4 +173,5 @@
    public List<AppVersion> findAppVersion();
    SysUsers findByOpenId(String openId, Long companyId);
}
zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
@@ -270,4 +270,9 @@
    public List<AppVersion> findAppVersion() {
        return sysUsersDao.selectAppVersion();
    }
    @Override
    public SysUsers findByOpenId(String openId, Long companyId) {
        return sysUsersDao.selectUserByOpenId(openId);
    }
}
zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
@@ -1329,4 +1329,11 @@
        select * from app_version
    </select>
    <select id="selectUserByOpenId" resultMap="SysUsersMap">
        select * from sys_users where find_in_set(#{openId}, open_ids)
        <if test="companyId != null">
            and company_id=#{companyId}
        </if>
    </select>
</mapper>