From 865cde49f3ced0f94adafdc2db0fcdf434ccf189 Mon Sep 17 00:00:00 2001 From: xyiege Date: Fri, 21 Oct 2022 01:14:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=A2=E5=8D=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/chjyj/szwh/bean/OrderGoodsDetail.java | 6 +- .../szwh/controller/api/GoodsController.java | 43 ++++ .../szwh/controller/api/OrderController.java | 183 ++++++++++++++++-- .../szwh/mapper/AccountRatioDetailMapper.java | 9 + .../mapper/AccountRatioSettingMapper.java | 5 + .../cn/chjyj/szwh/mapper/OrderMapper.java | 7 + .../cn/chjyj/szwh/mapper/OrderUserMapper.java | 7 + .../cn/chjyj/szwh/service/OrderService.java | 7 + .../chjyj/szwh/service/OrderUserService.java | 7 + .../impl/AccountRatioDetailServiceImpl.java | 2 +- .../szwh/service/impl/OrderServiceImpl.java | 6 + .../service/impl/OrderUserServiceImpl.java | 5 + .../cn/chjyj/szwh/utils/SzOrderUtils.java | 60 +++++- .../cn/chjyj/szwh/utils/SzwhApiUtils.java | 3 - .../resources/mapper/szwh/OrderMapper.xml | 26 +-- .../resources/mapper/szwh/OrderUserMapper.xml | 46 +++-- src/test/java/cn/chjyj/szwh/ApiTest.java | 29 +++ .../chjyj/szwh/service/GoodsServiceTest.java | 26 +++ .../impl/OrderTaskServiceImplTest.java | 25 +++ 19 files changed, 448 insertions(+), 54 deletions(-) create mode 100644 src/test/java/cn/chjyj/szwh/service/impl/OrderTaskServiceImplTest.java diff --git a/src/main/java/cn/chjyj/szwh/bean/OrderGoodsDetail.java b/src/main/java/cn/chjyj/szwh/bean/OrderGoodsDetail.java index 8905c54..ea8c5c1 100644 --- a/src/main/java/cn/chjyj/szwh/bean/OrderGoodsDetail.java +++ b/src/main/java/cn/chjyj/szwh/bean/OrderGoodsDetail.java @@ -25,7 +25,7 @@ public class OrderGoodsDetail implements Serializable { * close_status as closeStatus,is_close as isClose,callback_msg as callbackMsg,createtime,updatetime,is_deleted as isDeleted */ private Integer id; - private Long batchcode;//订单号 + private String batchcode;//订单号 private Integer userId;//用户id private String entrustIslicode;//委托方isli标识码 private String islicode; @@ -81,11 +81,11 @@ public class OrderGoodsDetail implements Serializable { this.id = id; } - public Long getBatchcode() { + public String getBatchcode() { return batchcode; } - public void setBatchcode(Long batchcode) { + public void setBatchcode(String batchcode) { this.batchcode = batchcode; } diff --git a/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java b/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java index 83ff33a..e83af23 100644 --- a/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java +++ b/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java @@ -3,13 +3,17 @@ package cn.chjyj.szwh.controller.api; import cn.chjyj.szwh.bean.Goods; import cn.chjyj.szwh.controller.BaseController; import cn.chjyj.szwh.service.GoodsService; +import cn.chjyj.szwh.utils.AjaxResult; import com.alibaba.fastjson2.JSONObject; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * API端产品信息 @@ -82,4 +86,43 @@ public class GoodsController extends BaseController { } return outjson; } + + /** + * 接口处理搜索 + * @return + */ + @PostMapping("/searchGoods") + public JSONObject searchGoods(@RequestBody String reqstr){ + //{"pay_type":1,"goods_status":1,"record_type":"","entrust_name":"clytest1012-1","entrust_user_name":"","page":1,"limit":8} + log.info("查询委托信息接口:"+reqstr); + JSONObject reqjson = JSONObject.parseObject(reqstr); + Map qmap = new HashMap<>(); //查询条件 + qmap.put("is_delete",0);//正常状态的 + if(StringUtils.isNotBlank(reqstr)){ + Integer ipage = reqjson.getInteger("page"); + if(ipage==null){ + ipage=1; + } + String limit = reqjson.getString("limit"); + int ilimit = (StringUtils.isBlank(limit))?8:Integer.valueOf(limit); + //搜索关键词 + String entrustName = reqjson.getString("entrust_name"); + if(StringUtils.isNotBlank(entrustName)){ + qmap.put("gd.goods_name",entrustName); + } + //排序方式 + String orderType=reqjson.getString("record_type"); + if(StringUtils.isNotBlank(orderType)){ + qmap.put("orderway",orderType); + } + + + Map retmap =goodsService.getGoodsByMap(qmap,ipage,ilimit); + // 结果转为json + JSONObject retjson = new JSONObject(retmap); + return AjaxResult.success("成功",retjson); + }else{ + return AjaxResult.error("参数为空"); + } + } } diff --git a/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java b/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java index e092217..1a92f09 100644 --- a/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java +++ b/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java @@ -1,17 +1,25 @@ package cn.chjyj.szwh.controller.api; -import cn.chjyj.szwh.bean.Order; -import cn.chjyj.szwh.bean.User; +import cn.chjyj.szwh.bean.*; import cn.chjyj.szwh.controller.BaseController; -import cn.chjyj.szwh.service.OrderService; -import cn.chjyj.szwh.service.UserService; +import cn.chjyj.szwh.exception.ChException; +import cn.chjyj.szwh.service.*; import cn.chjyj.szwh.utils.RedisUtils; +import cn.chjyj.szwh.utils.SzOrderUtils; +import cn.chjyj.szwh.utils.SzwhApiUtils; +import cn.chjyj.szwh.vo.OrderDetailVo; import com.alibaba.fastjson2.JSONObject; +import com.sun.org.apache.xpath.internal.operations.Or; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -23,10 +31,22 @@ import java.util.Map; @RestController @RequestMapping(name = "/api/Order", method = RequestMethod.POST) public class OrderController extends BaseController { + private static Log log = LogFactory.getLog(OrderController.class); @Autowired private OrderService orderService; @Autowired private UserService userService; + @Autowired + private GoodsService goodsService; + @Autowired + private GoodsDetailService goodsDetailService; + //结算设置 + @Autowired + private AccountRatioSettingService accountRatioSettingService; + @Autowired + private AccountRatioDetailService accountRatioDetailService; + @Autowired + private OrderUserService orderUserService; /** * 获取订单信息 @@ -82,26 +102,52 @@ public class OrderController extends BaseController { /** * 创建订单 - * @param reqString 接收到的数据为json字符串 + * @param request 接收到的请求 * @return */ @RequestMapping("/createOrder") - public JSONObject createOrder(@RequestBody String reqString, HttpServletRequest request) { + public JSONObject createOrder(HttpServletRequest request) { + // 商品编号,逗号分隔 + String goodsIsli=request.getParameter("goods_isli"); + // 是否在购物车 + String isCar = request.getParameter("is_car"); + //用户购买年限,逗号分隔 + String userYears = request.getParameter("user_years"); + // 用户编码 + String userIsli= request.getParameter("user_isli"); + + log.info("创建订单接口"+request.toString()); String msg=""; int code=400; String sign = request.getHeader("sign"); //redis中是否存在 String r_key="createOrder_"+sign; if(StringUtils.isNotEmpty(RedisUtils.get(r_key))){ - msg="请勿重复提交"; - code=400; + throw new ChException("请勿重复提交",400); + } + // 存入redis + RedisUtils.set(r_key,1,10); + //用户购物车 + String shopCar = RedisUtils.get("car_"+userIsli); + //分割多个goodsisli + String goodArr[]=goodsIsli.split(","); + // 购买年限数组 + String uYears[] = userYears.split(","); + //用户信息 + User buser = userService.getUserByIsli(userIsli); + + //只有一条记录的时候 + if(goodArr.length==1){ + + }else{ //多个商品编号 + } - if(StringUtils.isBlank(reqString)){ - JSONObject json = JSONObject.parseObject(reqString); - String user_isli = json.getString("user_isli"); - //查找对应的用户 - User dbuser = userService.getUserByIsli(user_isli); + //未能删除成功 + if(!RedisUtils.delete(r_key)){ + throw new ChException("请勿重复提交",400); } + jsonObject.put("code",code); + jsonObject.put("msg",msg); return jsonObject; } @@ -130,4 +176,115 @@ public class OrderController extends BaseController { // 请求转发到远程服务器 return jsonObject; } + + private String buyFindGoods(String userIsli,String goodsIsli,int userYears){ + Goods goods= goodsService.getGoodsByIsli(goodsIsli); + if(goods==null){ + throw new ChException("没有该标的",400); + } + + GoodsDetail goodsDetail = goodsDetailService.getGoodsDetailBygid(goods.getGoodsDetailId()); + int count = Integer.valueOf(userYears); + if(goodsDetail.getGoodsEntrust()==1){ + count=1; + } + // 结算设置 + AccountRatioSetting accountRatioSetting = accountRatioSettingService.getUsingAccRationSetting(); + //结算分配信息 + AccountRatioDetail accountRatioDetail = accountRatioDetailService.getAccRatioDetailUnderRole(accountRatioSetting.getId(), + 2); + // 判断当前订单是否存在问题 + Order order=new Order(); + //校验订单信息合法 + SzOrderUtils.checkOrder(goods,goodsDetail,null,userIsli); + //服务费 + BigDecimal serviceCharge=new BigDecimal(0.00); + //订单总费用 + BigDecimal totalMoney=new BigDecimal(0.00); + int status=0;//订单状态 + int payStatus=0;//支付状态 + // 付费商品 + if(goodsDetail.getChargesType()==2){ + if(accountRatioDetail.getCalculate()==1){ + //rate 小于等于0 + if(accountRatioDetail.getRatio().compareTo(new BigDecimal(0))!=1){ + // 服务费0 + serviceCharge = new BigDecimal(0.00); + }else{ + // 购买数量* 单价*(分配比例/100) + serviceCharge =new BigDecimal(count).multiply(goodsDetail.getPrice()) + .multiply(accountRatioDetail.getRatio().divide(new BigDecimal(100))); + } + }else{ + //固定金额 + // 购买数量*单机+固定费额 + serviceCharge = new BigDecimal(count).multiply(goodsDetail.getPrice()) + .add(accountRatioDetail.getAmount()); + } + //总的额度 + totalMoney = new BigDecimal(count).multiply(goodsDetail.getPrice()) + .add(serviceCharge) + .add(goodsDetail.getEarnestMoney()); + status=1; + payStatus=1; + }else{ + // 免费 + serviceCharge =new BigDecimal(0.00); + totalMoney = new BigDecimal(0.00); + status=2; + payStatus=2; //已支付 + } + // 订单编号 + String batchCode = SzOrderUtils.createOrderBatchcode(); + // 增加到订单商品详情 + OrderGoodsDetail orderGoodsDetail = SzOrderUtils.mkOrderGoodsDetail(goodsDetail,batchCode,count,userYears); + // 补充其他未添加的属性 + orderGoodsDetail.setEntrustIslicode(goods.getUserIslicode()); + // 订单服务费 + orderGoodsDetail.setServiceCharge(serviceCharge); + //总金额 + orderGoodsDetail.setMoney(totalMoney); + orderGoodsDetail.setIslicode(goods.getIsLicode()); + // 查找用户 + OrderUser orderUser = orderUserService.getOrderUser(batchCode,goods.getIsLicode()); + int userId=0; + if(orderUser!=null){ + userId = orderUser.getId(); + }else{ + // 获取远程用户信息 + JSONObject userjson = SzwhApiUtils.getApiUser(userIsli); + if(StringUtils.isBlank(userjson.getString("data"))){ + throw new ChException("未查询到用户信息,下单失败",400); + } + //添加用户 + OrderUser odu =SzOrderUtils.mkOrderUser(batchCode,userjson,0); + orderUserService.addOrderUser(odu); + userId = odu.getId(); + } + + // 订单实体 + order.setBatchcode(batchCode); + order.setUserId(userId); + order.setBuyIslicode(userIsli); + order.setTotalServiceCharge(serviceCharge); + order.setTotalMoney(totalMoney); + order.setType(1); + order.setStatus(status); + order.setPayStatus(payStatus); + // 分配设置编号 + order.setAccountRatioId(accountRatioSetting.getId()); + //如果是付费 + if(goodsDetail.getChargesType()==1){ + order.setPaymenttime(new Date()); + } + order.setCreatetime(new Date()); + // 订单信息入库 + int ret = orderService.addOrder(order); + if(ret==1){ + if(status==2){ + // 更新订单信息 + } + } + return ""; + } } diff --git a/src/main/java/cn/chjyj/szwh/mapper/AccountRatioDetailMapper.java b/src/main/java/cn/chjyj/szwh/mapper/AccountRatioDetailMapper.java index 457cecc..e0b2ed2 100644 --- a/src/main/java/cn/chjyj/szwh/mapper/AccountRatioDetailMapper.java +++ b/src/main/java/cn/chjyj/szwh/mapper/AccountRatioDetailMapper.java @@ -1,6 +1,8 @@ package cn.chjyj.szwh.mapper; import cn.chjyj.szwh.bean.AccountRatioDetail; +import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; @@ -17,6 +19,13 @@ public interface AccountRatioDetailMapper { */ AccountRatioDetail getAccountRationDetailById(Integer id); + /** + * 查询设置下的角色分配详情 + * @param settid + * @param roleid + * @return + */ + AccountRatioDetail getAccRatioDetailByIdRole(@Param("settid") Integer settid, @Param("roleid") Integer roleid); /** * 选择符合条件的记录 * @param settingId diff --git a/src/main/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapper.java b/src/main/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapper.java index 3a644f6..d6b9a11 100644 --- a/src/main/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapper.java +++ b/src/main/java/cn/chjyj/szwh/mapper/AccountRatioSettingMapper.java @@ -19,6 +19,11 @@ public interface AccountRatioSettingMapper { */ AccountRatioSetting getAccRatioSettingById(Integer id); + /** + * 获取使用中的分配设置 + * @return + */ + AccountRatioSetting getUsingAccRatioSetting(); /** * 查询列表 * @param imap diff --git a/src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java b/src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java index f482aaa..900e16b 100644 --- a/src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java +++ b/src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java @@ -116,4 +116,11 @@ public interface OrderMapper { BigDecimal sumOderDtZone(@Param("startdt") String startdt, @Param("enddt") String enddt, @Param("field") String field); + + /** + * 新增订单信息 + * @param order + * @return + */ + int addOrder(Order order); } diff --git a/src/main/java/cn/chjyj/szwh/mapper/OrderUserMapper.java b/src/main/java/cn/chjyj/szwh/mapper/OrderUserMapper.java index efd28a4..8de596a 100644 --- a/src/main/java/cn/chjyj/szwh/mapper/OrderUserMapper.java +++ b/src/main/java/cn/chjyj/szwh/mapper/OrderUserMapper.java @@ -56,4 +56,11 @@ public interface OrderUserMapper { * @return */ List getSearchNameOrIslicode(String keyval); + + /** + * 新增订单用户 + * @param orderUser + * @return + */ + int addOrderUser(OrderUser orderUser); } diff --git a/src/main/java/cn/chjyj/szwh/service/OrderService.java b/src/main/java/cn/chjyj/szwh/service/OrderService.java index d888040..341e378 100644 --- a/src/main/java/cn/chjyj/szwh/service/OrderService.java +++ b/src/main/java/cn/chjyj/szwh/service/OrderService.java @@ -76,4 +76,11 @@ public interface OrderService { */ int countAllOrder(); + /** + * add new order information + * @param order + * @return + */ + int addOrder(Order order); + } diff --git a/src/main/java/cn/chjyj/szwh/service/OrderUserService.java b/src/main/java/cn/chjyj/szwh/service/OrderUserService.java index f59e2de..4b89bbb 100644 --- a/src/main/java/cn/chjyj/szwh/service/OrderUserService.java +++ b/src/main/java/cn/chjyj/szwh/service/OrderUserService.java @@ -10,4 +10,11 @@ public interface OrderUserService { * @return */ OrderUser getOrderUser(String batchcode,String islicode); + + /** + * 增加 + * @param orderUser + * @return + */ + int addOrderUser(OrderUser orderUser); } diff --git a/src/main/java/cn/chjyj/szwh/service/impl/AccountRatioDetailServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/AccountRatioDetailServiceImpl.java index b924fe6..383140a 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/AccountRatioDetailServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/AccountRatioDetailServiceImpl.java @@ -14,6 +14,6 @@ public class AccountRatioDetailServiceImpl implements AccountRatioDetailService @Override public AccountRatioDetail getAccRatioDetailUnderRole(Integer id, Integer roleid) { - return accountRatioDetailMapper.getAccRatioDetailByIdRole(id,2); + return accountRatioDetailMapper.getAccRatioDetailByIdRole(id,roleid); } } diff --git a/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java index 786fa9d..8e6217c 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java @@ -509,6 +509,12 @@ public class OrderServiceImpl implements OrderService { return orderMapper.countAllOrder(); } + @Override + @Transactional(rollbackFor = Exception.class) + public int addOrder(Order order) { + return orderMapper.addOrder(order); + } + /** * 结算 * @param order diff --git a/src/main/java/cn/chjyj/szwh/service/impl/OrderUserServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/OrderUserServiceImpl.java index 2e5eed7..c9eea63 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/OrderUserServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/OrderUserServiceImpl.java @@ -18,4 +18,9 @@ public class OrderUserServiceImpl implements OrderUserService { public OrderUser getOrderUser(String batchcode, String islicode) { return orderUserMapper.getUserOrder(batchcode,islicode); } + + @Override + public int addOrderUser(OrderUser orderUser) { + return orderUserMapper.addOrderUser(orderUser); + } } diff --git a/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java b/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java index 312d071..64f63ee 100644 --- a/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java +++ b/src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java @@ -1,15 +1,13 @@ 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.bean.*; 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.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; @@ -18,15 +16,49 @@ import java.util.Random; public class SzOrderUtils { private static Log log = LogFactory.getLog(SzOrderUtils.class); + /** - * 购买商品返回订单编号 - * @param userIsli - * @param goodsIsli - * @param useYears + * 订单商品详情 + * @param goodsDetail 商品详情 + * @param batchcode 订单编码 + * @param count 购买数量 + * @param goodsUserYears 使用年限 * @return */ - public static String buyFindGoods(String userIsli,String goodsIsli,int useYears){ - return ""; + public static OrderGoodsDetail mkOrderGoodsDetail(GoodsDetail goodsDetail,String batchcode,int count,int goodsUserYears){ + OrderGoodsDetail ogd=new OrderGoodsDetail(); + //ogd.setUserId(userId); + ogd.setBatchcode(batchcode); + ogd.setGoodsIslicode(goodsDetail.getGoodsIslicode()); + //ogd.setIslicode(islicode); + //ogd.setEntrustIslicode(entislicode); + ogd.setGoodsName(goodsDetail.getGoodsName()); + ogd.setGoodsImage(goodsDetail.getGoodsImage()); + ogd.setIdentifier(goodsDetail.getIdentifier()); + ogd.setIdentifiers(goodsDetail.getIdentifiers()); + ogd.setSourcedataIslicode(goodsDetail.getSourcedataIslicode()); + ogd.setPrice(goodsDetail.getPrice()); + // goods price + BigDecimal gprice = goodsDetail.getPrice().multiply(new BigDecimal(count)); + ogd.setGoodsPrice(gprice); + //ogd.setServiceCharge(serviceCharge); + ogd.setEarnestMoney(new BigDecimal(0.00)); + ogd.setTransactionCount(goodsUserYears); + //总的金额 + // ogd.setMoney(totalMoney); + ogd.setGoodsOwnershipStr(goodsDetail.getGoodsOwnershipStr()); + ogd.setGoodsType(goodsDetail.getGoodsType()); + ogd.setChargesType(goodsDetail.getChargesType()); + ogd.setGoodsEntrust(goodsDetail.getGoodsEntrust()); + ogd.setContractualPeriod(goodsDetail.getContractualPeriod()); + ogd.setTransactionClass(goodsDetail.getTransactionClass()); + ogd.setContract(goodsDetail.getContract()); + // ? 设置商品名称 + ogd.setOtheridentifiers(goodsDetail.getGoodsName()); + ogd.setDataJson(goodsDetail.getDataJson()); + ogd.setSourceJson(goodsDetail.getSourceJson()); + ogd.setClassification(goodsDetail.getClassification()); + return ogd; } /** @@ -86,6 +118,14 @@ public class SzOrderUtils { OrderUser orderUser=new OrderUser(); //用户类型 String uType = userJson.getString("userType"); + if(isBuy == 1){ + if("个人".equals(uType)){ + throw new ChException("暂不支持个人用户交易", 400); + } + if(!"1".equals(userJson.getString("state"))){ + throw new ChException("当前用户未认证成功", 400); + } + } // 机构用户 if("机构".equals(uType)){ orderUser.setBatchcode(batchcode); diff --git a/src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java b/src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java index 72652b8..b153a16 100644 --- a/src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java +++ b/src/main/java/cn/chjyj/szwh/utils/SzwhApiUtils.java @@ -26,9 +26,6 @@ public class SzwhApiUtils { */ public static JSONObject getApiUser(String userIsli) { String userHost= ProperUtils.getSzwhProp("REAL_URL");//用户主机 - if(StringUtils.isEmpty(userHost)){ - userHost=""; - } // 远程获取用户的信息 String userUrl=userHost+"/users/usermgt/v1/user-info/"+userIsli; log.info("rquest url:"+userUrl); diff --git a/src/main/resources/mapper/szwh/OrderMapper.xml b/src/main/resources/mapper/szwh/OrderMapper.xml index 1bbda9e..0474563 100644 --- a/src/main/resources/mapper/szwh/OrderMapper.xml +++ b/src/main/resources/mapper/szwh/OrderMapper.xml @@ -175,21 +175,23 @@ - + insert into - (uname,password,gender,urealname,ubirth,nickname,avatarurl,platfrom,sessionkey,openid) + (user_id ,buy_islicode ,batchcode,account_ratio_id , + history_buy_name,history_buy_code ,total_service_charge ,total_money, + `type`,`status`,transaction_islicode ,ticketid,ticketmoney,ticketurl,ticketimage, + ticket_status ,charge_channel ,pay_status ,close_status , + is_close ,close_serial_number ,payid,createtime,paymenttime,receivetime,closetime, + completetime,shuttime,tickettime) values ( - #{uname}, - #{password}, - #{gender}, - #{urealname}, - #{ubirth}, - #{nickname}, - #{avatarurl}, - #{platfrom}, - #{sessionkey}, - #{openid} + #{userId},#{buyIslicode},#{batchcode},#{accountRatioId}, + #{historyBuyName},#{historyBuyCode},#{totalServiceCharge},#{totalMoney}, + #{type},#{status},#{transactionIslicode},#{ticketid},#{ticketmoney},#{ticketurl},#{ticketimage}, + #{ticketStatus},#{chargeChannel},#{payStatus},#{closeStatus}, + #{isClose},#{closeSerialNumber},#{payid},#{createtime}, + #{paymenttime},#{receivetime},#{closetime}, + #{completetime},#{shuttime},#{tickettime} ) diff --git a/src/main/resources/mapper/szwh/OrderUserMapper.xml b/src/main/resources/mapper/szwh/OrderUserMapper.xml index 00dbf49..ef94a03 100644 --- a/src/main/resources/mapper/szwh/OrderUserMapper.xml +++ b/src/main/resources/mapper/szwh/OrderUserMapper.xml @@ -92,20 +92,42 @@ - + insert into - (uname,password,gender,urealname,ubirth,nickname,avatarurl,platfrom,sessionkey,openid) + (batchcode,islicode,`name`,uscc,userType,authType,certType,idNumber,cellPhone,publicAccount, + legalsName,legalsType,legalsIdnum,legalsCellPhone,bankCardType,bankType,bankName,bankAccountName, + certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid, + ticketmoney,ticketurl,ticketimage,ticket_status as ticketStatus) values ( - #{uname}, - #{password}, - #{gender}, - #{urealname}, - #{ubirth}, - #{nickname}, - #{avatarurl}, - #{platfrom}, - #{sessionkey}, - #{openid} + #{batchcode}, + #{islicode}, + #{name}, + #{uscc}, + #{userType}, + #{authType}, + #{certType}, + #{idNumber}, + #{cellPhone}, + #{publicAccount}, + #{legalsName}, + #{legalsType}, + #{legalsIdnum}, + #{legalsCellPhone}, + #{bankType}, + #{bankName}, + #{bankAccountName}, + #{certIdnum}, + #{bankCellPhone}, + #{bankAddress}, + #{state}, + #{registertime}, + #{attesttime}, + #{tickettime}, + #{ticketid}, + #{ticketmoney}, + #{ticketurl}, + #{ticketimage}, + #{ticketStatus} ) diff --git a/src/test/java/cn/chjyj/szwh/ApiTest.java b/src/test/java/cn/chjyj/szwh/ApiTest.java index 65b1de7..b31924b 100644 --- a/src/test/java/cn/chjyj/szwh/ApiTest.java +++ b/src/test/java/cn/chjyj/szwh/ApiTest.java @@ -6,6 +6,7 @@ import cn.chjyj.szwh.mapper.GoodsDetailMapper; import cn.chjyj.szwh.utils.*; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import org.apache.commons.lang3.StringUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -117,6 +118,7 @@ public class ApiTest { */ @Test public void jdxTest(){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String tmpstr ="{\"resultCode\":\"00000000\",\"resultMsg\":\"SUCCESS\"," + "\"data\":[{\"isliCode\":\"010007-00000000302500000001-6\",\"status\":\"1\",\"createTime\":\"2022-10-18T02:16:02.000+00:00\"," + "\"exStatus\":\"0\",\"timeStamp\":1666059370000,\"sourceData\":{\"contractIsLiCode\":\"010007-00000000302500000001-6\"," + @@ -153,6 +155,33 @@ public class ApiTest { Integer day = nsdjson.getInteger("contractualCycle"); //转换为date String cend = nsdjson.getString("contractualPeriodEnd"); + // 委托终止日期 + if (StringUtils.isBlank(cend)) { + cend = "2099-12-31"; + } + // 加上时间 + cend=cend+" 23:59:59"; + //委托开始时间,取当前时间 + Timestamp ncst = new Timestamp(System.currentTimeMillis()); + //委托结束时间 default value 2099-12-31 23:59:59 + Timestamp ncet = new Timestamp(4102415999000l); + // 周期性托管,判断开始时间是否结束 + if (iperiod == 3) { + try{ + // 委托开始时间 匹配时间格式,防止转码出错 + Date wtStart = sdf.parse(ncstart); + // 委托开始时间戳 + ncst = new Timestamp(wtStart.getTime()); + // 委托终止时间 + Date wtEnd = sdf.parse(cend); + SimpleDateFormat ysdf = new SimpleDateFormat("yyyy-MM-dd"); + cend = ysdf.format(wtEnd) + " 23:59:59"; + // 委托终止时间时间戳 + ncet = new Timestamp(sdf.parse(cend).getTime()); + }catch (Exception ex){ + ex.printStackTrace(); + } + } } @Test diff --git a/src/test/java/cn/chjyj/szwh/service/GoodsServiceTest.java b/src/test/java/cn/chjyj/szwh/service/GoodsServiceTest.java index e012e04..77b51f5 100644 --- a/src/test/java/cn/chjyj/szwh/service/GoodsServiceTest.java +++ b/src/test/java/cn/chjyj/szwh/service/GoodsServiceTest.java @@ -2,6 +2,7 @@ package cn.chjyj.szwh.service; import cn.chjyj.szwh.bean.Goods; import cn.chjyj.szwh.mapper.GoodsMapper; +import com.alibaba.fastjson2.JSONObject; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -38,4 +39,29 @@ public class GoodsServiceTest { System.out.println(g.getGoodsDetailId()); } } + + /** + * 手工导入测试 + */ + @Test + public void manuImport(){ + String tmpstr ="{\"resultCode\":\"00000000\",\"resultMsg\":\"SUCCESS\"," + + "\"data\":[{\"isliCode\":\"010007-00000000302500000001-6\",\"status\":\"1\",\"createTime\":\"2022-10-18T02:16:02.000+00:00\"," + + "\"exStatus\":\"0\",\"timeStamp\":1666059370000,\"sourceData\":{\"contractIsLiCode\":\"010007-00000000302500000001-6\"," + + "\"register\":\"北京玖扬博文文化发展有限公司\",\"entityName\":null,\"isliCode\":\"010007-00000000302599999999-5\",\"serviceCode\":\"010007\"," + + "\"titleName\":\"1018阶段\",\"releaseTime\":\"2022-10-18 10:14:37\",\"identifier\":\"010007-00000000302599999999-5\"," + + "\"identifiers\":\"000002-100000000192062-5\",\"systemIdentity\":\"ee6510c19fb643aabf336bbe9e014a82\",\"transactionType\":\"授权\"," + + "\"collectionType\":\"文化资源数据\",\"transactionKind\":\"权属\",\"otherIdentifiers\":\" \",\"contractualPeriod\":\"阶段性委托\",\"contractualCycle\":null," + + "\"price\":\"RMB 0.01\",\"rights\":\"放映权\",\"contractMoney\":\"交易全额的30%\",\"contractualPeriodStart\":\"2022-10-18\"," + + "\"contractualPeriodEnd\":\"2022-10-18\",\"contractStatus\":\"1\"," + + "\"cover\":\"http://aa.jpg\"}," + + "\"targetData\":{\"contractIsliCode\":\"010007-00000000302300000001-8\",\"register\":\"伏羲云\",\"entityName\":null," + + "\"isliCode\":\"899998-000000001161-2\",\"identifier\":\"899998-000000001161-2\",\"serviceCode\":\"899998\"," + + "\"titleName\":\"北京玖扬博文文化发展有限公司\",\"releaseTime\":null,\"otherIdentifiers\":\"91110108597748619P\"," + + "\"entityType\":\"组织\",\"certificate\":\"http://172.16.3.21:11000/file/cncbox/userself/7/16073304715399411.png\"," + + "\"date\":\"2022-08-05 15:17:24\",\"place\":\"中国\",\"description\":\"\",\"electronicSignature\":\"\",\"participants\":\"卖方\"}}]}"; + + JSONObject jsonObject = JSONObject.parseObject(tmpstr); + goodsService.manuImportGoods(jsonObject); + } } \ No newline at end of file diff --git a/src/test/java/cn/chjyj/szwh/service/impl/OrderTaskServiceImplTest.java b/src/test/java/cn/chjyj/szwh/service/impl/OrderTaskServiceImplTest.java new file mode 100644 index 0000000..118a6dd --- /dev/null +++ b/src/test/java/cn/chjyj/szwh/service/impl/OrderTaskServiceImplTest.java @@ -0,0 +1,25 @@ +package cn.chjyj.szwh.service.impl; + +import cn.chjyj.szwh.service.OrderTaskService; +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.test.context.junit4.SpringRunner; + + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringRunner.class) +public class OrderTaskServiceImplTest { + @Autowired + private OrderTaskService orderTaskService; + /** + * 关闭超时订单 + */ + @Test + public void closeOrderTimeout() { + orderTaskService.closeOrderTimeout(); + } +} \ No newline at end of file