小程序机构启动充电

This commit is contained in:
yuyang 2021-12-31 09:23:41 +08:00
parent f6e9fb371a
commit 666ff5ad5a
14 changed files with 203 additions and 153 deletions

View File

@ -112,5 +112,8 @@ public class HttpStatus
*/ */
public static final Integer ERROR_STATUS = 1010; public static final Integer ERROR_STATUS = 1010;
/**
* 该账号已被绑定
*/
public static final Integer ACCOUNT_BINDING = 1999;
} }

View File

@ -20,5 +20,5 @@ public interface UserTypeService {
* @return * @return
*/ */
@GetMapping("/common/getUser") @GetMapping("/common/getUser")
R getUser(@RequestParam(value = "phone")String phone,@RequestParam(value = "userId")Long userId,@RequestParam(value = "userType")Integer userType); R getUser(@RequestParam(value = "phone")String phone,@RequestParam(value = "userId")Long userId,@RequestParam(value = "userType")Integer userType,@RequestParam(value = "serialNumber")String serialNumber);
} }

View File

@ -20,7 +20,7 @@ public class UserTypeFallbackFactory implements FallbackFactory<UserTypeService>
logger.error("用户服务调用失败:{} //fallback", cause.getMessage()); logger.error("用户服务调用失败:{} //fallback", cause.getMessage());
return new UserTypeService() { return new UserTypeService() {
@Override @Override
public R getUser(String phone, Long userId, Integer userType) { public R getUser(String phone, Long userId, Integer userType,String serialNumber) {
return R.fail("用户信息获取失败:" + cause.getMessage()); return R.fail("用户信息获取失败:" + cause.getMessage());
} }
}; };

View File

@ -23,4 +23,7 @@ public class UserTypeUtil {
//B端大客户 //B端大客户
public static final Integer CUSTOMERS_TYPE = 3; public static final Integer CUSTOMERS_TYPE = 3;
//重新登录
public static final Integer LOGIN_TYPE = 1999;
} }

View File

@ -42,7 +42,7 @@ public class XhpcSmsController extends BaseController {
//C端用户 //C端用户
return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId,null); return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId,null);
}else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) || UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) || UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){
R user = userTypeService.getUser(phone, null, null); R user = userTypeService.getUser(phone, null, null, null);
if(user !=null && user.getData() !=null){ if(user !=null && user.getData() !=null){
Map<String, Object> map = (Map<String, Object>)user.getData(); Map<String, Object> map = (Map<String, Object>)user.getData();
return xhpcSmsService.getLogonPhoneCode(map.get("phone").toString(), signatureName, templateId,map.get("account").toString()); return xhpcSmsService.getLogonPhoneCode(map.get("phone").toString(), signatureName, templateId,map.get("account").toString());

View File

@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
@ -71,10 +72,10 @@ public class XhpcChargeOrderController extends BaseController {
* @return * @return
*/ */
@GetMapping("/startUp") @GetMapping("/startUp")
public AjaxResult startUp(@RequestParam Long userId,@RequestParam String serialNumber,@RequestParam Integer type){ public AjaxResult startUp(HttpServletRequest request, @RequestParam Long userId, @RequestParam String serialNumber, @RequestParam Integer type){
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>");
return iXhpcChargeOrderService.startUp(userId, serialNumber, type); return iXhpcChargeOrderService.startUp(request,userId, serialNumber, type);
} }

View File

@ -7,6 +7,7 @@ import com.xhpc.order.domain.XhpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.domain.XhpcOrderRedisRecord;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -47,7 +48,7 @@ public interface IXhpcChargeOrderService {
* @param serialNumber 终端编码 * @param serialNumber 终端编码
* @return * @return
*/ */
AjaxResult startUp(Long userId,String serialNumber,Integer type); AjaxResult startUp(HttpServletRequest request, Long userId, String serialNumber, Integer type);
/** /**
* 停止充电 * 停止充电

View File

@ -2,7 +2,9 @@ package com.xhpc.order.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.xhpc.common.api.PowerPileService; import com.xhpc.common.api.PowerPileService;
import com.xhpc.common.api.UserTypeService;
import com.xhpc.common.core.domain.R; import com.xhpc.common.core.domain.R;
import com.xhpc.common.core.utils.StringUtils;
import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.common.data.down.StartChargingData; import com.xhpc.common.data.down.StartChargingData;
import com.xhpc.common.data.redis.CacheRealtimeData; import com.xhpc.common.data.redis.CacheRealtimeData;
@ -10,11 +12,14 @@ import com.xhpc.common.data.redis.StaticBeanUtil;
import com.xhpc.common.domain.XhpcRate; import com.xhpc.common.domain.XhpcRate;
import com.xhpc.common.domain.XhpcTerminal; import com.xhpc.common.domain.XhpcTerminal;
import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.redis.service.RedisService;
import com.xhpc.common.security.service.TokenService;
import com.xhpc.common.util.UserTypeUtil;
import com.xhpc.order.domain.XhpcChargeOrder; import com.xhpc.order.domain.XhpcChargeOrder;
import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.domain.XhpcOrderRedisRecord;
import com.xhpc.order.mapper.XhpcChargeOrderMapper; import com.xhpc.order.mapper.XhpcChargeOrderMapper;
import com.xhpc.order.mapper.XhpcInternetUserMapper; import com.xhpc.order.mapper.XhpcInternetUserMapper;
import com.xhpc.order.service.IXhpcChargeOrderService; import com.xhpc.order.service.IXhpcChargeOrderService;
import com.xhpc.system.api.model.LoginUser;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,6 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -46,6 +52,10 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
private RedisService redisService; private RedisService redisService;
@Autowired @Autowired
private XhpcInternetUserMapper xhpcInternetUserMapper; private XhpcInternetUserMapper xhpcInternetUserMapper;
@Autowired
private TokenService tokenService;
@Autowired
private UserTypeService userTypeService;
private static final Logger logger = LoggerFactory.getLogger(XhpcChargeOrderServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(XhpcChargeOrderServiceImpl.class);
//队列名称 //队列名称
@ -80,7 +90,25 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
@Override @Override
@Transactional @Transactional
public AjaxResult startUp(Long userId, String terminalSerialNumber, Integer type) { public AjaxResult startUp(HttpServletRequest request, Long userId, String terminalSerialNumber, Integer type) {
LoginUser loginUser = tokenService.getLoginUser(request);
if (StringUtils.isNotNull(loginUser)) {
String username = loginUser.getUsername();
Integer userType = loginUser.getUserType();
Long userid = loginUser.getUserid();
String openId = loginUser.getOpenId();
R user = userTypeService.getUser(null, userid, userType, terminalSerialNumber);
if(userId !=userid || user ==null || user.getData() ==null){
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}
Map<String, Object> userMessage = (Map<String, Object>)user.getData();
if(UserTypeUtil.USER_TYPE !=userType){
if(Integer.valueOf(userMessage.get("number").toString())==0){
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "此账号不能在该场站充电,请使用手机号登录");
}
}
String pattern = "^([0-9]{16})"; String pattern = "^([0-9]{16})";
Pattern compile = Pattern.compile(pattern); Pattern compile = Pattern.compile(pattern);
@ -89,7 +117,7 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
return AjaxResult.error(1104, "无效的终端编号"); return AjaxResult.error(1104, "无效的终端编号");
} }
//查看充电用户金额是否大于5元 //查看充电用户金额是否大于5元
Map<String, Object> userMessage = xhpcChargeOrderMapper.getUserMessage(userId); //Map<String, Object> userMessage = xhpcChargeOrderMapper.getUserMessage(userId);
BigDecimal a = new BigDecimal(5); BigDecimal a = new BigDecimal(5);
if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) { if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) {
return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电"); return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电");
@ -233,6 +261,10 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService {
xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder); xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
return AjaxResult.success(); return AjaxResult.success();
}else{
return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录");
}
} }
@Override @Override

View File

@ -27,25 +27,28 @@ public class XhpcCommonController extends BaseController {
/** /**
* 根据手机号账号用户id和类型 获取用户信息 * 根据手机号账号用户id和类型 获取用户信息
* @param * @param phone
* @param userId
* @param userType
* @param SerialNumber 桩号
* @return * @return
*/ */
@GetMapping(value = "/getUser") @GetMapping(value = "/getUser")
public AjaxResult getMechanism(String phone,Long userId,Integer userType) { public AjaxResult getMechanism(String phone,Long userId,Integer userType,String serialNumber) {
if(phone !=null || "".equals(phone)){ if(phone !=null || "".equals(phone)){
if(!UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) && !UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ if(!UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) && !UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){
//C端用户 //C端用户
return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,0)); return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,0,serialNumber));
}else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2))){ }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2))){
//社区用户 //社区用户
return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,2)); return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,2,serialNumber));
}else if (UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ }else if (UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){
//大客户用户 //大客户用户
return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,3)); return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,3,serialNumber));
} }
}else{ }else{
return AjaxResult.success(xhpcCommonService.getLandUser(null,userId,userType)); return AjaxResult.success(xhpcCommonService.getLandUser(null,userId,userType,serialNumber));
} }
return AjaxResult.error(); return AjaxResult.error();
} }

View File

@ -19,10 +19,10 @@ public interface XhpcCommonMapper {
/** /**
* 社区端用户信息 * 社区端用户信息
*/ */
Map<String, Object> getCommunityUser(@Param("phone") String phone,@Param("userId")Long userId); Map<String, Object> getCommunityUser(@Param("phone") String phone,@Param("userId")Long userId,@Param("serialNumber")String serialNumber);
/** /**
* B端用户信息 * B端用户信息
*/ */
Map<String, Object> getCustomersUser(@Param("phone") String phone,@Param("userId")Long userId); Map<String, Object> getCustomersUser(@Param("phone") String phone,@Param("userId")Long userId,@Param("serialNumber")String serialNumber);
} }

View File

@ -11,5 +11,5 @@ public interface IXhpcCommonService {
/** /**
* 根据用户手机号获取用户信息 * 根据用户手机号获取用户信息
*/ */
Map<String, Object> getLandUser(String phone,Long userId,Integer type); Map<String, Object> getLandUser(String phone,Long userId,Integer type,String serialNumber);
} }

View File

@ -219,7 +219,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
//判断账号 //判断账号
String sub = username.substring(0, 2); String sub = username.substring(0, 2);
if (UserTypeUtil.COMMUNIT.equals(sub) || UserTypeUtil.CUSTOMERS.equals(sub)){ if (UserTypeUtil.COMMUNIT.equals(sub) || UserTypeUtil.CUSTOMERS.equals(sub)){
R user = userTypeService.getUser(username, null, null); R user = userTypeService.getUser(username, null, null, null);
if(user !=null && user.getData() !=null){ if(user !=null && user.getData() !=null){
Map<String, Object> map = (Map<String, Object>)user.getData(); Map<String, Object> map = (Map<String, Object>)user.getData();
LoginUser userInfo = new LoginUser(); LoginUser userInfo = new LoginUser();
@ -330,7 +330,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
Integer userType = loginUser.getUserType(); Integer userType = loginUser.getUserType();
Long userid = loginUser.getUserid(); Long userid = loginUser.getUserid();
String openId = loginUser.getOpenId(); String openId = loginUser.getOpenId();
R user = userTypeService.getUser(null, userid, userType); R user = userTypeService.getUser(null, userid, userType, null);
if(user !=null && user.getData() !=null){ if(user !=null && user.getData() !=null){
if(UserTypeUtil.USER_TYPE==userType){ if(UserTypeUtil.USER_TYPE==userType){
XhpcAppUser appUser = xhpcAppUserMapper.getAppUserByPhone(username); XhpcAppUser appUser = xhpcAppUserMapper.getAppUserByPhone(username);
@ -401,7 +401,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService {
//根据不同的用户类型查询不同的信息 //根据不同的用户类型查询不同的信息
Long userid = loginUser.getUserid(); Long userid = loginUser.getUserid();
Integer userType = loginUser.getUserType(); Integer userType = loginUser.getUserType();
R user = userTypeService.getUser(null, loginUser.getUserid(), loginUser.getUserType()); R user = userTypeService.getUser(null, loginUser.getUserid(), loginUser.getUserType(), null);
if(user !=null && user.getData() !=null){ if(user !=null && user.getData() !=null){
Map<String, Object> map = (Map<String, Object>)user.getData(); Map<String, Object> map = (Map<String, Object>)user.getData();
//发票留言板版本客服电话 //发票留言板版本客服电话

View File

@ -20,13 +20,13 @@ public class XhpcCommonServiceImpl implements IXhpcCommonService {
private XhpcCommonMapper xhpcCommonMapper; private XhpcCommonMapper xhpcCommonMapper;
@Override @Override
public Map<String, Object> getLandUser(String phone,Long userId, Integer type) { public Map<String, Object> getLandUser(String phone,Long userId, Integer type,String serialNumber) {
if(type==0){ if(type==0){
return xhpcCommonMapper.getAppUser(phone,userId); return xhpcCommonMapper.getAppUser(phone,userId);
}else if(type==2){ }else if(type==2){
return xhpcCommonMapper.getCommunityUser(phone,userId); return xhpcCommonMapper.getCommunityUser(phone,userId,serialNumber);
}else if(type==3){ }else if(type==3){
return xhpcCommonMapper.getCustomersUser(phone,userId); return xhpcCommonMapper.getCustomersUser(phone,userId,serialNumber);
} }
return new HashMap<>(); return new HashMap<>();
} }

View File

@ -2,6 +2,7 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--suppress ALL -->
<mapper namespace="com.xhpc.user.mapper.XhpcCommonMapper"> <mapper namespace="com.xhpc.user.mapper.XhpcCommonMapper">
@ -49,6 +50,9 @@
alipay_login as alipayLogin, alipay_login as alipayLogin,
del_flag delFlag, del_flag delFlag,
concat(2) as userType, concat(2) as userType,
<if test="serialNumber !=null and serialNumber !=''">
(select count(charging_station_id) from xhpc_mechanism where community_id=mechanism_id and source=0 and charging_station_id in (select charging_station_id from xhpc_terminal where 1=1 and del_flag=0 and serial_number=#{serialNumber})) as number,
</if>
create_time as createTime create_time as createTime
from xhpc_community_personnel from xhpc_community_personnel
where del_flag=0 where del_flag=0
@ -77,6 +81,9 @@
alipay_login as alipayLogin, alipay_login as alipayLogin,
del_flag delFlag, del_flag delFlag,
concat(3) as userType, concat(3) as userType,
<if test="serialNumber !=null and serialNumber !=''">
(select count(charging_station_id) from xhpc_mechanism where customers_id=mechanism_id and source=1 and charging_station_id in (select charging_station_id from xhpc_terminal where 1=1 and del_flag=0 and serial_number=#{serialNumber})) as number,
</if>
create_time as createTime create_time as createTime
from xhpc_customers_personnel from xhpc_customers_personnel
where del_flag=0 where del_flag=0