admin/.env
@@ -3,8 +3,8 @@ # 路由方式 VUE_APP_ROUTER_MODE = 'hash' # 项目上下文路径 VUE_APP_CONTEXT_PATH = '/fn_admin/#/' # 项目上下文路径 fn_admin/#/ VUE_APP_CONTEXT_PATH = '/' # 接口前缀 VUE_APP_API_PREFIX = '/gateway_interface' admin/.env.test
@@ -7,7 +7,7 @@ # VUE_APP_API_URL = 'http://192.168.0.163:10010/' # 萍姐 VUE_APP_API_URL = 'http://192.168.0.108:10010/' # VUE_APP_API_URL = 'http://192.168.0.108:10010/' # 测试服务 # VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface' VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface' admin/src/views/contract/components/terminateLease.vue
@@ -68,7 +68,7 @@ </div> </div> <div class="title"> <span>退租信息</span> <span>账单结算</span> <div style="display: flex; align-items: center;"> <el-button type="primary" @click="addZD">添加收款</el-button> <el-button type="primary" @click="addFK">添加付款</el-button> admin/src/views/finance/components/bullEdit.vue
@@ -34,7 +34,7 @@ <el-option :value="0" label="租赁费"></el-option> <el-option :value="1" label="物业费"></el-option> <el-option :value="2" label="租赁押金"></el-option> <el-option :value="3" label="物业证金"></el-option> <el-option :value="3" label="物业押金"></el-option> <el-option :value="4" label="水电费"></el-option> <el-option :value="5" label="杂项费"></el-option> <el-option :value="6" label="其他"></el-option> @@ -181,7 +181,7 @@ return item } })[0].renterName // this.getHouseDate() this.getHouseDate() }, getHouseDate () { getContractRoom({ contractId: this.form.contractId, type: 0 }) server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -16,6 +16,7 @@ import com.doumee.service.system.SystemUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.validation.annotation.Validated; @@ -157,12 +158,10 @@ public ApiResponse<String> logout(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken){ try { jwtTokenUtil.logout(oldToken); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } return ApiResponse.success(null); server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -5,6 +5,7 @@ import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; import com.doumee.service.system.SystemLoginService; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import lombok.extern.slf4j.Slf4j; @@ -36,6 +37,9 @@ private JwtProperties jwtProperties; @Autowired private SystemDictDataBiz systemDictDataBiz ; @Autowired private SystemLoginService systemLoginService; /** * 生成token令牌 @@ -137,7 +141,7 @@ HttpsUtil.get(url+"?token="+loginUserInfo.getHkMenuToken(),true); } redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token);//删除老的token systemLoginService.cleanOpenid(loginUserInfo.getId()); } catch (Exception e) { e.printStackTrace(); } server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
@@ -19,6 +19,10 @@ @ApiModelProperty(value = "用户名") private String username; @ApiModelProperty(value = "微信openId") private String openid; @NotBlank(message = "密码不能为空") @ApiModelProperty(value = "密码") private String password; server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
@@ -18,6 +18,12 @@ @NotBlank(message = "手机号不能为空") @ApiModelProperty(value = "手机号") private String phone; @ApiModelProperty(value = "微信openId") private String openid; @NotBlank(message = "验证码不能为空") @ApiModelProperty(value = "验证码") private String code; server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -102,6 +102,8 @@ @ApiModelProperty(value = "是否已删除", hidden = true) private Boolean deleted; @ApiModelProperty(value = "0 启用 1 禁用") private Integer status; @ApiModelProperty(value = "企业编码(关联company)") server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
@@ -35,4 +35,6 @@ * @return */ String loginByUserId(Integer userId); void cleanOpenid(Integer userId); } server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -1,6 +1,7 @@ package com.doumee.service.system.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.config.jwt.JwtTokenUtil; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; @@ -11,6 +12,7 @@ import com.doumee.dao.business.dao.SmsEmailMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.SmsEmail; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.dto.LoginByOpenidDTO; import com.doumee.dao.system.dto.LoginDTO; import com.doumee.dao.system.dto.LoginPhoneDTO; @@ -50,6 +52,9 @@ @Autowired private SmsEmailMapper smsEmailMapper; @Autowired private SystemUserMapper systemUserMapper; @Lazy @Autowired @@ -83,7 +88,7 @@ loginLog.setLoginTime(new Date()); loginLog.setSystemVersion(systemVersion); loginLog.setIp(Utils.User_Client.getIP(request)); loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); loginLog.setPlatform(Utils.User_Client.getPlatform(request)); loginLog.setClientInfo(Utils.User_Client.getBrowser(request)); loginLog.setOsInfo(Utils.User_Client.getOS(request)); @@ -124,7 +129,7 @@ loginLog.setLoginUsername(dto.getUsername()); loginLog.setLoginTime(new Date()); loginLog.setSystemVersion(systemVersion); loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){ loginLog.setIp(Utils.User_Client.getIP(request)); loginLog.setPlatform(Utils.User_Client.getPlatform(request)); @@ -164,6 +169,7 @@ if(Objects.nonNull(user.getCompanyId())){ company = companyMapper.selectById(user.getCompanyId()); } dealOpenIdBiz(user,dto.getOpenid()); // 获取登录用户信息 List<SystemRole> roles = systemRoleService.findByUserId(user.getId()); List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId()); @@ -178,6 +184,21 @@ } private void dealOpenIdBiz(SystemUser user, String openid) { if(StringUtils.isNotBlank(openid)){ //如果openId不为空,绑定该用户openid systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .set(SystemUser::getOpenid,null) .eq(SystemUser::getType,user.getType()) .eq(SystemUser::getOpenid,openid) ); systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .set(SystemUser::getOpenid,openid) .eq(SystemUser::getId,user.getId())); } } @@ -187,7 +208,7 @@ loginLog.setLoginUsername(dto.getPhone()); loginLog.setLoginTime(new Date()); loginLog.setSystemVersion(systemVersion); loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){ loginLog.setIp(Utils.User_Client.getIP(request)); loginLog.setPlatform(Utils.User_Client.getPlatform(request)); @@ -239,6 +260,9 @@ if(Objects.nonNull(user.getCompanyId())){ company = companyMapper.selectById(user.getCompanyId()); } dealOpenIdBiz(user,dto.getOpenid()); // 获取登录用户信息 List<SystemRole> roles = systemRoleService.findByUserId(user.getId()); List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId()); @@ -259,7 +283,7 @@ loginLog.setLoginUsername(dto.getUsername()); loginLog.setLoginTime(new Date()); loginLog.setSystemVersion(systemVersion); loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){ loginLog.setIp(Utils.User_Client.getIP(request)); loginLog.setPlatform(Utils.User_Client.getPlatform(request)); @@ -289,6 +313,15 @@ } @Override public void cleanOpenid(Integer userId){ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .set(SystemUser::getOpenid,null) .eq(SystemUser::getId,userId) ); } /** * 内部人员 与 司机 根据code查询openId后进行登录接口 * @return @@ -298,7 +331,7 @@ SystemLoginLog loginLog = new SystemLoginLog(); loginLog.setLoginTime(new Date()); loginLog.setSystemVersion(systemVersion); loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); loginLog.setServerIp(Utils.Server.getIP()); // 根据用户名查询用户对象 server/visits/admin_timer/src/main/java/com/doumee/api/WxTokenTimerController.java
@@ -54,7 +54,6 @@ String url = WXConstant.GET_ACCESS_TOKEN_URL.replace("APPID",appId).replace("APPSECRET",appSecret); String response = HttpsUtil.get(url,false); JSONObject json = JSONObject.parseObject(response); System.out.println(json); SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN); if(!Objects.isNull(systemDictData)){ systemDictData.setCode(json.getString("access_token")); server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
@@ -1,7 +1,10 @@ package com.doumee.api; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.HttpsUtil; import com.doumee.core.wx.WXConstant; import com.doumee.dao.business.model.YwContract; import com.doumee.service.business.PlatformJobService; import com.doumee.service.business.YwContractBillService; @@ -52,18 +55,15 @@ return ApiResponse.success("定时处理合同过期与执行中"); } public static void main(String[] args) { String url = WXConstant.GET_ACCESS_TOKEN_URL.replace("APPID","wx95ac1efb67f0330d") .replace("APPSECRET","f228b9e3b49a37b881b51431a483c939"); String response = HttpsUtil.get(url,false); JSONObject json = JSONObject.parseObject(response); System.out.println(json); } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java
@@ -103,6 +103,7 @@ public ApiResponse<List<YwContract>> list (@RequestBody YwContract model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywContractService.findList(model)); } @ApiOperation("根据退租日期查询账单数据") @PostMapping("/findForBills") @CloudRequiredPermission("business:ywcontract:query") server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
@@ -71,6 +71,19 @@ } @ApiOperation(value = "访客微信授权 - 阜宁运维", notes = "访客微信授权获取openId") @GetMapping("/ywWxAuthorize") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "授权码", required = true), @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "source", value = "来源:0=司机;1=访客;2=内部员工", required = true) }) public ApiResponse<WxAuthorizeVO> ywWxAuthorize(@RequestParam String code) { WxAuthorizeVO wxAuthorizeVO = memberService.ywWxAuthorize(code); return ApiResponse.success("查询成功",wxAuthorizeVO); } @ApiOperation(value = "查询被访问人信息", notes = "查询被访问人信息") @PostMapping("/getVisitedMember") public ApiResponse<List<MemberVO>> getVisitedMember(@Valid @RequestBody CheckVisitedDTO checkVisitedDTO) { server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -176,6 +176,7 @@ */ WxAuthorizeVO wxAuthorize(String code,Integer source); WxAuthorizeVO ywWxAuthorize(String code); List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1762,6 +1762,47 @@ /** * 微信授权接口 * @param code * @return */ @Override public WxAuthorizeVO ywWxAuthorize(String code){ if(StringUtils.isBlank(code)){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code) .replace("APPID", appId).replace("SECRET", appSecret); JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true)); String openId = ""; WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); if(Objects.nonNull(tokenJson)&&!Objects.isNull(tokenJson.get("access_token"))){ openId = tokenJson.getString("openid"); }else{ if(StringUtils.isBlank(openId)){ return wxAuthorizeVO; } } wxAuthorizeVO.setOpenid(openId); //根据openId 查询用户信息 SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() .eq(SystemUser::getOpenid,openId) .eq(SystemUser::getDeleted,Boolean.FALSE) .last(" limit 1 ")); if(!Objects.isNull(user)){ String token = systemLoginService.loginByUserId(user.getId()); wxAuthorizeVO.setToken(token); } return wxAuthorizeVO; } @Override public List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO){ List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()