dao/src/main/java/com/sandu/ximon/dao/domain/AlipayConfigEntity.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package com.sandu.ximon.dao.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; /** * * @TableName alipay_config */ @TableName(value ="alipay_config") @Data public class AlipayConfigEntity implements Serializable { /** * ç´¢å¼id */ @TableId(type = IdType.AUTO) private Integer configId; /** * åºç¨APPID */ private String appId; /** * åæ·ç§é¥/PKCS8æ ¼å¼RSA2ç§é¥ */ private String privateKey; /** * æ¯ä»å®å ¬é¥/æ¥çå°åï¼https://openhome.alipay.com/platform/keyManage.htm 对åºAPPIDä¸çæ¯ä»å®å ¬é¥ */ private String publicKey; /** * åä½ä¼ä¼´èº«ä»½ï¼PIDï¼ */ private String pid; /** * 客æ·id */ private Long clientId; /** * å建é ç½®çç¨æ·id */ private Long createUserId; @TableField(exist = false) private static final long serialVersionUID = 1L; } dao/src/main/java/com/sandu/ximon/dao/domain/WxConfigEntity.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package com.sandu.ximon.dao.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; /** * * @TableName wx_config */ @TableName(value ="wx_config") @Data public class WxConfigEntity implements Serializable { /** * */ @TableId(type = IdType.AUTO) private Long configId; /** * appid */ private String appid; /** * app端appid */ private String appappid; /** * */ private String mchId; /** * */ private String privateKey; /** * */ private Long clientId; /** * */ private Long createUserId; @TableField(exist = false) private static final long serialVersionUID = 1L; } dao/src/main/java/com/sandu/ximon/dao/enums/C3mRedisConstant.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.sandu.ximon.dao.enums; public enum C3mRedisConstant { // å çµæ¡©å¿è·³å åå¨(mac-list(å çµæ¡©å£ç¶æ)) C3_STATUS("m_c3_port_status:"), // å çµæ¡©è®¢å C3_NO_PAY_ORDER("m_c3_no_pay_order:"), // å çµæ¡©è¿è¡ä¸è®¢å C3_CHARGING_ORDER("m_c3_charging_order:"), // å çµæ¡©æ éç C3_ERROR("m_c3_error:"), ; private String code; public String getCode() { return code; } C3mRedisConstant(String code) { this.code = code; } } dao/src/main/java/com/sandu/ximon/dao/enums/OrderStatus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.sandu.ximon.dao.enums; public enum OrderStatus { // æªæ¯ä» NO_PAY(0), // å·²æ¯ä» PAYED(1), // 已鿬¾ REFUND(2), // 鿬¾ä¸ REFUNDING(3), // 鿬¾å¤±è´¥ REFUND_FAILED(4), // 已宿 COMPLETE(5), ; private Integer status; public Integer getStatus() { return status; } OrderStatus (Integer status) { this.status = status; } } dao/src/main/java/com/sandu/ximon/dao/enums/OrderType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.sandu.ximon.dao.enums; /** * 订åç±»å */ public enum OrderType { ALIPAY("alipay"), WXPAY("wxpay"), ERROR("error"); private String code; public String getCode() { return code; } public static OrderType getOrderType(String type){ if(type.equals(OrderType.ALIPAY.getCode())) { return OrderType.ALIPAY; }else if(type.equals(OrderType.WXPAY.getCode())) { return OrderType.WXPAY; }else { return OrderType.ERROR; } } OrderType(String code) { this.code = code; } } dao/src/main/java/com/sandu/ximon/dao/mapper/UsrAlipayConfigMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.sandu.ximon.dao.mapper; import com.sandu.ximon.dao.domain.AlipayConfigEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * @Entity com.sandu.ximon.dao.domain.UsrAlipayConfig */ @Mapper public interface UsrAlipayConfigMapper extends BaseMapper<AlipayConfigEntity> { } dao/src/main/java/com/sandu/ximon/dao/mapper/UsrWxConfigMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.sandu.ximon.dao.mapper; import com.sandu.ximon.dao.domain.WxConfigEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * @Entity com.sandu.ximon.dao.domain.WxConfigEntity */ @Mapper public interface UsrWxConfigMapper extends BaseMapper<WxConfigEntity> { } dao/src/main/resources/mapper/UsrAlipayConfigMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sandu.ximon.dao.mapper.UsrAlipayConfigMapper"> <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.AlipayConfigEntity"> <id property="configId" column="config_id" jdbcType="INTEGER"/> <result property="appId" column="app_id" jdbcType="VARCHAR"/> <result property="privateKey" column="private_key" jdbcType="VARCHAR"/> <result property="publicKey" column="public_key" jdbcType="VARCHAR"/> <result property="pid" column="pid" jdbcType="VARCHAR"/> <result property="clientId" column="client_id" jdbcType="BIGINT"/> <result property="createUserId" column="create_user_id" jdbcType="BIGINT"/> </resultMap> <sql id="Base_Column_List"> config_id,app_id,private_key, public_key,pid,client_id, create_user_id </sql> </mapper> dao/src/main/resources/mapper/UsrWxConfigMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sandu.ximon.dao.mapper.UsrWxConfigMapper"> <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.WxConfigEntity"> <id property="configId" column="config_id" jdbcType="BIGINT"/> <result property="appid" column="appid" jdbcType="VARCHAR"/> <result property="appappid" column="appappid" jdbcType="VARCHAR"/> <result property="mchId" column="mch_id" jdbcType="VARCHAR"/> <result property="privateKey" column="private_key" jdbcType="VARCHAR"/> <result property="clientId" column="client_id" jdbcType="BIGINT"/> <result property="createUserId" column="create_user_id" jdbcType="BIGINT"/> </resultMap> <sql id="Base_Column_List"> config_id,appid,appappid, mch_id,private_key,client_id, create_user_id </sql> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/config/AlipayConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.sandu.ximon.admin.config; /* * *ç±»åï¼AlipayConfig *åè½ï¼åºç¡é 置类 *详ç»ï¼è®¾ç½®å¸æ·æå ³ä¿¡æ¯åè¿åè·¯å¾ *ä¿®æ¹æ¥æï¼2017-04-05 *说æï¼ *以ä¸ä»£ç åªæ¯ä¸ºäºæ¹ä¾¿åæ·æµè¯èæä¾çæ ·ä¾ä»£ç ï¼åæ·å¯ä»¥æ ¹æ®èªå·±ç½ç«çéè¦ï¼æç §ææ¯ææ¡£ç¼å,å¹¶éä¸å®è¦ä½¿ç¨è¯¥ä»£ç ã *该代ç ä» ä¾å¦ä¹ åç ç©¶æ¯ä»å®æ¥å£ä½¿ç¨ï¼åªæ¯æä¾ä¸ä¸ªåèã */ public class AlipayConfig { //ââââââââââ请å¨è¿éé ç½®æ¨çåºæ¬ä¿¡æ¯âââââââââââââââ // åºç¨ID,æ¨çAPPIDï¼æ¶æ¬¾è´¦å·æ¢æ¯æ¨çAPPIDå¯¹åºæ¯ä»å®è´¦å· // public String app_id = "2019070665741774"; // åæ·ç§é¥ï¼æ¨çPKCS8æ ¼å¼RSA2ç§é¥ // public String merchant_private_key = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCume3EzEBKw8T2Xs0dBEDwTi8g7AR/c7Gy0sE9XciSVPoKpeHaaqShH7L+ws6pYE7SnXYNKM3diZ6S0vKxt5XhuOpg9yfueWw85BCbTYzOYQwrK/qZIgQC5c6S5b9aar9PowaupqYSFWDFvDOr6zaCr1OhjT/lYJV46D2t5e5/yACUQXGo0evvpbSvC6+zp2ZhUoJiXKvqPxC2F/dKGzyY4e9WnBSzaraLT09GLNwzLzSKItjKXHO/ameLhIiqacbOydKOmsEC1XzsNkeHXYLRFF4EAGZt4KDkuwiKjrz1r8Wz1a0Fr4jrE0F7dj9cIq+lhUjqUSydNYETJtKq5XOHAgMBAAECggEBAJ6W9A/H0jHWpeV98GKFxZJAAbCuj9tQM7yQj7L0p0S66K6ZQ47HRKeRCl06hsnzz0Sgf2SuhmbOJHmKH6Tqcrom4sSWWe/S3ExmfusBQn8GSS5BcQp8ihYztDFbezZeNUzZcC1c8wUD4/VW37wtFkMXiyf3C22GD95VXAjDC6GFfv6GIytCbAKw1HbgmU/JMDjnzSi0IKnmoBu5tVNZtwWRu8qkEC2LiejoQpxi12jRZQptkSa8iokk2eFx3i9BBDljx1qfzlFyAOtwICiy6HnxBTMBfzLAy9nI5//wzcY4X4fK0d/XatDNxDN4f/5Wp/VKFyz7BLFQTfkyQv8fofkCgYEA7HmF8Qk/qRumHX3UYuEENPge4EwYOzWcQ12kJBo93xbIcMlZ5Qrzpm6IRj8RMqpwcCEtrvvIsDtMO4o8+nNnOO8SMBk8KJj7nsZtigrAEor8HVj63IDDHX/zLt51cvs0x1jNXUD3/tZvw4PnDcblXpMYM1qR/bBuvHVGx1VTz6sCgYEAvQSO4YxAKXnMh338Nrh0FaRKmirewYn7TbLk6rPFh6goCHPGJC1fAOu+9xVALMn8VJrDpfrzqTTg0eKifh8i+5Rlqra95W+DdYr+WThB1NWs+59O5aKCT8wYI3dlaiI5xa+wCzkdasNO3YzrXr5y9wtJdepb5b/Re9uF1+KHv5UCgYEA2PNM3SydCSriph/xIJ5MW8Rfn2xwtrGioXNhyfWBWhDu5/ryzF3V15WE1N27i34vFdB6txUss/JTKDTVaPlDdEpxp0sflCd2gd6OVJ00Rk7Yqpwd2vsPBxuCIjfaDRlG/LUOBEY8v8JAW2HCMzOM782H4GVxlwutLJ1zyCESeW0CgYAWNrDsBOWNekj1K3M2oxrRaEt0LtGbATJNgVax1orCVJrP03tXyRU/MHVy6EZwfRRwhPe1S/bSzeoWAIKEO/iKhHgmRe+vRRm3+KvHpHroHmyD7ccB6cVSx3OWx3Nds8QCXZFc4Et6vpVIKEWJDuzH58WsW+yM5awi2Du0kWTOuQKBgCt7QqYDD0k8ahkKL/q2atMkNdJAYlLVWukHTRf8EQ8Uq5xEnLONGtrnYC0gjJCIdbIO4jkP10hOqDufyQqk4DUsk7m1waCmMjGPDTrv8gyVK+48gS6+Jmroi51GDOQTb/T35a3HJt2bflFbaEJzYnHHvkensAUX6DeEMIowE4Qg"; // æ¯ä»å®å ¬é¥,æ¥çå°åï¼https://openhome.alipay.com/platform/keyManage.htm 对åºAPPIDä¸çæ¯ä»å®å ¬é¥ã // public String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhnER1VMBe7yuHI5P5NtsM0Nitaq8cHnobB7KwYDw/V9t/DCiBAbJnuBbOHyS4zkffiZ905dsQycIqu9PRk4J9j6nE9YZVLMPIHXIAOn4J6ZAGmznpuQ9es+fblw+nr/v00X9ZQpR0zYpULEEHaU9lXE8JMoKElawNYRpibArwrnWcizOFbFiwmq8Jq3m07Ri/L7/gogOZshE3WE9UuBIR/czputhq0py0F+yddASy08F0jt3/wm4Cgx/qUpMH/4KwIRwxSKp+Kk7rCRrKmnOm3iMt9QmQ1yX2ht9To5ph3gPBtfR5VyhA8Dasnls9XYEUzsrnWOd1v9javYPgE4vdQIDAQAB"; // æå¡å¨å¼æ¥éç¥é¡µé¢è·¯å¾ éhttp://æ ¼å¼ç宿´è·¯å¾ï¼ä¸è½å ?id=123è¿ç±»èªå®ä¹åæ°ï¼å¿ é¡»å¤ç½å¯ä»¥æ£å¸¸è®¿é® // public static String notify_url = "http://192.168.0.199:8080/machine-fast/serv/c2charging/alipayNotifyReturn"; public static String notify_url = "http://"+ServerConfig.getServerIP()+":8888/machine-fast/serv/c2charging/alipayNotifyReturn"; // 页é¢è·³è½¬åæ¥éç¥é¡µé¢è·¯å¾ éhttp://æ ¼å¼ç宿´è·¯å¾ï¼ä¸è½å ?id=123è¿ç±»èªå®ä¹åæ°ï¼å¿ é¡»å¤ç½å¯ä»¥æ£å¸¸è®¿é® // public static String return_url = "http://192.168.0.199:8080/machine-fast/serv/c2charging/alipayReturn"; public static String return_url = "http://"+ServerConfig.getServerIP()+":8888/machine-fast/serv/c2charging/alipayReturn"; // è¿åæ ¼å¼ public static String format = "json"; // ç¾åæ¹å¼ public static String sign_type = "RSA2"; // å符ç¼ç æ ¼å¼ public static String charset = "utf-8"; // public String pid = "2088531531858351"; public static String target_id = ""; // æ¯ä»å®ç½å ³ public static String gatewayUrl = "https://openapi.alipay.com/gateway.do"; // public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do"; } ximon-admin/src/main/java/com/sandu/ximon/admin/config/ServerConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ package com.sandu.ximon.admin.config; import com.sandu.ximon.admin.utils.LogUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @Component public class ServerConfig { @Value("${server-conf.ip}") public String SIP; @Value("${nginx.port}") public String nginxPort; @Value("${nginx.cameraSaveUrl}") public String saveUrl; // @Value("${broadcast.file-save-url}") // private String fileSaveUrl; private static String ServerIP; private static String NginxPort; private static String CameraSaveUrl; private static String BroadcastFileSaveUrl; private static boolean O2OServer; public static String getNginxCameraSaveUrl() { return CameraSaveUrl; } @PostConstruct private void loadIP(){ ServerIP = SIP; NginxPort = nginxPort; CameraSaveUrl = saveUrl; // BroadcastFileSaveUrl = fileSaveUrl; LogUtils.print("Server IP ï¼" +SIP); LogUtils.print("NignX Port ï¼" +nginxPort); LogUtils.print("Camera Save Url ï¼" +CameraSaveUrl); LogUtils.print("Broadcast File Save Url ï¼" +BroadcastFileSaveUrl); } public static String getServerIP(){ return ServerIP; } public static String getNignxPort(){ return NginxPort; } public static String getBroadcastFileSaveUrl(){ return BroadcastFileSaveUrl; } } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/UsrPayConfigCollector.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,96 @@ package com.sandu.ximon.admin.controller; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.AlipayConfigParam; import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService; import com.sandu.ximon.dao.domain.AlipayConfigEntity; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; /** * @Author liuhaonan * @Date 2022/3/16 10:32 * @Version 1.0 */ @RestController @AllArgsConstructor @RequestMapping("/v1/payconfig") public class UsrPayConfigCollector { private final UsrAlipayConfigService alipayConfigService; /** * æ¯ä»å®é 置添å * @param configParam * @return */ @PostMapping("/addAliPayConfig") public ResponseVO<Object> addAliPayConfig(@RequestBody AlipayConfigParam configParam) { return ResponseUtil.success(alipayConfigService.addAliPayConfig(configParam)); } /** * æ¯ä»å®é ç½®æ´æ¹ * @param configId * @param configParam * @return */ @PostMapping("/updateAliPayConfig/{configId}") public ResponseVO<Object> updateAliPayConfig(@PathVariable Integer configId, @RequestBody AlipayConfigParam configParam) { return ResponseUtil.success(alipayConfigService.updateAliPayConfig(configId,configParam)); } /** * æ¯ä»å®é ç½®å é¤ * @param configId * @return */ @PostMapping("/deleteAliPayConfig/{configId}") public ResponseVO<Object> deleteAliPayConfig(@PathVariable Integer configId) { return ResponseUtil.success(alipayConfigService.deleteAliPayConfig(configId)); } /** * * @param poleId * @return */ @GetMapping("/getAliPayConfigByPoleId/{poleId}") public ResponseVO<Object> getAliPayConfigByPoleId(@PathVariable Long poleId) { return ResponseUtil.success(alipayConfigService.getConfigByPoleId(poleId)); } /** *é 置详æ * @param configId * @return */ @GetMapping("/getAliPayConfigById/{configId}") public ResponseVO<Object> getAliPayConfigById(@PathVariable Integer configId) { if(configId==null){ throw new BusinessException("idè½ä¸ºç©º"); } AlipayConfigEntity byId = alipayConfigService.getById(configId); if(byId==null){ throw new BusinessException("é ç½®idé误æé ç½®ä¸åå¨"); } return ResponseUtil.success(byId); } @GetMapping("/aliConfigList") public ResponseVO<Object> aliConfigList(BaseConditionVO baseConditionVO) { return ResponseUtil.success(alipayConfigService.configList(baseConditionVO)); } } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java
@@ -145,7 +145,7 @@ * @return */ @PostMapping("/pushToXixun/{pid}") public ResponseVO<Object> getByPid(@PathVariable Long pid, @RequestBody List<Long> lightemitIds) { public ResponseVO<Object> pushByPid(@PathVariable Long pid, @RequestBody List<Long> lightemitIds) { xiXunPlayerService.videoXixunPlayer(pid, lightemitIds); return ResponseUtil.success("æ¨éæå"); } ximon-admin/src/main/java/com/sandu/ximon/admin/param/AlipayConfigParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.sandu.ximon.admin.param; import lombok.Data; /** * @Author liuhaonan * @Date 2022/3/16 9:46 * @Version 1.0 */ @Data public class AlipayConfigParam { private String appId; /** * åæ·ç§é¥/PKCS8æ ¼å¼RSA2ç§é¥ */ private String privateKey; /** * */ private String publicKey; /** * åä½ä¼ä¼´èº«ä»½ï¼PIDï¼ */ private String pid; } ximon-admin/src/main/java/com/sandu/ximon/admin/param/WxpayConfigParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.sandu.ximon.admin.param; import lombok.Data; /** * @Author liuhaonan * @Date 2022/3/16 9:46 * @Version 1.0 */ @Data public class WxpayConfigParam { /** * appid */ private String appid; /** * app端appid */ private String appappid; /** * */ private String mchId; /** * */ private String privateKey; } ximon-admin/src/main/java/com/sandu/ximon/admin/pay/alipay/UsrAlipayConfigService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,106 @@ package com.sandu.ximon.admin.pay.alipay; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.param.AlipayConfigParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.service.ClientService; import com.sandu.ximon.admin.service.PoleService; import com.sandu.ximon.admin.utils.SpringContextUtil; import com.sandu.ximon.dao.domain.AlipayConfigEntity; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.mapper.UsrAlipayConfigMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; /** * @Author liuhaonan * @Date 2022/3/15 * @Version 1.0 */ @Service @AllArgsConstructor public class UsrAlipayConfigService extends BaseServiceImpl<UsrAlipayConfigMapper, AlipayConfigEntity> { private final UsrAlipayConfigMapper usrAlipayConfigMapper; private final ClientService clientService; private final PoleService poleService; public AlipayConfigEntity getConfigByPoleId(Long poleId) { Pole pole = poleService.getById(poleId); if (pole == null) { throw new BusinessException("ç¯æidé误æç¯æä¸åå¨"); } AlipayConfigEntity config; if (pole.getClientId() == null) { config = getById(0); } config = getOne(Wrappers.lambdaQuery(AlipayConfigEntity.class).eq(AlipayConfigEntity::getCreateUserId, SecurityUtils.getUserId())); if(config==null){ throw new BusinessException("ç¨æ·æªé ç½®æ¯ä»é ç½®,请é ç½®åéè¯"); } return config; } public static UsrAlipayConfigService getBean(){ return (UsrAlipayConfigService) SpringContextUtil.getBean("UsrAlipayConfigService"); } public boolean addAliPayConfig(AlipayConfigParam configParam){ AlipayConfigEntity config =new AlipayConfigEntity(); BeanUtil.copyProperties(configParam,config); return save(config); } public boolean updateAliPayConfig(Integer id,AlipayConfigParam configParam){ AlipayConfigEntity byId = getById(id); if(byId==null){ throw new BusinessException("é ç½®idé误æé ç½®ä¸åå¨"); } AlipayConfigEntity config =new AlipayConfigEntity(); BeanUtil.copyProperties(configParam,config); config.setConfigId(id); return updateById(config); } public boolean deleteAliPayConfig(Integer id){ AlipayConfigEntity byId = getById(id); if(byId==null){ throw new BusinessException("é ç½®idé误æé ç½®ä¸åå¨"); } return removeById(id); } public List<AlipayConfigEntity> configList(BaseConditionVO baseConditionVO){ LambdaQueryWrapper<AlipayConfigEntity> wrapper =new LambdaQueryWrapper<>(); System.out.println("----------------------------"+clientService.findClientId()); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); if(SecurityUtils.getClientId()!=null){//å®¢æ· if(clientService.findClientId()){//äºçº§å®¢æ· PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); wrapper= Wrappers.lambdaQuery(AlipayConfigEntity.class).eq(AlipayConfigEntity::getCreateUserId,SecurityUtils.getUserId()); }else if(!clientService.findClientId()){//ä¸çº§å®¢æ· PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); wrapper= Wrappers.lambdaQuery(AlipayConfigEntity.class).eq(AlipayConfigEntity::getClientId,SecurityUtils.getUserId()); } } else {//管ç PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); wrapper= Wrappers.lambdaQuery(AlipayConfigEntity.class); } return list(wrapper); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mChargingChargeService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,109 @@ package com.sandu.ximon.admin.service; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.dao.domain.C3mChargingCharge; import com.sandu.ximon.dao.mapper.C3mChargingChargeMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; /** * @Author liuhaonan * @Date 2022/3/10 13:58 * @Version 1.0 * c3å çµæ¡©è´¹çç¸å ³ */ @Service @AllArgsConstructor public class C3mChargingChargeService extends BaseServiceImpl<C3mChargingChargeMapper, C3mChargingCharge> { private final C3mChargingChargeMapper c3mChargingChargeMapper; /** * ä¿®æ¹è´¹ç * @param chargeEntities * @param userId * @param username * @return */ public boolean updateCharge(List<C3mChargingCharge> chargeEntities, Long userId, String username) { // å é¤åæ¬åå¨çè´¹ç c3mChargingChargeMapper.deleteCharge(chargeEntities.get(0).getC3Id()); Long timestamp = new Date().getTime(); // å°è´¹çæ·»å è³æ°æ®åº for (C3mChargingCharge c3m : chargeEntities) { c3m.setTimestamp(timestamp); save(c3m); } // LogService.getBean().log(userId,username,"ä¿®æ¹C3mè´¹ç",null, // "{ "+ JSON.toJSONString(chargeEntities)+" }"); return true; } public void initCharge(Integer c3Id) { List<C3mChargingCharge> chargeList = getChargeByC3Id(c3Id); if(chargeList.size() == 0) { // ä¸åå¨è´¹çæ¶ï¼çæå个费çå¹¶æå ¥æ°æ®åº C3mChargingCharge c3mChargeEntity = C3mChargingCharge.getInitInstance(c3Id); c3mChargingChargeMapper.insertCharge(c3mChargeEntity); } } public List<C3mChargingCharge> getChargeByC3Id(Integer c3Id) { // æ¥æ¾æ°æ®åºææè´¹ç List<C3mChargingCharge> list = c3mChargingChargeMapper.getChargeByC3Id(c3Id); // 夿listä¸ºåæ¡ç´æ¥è¿å if(list.size()<2){ return list; } // å°æ¶åè¿è¡æåº Collections.sort(list, new Comparator<C3mChargingCharge>() { @Override public int compare(C3mChargingCharge o1, C3mChargingCharge o2) { int i = o2.getHour().compareTo(o1.getHour()); if(i == 0){ return o2.getMin().compareTo(o1.getMin()); } return i; } @Override public boolean equals(Object obj) { return false; } }); // list翻转 Collections.reverse(list); // æ¶é´æ®µåç¬¦æ¼æ¥ for(int i=1;i<list.size();i++){ C3mChargingCharge pre = list.get(i - 1); C3mChargingCharge now = list.get(i); pre.setStrTime( pre.getHour()+"ç¹"+pre.getMin()+"å å° "+ now.getHour()+"ç¹"+now.getMin()+"å" ); if(i==list.size()-1){ pre = now; now = list.get(0); if(now.getHour() < pre.getHour()){ pre.setStrTime( pre.getHour() + "ç¹" + pre.getMin() + "å å° " + "鿥"+now.getHour() + "ç¹" + now.getMin() + "å" ); }else { pre.setStrTime( pre.getHour() + "ç¹" + pre.getMin() + "å å° " + now.getHour() + "ç¹" + now.getMin() + "å" ); } } } return list; } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,87 @@ package com.sandu.ximon.admin.service; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.third.pay.wx.WxFastPayService; import com.sandu.ximon.admin.utils.AliPayUtils; import com.sandu.ximon.dao.domain.C3mOrder; import com.sandu.ximon.dao.enums.OrderStatus; import com.sandu.ximon.dao.enums.OrderType; import com.sandu.ximon.dao.mapper.C3mOrderMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.Date; /** * @Author liuhaonan * @Date 2022/3/10 14:24 * @Version 1.0 */ @Service @AllArgsConstructor public class C3mOrderService extends BaseServiceImpl<C3mOrderMapper, C3mOrder> { private final C3mOrderMapper c3mOrderMapper; private final WxFastPayService fastPayService; public boolean orderRefund(String outTradeNo, Double refundAmount, Long userId, String username) { C3mOrder orderByOutTradeNo = c3mOrderMapper.getOrderByOutTradeNo(outTradeNo); if (null == orderByOutTradeNo) { return false; } else { orderByOutTradeNo.setRefundAmount(refundAmount); return c3mOrderRefund(orderByOutTradeNo, "页é¢API鿬¾", userId, username); } } private boolean c3mOrderRefund(C3mOrder C3mOrder, String msg, Long userId, String username) { // è¿è¡é款ï¼è®¾ç½®è®¢åç¶æä¸ºå·²éæ¬¾ boolean b = false; if (C3mOrder.getOrderType().equals(OrderType.ALIPAY.getCode())) { b = AliPayUtils.alipayrefund( C3mOrder.getPoleId(), C3mOrder.getOutTradeNo(), C3mOrder.getRefundAmount()); } else if (C3mOrder.getOrderType().equals(OrderType.WXPAY.getCode())) { // è¿è¡å¾®ä¿¡é款 // b = WxPayUtils.getBean().wxRefund( // C3mOrder.getTotalAmount(), // C3mOrder.getRefundAmount(), // C3mOrder.getOutTradeNo(), // C3mOrder.getPoleId() // ); } C3mOrder.setRefundTimestamp(new Date().getTime()); C3mOrder.setRefundMsg(msg); if (b) { C3mOrder.setOrderStatus(OrderStatus.REFUND.getStatus()); c3mOrderMapper.updateRefundOrder(C3mOrder); /* logService.log( userId, ServerTask.SERVER_TASK, "C3m订åå¤ç", null, "{ æä½è ("+username+")" + "订å鿬¾: "+C3mOrder.getOutTradeNo() +",è®¢åæ»éé¢:"+C3mOrder.getTotalAmount() +",鿬¾éé¢: "+C3mOrder.getTotalAmount()+"}");*/ return true; } else { C3mOrder.setOrderStatus(OrderStatus.REFUND_FAILED.getStatus()); c3mOrderMapper.updateRefundOrder(C3mOrder); /* logService.log( userId, ServerTask.SERVER_TASK, "C3m订åå¤ç", null, "{ æä½è ("+username+")" + "订å鿬¾(失败): "+C3mOrder.getOutTradeNo() +",è®¢åæ»éé¢:"+C3mOrder.getTotalAmount() +",鿬¾éé¢: "+C3mOrder.getTotalAmount()+"}");*/ return false; } } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/AliPayUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,124 @@ package com.sandu.ximon.admin.utils; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeRefundModel; import com.alipay.api.request.AlipayTradeQueryRequest; import com.alipay.api.request.AlipayTradeRefundRequest; import com.alipay.api.response.AlipayTradeRefundResponse; import com.google.gson.Gson; import com.sandu.ximon.admin.config.AlipayConfig; import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService; import com.sandu.ximon.dao.domain.AlipayConfigEntity; import lombok.AllArgsConstructor; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; @AllArgsConstructor public class AliPayUtils { public static boolean alipayQuery(String out_trade_no, Long streetlightId) { AlipayConfigEntity alipayConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId);// è·å客æ·çæ¯ä»å®é ç½® String checkStr = ConfigCheckUtils.checkAlipayConfig(alipayConfigEntity); if( checkStr != null){ LogUtils.error("æ¥è¯¢å¤±è´¥"); return false; } //è·å¾åå§åçAlipayClient AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, alipayConfigEntity.getAppId(), alipayConfigEntity.getPrivateKey(), AlipayConfig.format, AlipayConfig.charset, alipayConfigEntity. getPublicKey(), AlipayConfig.sign_type); //设置请æ±åæ° AlipayTradeQueryRequest alipayRequest = new AlipayTradeQueryRequest(); //åæ·è®¢åå·ï¼åæ·ç½ç«è®¢åç³»ç»ä¸å¯ä¸è®¢åå· alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\"}"); //è¯·æ± String result = null; try { result = alipayClient.execute(alipayRequest).getBody(); } catch (AlipayApiException e) { e.printStackTrace(); } Map map = (Map) new Gson().fromJson(result,Map.class).get("alipay_trade_query_response"); if (map.get("sub_msg") != null) { if ("交æä¸åå¨".equals(map.get("sub_msg"))) { return false; } } if(map.get("trade_status")==null){ return false; } if("TRADE_SUCCESS".equals(map.get("trade_status"))){ // String payTime = (String) map.get("send_pay_date"); return true; }else if("TRADE_CLOSED".equals(map.get("trade_status"))){ LogUtils.error("交æå·²å ³é(æ¯ä»å®)"); return false; } return false; } /** * æ¯ä»å®é款æ¥å£ * @return */ public static boolean alipayrefund(Long streetlightId, String out_trade_no, Double refundAmount) { //LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"鿬¾æä½",null,"{ è¿è¡æ¯ä»å®é款:"+out_trade_no+" }"); //鿬¾éé¢ï¼ä¸è½å¤§äºè®¢åæ»éé¢ String refund_amount = refundAmount+""; //鿬¾çåå 说æ String refund_reason = "å çµæ¡©é款"; //æ è¯ä¸æ¬¡é款请æ±ï¼åä¸ç¬äº¤æå¤æ¬¡é款éè¦ä¿è¯å¯ä¸ï¼å¦éé¨å鿬¾ï¼åæ¤åæ°å¿ ä¼ ã String out_request_no = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); AlipayConfigEntity alipayConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId); //æ¾å°æ¯åªä¸ªå®¢æ·çå çµæ¡© 就鿬¾ç»è° String checkStr = ConfigCheckUtils.checkAlipayConfig(alipayConfigEntity); if( checkStr != null){ return false; } // SDK å ¬å ±è¯·æ±ç±»ï¼å å«å ¬å ±è¯·æ±åæ°ï¼ä»¥åå°è£ äºç¾åä¸éªç¾ï¼å¼åè æ éå ³æ³¨ç¾åä¸éªç¾ AlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, alipayConfigEntity.getAppId(), alipayConfigEntity.getPrivateKey(), AlipayConfig.format, AlipayConfig.charset, alipayConfigEntity.getPublicKey(), AlipayConfig.sign_type); AlipayTradeRefundRequest alipay_request = new AlipayTradeRefundRequest(); AlipayTradeRefundModel model = new AlipayTradeRefundModel(); model.setOutTradeNo(out_trade_no); // model.setTradeNo(out_trade_no); model.setRefundAmount(refund_amount); model.setRefundReason(refund_reason); model.setOutRequestNo(out_request_no); alipay_request.setBizModel(model); AlipayTradeRefundResponse alipay_response = null; try { alipay_response = client.execute(alipay_request); } catch (AlipayApiException e) { e.printStackTrace(); } // System.out.println(alipay_response.getBody()); if("10000".equals(alipay_response.getCode())){ // 鿬¾æå // LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"鿬¾æä½",null,"{ è¿è¡æ¯ä»å®é款(æå):"+out_trade_no+",鿬¾éé¢:"+refundAmount+" }"); return true; } //ä¿å鿬¾éé¢å鿬¾åå·ï¼å°è®¢åç¶æç½®ä¸ºå®æï¼RFERRORï¼ï¼ä¿åå°æ°æ®åº // LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"鿬¾æä½",null,"{ è¿è¡æ¯ä»å®é款(失败):"+out_trade_no+",鿬¾éé¢:"+refundAmount+",reason: "+ JSON.toJSONString(alipay_response)+" }"); return false; } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/ConfigCheckUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.sandu.ximon.admin.utils; import com.sandu.ximon.dao.domain.AlipayConfigEntity; import org.springframework.stereotype.Component; @Component public class ConfigCheckUtils { public static String checkAlipayConfig(AlipayConfigEntity alipayConfigEntity) { if(alipayConfigEntity == null) { return "ä¸å失败ï¼è¯·è系管çåå¤çï¼é误ç ï¼100"; } else if (alipayConfigEntity.getAppId() == null || alipayConfigEntity.getPrivateKey() == null || alipayConfigEntity.getPublicKey() == null) { return "ä¸å失败ï¼è¯·è系管çåå¤çï¼é误ç ï¼101"; } return null; } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/DateUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,260 @@ package com.sandu.ximon.admin.utils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import javax.validation.constraints.NotNull; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * æ¥æå¤ç * * @author Mark sunlightcs@gmail.com */ public class DateUtils { /** * æ¶é´æ ¼å¼(yyyy-MM-dd) */ public final static String DATE_PATTERN = "yyyy-MM-dd"; /** * æ¶é´æ ¼å¼(yyyy-MM-dd HH:mm:ss) */ public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; public final static String ORDER_DATE = "yyyyMMddHHmmss"; public final static String DATE_TIME_SEC_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS"; public static Date timestamp2DateTimePattern(Long timestamp) { return stringToDate(timestamp + "", DATE_TIME_SEC_PATTERN); } /** * æ¥ææ ¼å¼å æ¥ææ ¼å¼ä¸ºï¼yyyy-MM-dd * * @param date æ¥æ * @return è¿åyyyy-MM-ddæ ¼å¼æ¥æ */ public static String format(Date date) { return format(date, DATE_PATTERN); } public static String orderFormat(Date date) { return format(date, ORDER_DATE); } public static String dateFormat(Date date) { return format(date, DATE_TIME_PATTERN); } public static String dateFormatSec(Date date) { return format(date, DATE_TIME_SEC_PATTERN); } /** * æ¥ææ ¼å¼å æ¥ææ ¼å¼ä¸ºï¼yyyy-MM-dd * * @param date æ¥æ * @param pattern æ ¼å¼ï¼å¦ï¼DateUtils.DATE_TIME_PATTERN * @return è¿åyyyy-MM-ddæ ¼å¼æ¥æ */ public static String format(Date date, String pattern) { if (date != null) { SimpleDateFormat df = new SimpleDateFormat(pattern); return df.format(date); } return null; } /** * åç¬¦ä¸²è½¬æ¢ææ¥æ * * @param strDate æ¥æå符串 * @param pattern æ¥æçæ ¼å¼ï¼å¦ï¼DateUtils.DATE_TIME_PATTERN */ public static Date stringToDate(String strDate, String pattern) { if (StringUtils.isBlank(strDate)) { return null; } DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern); return fmt.parseLocalDateTime(strDate).toDate(); } /** * æ ¹æ®å¨æ°ï¼è·åå¼å§æ¥æãç»ææ¥æ * * @param week 卿 0æ¬å¨ï¼-1ä¸å¨ï¼-2ä¸ä¸å¨ï¼1ä¸å¨ï¼2ä¸ä¸å¨ * @return è¿ådate[0]å¼å§æ¥æãdate[1]ç»ææ¥æ */ public static Date[] getWeekStartAndEnd(int week) { DateTime dateTime = new DateTime(); LocalDate date = new LocalDate(dateTime.plusWeeks(week)); date = date.dayOfWeek().withMinimumValue(); Date beginDate = date.toDate(); Date endDate = date.plusDays(6).toDate(); return new Date[]{beginDate, endDate}; } /** * å¯¹æ¥æçãç§ãè¿è¡å /å * * @param date æ¥æ * @param seconds ç§æ°ï¼è´æ°ä¸ºå * @return å /åå ç§åçæ¥æ */ public static Date addDateSeconds(Date date, int seconds) { DateTime dateTime = new DateTime(date); return dateTime.plusSeconds(seconds).toDate(); } /** * å¯¹æ¥æçãåéãè¿è¡å /å * * @param date æ¥æ * @param minutes åéæ°ï¼è´æ°ä¸ºå * @return å /åå åéåçæ¥æ */ public static Date addDateMinutes(Date date, int minutes) { DateTime dateTime = new DateTime(date); return dateTime.plusMinutes(minutes).toDate(); } /** * å¯¹æ¥æçãå°æ¶ãè¿è¡å /å * * @param date æ¥æ * @param hours å°æ¶æ°ï¼è´æ°ä¸ºå * @return å /åå å°æ¶åçæ¥æ */ public static Date addDateHours(Date date, int hours) { DateTime dateTime = new DateTime(date); return dateTime.plusHours(hours).toDate(); } /** * å¯¹æ¥æçã天ãè¿è¡å /å * * @param date æ¥æ * @param days 天æ°ï¼è´æ°ä¸ºå * @return å /åå 天åçæ¥æ */ public static Date addDateDays(Date date, int days) { DateTime dateTime = new DateTime(date); return dateTime.plusDays(days).toDate(); } /** * å¯¹æ¥æçãå¨ãè¿è¡å /å * * @param date æ¥æ * @param weeks 卿°ï¼è´æ°ä¸ºå * @return å /åå å¨åçæ¥æ */ public static Date addDateWeeks(Date date, int weeks) { DateTime dateTime = new DateTime(date); return dateTime.plusWeeks(weeks).toDate(); } /** * å¯¹æ¥æçãæãè¿è¡å /å * * @param date æ¥æ * @param months ææ°ï¼è´æ°ä¸ºå * @return å /åå æåçæ¥æ */ public static Date addDateMonths(Date date, int months) { DateTime dateTime = new DateTime(date); return dateTime.plusMonths(months).toDate(); } /** * å¯¹æ¥æçãå¹´ãè¿è¡å /å * * @param date æ¥æ * @param years å¹´æ°ï¼è´æ°ä¸ºå * @return å /åå å¹´åçæ¥æ */ public static Date addDateYears(Date date, int years) { DateTime dateTime = new DateTime(date); return dateTime.plusYears(years).toDate(); } /** * è·å两个æ¶é´å¤©æ°å·® * * @param oDate * @param nDate * @return */ public static Long betweenDateDay(@NotNull Date oDate, @NotNull Date nDate) { return Long.valueOf((nDate.getTime() - nDate.getTime())) / (1000 * 60 * 60 * 24); } /** * è·å两个æ¶é´å°æ¶å·® * * @param oDate * @param nDate * @return */ public static Long betweenDateHours(@NotNull Date oDate, @NotNull Date nDate) { return Long.valueOf((nDate.getTime() - oDate.getTime())) / (1000 * 60 * 60); } /** * è·åæ¬æç¬¬ä¸å¤© * * @return */ public static Date getMonthFirstDay() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); return calendar.getTime(); } /** * è·åæ¬ææåä¸å¤© * * @return */ public static Date getMonthLastDay() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return calendar.getTime(); } public static String toChineseDateStr(long ms) { StringBuffer sb = new StringBuffer(); // è·åæ»ç§æ° Long sec = ms / 1000; ms = ms % 1000; String msStr = "";//SuppDataUtils.SuppData(ms+"",3); // ç§æ°å¤§äº60æ¶ if (sec > 60) { long min = sec / 60; sec = sec % 60; if (min > 60) { long hour = min / 60; min = min % 60; sb.append(hour + "æ¶" + min + "å" + sec + "." + msStr + "ç§"); } else { sb.append(min + "å" + sec + "." + msStr + "ç§"); } } else { sb.append(sec + "." + msStr + "ç§"); } return sb.toString(); } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/OrderUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.sandu.ximon.admin.utils; import java.util.Date; import java.util.UUID; public class OrderUtils { public static String generateOutTradeNo () { String outTradeNo = DateUtils.orderFormat(new Date()); String uuid = UUID.randomUUID().toString().substring(0, 2); outTradeNo = outTradeNo + uuid; return outTradeNo; } } ximon-admin/src/main/java/com/sandu/ximon/admin/vo/C3mOrderVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,161 @@ package com.sandu.ximon.admin.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.sandu.ximon.admin.utils.OrderUtils; import com.sandu.ximon.dao.domain.C3mOrder; import com.sandu.ximon.dao.enums.OrderStatus; import com.sandu.ximon.dao.enums.OrderType; import lombok.Data; import java.util.Date; /** * @Author liuhaonan * @Date 2022/3/10 11:48 * @Version 1.0 */ @Data public class C3mOrderVO extends C3mOrder{ public static String REQUEST_URL = "http://www.ximonsmart.com/charge/#/charge/"; /** * 订åID */ @TableId private Long orderId; /** * ç¯æID */ private Long poleId; /** * å çµæ¡©MAC */ private String c3Mac; /** * 对åºçç¯æè®¾å¤mac */ private String poleMac; /** * 订ååæ·å· */ private String outTradeNo; /** * 订åç±»å(C3mOrderType) */ private String orderType; /** * è®¢åæ»éé¢ */ private Double totalAmount; /** * 宿¶éé¢ */ private Double receiptAmount; /** * 鿬¾ */ private Double refundAmount; /** * ä¹°å®¶å¸å·(æ¯ä»å®) */ private String aliBuyerLogonId; /** * é¢çº¦çµé */ private Integer subscribeChargingCapacity; /** * å®å çµé */ private Double actualChargingCapacity; /** * 订åå建æ¶é´æ³ */ private Long createTimestamp; /** * è®¢åæ¯ä»æ¶é´æ³ */ private Long payTimestamp; /** * 订å鿬¾æ¶é´æ³ */ private Long refundTimestamp; /** * 订å鿬¾è¯´æ */ private String refundMsg; /** * å¼å§å çµæ¶é´æ³ */ private Long startChargingTimestamp; /** * ç»æå çµæ¶é´æ³ */ private Long stopChargingTimestamp; /** * 订åç¶æï¼// æªæ¯ä»(0)ï¼å·²æ¯ä»(1),已鿬¾(2),鿬¾ä¸(3),鿬¾å¤±è´¥(4),订å宿(5) */ private Integer orderStatus; /** * å çµæ¡©åç§° */ private String c3Name; /** * ç¯æåç§° */ private String poleName; @TableField(exist = false) private static final long serialVersionUID = 1L; /** * çææ°è®¢å * @param c3Mac C3ç©çå°å * @param orderType 订åç±»å * @param totalAmount æ»éé¢ * @param subscribeChargingCapacity é¢å çµé */ public C3mOrder generateOrder(Long poleId, String poleMac, String c3Mac, OrderType orderType, Double totalAmount, Integer subscribeChargingCapacity) { this.poleId = poleId; this.poleMac = poleMac; this.orderId = -1L; this.c3Mac = c3Mac; this.outTradeNo = OrderUtils.generateOutTradeNo(); this.orderType = orderType.getCode(); this.totalAmount = totalAmount; this.receiptAmount = 0d; this.refundAmount = 0d; this.aliBuyerLogonId = ""; this.subscribeChargingCapacity = subscribeChargingCapacity; this.actualChargingCapacity = 0d; this.createTimestamp = new Date().getTime(); this.payTimestamp = 0L; this.startChargingTimestamp = 0L; this.stopChargingTimestamp = 0L; this.refundTimestamp = 0L; this.refundMsg = ""; this.orderStatus = OrderStatus.NO_PAY.getStatus(); return this; } }