From 685bd1d7aa61fa45552ab4514661feb776b7dcd0 Mon Sep 17 00:00:00 2001 From: xyiege Date: Thu, 20 Oct 2022 14:37:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=BE=85=E5=8A=A9=E5=B7=A5?= =?UTF-8?q?=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/chjyj/szwh/constant/OrderConstant.java | 16 ++ .../cn/chjyj/szwh/utils/SzOrderUtils.java | 177 ++++++++++++++++++ 2 files changed, 193 insertions(+) create mode 100644 src/main/java/cn/chjyj/szwh/constant/OrderConstant.java create mode 100644 src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java diff --git a/src/main/java/cn/chjyj/szwh/constant/OrderConstant.java b/src/main/java/cn/chjyj/szwh/constant/OrderConstant.java new file mode 100644 index 0000000..c4f6cc0 --- /dev/null +++ b/src/main/java/cn/chjyj/szwh/constant/OrderConstant.java @@ -0,0 +1,16 @@ +package cn.chjyj.szwh.constant; + +import java.util.HashMap; +import java.util.Map; + +/** + * 订单产量 + */ +public class OrderConstant { + public Map orderMap=new HashMap<>(); + //库存不足 + public static final int GOODNOSTOCK=100; + public static final String GOODNOSTOCK_STR="标的库存为0,不可购买"; + + +} diff --git a/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java b/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java new file mode 100644 index 0000000..312d071 --- /dev/null +++ b/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java @@ -0,0 +1,177 @@ +package cn.chjyj.szwh.utils; + +import cn.chjyj.szwh.bean.Goods; +import cn.chjyj.szwh.bean.GoodsDetail; +import cn.chjyj.szwh.bean.Order; +import cn.chjyj.szwh.bean.OrderUser; +import cn.chjyj.szwh.exception.ChException; +import com.alibaba.fastjson2.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Random; + +public class SzOrderUtils { + private static Log log = LogFactory.getLog(SzOrderUtils.class); + /** + * 购买商品返回订单编号 + * @param userIsli + * @param goodsIsli + * @param useYears + * @return + */ + public static String buyFindGoods(String userIsli,String goodsIsli,int useYears){ + return ""; + } + + /** + * 检查下单过程中的异常信息 + * @param goods + * @param goodsDetail + * @param order + * @param use_isli + * @return + */ + public static boolean checkOrder(Goods goods, GoodsDetail goodsDetail, Order order,String use_isli){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 非工作时间购买 + Calendar calendar= Calendar.getInstance(); + int hour = calendar.get(Calendar.HOUR); + if (hour<9 && hour>18) { + throw new ChException("非正常交易日时间,请在交易日内进行交易,交易日时间为周一至周日9:00-18:00",400); + } + if(goods.getApplyOut()==1){ + throw new ChException("该标的已撤销,标的ISLI标识码:"+goods.getGoodsIslicode(), 400); + } + if(goods.getUserIslicode().equals(use_isli)){ + throw new ChException("您是标的的授权方,不可购买,标的ISLI标识码:"+goods.getGoodsIslicode(), 400); + } + if(goods.getGoodsStatus()!= 1){ + throw new ChException("该标的现不在上架中,标的ISLI标识码:"+goods.getGoodsIslicode(), 400); + } + if(goodsDetail.getStock()<=0 && goodsDetail.getGoodsEntrust()== 1){ + throw new ChException("标的库存为0,不可购买,标的ISLI标识码:"+goods.getGoodsIslicode(), 400); + } + if(goodsDetail.getContractualPeriod()==3){ + Date now =new Date(); + if(now.compareTo(goods.getContractualtimeEndTime()) >0){ + throw new ChException("标的委托已结束,标的ISLI标识码:"+goods.getGoodsIslicode(), 400); + } + } + // 检查订单支付情况 + if(order!=null) { + if (order.getStatus() == 1) { + throw new ChException("您的待付款订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单", 400); + } else if (order.getStatus() == 2) { + throw new ChException("您的未完成订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单", 400); + } else { + throw new ChException("您的已完成订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单", 400); + } + } + return true; + } + /** + * 组装成订单用户 + * @param batchcode + * @param userJson + * @param isBuy + * @return + */ + public static OrderUser mkOrderUser(String batchcode, JSONObject userJson, int isBuy){ + OrderUser orderUser=new OrderUser(); + //用户类型 + String uType = userJson.getString("userType"); + // 机构用户 + if("机构".equals(uType)){ + orderUser.setBatchcode(batchcode); + orderUser.setUsertype(uType); + Integer ustate = userJson.getInteger("state"); + int istate=ustate==null?0:ustate; + orderUser.setState(istate); + orderUser.setIslicode(userJson.getString("islicode")); + orderUser.setName(userJson.getString("name")); + orderUser.setUscc(userJson.getString("uscc")); + orderUser.setLegalsname(userJson.getString("legalsName")); + orderUser.setLegalstype(userJson.getString("legalsType")); + orderUser.setLegalsidnum(userJson.getString("legalsIdnum")); + // + String legalsCellPhone = userJson.getString("legalsCellPhone"); + orderUser.setLegalscellphone(StringUtils.isBlank(legalsCellPhone)?"":legalsCellPhone); + orderUser.setPublicaccount(userJson.getString("publicAccount")); + orderUser.setBankcardtype(userJson.getString("bankCardType")); + orderUser.setBankname(userJson.getString("bankName")); + orderUser.setBanktype(userJson.getString("bankType")); + orderUser.setBankaccountname(userJson.getString("bankAccountName")); + orderUser.setCertidnum(userJson.getString("certIdnum")); + orderUser.setBankcellphone(userJson.getString("bankCellPhone")); + orderUser.setBankaddress(userJson.getString("bankAddress")); + }else{ + //个人用户 + orderUser.setBatchcode(batchcode); + orderUser.setUsertype(uType); + Integer ustate = userJson.getInteger("state"); + int istate=ustate==null?0:ustate; + orderUser.setState(istate); + orderUser.setIslicode(userJson.getString("islicode")); + orderUser.setName(userJson.getString("name")); + orderUser.setCerttype(userJson.getString("certType")); + orderUser.setIdnumber(userJson.getString("idNumber")); + orderUser.setCellphone(userJson.getString("cellPhone")); + orderUser.setPublicaccount(userJson.getString("publicAccount")); + orderUser.setBankcardtype(userJson.getString("bankCardType")); + orderUser.setBankname(userJson.getString("bankName")); + orderUser.setBankaccountname(userJson.getString("bankAccountName")); + orderUser.setCertidnum(userJson.getString("certIdnum")); + orderUser.setBankcellphone(userJson.getString("bankCellPhone")); + orderUser.setBankaddress(userJson.getString("bankAddress")); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + // 如果注册时间 + String registertime=userJson.getString("registertime"); + if(StringUtils.isNotBlank(registertime)){ + try { + Date uregDate = sdf.parse(registertime); + orderUser.setRegistertime(uregDate); + }catch (Exception ex){ + log.error("订单用户注册时间转码失败!"+ex.getLocalizedMessage()); + } + } + //认证时间 + String authTime = userJson.getString("authTime"); + if(StringUtils.isNotBlank(authTime)){ + try { + Date authDate = sdf.parse(authTime); + orderUser.setAttesttime(authDate); + }catch (ParseException ex){ + log.error("订单用户认证时间转码失败!"+ex.getLocalizedMessage()); + } + } + // 认证类型 + String authType = userJson.getString("authType"); + if(StringUtils.isNotBlank(authType)){ + orderUser.setAuthtype(authType); + } + + return orderUser; + } + + /** + * 生成订单号 + * @return + */ + public static String createOrderBatchcode(){ + long ntime = System.currentTimeMillis()/1000; + int max=9999999; + int min=1000000; + Random random = new Random(); + int randnum = random.nextInt(max)%(max-min+1) + min; + String subRand = String.valueOf(randnum).substring(1); + String batcode = ntime+""+subRand; + return batcode; + } +}