From d7073ba542fa70a4882c44a7484753deaa4fd7e5 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 05 八月 2025 14:00:21 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java | 1085 +++++++++++++++++++++++ UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest_2.java | 1 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 6 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java | 5 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java | 48 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrdersUtil.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 34 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java | 9 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java | 16 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest.java | 1 /dev/null | 1102 ----------------------- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/ApiUtil.java | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/protocol/AppPayReqData.java | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Signature.java | 9 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java | 95 +- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 55 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/XMLParser.java | 18 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 4 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java | 33 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianUtil.java | 93 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/util/Util.java | 103 ++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/ZLUserInfo.java | 37 23 files changed, 1,575 insertions(+), 1,187 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java index f3e772c..6882b6a 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java @@ -390,6 +390,15 @@ @ApiModelProperty("分享链接") private String shareLink; + + @ApiModelProperty("证联客户号") + private String custId; + + @ApiModelProperty("是否已开通支付账户(0:否,1:是)") + private Integer accOpenFlag; + + @ApiModelProperty("是否已同步到中台(0:否,1:是)") + private Integer isSynchronous; public String getShareImg() { return shareImg; @@ -1009,6 +1018,30 @@ this.entercode = entercode; } + public String getCustId() { + return custId; + } + + public void setCustId(String custId) { + this.custId = custId; + } + + public Integer getAccOpenFlag() { + return accOpenFlag; + } + + public void setAccOpenFlag(Integer accOpenFlag) { + this.accOpenFlag = accOpenFlag; + } + + public Integer getIsSynchronous() { + return isSynchronous; + } + + public void setIsSynchronous(Integer isSynchronous) { + this.isSynchronous = isSynchronous; + } + @Override public String toString() { return "Driver{" + diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java index 83b5f5e..0aceb7e 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java @@ -21,8 +21,13 @@ import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.AddAccountInfoRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; +import com.stylefeng.guns.modular.system.util.zhenglian.ZhengLianUtil; +import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; +import com.stylefeng.guns.modular.system.util.zhenglian.model.ZLUserInfo; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -119,6 +124,35 @@ */ @Override public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception { + Driver driver = driverService.selectById(uid); + //获取证联数据 + if(null == driver.getCustId() || 0 == driver.getAccOpenFlag()){ + TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo(); + tradeTerminalInfo.setIp("127.0.0.1"); + tradeTerminalInfo.setTerminal("1"); + tradeTerminalInfo.setMac(""); + ZLUserInfo userInfo = ZhengLianUtil.getUserInfo(driver.getEmpId().toString(), tradeTerminalInfo); + if(null != userInfo){ + driver.setCustId(userInfo.getCustId()); + driver.setAccOpenFlag(userInfo.getAccOpenFlag()); + driverService.updateById(driver); + } + } + //同步到中台 + if(null != driver.getAccOpenFlag() && 1 == driver.getAccOpenFlag() && 0 == driver.getIsSynchronous()){ + AddAccountInfoRequest request = new AddAccountInfoRequest(); + request.setCustId(driver.getCustId()); + request.setAccountNo(driver.getEmpId().toString()); + request.setAccountName(driver.getName()); + request.setMobile(driver.getPhone()); + Integer status = EmployeeUtil.addAccountInfo(request); + if(0 == status){ + driver.setIsSynchronous(1); + driverService.updateById(driver); + } + } + + Integer page = pageNum; pageNum = (pageNum - 1) * size; List<Map<String, Object>> datas = new ArrayList<>(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java index 1402758..7cf16e1 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java @@ -212,6 +212,11 @@ * @return 状态 0 成功 其他失败 */ public static Integer addAccountInfo(AddAccountInfoRequest request){ + request.setPartnerId("522700"); + request.setIndustryCode("100"); + request.setPayModeId("501101"); + request.setAccessMode("APP"); + //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/addAccountInfo"; //私钥文件 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianUtil.java index b6d723e..7789cd7 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianUtil.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianUtil.java @@ -1,7 +1,15 @@ package com.stylefeng.guns.modular.system.util.zhenglian; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.stylefeng.guns.modular.system.util.SpringContextsUtil; +import com.stylefeng.guns.modular.system.util.UUIDUtil; +import com.stylefeng.guns.modular.system.util.zhenglian.model.MessageBody; +import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; +import com.stylefeng.guns.modular.system.util.zhenglian.model.ZLUserInfo; +import com.zlpay.assist.encrypt.sm4.SM4Util; import com.zlpay.assist.sign.sm2.SM2Cert; +import com.zlpay.assist.sign.sm2.SM2Util; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.RandomStringUtils; @@ -9,7 +17,11 @@ import java.io.FileInputStream; import java.io.IOException; import java.security.cert.X509Certificate; +import java.text.SimpleDateFormat; import java.util.Base64; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; /** * @author zhibing.pu @@ -20,6 +32,87 @@ private static ZhengLianConfig zhengLianConfig = SpringContextsUtil.getBean(ZhengLianConfig.class).getZhengLianConfig(); + + + + + /** + * 获取用户详情 + * @param appUserId + * @param tradeTerminalInfo + * @return + * @throws Exception + */ + public static ZLUserInfo getUserInfo(String appUserId, TradeTerminalInfo tradeTerminalInfo) throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + Map<String,String> headerMap = new HashMap<String,String>(); + MessageBody body = new MessageBody(); + headerMap.put("msgId", UUIDUtil.getRandomCode()); + headerMap.put("merchNo", "B00000871"); + headerMap.put("txCode", "ZLPAY.ACC.T0009"); + headerMap.put("version", "1.0.1"); + headerMap.put("signa", "1"); + headerMap.put("signNo", zhengLianConfig.getSignNo()); + headerMap.put("encrp", "1"); + headerMap.put("encrpNo", zhengLianConfig.getEncrpNo()); + headerMap.put("timestamp", sdf.format(new Date())); + + Map<String, Object> map = new HashMap<>(); + map.put("appId", zhengLianConfig.getAppid()); + map.put("appUserId", appUserId); + map.put("tradeTerminalInfo", tradeTerminalInfo); + String reqBO = JSON.toJSONString(map); + // 生成对称加密秘钥 + String key = ZhengLianUtil.generateKey(16); + // 加密数据 + String jsonData = SM4Util.sm4EcbEncrypt(key, reqBO, "NoPadding"); + //加密对称加密的秘钥 + // 获取公钥 + String publicKey = ZhengLianUtil.getPublicKey(); + String secrtKey = SM2Util.encrypt(publicKey, key); + + // 将密文放入body + body.setData(jsonData); + body.setSign(ZhengLianUtil.sign(jsonData)); + body.setSecret(secrtKey); + String result = ZLHttpClientUtil.doPost(zhengLianConfig.getUrl(), headerMap, JSON.toJSONString(body)); + + System.out.println("应答内容:"+ result); + MessageBody respBody = JSON.parseObject(result,MessageBody.class); + // 验签 + boolean checkResult = SM2Util.verify(publicKey, zhengLianConfig.getEncrpNo(), respBody.getSign(), respBody.getData()); + System.out.println("验签结果:" + checkResult); + // 获取私钥 + String privateKey = ZhengLianUtil.getPrivateKey(); + // 解密对称秘钥 + String k = SM2Util.decrypt(privateKey, respBody.getSecret()); + System.out.println("对称秘钥:" + k); + // 解密业务报文 + String backData = SM4Util.sm4EcbDecrypt(k, respBody.getData()); + System.out.println("返回业务报文:" + backData); + JSONObject jsonObject = JSON.parseObject(backData); + String sysRtnCode = jsonObject.getString("sysRtnCode"); + if(!"000000".equals(sysRtnCode)){ + log.error("查询用户信息失败!{}", jsonObject.getString("sysRtnMsg")); + throw new Exception(jsonObject.getString("sysRtnMsg")); + } + JSONObject bizData = jsonObject.getJSONObject("bizData"); + String resCode = bizData.getString("resCode"); + if(!"S010000".equals(resCode)){ + log.error("查询用户信息失败!{}", bizData.getString("resMsg")); + throw new Exception(jsonObject.getString("resMsg")); + } + JSONObject resData = bizData.getJSONObject("resData"); + ZLUserInfo zlUserInfo = resData.toJavaObject(ZLUserInfo.class); + return zlUserInfo; + } + + + + + + + /** * @Description: 从公钥证书获取公钥串 * @return diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/ZLUserInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/ZLUserInfo.java new file mode 100644 index 0000000..b17f4a4 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/ZLUserInfo.java @@ -0,0 +1,37 @@ +package com.stylefeng.guns.modular.system.util.zhenglian.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/8/5 10:10 + */ +@Data +public class ZLUserInfo { + /** + * appid + */ + private String appId; + /** + * APP端用户唯一标识 + */ + private String appUserId; + /** + * 姓名 + */ + private String userName; + /** + * 证件号码 + */ + private String certNo; + /** + * 证联客户号 + */ + private String custId; + /** + * 是否已开通支付账户 + * 1:是 + * 0:否 + */ + private Integer accOpenFlag; +} diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java index 66223bd..9d80039 100644 --- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java +++ b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java @@ -1,48 +1,47 @@ -//package com.stylefeng.guns; -// -//import com.stylefeng.guns.modular.system.model.Driver; -//import com.stylefeng.guns.modular.system.service.IDriverService; -//import com.stylefeng.guns.modular.system.util.zhenglian.TokenUtil; -//import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest; -//import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.boot.test.context.SpringBootTest; -//import org.springframework.data.mongodb.core.MongoTemplate; -//import org.springframework.test.context.junit4.SpringRunner; -// -//@RunWith(SpringRunner.class) -//@SpringBootTest -//public class GunsApplicationTest { -// -// @Autowired -// private MongoTemplate mongoTemplate; -// @Autowired -// private IDriverService driverService; -// -// -// @Test -// public void test() { -// -// Driver driver = driverService.selectById(driverId); -// TokenRequest tokenRequest = new TokenRequest(); -// tokenRequest.setAppUserId(driver.getEmpId().toString()); -// tokenRequest.setUserName(driver.getName()); -// tokenRequest.setCertNo(driver.getIdCard()); -// tokenRequest.setPhone(driver.getPhone()); -// TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo(); -// tradeTerminalInfo.setIp("127.0.0.1"); -// tradeTerminalInfo.setTerminal("1"); -// tradeTerminalInfo.setMac(""); -// tokenRequest.setTradeTerminalInfo(tradeTerminalInfo); -// tokenRequest.setType(type); -// String token = null; -// try { -// token = TokenUtil.getToken(tokenRequest); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// System.err.println(token); -// } -//} +package com.stylefeng.guns; + +import com.stylefeng.guns.modular.system.model.Driver; +import com.stylefeng.guns.modular.system.service.IDriverService; +import com.stylefeng.guns.modular.system.util.zhenglian.ZhengLianUtil; +import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest; +import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; +import com.stylefeng.guns.modular.system.util.zhenglian.model.ZLUserInfo; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class GunsApplicationTest { + + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private IDriverService driverService; + + + @Test + public void test() { + + Driver driver = driverService.selectById(14); + TokenRequest tokenRequest = new TokenRequest(); + tokenRequest.setAppUserId(driver.getEmpId().toString()); + tokenRequest.setUserName(driver.getName()); + tokenRequest.setCertNo(driver.getIdCard()); + tokenRequest.setPhone(driver.getPhone()); + TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo(); + tradeTerminalInfo.setIp("127.0.0.1"); + tradeTerminalInfo.setTerminal("1"); + tradeTerminalInfo.setMac(""); + ZLUserInfo userInfo = null; + try { + userInfo = ZhengLianUtil.getUserInfo("11448158", tradeTerminalInfo); + } catch (Exception e) { + throw new RuntimeException(e); + } + System.err.println(userInfo); + } +} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/util/Util.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/util/Util.java index 761a739..115f995 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/util/Util.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/util/Util.java @@ -1,12 +1,14 @@ package com.stylefeng.guns.modular.account.util; +import com.thoughtworks.xstream.XStream; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; import javax.servlet.http.HttpServletRequest; -import java.io.UnsupportedEncodingException; +import java.io.*; +import java.lang.reflect.Field; import java.util.*; /** @@ -118,5 +120,104 @@ throw new RuntimeException("签名过程中出现错误"); } } + + /** + * 通过反射的方式遍历对象的属性和属性值,方便调试 + * + * @param o 要遍历的对象 + * @throws Exception + */ + public static void reflect(Object o) throws Exception { + Class<? extends Object> cls = o.getClass(); + Field[] fields = cls.getDeclaredFields(); + for (int i = 0; i < fields.length; i++) { + Field f = fields[i]; + f.setAccessible(true); + Util.log(f.getName() + " -> " + f.get(o)); + } + } + + public static byte[] readInput(InputStream in) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int len = 0; + byte[] buffer = new byte[1024]; + while ((len = in.read(buffer)) > 0) { + out.write(buffer, 0, len); + } + out.close(); + in.close(); + return out.toByteArray(); + } + + public static String inputStreamToString(InputStream is) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int i; + while ((i = is.read()) != -1) { + baos.write(i); + } + return baos.toString(); + } + + + public static InputStream getStringStream(String sInputString) { + ByteArrayInputStream tInputStringStream = null; + if (sInputString != null && !sInputString.trim().equals("")) { + try { + tInputStringStream = new ByteArrayInputStream(sInputString.getBytes("UTF-8")); + } catch (Exception e) { + e.printStackTrace(); + } + } + return tInputStringStream; + } + + public static Object getObjectFromXML(String xml, Class<?> tClass) { + //将从API返回的XML数据映射到Java对象 + XStream xStreamForResponseData = new XStream(); + xStreamForResponseData.alias("xml", tClass); + xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段 + return xStreamForResponseData.fromXML(xml); + } + + public static String getStringFromMap(Map<String, Object> map, String key, String defaultValue) { + if (key == "" || key == null) { + return defaultValue; + } + String result = (String) map.get(key); + if (result == null) { + return defaultValue; + } else { + return result; + } + } + + public static int getIntFromMap(Map<String, Object> map, String key) { + if (key == "" || key == null) { + return 0; + } + if (map.get(key) == null) { + return 0; + } + return Integer.parseInt((String) map.get(key)); + } + + /** + * 打log接口 + * @param log 要打印的log字符串 + * @return 返回log + */ + public static String log(Object log){ + System.out.println(log.toString()); + return log.toString(); + } + + /** + * 读取本地的xml数据,一般用来自测用 + * @param localPath 本地xml文件路径 + * @return 读到的xml字符串 + */ + public static String getLocalXMLString(String localPath) throws IOException { + return Util.inputStreamToString(Util.class.getResourceAsStream(localPath)); + } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java index 0a28538..b1de16d 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java @@ -3,13 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.common.constant.JwtConstants; +import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; import com.stylefeng.guns.modular.account.util.OssUploadUtil; -import com.stylefeng.guns.modular.system.model.Driver; -import com.stylefeng.guns.modular.system.model.TDriverPromotionActivity; -import com.stylefeng.guns.modular.system.model.UserInfo; -import com.stylefeng.guns.modular.system.model.UserWithdrawal; +import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.WeChatUtil; @@ -60,6 +58,8 @@ @Autowired private HttpServletRequest request; + + private String salt = "&a.s"; @Autowired private TDriverPromotionActivityService driverPromotionActivityService; @@ -860,4 +860,44 @@ return ResultUtil.runErr(); } } + + + /** + * 代驾系统添加用户接口 + * @param phone + * @return + */ + @ResponseBody + @GetMapping("/base/user/addAppUser") + public String addAppUser(String phone, String code, String areaCode){ + try { + return userInfoService.addAppUser(phone, code, areaCode); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + /** + * 代驾系统验证短信验证码 + * @param phone + * @param code + * @param request + * @return + */ + @ResponseBody + @PostMapping("/base/user/checkCaptcha") + public Boolean checkCaptcha1(String phone, String code, HttpServletRequest request){ + try { + String device = request.getHeader("device"); + if(ToolUtil.isEmpty(device)){ + return false; + } + boolean b = userInfoService.checkCaptcha(phone, code); + return b; + }catch (Exception e){ + e.printStackTrace(); + return false; + } + } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java index da1f191..89529bb 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java @@ -10,14 +10,14 @@ import com.stylefeng.guns.modular.shunfeng.task.base.QuartzManager; import com.stylefeng.guns.modular.shunfeng.task.base.TimeJobType; import com.stylefeng.guns.modular.shunfeng.task.jobs.CourseExamineRide; -import com.stylefeng.guns.modular.shunfeng.util.DateUtil; -import com.stylefeng.guns.modular.shunfeng.util.OrderUtil; +import com.stylefeng.guns.modular.shunfeng.util.OrdersUtil; import com.stylefeng.guns.modular.shunfeng.util.SensitiveWordUtil; import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper; import com.stylefeng.guns.modular.system.model.SensitiveWords; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.service.ISystemNoticeService; import com.stylefeng.guns.modular.system.service.IUserInfoService; +import com.stylefeng.guns.modular.system.util.DateUtil; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; import com.stylefeng.guns.modular.system.util.PushUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; @@ -393,7 +393,7 @@ } } OrderRide orderRide=new OrderRide(); - orderRide.setOrderNum(OrderUtil.getOrderNoForPrefix("ride")); + orderRide.setOrderNum(OrdersUtil.getOrderNoForPrefix("ride")); orderRide.setPlatformMoney(platformMoney); orderRide.setAddTime(new Date()); orderRide.setUserId(userId); @@ -484,7 +484,7 @@ } /*1一个司机可以创建多个行程*/ OrderTravel orderTravel=new OrderTravel(); - orderTravel.setOrderNum(OrderUtil.getOrderNoForPrefix("travel")); + orderTravel.setOrderNum(OrdersUtil.getOrderNoForPrefix("travel")); orderTravel.setAddTime(new Date()); orderTravel.setDriverId(driverId); orderTravel.setStartTime(DateUtil.getDate(startTime,"yyyy-MM-dd HH:mm")); @@ -775,7 +775,7 @@ } if(orderRide.getTuiMoney()>0){ Financial financial= financialService.selectOne(new EntityWrapper<Financial>().eq("orderNum",orderRide.getOrderNum())); - String finNum=OrderUtil.getOrderNoForPrefix("fin"); + String finNum=OrdersUtil.getOrderNoForPrefix("fin"); //todo 退款金额大于0需要退款 if(orderRide.getPayType()==1){//余额 UserInfo userInfo=userInfoService.selectById(orderRide.getUserId()); @@ -848,7 +848,7 @@ f.setMoney(orderTravel.getServiceMoney()); f.setPwType(9);//9=顺风车取消服务费 f.setOrderNum(orderTravel.getOrderNum()); - String finNum=OrderUtil.getOrderNoForPrefix("fin"); + String finNum=OrdersUtil.getOrderNoForPrefix("fin"); f.setLsType(finNum); f.setUserId(driverRide.getUserId()); f.setOrderType(4); @@ -947,7 +947,7 @@ f.setPayType("1");//余额 f.setMoney(orderRide.getMoney()-orderRide.getPlatformMoney());//司机提成 f.setPwType(11);//顺风车司机提成 - f.setLsType(OrderUtil.getOrderNoForPrefix("finan")); + f.setLsType(OrdersUtil.getOrderNoForPrefix("finan")); f.setUserId(userInfo.getId()); f.setOrderType(4); f.setLx(1); @@ -969,7 +969,7 @@ f.setPayType("1");//余额 f.setMoney(money);//邀请金额 f.setPwType(10);//分享收益 - f.setLsType(OrderUtil.getOrderNoForPrefix("finan")); + f.setLsType(OrdersUtil.getOrderNoForPrefix("finan")); f.setUserId(userInfo1.getId()); f.setOrderType(4); f.setLx(1); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest.java index 51d0869..0677d21 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest.java @@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.shunfeng.tencent.common; +import com.stylefeng.guns.modular.account.util.Util; import com.stylefeng.guns.modular.shunfeng.tencent.service.IServiceRequest; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest_2.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest_2.java index dcdcfd9..10c72d3 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest_2.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/HttpsRequest_2.java @@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.shunfeng.tencent.common; +import com.stylefeng.guns.modular.account.util.Util; import com.stylefeng.guns.modular.shunfeng.tencent.service.IServiceRequest; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Signature.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Signature.java index dd12f12..11071c0 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Signature.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Signature.java @@ -1,15 +1,14 @@ package com.stylefeng.guns.modular.shunfeng.tencent.common; -import java.io.IOException; +import com.stylefeng.guns.modular.account.util.Util; +import org.xml.sax.SAXException; +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; - -import javax.xml.parsers.ParserConfigurationException; - -import org.xml.sax.SAXException; /** diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Util.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Util.java deleted file mode 100644 index de7dfa2..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/Util.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.stylefeng.guns.modular.shunfeng.tencent.common; - -import java.io.ByteArrayInputStream; - - - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.thoughtworks.xstream.XStream; - - -/** - * User: tzj - * Date: 2017/08/23 - * Time: 14:59 - */ -public class Util { - - Logger logger= LoggerFactory.getLogger(getClass()); - /** - * 通过反射的方式遍历对象的属性和属性值,方便调试 - * - * @param o 要遍历的对象 - * @throws Exception - */ - public static void reflect(Object o) throws Exception { - Class<? extends Object> cls = o.getClass(); - Field[] fields = cls.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - Field f = fields[i]; - f.setAccessible(true); - Util.log(f.getName() + " -> " + f.get(o)); - } - } - - public static byte[] readInput(InputStream in) throws IOException { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - int len = 0; - byte[] buffer = new byte[1024]; - while ((len = in.read(buffer)) > 0) { - out.write(buffer, 0, len); - } - out.close(); - in.close(); - return out.toByteArray(); - } - - public static String inputStreamToString(InputStream is) throws IOException { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - int i; - while ((i = is.read()) != -1) { - baos.write(i); - } - return baos.toString(); - } - - - public static InputStream getStringStream(String sInputString) { - ByteArrayInputStream tInputStringStream = null; - if (sInputString != null && !sInputString.trim().equals("")) { - try { - tInputStringStream = new ByteArrayInputStream(sInputString.getBytes("UTF-8")); - } catch (Exception e) { - e.printStackTrace(); - } - } - return tInputStringStream; - } - - public static Object getObjectFromXML(String xml, Class<?> tClass) { - //将从API返回的XML数据映射到Java对象 - XStream xStreamForResponseData = new XStream(); - xStreamForResponseData.alias("xml", tClass); - xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段 - return xStreamForResponseData.fromXML(xml); - } - - public static String getStringFromMap(Map<String, Object> map, String key, String defaultValue) { - if (key == "" || key == null) { - return defaultValue; - } - String result = (String) map.get(key); - if (result == null) { - return defaultValue; - } else { - return result; - } - } - - public static int getIntFromMap(Map<String, Object> map, String key) { - if (key == "" || key == null) { - return 0; - } - if (map.get(key) == null) { - return 0; - } - return Integer.parseInt((String) map.get(key)); - } - - /** - * 打log接口 - * @param log 要打印的log字符串 - * @return 返回log - */ - public static String log(Object log){ - System.out.println(log.toString()); - return log.toString(); - } - - /** - * 读取本地的xml数据,一般用来自测用 - * @param localPath 本地xml文件路径 - * @return 读到的xml字符串 - */ - public static String getLocalXMLString(String localPath) throws IOException { - return Util.inputStreamToString(Util.class.getResourceAsStream(localPath)); - } - -} - diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/XMLParser.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/XMLParser.java index 0b77eb5..bf6e26f 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/XMLParser.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/common/XMLParser.java @@ -1,20 +1,20 @@ package com.stylefeng.guns.modular.shunfeng.tencent.common; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - +import com.stylefeng.guns.modular.account.util.Util; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + public class XMLParser { public static Map<String,Object> getMapFromXML(String xmlString) throws ParserConfigurationException, IOException, SAXException { diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/protocol/AppPayReqData.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/protocol/AppPayReqData.java index 3e532b4..476ba77 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/protocol/AppPayReqData.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/tencent/protocol/AppPayReqData.java @@ -2,7 +2,7 @@ import com.stylefeng.guns.modular.shunfeng.tencent.common.RandomStringGenerator; import com.stylefeng.guns.modular.shunfeng.tencent.common.Signature; -import com.stylefeng.guns.modular.shunfeng.util.DateUtil; +import com.stylefeng.guns.modular.system.util.DateUtil; import java.lang.reflect.Field; import java.util.HashMap; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/ApiUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/ApiUtil.java index 9e72919..67d9e64 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/ApiUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/ApiUtil.java @@ -1,6 +1,8 @@ package com.stylefeng.guns.modular.shunfeng.util; +import com.stylefeng.guns.modular.system.util.DateUtil; + import java.net.URLDecoder; import java.util.ArrayList; import java.util.HashMap; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/DateUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/DateUtil.java deleted file mode 100644 index df996ed..0000000 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/DateUtil.java +++ /dev/null @@ -1,1102 +0,0 @@ -package com.stylefeng.guns.modular.shunfeng.util; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.TimeZone; - -/** - * <h3>处理时间的工具类</h3> - */ -public class DateUtil { - - private static TimeZone tz = TimeZone.getTimeZone("GMT+8"); - - // private static TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); - - public static boolean hourMinuteBetween(String nowDate, String startDate, String endDate) throws Exception{ - - SimpleDateFormat format = new SimpleDateFormat("HH:mm"); - - Date now = format.parse(nowDate); - Date start = format.parse(startDate); - Date end = format.parse(endDate); - - long nowTime = now.getTime(); - long startTime = start.getTime(); - long endTime = end.getTime(); - - return nowTime >= startTime && nowTime <= endTime; - } - - /** - * 得到系统日期 - * - * @return - */ - public static Date getDate() { - TimeZone.setDefault(tz); - return new Date(); - } - - /** - * 获取当然凌晨的时间 - * - * @return Date - */ - public static Date getZero() { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - calendar.set(Calendar.HOUR_OF_DAY, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - return calendar.getTime(); - } - - /** - * 判断日期是否在from,to之内 "yyyy-MM-dd" 格式 - * - * @param time - * 指定日期 - * @param from - * 开始日期 - * @param to - * 结束日期 - * @return true 在之间 false 不在之间 - */ - public static boolean belongCalendar(Date time, Date from, Date to) { - Calendar date = Calendar.getInstance(); - date.setTime(time); - - Calendar after = Calendar.getInstance(); - after.setTime(from); - - Calendar before = Calendar.getInstance(); - before.setTime(to); - - if ((date.after(after) && date.before(before)) || (time.compareTo(from) == 0 || time.compareTo(to) == 0)) { - return true; - } else { - return false; - } - } - - /** - * 两个时间之差 - * - * @param startTime - * @param endTime - * @param format - * @return - * @throws ParseException - */ - public static String dateDiff(String startTime, String endTime, String format) throws ParseException { - // 按照传入的格式生成一个simpledateformate对象 - SimpleDateFormat sd = new SimpleDateFormat(format); - long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数 - long nh = 1000 * 60 * 60;// 一小时的毫秒数 - long nm = 1000 * 60;// 一分钟的毫秒数 - long ns = 1000;// 一秒钟的毫秒数 - long diff; - long day = 0; - long hour = 0; - long min = 0; - long sec = 0; - // long time=0; - String strTime = ""; - // 获得两个时间的毫秒时间差异 - diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); - day = diff / nd;// 计算差多少天 - hour = diff % nd / nh + day * 24;// 计算差多少小时 - min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟 - sec = diff % nd % nh % nm / ns;// 计算差多少秒 - // 输出结果 - /* - * System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时" + - * (min - day * 24 * 60) + "分钟" + sec + "秒。"); - * System.out.println("hour=" + hour + ",min=" + min); - */ - if (day == 1) { - strTime = "昨天"; - } else if (day > 1) { - // strTime=day+"天前"; - strTime = startTime.substring(0, 10); - } else if (hour >= 1 && hour < 24) { - strTime = hour + "小时前"; - } else { - if (min == 0) { - strTime = sec + "秒钟前"; - } else { - strTime = min + "分钟前"; - } - - } - // if (str.equalsIgnoreCase("h")) { - // return hour; - // } else { - // return min; - // } - - // if (str.equalsIgnoreCase("h")) { - // return hour; - // } else { - // return min; - // } - return strTime; - } - - /** - * 得到系统Calendar日期 - * - * @return - */ - public static Calendar getCalendar() { - TimeZone.setDefault(tz); - Calendar cal = Calendar.getInstance(); - return cal; - } - - /** - * 获取当前时间 - * - * @return - */ - public static long getMillisecond() { - long millisecond = 0; - TimeZone.setDefault(tz); - Calendar cal = Calendar.getInstance(); - millisecond = cal.getTimeInMillis(); - return millisecond; - } - - /** - * 获取本月1号的时间戳 - * - * @return - */ - public static long getMillisecond_MONTH() { - long millisecond = 0; - TimeZone.setDefault(tz); - Calendar cal = Calendar.getInstance(); - cal.set(Calendar.DAY_OF_MONTH, 1); - millisecond = cal.getTimeInMillis(); - return millisecond; - } - - /** - * 获取上个月1号的时间戳 - * - * @return - */ - public static long getMillisecond_FRONTMONTH() { - long millisecond = 0; - Calendar cal = getCalendar(); - cal.set(Calendar.DAY_OF_MONTH, 1); - cal.set(Calendar.MONTH, Calendar.MONTH - 2); - millisecond = cal.getTimeInMillis(); - return millisecond; - } - - /** - * 获取当前毫秒数 - * - * @return long - */ - public static long getCurMilli() { - long millisecond = 0; - Calendar cal = Calendar.getInstance(); - millisecond = cal.getTimeInMillis(); - return millisecond; - } - - /** - * 日期转毫秒 - * - * @param date - * @return - */ - public static long getMillisecond(Date date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if (!"".equals(date)) { - newDate = sdf.format(date); - } else { - newDate = sdf.format(DateUtil.getDate()); - } - long millisecond = 0; - try { - millisecond = sdf.parse(newDate).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 日期转毫秒(加24小时,yyyy-MM-dd HH:mm:ss) - * - * @param date - * @return - */ - public static long getMillisecond_24h(Date date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if (!"".equals(date)) { - newDate = sdf.format(date); - } else { - newDate = sdf.format(DateUtil.getDate()); - } - long millisecond = 24 * 3600 * 1000; - try { - millisecond += sdf.parse(newDate).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 日期转毫秒(加N年) - * - * @param date - * @return - */ - public static long getMillisecond_year(String date, Integer year) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if ("".equals(date)) { - newDate = sdf.format(DateUtil.getDate()); - } else { - newDate = getDateTime(Long.parseLong(date)); - } - Date dt = null; - try { - dt = sdf.parse(newDate); - } catch (ParseException e) { - e.printStackTrace(); - } - Calendar rightNow = Calendar.getInstance(); - rightNow.setTime(dt); - rightNow.add(Calendar.YEAR, year); - Date dt1 = rightNow.getTime(); - return dt1.getTime(); - } - - /** - * 日期转毫秒(加N天) - * - * @param date - * 毫秒字符串 - * @return - */ - public static Date getMillisecond_day(String date, Integer day) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if ("".equals(date)) { - newDate = sdf.format(DateUtil.getDate()); - } else { - newDate = date; - } - Date dt = null; - try { - dt = sdf.parse(newDate); - } catch (ParseException e) { - e.printStackTrace(); - } - Calendar rightNow = Calendar.getInstance(); - rightNow.setTime(dt); - rightNow.add(Calendar.DATE, day); - Date dt1 = rightNow.getTime(); - Date dates = new Date(dt1.getTime()); - return dates; - } - - /** - * 日期转毫秒(加N月) - * - * @param date - * @return - */ - public static long getMillisecond_month(String date, Integer day) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if ("".equals(date)) { - newDate = sdf.format(DateUtil.getDate()); - } else { - newDate = getDateTime(Long.parseLong(date)); - } - Date dt = null; - try { - dt = sdf.parse(newDate); - } catch (ParseException e) { - e.printStackTrace(); - } - Calendar rightNow = Calendar.getInstance(); - rightNow.setTime(dt); - rightNow.add(Calendar.MONTH, day); - Date dt1 = rightNow.getTime(); - return dt1.getTime(); - } - - /** - * 日期转毫秒(加分钟) - * - * @param date - * @return - */ - public static long getMillisecond_fz(String date, Integer day) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if ("".equals(date)) { - newDate = sdf.format(DateUtil.getDate()); - } else { - newDate = getDateTime(Long.parseLong(date)); - } - Date dt = null; - try { - dt = sdf.parse(newDate); - } catch (ParseException e) { - e.printStackTrace(); - } - Calendar rightNow = Calendar.getInstance(); - rightNow.setTime(dt); - rightNow.add(Calendar.MINUTE, day); - Date dt1 = rightNow.getTime(); - return dt1.getTime(); - } - - public static Date getMillisecond_fz1(String date, Integer day) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date dt = null; - try { - dt = sdf.parse(date); - } catch (ParseException e) { - e.printStackTrace(); - } - Calendar rightNow = Calendar.getInstance(); - rightNow.setTime(dt); - rightNow.add(Calendar.MINUTE, day); - Date dt1 = rightNow.getTime(); - return dt1; - } - - /** - * 字符串日期转毫秒 - * - * @param date - * @return - */ - public static long getMillisecond_str(String date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - if ("".equals(date)) { - date = sdf.format(DateUtil.getDate()); - } - long millisecond = 0; - try { - millisecond = sdf.parse(date).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 字符串日期转毫秒 - * - * @param date - * @return - */ - public static long getMillisecond_strYmd(String date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - if ("".equals(date)) { - date = sdf.format(DateUtil.getDate()); - } - long millisecond = 0; - try { - millisecond = sdf.parse(date).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 字符串日期转Date - * - * @param string - * @return date - * @throws ParseException - */ - public static Date getStrToDate(String dateString) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date date = sdf.parse(dateString); - return date; - } - - /** - * 字符串日期转Date - * - * @param date - * @return - */ - public static Date getDate_str(String dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - sdf.setTimeZone(tz); - if ("".equals(dateStr)) { - dateStr = sdf.format(DateUtil.getDate()); - } - Date date = null; - try { - date = sdf.parse(dateStr); - } catch (ParseException e) { - e.printStackTrace(); - } - return date; - } - - /** - * 字符串日期转Date yyyy-MM-dd HH:mm - * - * @param date - * @return - */ - public static Date getDate_str2(String dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - sdf.setTimeZone(tz); - if ("".equals(dateStr)) { - dateStr = sdf.format(DateUtil.getDate()); - } - Date date = null; - try { - date = sdf.parse(dateStr); - } catch (ParseException e) { - e.printStackTrace(); - } - return date; - } - - /** - * 字符串日期转Date yyyy-MM-dd HH:mm:ss - * - * @param date - * @return - */ - public static Date getDate_str3(String dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - sdf.setTimeZone(tz); - if ("".equals(dateStr)) { - dateStr = sdf.format(DateUtil.getDate()); - } - Date date = null; - try { - date = sdf.parse(dateStr); - } catch (ParseException e) { - e.printStackTrace(); - } - return date; - } - - /** - * 字符串日期转Date - * - * @param date - * @return - */ - public static Date getDate_strYMd(Long dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - if (dateStr == null) { - dateStr = DateUtil.getCurMilli(); - } - Date date = null; - try { - date = sdf.parse(sdf.format(new Date(dateStr))); - } catch (ParseException e) { - e.printStackTrace(); - } - return date; - } - - /** - * 毫秒转Date - * - * @param date - * @return - */ - public static Date getDate_strYMdHms(Long dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - if (dateStr == null) { - dateStr = DateUtil.getCurMilli(); - } - Date date = null; - try { - date = sdf.parse(sdf.format(new Date(dateStr))); - } catch (ParseException e) { - e.printStackTrace(); - } - return date; - } - - /** - * 字符串日期转Date - * - * @param date - * @return - */ - public static Date getDate_strYMdHm(Long dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - if (dateStr == null) { - dateStr = DateUtil.getCurMilli(); - } - Date date = null; - try { - date = sdf.parse(sdf.format(new Date(dateStr))); - } catch (ParseException e) { - e.printStackTrace(); - } - return date; - } - - /** - * 字符串日期转毫秒 - * - * @param date - * @return - */ - public static long getMillisecond_strDmy(String date) { - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - if ("".equals(date)) { - date = sdf.format(DateUtil.getDate()); - } - long millisecond = 0; - try { - millisecond = sdf.parse(date).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 字符串日期转毫秒转毫秒(加24小时) - * - * @param date - * @return - */ - public static long getMillisecond_str_24h(String date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - if ("".equals(date)) { - date = sdf.format(DateUtil.getDate()); - } - long millisecond = 24 * 3600 * 1000; - try { - millisecond += sdf.parse(date).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 字符串日期转毫秒转毫秒(加24小时) - * - * @param date - * @return - */ - public static long getMillisecond_strYmd_24h(String date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - if ("".equals(date)) { - date = sdf.format(DateUtil.getDate()); - } - long millisecond = 24 * 3600 * 1000; - try { - millisecond += sdf.parse(date).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - return millisecond; - } - - /** - * 毫秒转日期 - * - * @param millisecond - * @return - */ - public static String getDate(long millisecond) { - if (millisecond == 0) { - millisecond = getCurMilli(); - } - SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = getCalendar(); - calendar.setTimeInMillis(millisecond); - return dateformat.format(calendar.getTime()); - } - - /** - * 转换为指定格式的时间 - * - * @return Date - */ - public static Date getDate(String date, String pattern) { - SimpleDateFormat format = new SimpleDateFormat(pattern); - Date d = null; - try { - d = format.parse(date); - } catch (ParseException ex) { - return null; - } - return d; - } - - /** - * 毫秒转日期 - * - * @param millisecond - * @return - */ - public static String getDate_HH(long millisecond) { - if (millisecond == 0) { - millisecond = getCurMilli(); - } - SimpleDateFormat dateformat = new SimpleDateFormat("HH"); - Calendar calendar = getCalendar(); - calendar.setTimeInMillis(millisecond); - return dateformat.format(calendar.getTime()); - } - - /** - * 毫秒转日期时间 - * - * @param millisecond - * @return - */ - public static String getDateTime(long millisecond) { - if (millisecond == 0) { - millisecond = getCurMilli(); - } - SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Calendar calendar = getCalendar(); - calendar.setTimeInMillis(millisecond); - return dateformat.format(calendar.getTime()); - } - - /** - * 毫秒转年月日 - * - * @param millisecond - * @return - */ - public static String getDateYMD(long millisecond) { - if (millisecond == 0) { - millisecond = getCurMilli(); - } - SimpleDateFormat dateformat = new SimpleDateFormat("yyyy年MM月dd日"); - Calendar calendar = getCalendar(); - calendar.setTimeInMillis(millisecond); - return dateformat.format(calendar.getTime()); - } - - /** - * 两日期相差毫秒 - * - * @param startDate - * @param endDate - * @return - */ - public static long getMinusMillisecond(Date startDate, Date endDate) { - long startMillisecond = getMillisecond(startDate); - long endMillisecond = getMillisecond(endDate); - long minusMillisecond = endMillisecond - startMillisecond; - if (minusMillisecond < 0) { - minusMillisecond = 0; - } - return minusMillisecond; - } - - /** - * 两日期相差天数 - * - * @param startDate - * @param endDate - * @return - */ - public static long getMinusDay(Date startDate, Date endDate) { - long startMillisecond = getMillisecond(startDate); - long endMillisecond = getMillisecond(endDate); - long minusMillisecond = endMillisecond - startMillisecond; - long day = 0; - if (minusMillisecond < 0) { - day = 0; - } else { - day = minusMillisecond / (24 * 3600 * 1000); - } - return day; - } - - /** - * 前N天毫秒 - * - * @param day - * @return - */ - public static long getRetreatDay_millisecond(int day) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - long nowMillisecond = 0; - try { - nowMillisecond = sdf.parse(sdf.format(DateUtil.getDate())).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - nowMillisecond += 24 * 3600 * 1000; - long retreatMillisecond = 24 * 3600 * 1000 * day; - return nowMillisecond - retreatMillisecond; - } - - /** - * 前N天时间 - * - * @param day - * @return - */ - public static String getRetreatDay_millisecond1(int day) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - long nowMillisecond = 0; - try { - nowMillisecond = sdf.parse(sdf.format(DateUtil.getDate())).getTime(); - } catch (ParseException e) { - e.printStackTrace(); - } - nowMillisecond += 24 * 3600 * 1000; - long retreatMillisecond = 24 * 3600 * 1000 * day; - long s = nowMillisecond - retreatMillisecond; - Date date = new Date(s); - String res = sdf.format(date); - return res; - } - - // 当前时间前30天 - public static String getRetreatDay_millisecond2() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date today = new Date(); - String endDate = sdf.format(today);// 当前日期 - // 获取三十天前日期 - Calendar theCa = Calendar.getInstance(); - theCa.setTime(today); - theCa.add(theCa.DATE, -30);// 最后一个数字30可改,30天的意思 - Date start = theCa.getTime(); - String startDate = sdf.format(start);// 三十天之前日期 - return startDate; - } - - /** - * 日期转秒 - * - * @param date - * @return - */ - public static long getDecond(Date date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String newDate = ""; - if (!"".equals(date)) { - newDate = sdf.format(date); - } else { - newDate = sdf.format(DateUtil.getDate()); - } - long second = 0; - try { - second = sdf.parse(newDate).getTime() / 1000; - } catch (ParseException e) { - e.printStackTrace(); - } - return second; - } - - /** - * 日期转String - * - * @param date - * @return - * @throws ParseException - */ - public static String getDateToString(Date date) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String newDate = sdf.format(date); - long millisecond = sdf.parse(newDate).getTime(); - Calendar calendar = getCalendar(); - calendar.setTimeInMillis(millisecond); - return sdf.format(calendar.getTime()); - } - - public static String getDateToString(Date date,String pattern) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat(pattern); - String newDate = sdf.format(date); - long millisecond = sdf.parse(newDate).getTime(); - Calendar calendar = getCalendar(); - calendar.setTimeInMillis(millisecond); - return sdf.format(calendar.getTime()); - } - - /** - * 毫秒转星期XX - * - * @param millisecond - * @return - */ - public static int getDate_week(Long millisecond) { - if (millisecond == null) { - millisecond = getCurMilli(); - } - Calendar cal = getCalendar(); - cal.setTimeInMillis(millisecond); - return cal.get(Calendar.DAY_OF_WEEK) - 1; - - } - - /** - * 获取当前系统时间已yyyy-MM-dd HH:mm:ss格式化的字符串 - */ - public static String nowStr() { - - SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); - return dateFormat.format(getDate()); - } - - /** - * - * 获取之前几天日期 - * - * @param pattern - * yyyy-MM-dd(默认) - * @param few - * 之前几天 - */ - public static String beforeFewDayStr(String pattern, Integer few) { - - if (pattern == null || "".equals(pattern)) { - pattern = "yyyy-MM-dd"; - } - Calendar c = getCalendar(); - c.add(Calendar.DATE, -few); - return new SimpleDateFormat(pattern).format(c.getTime()); - } - - - /** - * 得到几天后的时间 - * - * @param d - * @param day - * @return - */ - public static Date getDateAfter(Date d, int day) { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Calendar now = Calendar.getInstance(); - now.setTime(d); - now.set(Calendar.DATE, now.get(Calendar.DATE) - day);//+后 -前 - return now.getTime(); - } - - - /** - * 获取今天日期 - * - * @param pattern - * yyyy-MM-dd(默认) - */ - public static String todayStr(String pattern) { - - if (pattern == null || "".equals(pattern)) { - pattern = "yyyy-MM-dd"; - } - return new SimpleDateFormat(pattern).format(getDate()); - } - - /** - * 获取当前系统时间戳字符串 - */ - public static String nowDateLongStr() { - - return getDate().getTime() + ""; - } - - /** - * 获取当前系统时间 - * - * @return - */ - public static Date now() { - - return getDate(); - } - - /*public static void main(String[] args) throws ParseException { - // 打印测试日期包含 - Date time1 = getDate_str("2017-3-11"); - Date time2 = getDate_str("2017-3-15"); - Date time3 = getDate_str("2017-3-17"); - Date time4 = getDate_str("2017-3-12"); - Date time5 = getDate_str("2017-3-16"); - Date from = getDate_str("2017-3-12"); - Date to = getDate_str("2017-3-16"); - System.out.println(belongCalendar(time1, from, to)); - System.out.println(belongCalendar(time2, from, to)); - System.out.println(belongCalendar(time3, from, to)); - System.out.println(belongCalendar(time4, from, to)); - System.out.println(belongCalendar(time5, from, to)); - System.out.println(nowStr()); - - } -*/ - /** - * 把日期往后增加一天. 正数往后推,负数往前移动 - * - * @param day - * @return - */ - public static String getString(int day) { - Date date = new Date();// 取时间 - Calendar calendar = new GregorianCalendar(); - calendar.setTime(date); - calendar.add(calendar.DATE, day);// 把日期往后增加一天.整数往后推,负数往前移动 - date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - String dateString = formatter.format(date); - return dateString; - } - - /** - * 根据当前日期获得所在周的日期区间(周一和周日日期) - * - * @return - * @author zhaoxuepu - * @throws ParseException - */ - public static String getTimeInterval(Date date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Calendar cal = Calendar.getInstance(); - cal.setTime(date); - // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 - int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 - if (1 == dayWeek) { - cal.add(Calendar.DAY_OF_MONTH, -1); - } - // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期 - // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 - cal.setFirstDayOfWeek(Calendar.MONDAY); - // 获得当前日期是一个星期的第几天 - int day = cal.get(Calendar.DAY_OF_WEEK); - // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 - cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); - String imptimeBegin = sdf.format(cal.getTime()); - // System.out.println("所在周星期一的日期:" + imptimeBegin); - cal.add(Calendar.DATE, 6); - String imptimeEnd = sdf.format(cal.getTime()); - // System.out.println("所在周星期日的日期:" + imptimeEnd); - return imptimeBegin + "," + imptimeEnd; - } - - /** - * 根据当前日期获得上周的日期区间(上周周一和周日日期) - * - * @return - * @author zhaoxuepu - */ - public static String getLastTimeInterval() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar1 = Calendar.getInstance(); - Calendar calendar2 = Calendar.getInstance(); - int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1; - int offset1 = 1 - dayOfWeek; - int offset2 = 7 - dayOfWeek; - calendar1.add(Calendar.DATE, offset1 - 7); - calendar2.add(Calendar.DATE, offset2 - 7); - // System.out.println(sdf.format(calendar1.getTime()));// last Monday - String lastBeginDate = sdf.format(calendar1.getTime()); - // System.out.println(sdf.format(calendar2.getTime()));// last Sunday - String lastEndDate = sdf.format(calendar2.getTime()); - return lastBeginDate + "," + lastEndDate; - } - - public static String DateYUE() { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Calendar c = Calendar.getInstance(); - c.add(Calendar.MONTH, 0); - c.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天 - String first = format.format(c.getTime()); - - // 获取当前月最后一天 - Calendar ca = Calendar.getInstance(); - ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); - String last = format.format(ca.getTime()); - return first + "," + last; - } - - public static String getBeforeFirstMonthdate() { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = Calendar.getInstance(); - Calendar calendar1 = Calendar.getInstance(); - calendar.add(Calendar.MONTH, -1); - calendar.set(Calendar.DAY_OF_MONTH, 1); - - int month = calendar1.get(Calendar.MONTH); - calendar1.set(Calendar.MONTH, month - 1); - calendar1.set(Calendar.DAY_OF_MONTH, calendar1.getActualMaximum(Calendar.DAY_OF_MONTH)); - String str = format.format(calendar.getTime()); - String str1 = format.format(calendar1.getTime()); - - return str + "," + str1; - } - - /** - * 获取某年第一天和最后一天日期 - * - * @param year - * 年份 - * @return Date - */ - - public static String getYearFirst(int year) { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = Calendar.getInstance(); - calendar.clear(); - calendar.set(Calendar.YEAR, year); - - Calendar calendar1 = Calendar.getInstance(); - calendar1.clear(); - calendar1.set(Calendar.YEAR, year); - calendar1.roll(Calendar.DAY_OF_YEAR, -1); - - String str = format.format(calendar.getTime()); - String str1 = format.format(calendar1.getTime()); - - return str + "," + str1; - } - - public static Date addDate(Date date,Integer day) throws ParseException { - long time = date.getTime(); // 得到指定日期的毫秒数 - day = day*24*60*60*1000; // 要加上的天数转换成毫秒数 - time+=day; // 相加得到新的毫秒数 - return new Date(time); // 将毫秒数转换成日期 - } - - // 获取一天开始和结束 - public static String getDay() { - Date dBefore = new Date(); - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式 - String defaultStartDate = sdf.format(dBefore); //格式化前一天 - defaultStartDate = defaultStartDate+" 00:00:00"; - String defaultEndDate = defaultStartDate.substring(0,10)+" 23:59:59"; - - return defaultStartDate + "," + defaultEndDate; - } - - - - public static void main(String[] args){ - System.out.println(DateUtil.getDate("2020-05-28", "yyyy-MM-dd").getTime()); - System.out.println(new Date().getTime()); - } - -} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrdersUtil.java similarity index 98% rename from UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrderUtil.java rename to UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrdersUtil.java index cf8f43a..2167fbb 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrderUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/util/OrdersUtil.java @@ -9,7 +9,7 @@ * @createDate 2016年5月27日 * @version 1.0 */ -public class OrderUtil { +public class OrdersUtil { /* 订单号 */ private static long orderNum = 0L; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java index 96bf060..c6ac200 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java @@ -236,6 +236,11 @@ ResultUtil reissueCoupon() throws Exception; ResultUtil<LoginWarpper> wxLoginIsBind(String jscode); - - + + /** + * 代驾系统添加用户接口 + * @param phone + * @return + */ + String addAppUser(String phone, String code, String areaCode) throws Exception; } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java index 42947b9..cd188bb 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java @@ -1633,4 +1633,59 @@ } return ResultUtil.success(loginWarpper); } + + + @Override + public String addAppUser(String phone, String code, String areaCode) throws Exception { + UserInfo userInfo = userInfoMapper.queryByPhone(phone); + String nickName = null; + if (null == userInfo) { + nickName = this.getDefaultName(); + } else { + nickName = userInfo.getNickName(); + } + //调中台接口查询用户 + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; + if (null == infoByPhone || infoByPhone.isEmpty()) { + RegisterViaMobileRequest request = new RegisterViaMobileRequest(); + request.setMobile(phone); + request.setEncryptType("aesbase64"); + request.setPassword(AESUtils.encryptBase64("123456")); + request.setNickname(nickName); + request.setVerify_code(code); + request.setVerify_code_type("0"); + RegisterViaMobile register = UserUtil.registerViaMobile(request); + if (!"0".equals(register.getStatus())) { + return null; + } + onconUUID = register.getOnconUUID(); + } + + if (null == userInfo) { + userInfo = new UserInfo(); + userInfo.setPhone(phone); + userInfo.setPassWord(ShiroKit.md5("", salt)); + userInfo.setNickName(nickName); + userInfo.setIsAuth(1); + userInfo.setConsumption(0D); + userInfo.setBalance(0D); + userInfo.setState(1); + if(null != onconUUID){ + userInfo.setOnconUUID(onconUUID); + } + + //用户所属企业 + if(null != areaCode){ + Company query = companyCityService.query(areaCode); + userInfo.setCompanyId(null != query ? query.getId() : 1); + userInfo.setRegistAreaCode(areaCode); + }else { + userInfo.setCompanyId(1); + } + + this.insert(userInfo); + } + return userInfo.getId().toString(); + } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java index 9519160..e15d5a7 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java @@ -12,7 +12,1092 @@ */ @Component public class DateUtil { + private static TimeZone tz = TimeZone.getTimeZone("GMT+8"); + + // private static TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); + + public static boolean hourMinuteBetween(String nowDate, String startDate, String endDate) throws Exception{ + + SimpleDateFormat format = new SimpleDateFormat("HH:mm"); + + Date now = format.parse(nowDate); + Date start = format.parse(startDate); + Date end = format.parse(endDate); + + long nowTime = now.getTime(); + long startTime = start.getTime(); + long endTime = end.getTime(); + + return nowTime >= startTime && nowTime <= endTime; + } + + /** + * 得到系统日期 + * + * @return + */ + public static Date getDate() { + TimeZone.setDefault(tz); + return new Date(); + } + + /** + * 获取当然凌晨的时间 + * + * @return Date + */ + public static Date getZero() { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); + } + + /** + * 判断日期是否在from,to之内 "yyyy-MM-dd" 格式 + * + * @param time + * 指定日期 + * @param from + * 开始日期 + * @param to + * 结束日期 + * @return true 在之间 false 不在之间 + */ + public static boolean belongCalendar(Date time, Date from, Date to) { + Calendar date = Calendar.getInstance(); + date.setTime(time); + + Calendar after = Calendar.getInstance(); + after.setTime(from); + + Calendar before = Calendar.getInstance(); + before.setTime(to); + + if ((date.after(after) && date.before(before)) || (time.compareTo(from) == 0 || time.compareTo(to) == 0)) { + return true; + } else { + return false; + } + } + + /** + * 两个时间之差 + * + * @param startTime + * @param endTime + * @param format + * @return + * @throws ParseException + */ + public static String dateDiff(String startTime, String endTime, String format) throws ParseException { + // 按照传入的格式生成一个simpledateformate对象 + SimpleDateFormat sd = new SimpleDateFormat(format); + long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数 + long nh = 1000 * 60 * 60;// 一小时的毫秒数 + long nm = 1000 * 60;// 一分钟的毫秒数 + long ns = 1000;// 一秒钟的毫秒数 + long diff; + long day = 0; + long hour = 0; + long min = 0; + long sec = 0; + // long time=0; + String strTime = ""; + // 获得两个时间的毫秒时间差异 + diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); + day = diff / nd;// 计算差多少天 + hour = diff % nd / nh + day * 24;// 计算差多少小时 + min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟 + sec = diff % nd % nh % nm / ns;// 计算差多少秒 + // 输出结果 + /* + * System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时" + + * (min - day * 24 * 60) + "分钟" + sec + "秒。"); + * System.out.println("hour=" + hour + ",min=" + min); + */ + if (day == 1) { + strTime = "昨天"; + } else if (day > 1) { + // strTime=day+"天前"; + strTime = startTime.substring(0, 10); + } else if (hour >= 1 && hour < 24) { + strTime = hour + "小时前"; + } else { + if (min == 0) { + strTime = sec + "秒钟前"; + } else { + strTime = min + "分钟前"; + } + + } + // if (str.equalsIgnoreCase("h")) { + // return hour; + // } else { + // return min; + // } + + // if (str.equalsIgnoreCase("h")) { + // return hour; + // } else { + // return min; + // } + return strTime; + } + + /** + * 得到系统Calendar日期 + * + * @return + */ + public static Calendar getCalendar() { + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + return cal; + } + + /** + * 获取当前时间 + * + * @return + */ + public static long getMillisecond() { + long millisecond = 0; + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 获取本月1号的时间戳 + * + * @return + */ + public static long getMillisecond_MONTH() { + long millisecond = 0; + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_MONTH, 1); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 获取上个月1号的时间戳 + * + * @return + */ + public static long getMillisecond_FRONTMONTH() { + long millisecond = 0; + Calendar cal = getCalendar(); + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.MONTH, Calendar.MONTH - 2); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 获取当前毫秒数 + * + * @return long + */ + public static long getCurMilli() { + long millisecond = 0; + Calendar cal = Calendar.getInstance(); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if (!"".equals(date)) { + newDate = sdf.format(date); + } else { + newDate = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(newDate).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 日期转毫秒(加24小时,yyyy-MM-dd HH:mm:ss) + * + * @param date + * @return + */ + public static long getMillisecond_24h(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if (!"".equals(date)) { + newDate = sdf.format(date); + } else { + newDate = sdf.format(DateUtil.getDate()); + } + long millisecond = 24 * 3600 * 1000; + try { + millisecond += sdf.parse(newDate).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 日期转毫秒(加N年) + * + * @param date + * @return + */ + public static long getMillisecond_year(String date, Integer year) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.YEAR, year); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + /** + * 日期转毫秒(加N天) + * + * @param date + * 毫秒字符串 + * @return + */ + public static Date getMillisecond_day(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = date; + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.DATE, day); + Date dt1 = rightNow.getTime(); + Date dates = new Date(dt1.getTime()); + return dates; + } + + /** + * 日期转毫秒(加N月) + * + * @param date + * @return + */ + public static long getMillisecond_month(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MONTH, day); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + /** + * 日期转毫秒(加分钟) + * + * @param date + * @return + */ + public static long getMillisecond_fz(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MINUTE, day); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + public static Date getMillisecond_fz1(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date dt = null; + try { + dt = sdf.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MINUTE, day); + Date dt1 = rightNow.getTime(); + return dt1; + } + + /** + * 字符串日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond_str(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond_strYmd(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转Date + * + * @param string + * @return date + * @throws ParseException + */ + public static Date getStrToDate(String dateString) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = sdf.parse(dateString); + return date; + } + + /** + * 字符串日期转Date + * + * @param date + * @return + */ + public static Date getDate_str(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + sdf.setTimeZone(tz); + if ("".equals(dateStr)) { + dateStr = sdf.format(DateUtil.getDate()); + } + Date date = null; + try { + date = sdf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date yyyy-MM-dd HH:mm + * + * @param date + * @return + */ + public static Date getDate_str2(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + sdf.setTimeZone(tz); + if ("".equals(dateStr)) { + dateStr = sdf.format(DateUtil.getDate()); + } + Date date = null; + try { + date = sdf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date yyyy-MM-dd HH:mm:ss + * + * @param date + * @return + */ + public static Date getDate_str3(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + sdf.setTimeZone(tz); + if ("".equals(dateStr)) { + dateStr = sdf.format(DateUtil.getDate()); + } + Date date = null; + try { + date = sdf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date + * + * @param date + * @return + */ + public static Date getDate_strYMd(Long dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (dateStr == null) { + dateStr = DateUtil.getCurMilli(); + } + Date date = null; + try { + date = sdf.parse(sdf.format(new Date(dateStr))); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 毫秒转Date + * + * @param date + * @return + */ + public static Date getDate_strYMdHms(Long dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (dateStr == null) { + dateStr = DateUtil.getCurMilli(); + } + Date date = null; + try { + date = sdf.parse(sdf.format(new Date(dateStr))); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date + * + * @param date + * @return + */ + public static Date getDate_strYMdHm(Long dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + if (dateStr == null) { + dateStr = DateUtil.getCurMilli(); + } + Date date = null; + try { + date = sdf.parse(sdf.format(new Date(dateStr))); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond_strDmy(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转毫秒转毫秒(加24小时) + * + * @param date + * @return + */ + public static long getMillisecond_str_24h(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 24 * 3600 * 1000; + try { + millisecond += sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转毫秒转毫秒(加24小时) + * + * @param date + * @return + */ + public static long getMillisecond_strYmd_24h(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 24 * 3600 * 1000; + try { + millisecond += sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 毫秒转日期 + * + * @param millisecond + * @return + */ + public static String getDate(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 转换为指定格式的时间 + * + * @return Date + */ + public static Date getDate(String date, String pattern) { + SimpleDateFormat format = new SimpleDateFormat(pattern); + Date d = null; + try { + d = format.parse(date); + } catch (ParseException ex) { + return null; + } + return d; + } + + /** + * 毫秒转日期 + * + * @param millisecond + * @return + */ + public static String getDate_HH(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("HH"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 毫秒转日期时间 + * + * @param millisecond + * @return + */ + public static String getDateTime(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 毫秒转年月日 + * + * @param millisecond + * @return + */ + public static String getDateYMD(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy年MM月dd日"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 两日期相差毫秒 + * + * @param startDate + * @param endDate + * @return + */ + public static long getMinusMillisecond(Date startDate, Date endDate) { + long startMillisecond = getMillisecond(startDate); + long endMillisecond = getMillisecond(endDate); + long minusMillisecond = endMillisecond - startMillisecond; + if (minusMillisecond < 0) { + minusMillisecond = 0; + } + return minusMillisecond; + } + + /** + * 两日期相差天数 + * + * @param startDate + * @param endDate + * @return + */ + public static long getMinusDay(Date startDate, Date endDate) { + long startMillisecond = getMillisecond(startDate); + long endMillisecond = getMillisecond(endDate); + long minusMillisecond = endMillisecond - startMillisecond; + long day = 0; + if (minusMillisecond < 0) { + day = 0; + } else { + day = minusMillisecond / (24 * 3600 * 1000); + } + return day; + } + + /** + * 前N天毫秒 + * + * @param day + * @return + */ + public static long getRetreatDay_millisecond(int day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + long nowMillisecond = 0; + try { + nowMillisecond = sdf.parse(sdf.format(DateUtil.getDate())).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + nowMillisecond += 24 * 3600 * 1000; + long retreatMillisecond = 24 * 3600 * 1000 * day; + return nowMillisecond - retreatMillisecond; + } + + /** + * 前N天时间 + * + * @param day + * @return + */ + public static String getRetreatDay_millisecond1(int day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + long nowMillisecond = 0; + try { + nowMillisecond = sdf.parse(sdf.format(DateUtil.getDate())).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + nowMillisecond += 24 * 3600 * 1000; + long retreatMillisecond = 24 * 3600 * 1000 * day; + long s = nowMillisecond - retreatMillisecond; + Date date = new Date(s); + String res = sdf.format(date); + return res; + } + + // 当前时间前30天 + public static String getRetreatDay_millisecond2() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date today = new Date(); + String endDate = sdf.format(today);// 当前日期 + // 获取三十天前日期 + Calendar theCa = Calendar.getInstance(); + theCa.setTime(today); + theCa.add(theCa.DATE, -30);// 最后一个数字30可改,30天的意思 + Date start = theCa.getTime(); + String startDate = sdf.format(start);// 三十天之前日期 + return startDate; + } + + /** + * 日期转秒 + * + * @param date + * @return + */ + public static long getDecond(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if (!"".equals(date)) { + newDate = sdf.format(date); + } else { + newDate = sdf.format(DateUtil.getDate()); + } + long second = 0; + try { + second = sdf.parse(newDate).getTime() / 1000; + } catch (ParseException e) { + e.printStackTrace(); + } + return second; + } + + /** + * 日期转String + * + * @param date + * @return + * @throws ParseException + */ + public static String getDateToString(Date date) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String newDate = sdf.format(date); + long millisecond = sdf.parse(newDate).getTime(); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return sdf.format(calendar.getTime()); + } + + public static String getDateToString(Date date,String pattern) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + String newDate = sdf.format(date); + long millisecond = sdf.parse(newDate).getTime(); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return sdf.format(calendar.getTime()); + } + + /** + * 毫秒转星期XX + * + * @param millisecond + * @return + */ + public static int getDate_week(Long millisecond) { + if (millisecond == null) { + millisecond = getCurMilli(); + } + Calendar cal = getCalendar(); + cal.setTimeInMillis(millisecond); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + + } + + /** + * 获取当前系统时间已yyyy-MM-dd HH:mm:ss格式化的字符串 + */ + public static String nowStr() { + + SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); + return dateFormat.format(getDate()); + } + + /** + * + * 获取之前几天日期 + * + * @param pattern + * yyyy-MM-dd(默认) + * @param few + * 之前几天 + */ + public static String beforeFewDayStr(String pattern, Integer few) { + + if (pattern == null || "".equals(pattern)) { + pattern = "yyyy-MM-dd"; + } + Calendar c = getCalendar(); + c.add(Calendar.DATE, -few); + return new SimpleDateFormat(pattern).format(c.getTime()); + } + + + /** + * 得到几天后的时间 + * + * @param d + * @param day + * @return + */ + public static Date getDateAfter(Date d, int day) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar now = Calendar.getInstance(); + now.setTime(d); + now.set(Calendar.DATE, now.get(Calendar.DATE) - day);//+后 -前 + return now.getTime(); + } + + + /** + * 获取今天日期 + * + * @param pattern + * yyyy-MM-dd(默认) + */ + public static String todayStr(String pattern) { + + if (pattern == null || "".equals(pattern)) { + pattern = "yyyy-MM-dd"; + } + return new SimpleDateFormat(pattern).format(getDate()); + } + + /** + * 获取当前系统时间戳字符串 + */ + public static String nowDateLongStr() { + + return getDate().getTime() + ""; + } + + /** + * 获取当前系统时间 + * + * @return + */ + public static Date now() { + + return getDate(); + } + /*public static void main(String[] args) throws ParseException { + // 打印测试日期包含 + Date time1 = getDate_str("2017-3-11"); + Date time2 = getDate_str("2017-3-15"); + Date time3 = getDate_str("2017-3-17"); + Date time4 = getDate_str("2017-3-12"); + Date time5 = getDate_str("2017-3-16"); + Date from = getDate_str("2017-3-12"); + Date to = getDate_str("2017-3-16"); + System.out.println(belongCalendar(time1, from, to)); + System.out.println(belongCalendar(time2, from, to)); + System.out.println(belongCalendar(time3, from, to)); + System.out.println(belongCalendar(time4, from, to)); + System.out.println(belongCalendar(time5, from, to)); + System.out.println(nowStr()); + + } +*/ + /** + * 把日期往后增加一天. 正数往后推,负数往前移动 + * + * @param day + * @return + */ + public static String getString(int day) { + Date date = new Date();// 取时间 + Calendar calendar = new GregorianCalendar(); + calendar.setTime(date); + calendar.add(calendar.DATE, day);// 把日期往后增加一天.整数往后推,负数往前移动 + date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = formatter.format(date); + return dateString; + } + + /** + * 根据当前日期获得所在周的日期区间(周一和周日日期) + * + * @return + * @author zhaoxuepu + * @throws ParseException + */ + public static String getTimeInterval(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 + int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 + if (1 == dayWeek) { + cal.add(Calendar.DAY_OF_MONTH, -1); + } + // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期 + // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 + cal.setFirstDayOfWeek(Calendar.MONDAY); + // 获得当前日期是一个星期的第几天 + int day = cal.get(Calendar.DAY_OF_WEEK); + // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 + cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); + String imptimeBegin = sdf.format(cal.getTime()); + // System.out.println("所在周星期一的日期:" + imptimeBegin); + cal.add(Calendar.DATE, 6); + String imptimeEnd = sdf.format(cal.getTime()); + // System.out.println("所在周星期日的日期:" + imptimeEnd); + return imptimeBegin + "," + imptimeEnd; + } + + /** + * 根据当前日期获得上周的日期区间(上周周一和周日日期) + * + * @return + * @author zhaoxuepu + */ + public static String getLastTimeInterval() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar1 = Calendar.getInstance(); + Calendar calendar2 = Calendar.getInstance(); + int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1; + int offset1 = 1 - dayOfWeek; + int offset2 = 7 - dayOfWeek; + calendar1.add(Calendar.DATE, offset1 - 7); + calendar2.add(Calendar.DATE, offset2 - 7); + // System.out.println(sdf.format(calendar1.getTime()));// last Monday + String lastBeginDate = sdf.format(calendar1.getTime()); + // System.out.println(sdf.format(calendar2.getTime()));// last Sunday + String lastEndDate = sdf.format(calendar2.getTime()); + return lastBeginDate + "," + lastEndDate; + } + + public static String DateYUE() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天 + String first = format.format(c.getTime()); + + // 获取当前月最后一天 + Calendar ca = Calendar.getInstance(); + ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); + String last = format.format(ca.getTime()); + return first + "," + last; + } + + public static String getBeforeFirstMonthdate() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + Calendar calendar1 = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); + calendar.set(Calendar.DAY_OF_MONTH, 1); + + int month = calendar1.get(Calendar.MONTH); + calendar1.set(Calendar.MONTH, month - 1); + calendar1.set(Calendar.DAY_OF_MONTH, calendar1.getActualMaximum(Calendar.DAY_OF_MONTH)); + String str = format.format(calendar.getTime()); + String str1 = format.format(calendar1.getTime()); + + return str + "," + str1; + } + + /** + * 获取某年第一天和最后一天日期 + * + * @param year + * 年份 + * @return Date + */ + + public static String getYearFirst(int year) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + + Calendar calendar1 = Calendar.getInstance(); + calendar1.clear(); + calendar1.set(Calendar.YEAR, year); + calendar1.roll(Calendar.DAY_OF_YEAR, -1); + + String str = format.format(calendar.getTime()); + String str1 = format.format(calendar1.getTime()); + + return str + "," + str1; + } + + public static Date addDate(Date date,Integer day) throws ParseException { + long time = date.getTime(); // 得到指定日期的毫秒数 + day = day*24*60*60*1000; // 要加上的天数转换成毫秒数 + time+=day; // 相加得到新的毫秒数 + return new Date(time); // 将毫秒数转换成日期 + } + + // 获取一天开始和结束 + public static String getDay() { + Date dBefore = new Date(); + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式 + String defaultStartDate = sdf.format(dBefore); //格式化前一天 + defaultStartDate = defaultStartDate+" 00:00:00"; + String defaultEndDate = defaultStartDate.substring(0,10)+" 23:59:59"; + + return defaultStartDate + "," + defaultEndDate; + } + + + + public static void main(String[] args){ + System.out.println(DateUtil.getDate("2020-05-28", "yyyy-MM-dd").getTime()); + System.out.println(new Date().getTime()); + } /** * 获取给定日期天的开始时间点或结束时间点 diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index 3e59938..7369a27 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java @@ -29,7 +29,7 @@ @Component public class PushUtil { - private final String socket_uri = "http://127.0.0.1:6000"; + private final String socket_uri = "http://192.168.110.111:6000"; @Autowired private IOrderTaxiService orderTaxiService; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index b255273..674ea50 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -142,7 +142,7 @@ */ public void timoutNoPayment() { List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7) - .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)")); + .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 30 MINUTE)")); for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { try { //使用备付金进行支付订单 @@ -172,11 +172,11 @@ request.setDriverId(driver1.getEmpId().toString()); ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request); Integer status1 = travelItineraryList.getList().get(0).getStatus(); - if(8 != status1){ + if(9 != status1){ //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderPrivateCar.getTravelId()); - request1.setStatus(8); + request1.setStatus(9); if (null != orderPrivateCar.getDriverId()) { request1.setDriverId(driver1.getEmpId().toString()); request1.setSupplierShopId(company.getEnterCode()); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java index 403ea43..e061344 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java @@ -515,7 +515,7 @@ tradePayOffData.setPaymentInfos(paymentInfoRequests); List<GoodsInfo> goodsInfo = new ArrayList<>(); GoodsInfo goodsInfo1 = new GoodsInfo(); - goodsInfo1.setMerchantCode(":B00000872"); + goodsInfo1.setMerchantCode("B00000872"); goodsInfo1.setCustId("CB0000004686"); goodsInfo1.setCustName("证联消费平台交易客户"); goodsInfo1.setProfitSharing("1"); @@ -526,7 +526,7 @@ TradeRequest request = new TradeRequest<TradePayOffData>(); request.setSceneId("1774717104844095488"); request.setAppId(QianYunTongProperties.appkey); - request.setConfigVersion(1); + request.setConfigVersion(2); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradePayOffData); //请求路径 -- Gitblit v1.7.1