From b471094fc52e287de43a169cc3ebd56daad99758 Mon Sep 17 00:00:00 2001 From: yuyang Date: Thu, 10 Feb 2022 10:33:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E6=AC=BE=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xhpc/card/pojo/XhpcIcCardInfo.java | 6 ++- .../service/impl/XhpcCardServiceImpl.java | 52 ++----------------- .../xhpc/common/api/RefundOrderService.java | 3 +- .../factory/RefundOrderFallbackFactory.java | 3 +- .../order/api/XhpcPileOrderController.java | 3 +- .../controller/XhpcStatisticsController.java | 2 +- .../impl/XhpcHistoryOrderServiceImpl.java | 4 +- .../impl/XhpcRealTimeOrderServiceImpl.java | 37 +++++++++---- .../mapper/XhpcChargeOrderMapper.xml | 2 +- .../resources/mapper/XhpcStatisticsMapper.xml | 2 +- .../controller/XhpcRefundOrderController.java | 39 +++++++------- .../controller/XhpcAppUserController.java | 2 - .../service/impl/XhpcAppUserServiceImpl.java | 18 ++++--- .../OrderNotificationWebSocketController.java | 2 +- .../socket/OrderNotificationWebSocket.java | 7 ++- 15 files changed, 84 insertions(+), 98 deletions(-) diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/pojo/XhpcIcCardInfo.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/pojo/XhpcIcCardInfo.java index fc64f9c4..029ab780 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/pojo/XhpcIcCardInfo.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/pojo/XhpcIcCardInfo.java @@ -36,7 +36,7 @@ public class XhpcIcCardInfo implements Serializable { /** * 用户id */ - private Integer userId; + private Long userId; /** * 用户账户 @@ -46,7 +46,7 @@ public class XhpcIcCardInfo implements Serializable { /** * 用户类型(0 C端用户 1 流量方用户 2社区用户 3B端用户) */ - private Long userType; + private Integer userType; /** * 用户姓名 @@ -83,6 +83,8 @@ public class XhpcIcCardInfo implements Serializable { */ private Long delFlag; + private String tenantId; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java index 4c0d9762..fc84e722 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java @@ -6,7 +6,9 @@ import com.xhpc.card.pojo.*; import com.xhpc.card.service.IXhpcCardService; import com.xhpc.card.utils.MyPagingUtil; import com.xhpc.common.api.CardHistoryOrderService; +import com.xhpc.common.core.constant.Constants; import com.xhpc.common.core.domain.R; +import com.xhpc.common.domain.IccardInfo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,50 +45,6 @@ public class XhpcCardServiceImpl implements IXhpcCardService { @Resource private XhpcCustomersPersonnelMapper xhpcCustomersPersonnelMapper; - - ///** - // * 卡启动充电判断 - // * - // * @param cardno - // * @param serialNumber - // * @return - // */ - //@Override - //public R cardStartup(String cardno, String serialNumber) { - // - // IccardInfo iccardInfo = xhpcCardMapper.getIccardInfoCardno(cardno); - // if(iccardInfo !=null){ - // if(iccardInfo.getCardtype()==0){ - // return R.fail(Constants.OFFLINE_CARD); - // } - // if(iccardInfo.getStatus()==0){ - // return R.fail(Constants.ZERO_CARD); - // } - // if(iccardInfo.getStatus()==2){ - // return R.fail(Constants.TWO_CARD); - // } - // if(iccardInfo.getStatus()==3){ - // return R.fail(Constants.THREE_CARD); - // } - // if(iccardInfo.getStatus()==4){ - // return R.fail(Constants.FOUR_CARD); - // } - // }else{ - // return R.fail(Constants.LNVALID_CARD); - // } - // //查询卡号对应的用户 - // XhpcIcCardInfo xhpcIcCardInfo = xhpcCardMapper.getXhpcIcCardInfo(iccardInfo.getId().toString()); - // if (xhpcIcCardInfo == null) { - // return R.fail(Constants.LNVALID_USER); - // } - // Long userId = xhpcIcCardInfo.getUserId(); - // Integer userType = xhpcIcCardInfo.getUserType(); - // String tenantId = xhpcIcCardInfo.getTenantId(); - // Integer type = 1; - // String grantOperator = xhpcIcCardInfo.getGrantOperatorId(); - // return cardHistoryOrderService.cardStartup(userId, serialNumber, userType, tenantId, type, grantOperator); - //} - @Override public R cardStartup(String cardno, String serialNumber,String rateModelId) { @@ -122,7 +80,7 @@ public class XhpcCardServiceImpl implements IXhpcCardService { Integer userType=xhpcIcCardInfo.getUserType(); String tenantId=xhpcIcCardInfo.getTenantId(); Integer type =1;//改成卡授权的类型 - String grantOperator=xhpcIcCardInfo.getGrantOperatorId();//改成卡授权的运营商 + String grantOperator=iccardInfo.getCorpno();//改成卡授权的运营商 return cardHistoryOrderService.cardStartup(userId, serialNumber, userType,tenantId,type,grantOperator,rateModelId); } @@ -349,9 +307,9 @@ public class XhpcCardServiceImpl implements IXhpcCardService { xhpcIcCardInfo.setUseStatus(1L); xhpcIcCardInfo.setCreateTime(new Date()); TIccardInfo tIccardInfo = tIccardInfoMapper.selectByPrimaryKey(bindCardInfo.getCardRecordId()); - xhpcIcCardInfo.setUserId(tIccardInfo.getUserindex()); + xhpcIcCardInfo.setUserId(Long.valueOf(tIccardInfo.getUserindex())); xhpcIcCardInfo.setUserAccount(bindCardInfo.getUserAccount()); - xhpcIcCardInfo.setUserType(Long.valueOf(bindCardInfo.getUserType())); + xhpcIcCardInfo.setUserType(bindCardInfo.getUserType()); xhpcCardMapper.insertSelective(xhpcIcCardInfo); return R.ok(); } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java index f2dfc019..f92201a7 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java @@ -6,6 +6,7 @@ import com.xhpc.common.core.domain.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.Map; @@ -17,5 +18,5 @@ import java.util.Map; public interface RefundOrderService { @PostMapping("/refund/order/orderCheckOut") - R sendNotice(@RequestBody Map map); + R sendNotice(@RequestParam(value = "amount") String amount,@RequestParam(value = "openid") String openid,@RequestParam(value = "source") Integer source,@RequestParam(value = "type") String type,@RequestParam(value = "userId") String userId,@RequestParam(value = "tenantId")String tenantId,@RequestParam(value = "remark")String remark); } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/RefundOrderFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/RefundOrderFallbackFactory.java index 2d491a01..84267b2f 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/RefundOrderFallbackFactory.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/RefundOrderFallbackFactory.java @@ -22,9 +22,10 @@ public class RefundOrderFallbackFactory implements FallbackFactory map) { + public R sendNotice(String amount, String openid, Integer source, String type, String userId,String tenantId,String remark) { return R.fail("自动申请退款失败:" + cause.getMessage()); } }; + } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java index cf275c07..4d39547b 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java @@ -215,9 +215,8 @@ public class XhpcPileOrderController extends BaseController { redisService.setCacheMap("realTimeTenantId:"+message,map); webSocketService.getMessage(message,json.toString()); //消息对了内容 - logger.info("桩实时数据发送WebSocket成功>>>>>orderNo:" + orderNo); + logger.info("桩实时数据发送WebSocket成功>>>>>orderNo:" + orderNo+"websocket :"+message); } - } catch (Exception e) { Map map = new HashMap<>(); map.put("code", 500); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java index d5427732..d3478ecc 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java @@ -350,7 +350,7 @@ public class XhpcStatisticsController extends BaseController { * @param source 订单来源(0 C端用户 1 流量方用户 2社区用户 3B端用户) * @return */ - @GetMapping("/getMechanismPage/export") + @PostMapping("/getMechanismPage/export") public void getMechanismExport(HttpServletRequest request,HttpServletResponse response,String chargingStationIds,Long internetUserId, Long operatorId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type,@RequestParam("source")Integer source)throws IOException { xhpcStatisticsService.getMechanismExport(request,response,chargingStationIds,internetUserId,operatorId,startTime,endTime,userId,type,source); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java index b002ef45..bfbe5cde 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java @@ -662,6 +662,8 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis xhpcChargeOrderService.addUserAccountStatement(userId, actPrice.negate(), subtract, xhpcChargeOrder.getChargeOrderId(), 3, date,source); map.put("userId",userId); map.put("amount",subtract); + map.put("source",xhpcChargeOrder.getSource()); + map.put("tenantId",xhpcChargeOrder.getTenantId()); if(userMessage.get("weixinOpenId") !=null && !"".equals(userMessage.get("weixinOpenId").toString())){ map.put("openid",userMessage.get("weixinOpenId").toString()); map.put("type",1); @@ -703,7 +705,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis public void run() { //充电结算后自动申请退款 if(userMessage !=null && "1".equals(userMessage.get("isRefund").toString()) && map !=null){ - refundOrderService.sendNotice(map); + refundOrderService.sendNotice(map.get("subtract").toString(),map.get("openid").toString(),source,map.get("type").toString(),map.get("userId").toString(),xhpcChargeOrder.getTenantId(),map.get("remark").toString()); } xhpcRealTimeOrderService.addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, xhpcChargeOrder.getSerialNumber(), 1); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 2546eb44..07a985bb 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -586,7 +586,10 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe } Map map =new HashMap<>(); map.put("source",xhpcChargeOrder.getSource()); - map.put("tenantId",xhpcChargeOrder.getTerminalId()); + map.put("tenantId",xhpcChargeOrder.getTenantId()); + BigDecimal subtract =new BigDecimal(0); + String openid =""; + String refundType =""; if(!UserTypeUtil.INTERNET_TYPE.equals(source)){ xhpcHistoryOrder.setUserNameEvcs(userMessage.get("phone").toString()); if(UserTypeUtil.USER_TYPE.equals(source)){ @@ -601,7 +604,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe } //扣除用户实际消费金额,添加消费记录 剩余的钱 BigDecimal balance1 =new BigDecimal(userMessage.get("balance").toString()); - BigDecimal subtract = balance1.subtract(actPrice); + subtract = balance1.subtract(actPrice); int i = xhpcChargeOrderService.updateUserBalance(userId, subtract,xhpcChargeOrder.getSource(),xhpcChargeOrder.getTenantId()); if(i==0){ //扣钱失败 @@ -614,11 +617,11 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe map.put("userId",userId); map.put("amount",subtract); if(userMessage.get("weixinOpenId") !=null && !"".equals(userMessage.get("weixinOpenId").toString())){ - map.put("openid",userMessage.get("weixinOpenId").toString()); - map.put("type",1); + openid=userMessage.get("weixinOpenId").toString(); + refundType="1"; }else{ - map.put("openid",userMessage.get("alipayOpenId").toString()); - map.put("type",2); + openid=userMessage.get("alipayOpenId").toString(); + refundType="2"; } map.put("remark","充电结算自动申请退款"); } @@ -627,23 +630,35 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder); logger.info("<<<<<<<<<<<<<<<<订单结束异步之前>>>>>>>>>>>>>>>>>"+xhpcHistoryOrder.getSerialNumber()); final BigDecimal balance = actPrice; + final String balance2 = subtract.toString(); + final String openids =openid; + final String refundTypes =refundType; // 另起线程处理业务上传redis数据 executorService.execute(new Runnable() { @Override public void run() { try{ - Map xhpcChargingPile = xhpcChargeOrderService.getXhpcChargingPile(xhpcChargeOrder.getTerminalId()); //充电结算后自动申请退款 if(userMessage !=null && "1".equals(userMessage.get("isRefund").toString()) && map !=null){ logger.info("<<<<<<<<<<<<<<<<进入自动退款111>>>>>>>>>>>>>>>>>"); if(UserTypeUtil.USER_TYPE.equals(source) || UserTypeUtil.COMMUNIT_TYPE.equals(source)){ logger.info("<<<<<<<<<<<<<<<<进入自动退款222>>>>>>>>>>>>>>>>>"); - refundOrderService.sendNotice(map); + R r = refundOrderService.sendNotice(balance2,openids,xhpcChargeOrder.getSource(),refundTypes,xhpcChargeOrder.getUserId().toString(),xhpcChargeOrder.getTenantId(),"充电结算自动申请退款"); + logger.info("<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>"+r.getCode()); + logger.info("<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>"+r.getData()); + logger.info("<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>"+r.getMsg()); } } + }catch (Exception e){ + e.printStackTrace(); + logger.info("<<<<<<<<<<<<<<<<自动退款失败>>>>>>>>>>>>>>>>>"); + } + try{ + Map xhpcChargingPile = xhpcChargeOrderService.getXhpcChargingPile(xhpcChargeOrder.getTerminalId()); if(!UserTypeUtil.INSERT_BALANCE.equals(source)){ Map userMassage = xhpcChargeOrderService.getUserMessage(userId); if(xhpcChargingPile !=null){ + logger.info("<<<<<<<<<<<<<<<<进入发送短信>>>>>>>>>>>>>>>>>"); //发送短信 if(userMassage !=null && userMassage.get("phone") !=null){ if("1".equals(xhpcChargingPile.get("type").toString())){ @@ -743,9 +758,9 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe //删除redis //redisService.deleteObject("order:"+orderNo); //redisService.deleteObject("order:"+orderNo+".lord"); - logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>"); - logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>"); - logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>订单号:>>>"+orderNo+">>>>>"); + logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>订单号:>>>"+orderNo+">>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<订单结束回调成功>>>>>>>>>订单号:>>>"+orderNo+">>>>>>>>"); } diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml index 005fb0bb..4ce16034 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcChargeOrderMapper.xml @@ -538,7 +538,7 @@ select charging_pile_id as chargingPileId, IFNULL(type, '1') as type from xhpc_charging_pile - where charging_pile_id = (select charging_pile_id from xhpc_terminal where terminal_id = #{terminalId}) + where charging_pile_id = (select charging_pile_id from xhpc_terminal where terminal_id = #{terminalId} and del_flag =0) and del_flag =0