From 6f4fe98e6f9b01596a7393dd2aa36fc8e2ceef81 Mon Sep 17 00:00:00 2001 From: Sum1Dream <418471657@qq.com> Date: Tue, 26 Apr 2022 18:01:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=9D=E8=B4=B9?= =?UTF-8?q?=E5=85=85=E5=80=BCbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/pay/CzOrderController.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/hai-cweb/src/main/java/com/cweb/controller/pay/CzOrderController.java b/hai-cweb/src/main/java/com/cweb/controller/pay/CzOrderController.java index 3db354c9..ca84349d 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/pay/CzOrderController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/pay/CzOrderController.java @@ -125,19 +125,21 @@ public class CzOrderController { rechargeOrderRecord = new OutRechargeOrderRecord(); // 查询订单 OutRechargeOrder order = outRechargeOrderService.findByOrderNo(dataObject.getString("out_order_id")); - if (order.getRechargeType() == 1) { - String orderNo = "CZ" + DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + IDGenerator.nextId(5); - JSONObject object = outRechargeOrderService.getMobile(order.getRechargeContent() , order.getOrderPrice().intValue() , orderNo , order.getRechargeType()); - if (object.getInteger("code") != 200) { - order.setRechargeStatus(1); - order.setAbnormalMsg(object.getString("message")); + if (order.getStatus() == 2) { + if (order.getRechargeType() == 1) { + String orderNo = "CZ" + DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + IDGenerator.nextId(5); + JSONObject object = outRechargeOrderService.getMobile(order.getRechargeContent() , order.getOrderPrice().intValue() , orderNo , order.getRechargeType()); + if (object.getInteger("code") != 200) { + order.setRechargeStatus(1); + order.setAbnormalMsg(object.getString("message")); + } + outRechargeOrderService.updateOrder(order); + rechargeOrderRecord.setRechargeOrderId(order.getId()); + rechargeOrderRecord.setRechargeOrderNo(orderNo); + rechargeOrderRecord.setCreateTime(new Date()); + rechargeOrderRecord.setStatus(1); + rechargeOrderRecordService.insertOrder(rechargeOrderRecord); } - outRechargeOrderService.updateOrder(order); - rechargeOrderRecord.setRechargeOrderId(order.getId()); - rechargeOrderRecord.setRechargeOrderNo(orderNo); - rechargeOrderRecord.setCreateTime(new Date()); - rechargeOrderRecord.setStatus(1); - rechargeOrderRecordService.insertOrder(rechargeOrderRecord); } } else { // 查询订单 From 0b534f4a9e8f321936921308d8599202b9ebfca4 Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Tue, 26 Apr 2022 21:50:40 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bweb/controller/HighGasController.java | 60 +++++++++++++++++-- .../HighTyAgentPriceController.java | 14 +++-- .../cweb/controller/HighGasController.java | 6 +- .../cweb/controller/HighOrderController.java | 2 +- .../com/hai/schedule/HighGasSchedule.java | 2 + .../java/com/hai/config/CommonSysConfig.java | 28 +++++++++ .../java/com/hai/config/UnionUserConfig.java | 10 ++-- .../com/hai/dao/HighGasOilPriceMapper.java | 11 +++- .../com/hai/dao/HighGasOilPriceMapperExt.java | 1 + .../hai/dao/HighGasOilPriceSqlProvider.java | 14 +++++ .../com/hai/dao/HighTyAgentPriceMapper.java | 29 +++++---- .../hai/dao/HighTyAgentPriceSqlProvider.java | 14 +++++ .../java/com/hai/entity/HighGasOilPrice.java | 16 +++++ .../hai/entity/HighGasOilPriceExample.java | 60 +++++++++++++++++++ .../java/com/hai/entity/HighTyAgentPrice.java | 16 +++++ .../hai/entity/HighTyAgentPriceExample.java | 60 +++++++++++++++++++ .../hai/enum_type/GasOilPriceStatusEnum.java | 36 +++++++++++ .../hai/service/HighTyAgentPriceService.java | 4 +- .../impl/HighGasOilPriceServiceImpl.java | 4 +- .../impl/HighTyAgentPriceServiceImpl.java | 3 +- .../resources/dev/commonConfig.properties | 5 ++ .../resources/pre/commonConfig.properties | 5 ++ .../prod-9401/commonConfig.properties | 4 ++ .../resources/prod/commonConfig.properties | 5 ++ 24 files changed, 371 insertions(+), 38 deletions(-) create mode 100644 hai-service/src/main/java/com/hai/enum_type/GasOilPriceStatusEnum.java diff --git a/hai-bweb/src/main/java/com/bweb/controller/HighGasController.java b/hai-bweb/src/main/java/com/bweb/controller/HighGasController.java index 1159a6d9..b39f0e67 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/HighGasController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/HighGasController.java @@ -9,7 +9,10 @@ import com.hai.common.utils.CoordCommonUtil; import com.hai.common.utils.PageUtil; import com.hai.common.utils.ResponseMsgUtil; import com.hai.config.TuanYouConfig; +import com.hai.entity.HighGasDiscountOilPrice; +import com.hai.entity.HighGasOilPrice; import com.hai.entity.HighOrder; +import com.hai.enum_type.GasOilPriceStatusEnum; import com.hai.model.ResponseData; import com.hai.service.HighGasOilPriceService; import com.hai.service.HighOrderService; @@ -22,10 +25,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Controller @@ -41,6 +41,58 @@ public class HighGasController { @Resource private HighOrderService highOrderService; + @RequestMapping(value="/disabledOil",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "禁用油品") + public ResponseData disabledOil(@RequestBody JSONObject body) { + try { + if (body.getLong("storeId") == null || body.getInteger("oilNo") == null) { + log.error("HighGasController -> disabledOil() error!",""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + // 查询油品价格 + HighGasOilPrice oilNo = highGasOilPriceService.getGasOilPriceByStoreAndOilNo(body.getLong("storeId"), body.getInteger("oilNo")); + if (oilNo == null) { + log.error("HighGasController -> disabledOil() error!",""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + oilNo.setStatus(GasOilPriceStatusEnum.status2.getStatus()); + highGasOilPriceService.editGasOilPrice(oilNo); + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("HighGasController -> disabledOil() error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/enableOil",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "启用油品") + public ResponseData enableOil(@RequestBody JSONObject body) { + try { + if (body.getLong("storeId") == null || body.getInteger("oilNo") == null) { + log.error("HighGasController -> enableOil() error!",""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + // 查询油品价格 + HighGasOilPrice oilNo = highGasOilPriceService.getGasOilPriceByStoreAndOilNo(body.getLong("storeId"), body.getInteger("oilNo")); + if (oilNo == null) { + log.error("HighGasController -> enableOil() error!",""); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + oilNo.setStatus(GasOilPriceStatusEnum.status1.getStatus()); + highGasOilPriceService.editGasOilPrice(oilNo); + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("HighGasController -> enableOil() error!",e); + return ResponseMsgUtil.exception(e); + } + } + @RequestMapping(value="/getGasStoreList",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询加油站列表") diff --git a/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java b/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java index 5e5de0d6..e4dcf5d7 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java @@ -66,7 +66,8 @@ public class HighTyAgentPriceController { for (Object obj : bodyArray) { JSONObject body = (JSONObject)JSONObject.toJSON(obj); - if (body.getLong("tyAgentOilStationId") == null + if (body.getInteger("belongType") == null + || body.getLong("tyAgentOilStationId") == null || StringUtils.isBlank(body.getString("oilNoName")) || StringUtils.isBlank(body.getString("oilNo")) || body.getBigDecimal("priceRate") == null) { @@ -74,9 +75,10 @@ public class HighTyAgentPriceController { } // 查询油站 - HighTyAgentPrice agentOilStation = tyAgentPriceService.getDetail(body.getLong("tyAgentOilStationId"), body.getString("oilNo")); + HighTyAgentPrice agentOilStation = tyAgentPriceService.getDetail(body.getInteger("belongType"),body.getLong("tyAgentOilStationId"), body.getString("oilNo")); if (agentOilStation == null) { agentOilStation = new HighTyAgentPrice(); + agentOilStation.setBelongType(body.getInteger("belongType")); agentOilStation.setTyAgentOilStationId(body.getLong("tyAgentOilStationId")); agentOilStation.setOilNoName(body.getString("oilNoName")); agentOilStation.setOilNo(body.getString("oilNo")); @@ -87,7 +89,6 @@ public class HighTyAgentPriceController { tyAgentPriceService.editTyAgentPrice(agentOilStation); } - return ResponseMsgUtil.success("操作成功"); } catch (Exception e) { @@ -99,7 +100,8 @@ public class HighTyAgentPriceController { @RequestMapping(value = "/getOilStationPrice", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "油站价格") - public ResponseData getOilStationPrice(@RequestParam(name = "oilStationId", required = true) Long oilStationId) { + public ResponseData getOilStationPrice(@RequestParam(name = "belongType", required = true) Integer belongType, + @RequestParam(name = "oilStationId", required = true) Long oilStationId) { try { HighTyAgentOilStation station = tyAgentOilStationService.getDetailByOilStationId(oilStationId); @@ -117,12 +119,14 @@ public class HighTyAgentPriceController { for (HighGasOilPrice price : oilPriceList) { oilPriceMap = new HashMap<>(); oilPriceMap.put("tyAgentOilStationId", station.getId()); + oilPriceMap.put("oilStationId", price.getMerchantStoreId()); oilPriceMap.put("oilNo", price.getOilNo()); oilPriceMap.put("oilNoName", price.getOilNoName()); + oilPriceMap.put("status", price.getStatus()); oilPriceMap.put("lowPrice", commonService.getDictionaryCodeName("TY_AGENT_OIL_STATION_LOW_PRICE", price.getOilNo().toString())); // 价格 - HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(station.getId(), price.getOilNo().toString()); + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(belongType, station.getId(), price.getOilNo().toString()); if (priceRate == null) { oilPriceMap.put("priceRate", gasDiscountOilPriceService.getDetailByOilNo(price.getOilNo().toString()).getPriceRate()); } else { diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java b/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java index fed3e400..8e7c0339 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java @@ -113,7 +113,7 @@ public class HighGasController { // 查询是否配置了优惠比例 HighTyAgentOilStation tyAgentOilStation = tyAgentOilStationService.getDetailByOilStationId(MapUtils.getLong(map, "id")); if (tyAgentOilStation != null) { - HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(tyAgentOilStation.getId(), MapUtils.getString(map, "oil_no")); + HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(2,tyAgentOilStation.getId(), MapUtils.getString(map, "oil_no")); if (tyAgentPrice != null) { // 优惠比例 / 100 = 最终优惠比例 BigDecimal priceRate = tyAgentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); @@ -147,7 +147,7 @@ public class HighGasController { HighTyAgentOilStation oilStation = tyAgentOilStationService.getDetailByOilStationId(goodsId); if (oilStation != null) { // 价格 - HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(oilStation.getId(), oilNo); + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(1, oilStation.getId(), oilNo); if (priceRate == null) { discount = gasDiscountOilPriceService.getDetailByOilNo(oilNo).getPriceRate(); } else { @@ -205,7 +205,7 @@ public class HighGasController { // 查询是否配置了优惠比例 HighTyAgentOilStation tyAgentOilStation = tyAgentOilStationService.getDetailByOilStationId(store.getId()); if (tyAgentOilStation != null) { - HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(tyAgentOilStation.getId(), price.getString("oilNo")); + HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(1, tyAgentOilStation.getId(), price.getString("oilNo")); if (tyAgentPrice != null) { // 优惠比例 / 100 = 最终优惠比例 BigDecimal priceRate = tyAgentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java b/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java index dc489a66..507ca929 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java @@ -246,7 +246,7 @@ public class HighOrderController { childOrder.setGasOrgName(oilStation.getOrganizationName()); // 价格 - HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(oilStation.getId(), childOrder.getGasOilNo()); + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(1, oilStation.getId(), childOrder.getGasOilNo()); if (priceRate == null) { discount = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()).getPriceRate(); } else { diff --git a/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java b/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java index bae704b1..42c9b486 100644 --- a/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java +++ b/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java @@ -8,6 +8,7 @@ import com.hai.common.exception.SysCode; import com.hai.config.TuanYouConfig; import com.hai.entity.HighGasOilPrice; import com.hai.entity.HighMerchantStore; +import com.hai.enum_type.GasOilPriceStatusEnum; import com.hai.model.HighMerchantModel; import com.hai.model.HighMerchantStoreModel; import com.hai.service.HighGasOilPriceService; @@ -88,6 +89,7 @@ public class HighGasSchedule { highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); + highGasOilPrice.setStatus(GasOilPriceStatusEnum.status1.getStatus()); } else { highGasOilPrice.setMerchantStoreId(store.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); diff --git a/hai-service/src/main/java/com/hai/config/CommonSysConfig.java b/hai-service/src/main/java/com/hai/config/CommonSysConfig.java index 974f905d..011939e4 100644 --- a/hai-service/src/main/java/com/hai/config/CommonSysConfig.java +++ b/hai-service/src/main/java/com/hai/config/CommonSysConfig.java @@ -62,6 +62,34 @@ public class CommonSysConfig { private String CzUrl; private String CzAppSecret; + private String unionAppId; + private String unionSecret; + private String unionRsaKey; + + public String getUnionAppId() { + return unionAppId; + } + + public void setUnionAppId(String unionAppId) { + this.unionAppId = unionAppId; + } + + public String getUnionSecret() { + return unionSecret; + } + + public void setUnionSecret(String unionSecret) { + this.unionSecret = unionSecret; + } + + public String getUnionRsaKey() { + return unionRsaKey; + } + + public void setUnionRsaKey(String unionRsaKey) { + this.unionRsaKey = unionRsaKey; + } + public String getTuanYouUrl() { return tuanYouUrl; } diff --git a/hai-service/src/main/java/com/hai/config/UnionUserConfig.java b/hai-service/src/main/java/com/hai/config/UnionUserConfig.java index 1ebe4997..8a17cd52 100644 --- a/hai-service/src/main/java/com/hai/config/UnionUserConfig.java +++ b/hai-service/src/main/java/com/hai/config/UnionUserConfig.java @@ -1,16 +1,13 @@ package com.hai.config; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.hai.common.pay.util.sdk.WXPayConstants; -import com.hai.common.utils.HttpsUtils; import com.hai.common.utils.RedisUtil; import com.hai.common.utils.UnionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import javax.ws.rs.core.MediaType; import javax.xml.bind.DatatypeConverter; import java.security.KeyPair; import java.security.KeyPairGenerator; @@ -28,12 +25,13 @@ import java.util.*; public class UnionUserConfig { private static String requestUrl = "https://open.95516.com/open/access/1.0/"; - private static String appId = "cf56ac6f9f6b4744bfba9e5587db147c"; - private static String secret = "665193ddd44248acb461594cfe0ded5b"; - private static String rsaKey = "df0bdf7f5ef7bff770f2f21fe549c461df0bdf7f5ef7bff7"; + private static String appId = CommonSysConst.getSysConfig().getUnionAppId(); + private static String secret = CommonSysConst.getSysConfig().getUnionSecret(); + private static String rsaKey = CommonSysConst.getSysConfig().getUnionRsaKey(); @Resource private RedisUtil redisUtil; + /** * 获取应用访问令牌backendToken * @return diff --git a/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapper.java b/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapper.java index 92370fec..c466a009 100644 --- a/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapper.java +++ b/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapper.java @@ -43,12 +43,14 @@ public interface HighGasOilPriceMapper extends HighGasOilPriceMapperExt { "oil_no_name, price_vip, ", "price_gun, price_official, ", "oil_type, oil_type_name, ", - "ext_1, ext_2, ext_3)", + "`status`, ext_1, ext_2, ", + "ext_3)", "values (#{merchantStoreId,jdbcType=BIGINT}, #{oilNo,jdbcType=INTEGER}, ", "#{oilNoName,jdbcType=VARCHAR}, #{priceVip,jdbcType=DECIMAL}, ", "#{priceGun,jdbcType=DECIMAL}, #{priceOfficial,jdbcType=DECIMAL}, ", "#{oilType,jdbcType=INTEGER}, #{oilTypeName,jdbcType=VARCHAR}, ", - "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + "#{status,jdbcType=INTEGER}, #{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, ", + "#{ext3,jdbcType=VARCHAR})" }) @Options(useGeneratedKeys=true,keyProperty="id") int insert(HighGasOilPrice record); @@ -68,6 +70,7 @@ public interface HighGasOilPriceMapper extends HighGasOilPriceMapperExt { @Result(column="price_official", property="priceOfficial", jdbcType=JdbcType.DECIMAL), @Result(column="oil_type", property="oilType", jdbcType=JdbcType.INTEGER), @Result(column="oil_type_name", property="oilTypeName", jdbcType=JdbcType.VARCHAR), + @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR), @Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR), @Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR) @@ -77,7 +80,7 @@ public interface HighGasOilPriceMapper extends HighGasOilPriceMapperExt { @Select({ "select", "id, merchant_store_id, oil_no, oil_no_name, price_vip, price_gun, price_official, ", - "oil_type, oil_type_name, ext_1, ext_2, ext_3", + "oil_type, oil_type_name, `status`, ext_1, ext_2, ext_3", "from high_gas_oil_price", "where id = #{id,jdbcType=BIGINT}" }) @@ -91,6 +94,7 @@ public interface HighGasOilPriceMapper extends HighGasOilPriceMapperExt { @Result(column="price_official", property="priceOfficial", jdbcType=JdbcType.DECIMAL), @Result(column="oil_type", property="oilType", jdbcType=JdbcType.INTEGER), @Result(column="oil_type_name", property="oilTypeName", jdbcType=JdbcType.VARCHAR), + @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR), @Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR), @Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR) @@ -116,6 +120,7 @@ public interface HighGasOilPriceMapper extends HighGasOilPriceMapperExt { "price_official = #{priceOfficial,jdbcType=DECIMAL},", "oil_type = #{oilType,jdbcType=INTEGER},", "oil_type_name = #{oilTypeName,jdbcType=VARCHAR},", + "`status` = #{status,jdbcType=INTEGER},", "ext_1 = #{ext1,jdbcType=VARCHAR},", "ext_2 = #{ext2,jdbcType=VARCHAR},", "ext_3 = #{ext3,jdbcType=VARCHAR}", diff --git a/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapperExt.java b/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapperExt.java index b404f35d..d065c26e 100644 --- a/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapperExt.java +++ b/hai-service/src/main/java/com/hai/dao/HighGasOilPriceMapperExt.java @@ -25,6 +25,7 @@ public interface HighGasOilPriceMapperExt { " WHERE" + " a.merchant_store_id = b.id " + " AND b.`status` = 1 " + + " AND a.`status` = 1 " + " AND b.region_id = #{regionId} " + " AND a.oil_no_name = #{oilNoName}" + " and b.store_name like '%${storeName}%'" + diff --git a/hai-service/src/main/java/com/hai/dao/HighGasOilPriceSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighGasOilPriceSqlProvider.java index 7742a3f2..0a028dea 100644 --- a/hai-service/src/main/java/com/hai/dao/HighGasOilPriceSqlProvider.java +++ b/hai-service/src/main/java/com/hai/dao/HighGasOilPriceSqlProvider.java @@ -60,6 +60,10 @@ public class HighGasOilPriceSqlProvider { sql.VALUES("oil_type_name", "#{oilTypeName,jdbcType=VARCHAR}"); } + if (record.getStatus() != null) { + sql.VALUES("`status`", "#{status,jdbcType=INTEGER}"); + } + if (record.getExt1() != null) { sql.VALUES("ext_1", "#{ext1,jdbcType=VARCHAR}"); } @@ -90,6 +94,7 @@ public class HighGasOilPriceSqlProvider { sql.SELECT("price_official"); sql.SELECT("oil_type"); sql.SELECT("oil_type_name"); + sql.SELECT("`status`"); sql.SELECT("ext_1"); sql.SELECT("ext_2"); sql.SELECT("ext_3"); @@ -146,6 +151,10 @@ public class HighGasOilPriceSqlProvider { sql.SET("oil_type_name = #{record.oilTypeName,jdbcType=VARCHAR}"); } + if (record.getStatus() != null) { + sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); + } + if (record.getExt1() != null) { sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}"); } @@ -175,6 +184,7 @@ public class HighGasOilPriceSqlProvider { sql.SET("price_official = #{record.priceOfficial,jdbcType=DECIMAL}"); sql.SET("oil_type = #{record.oilType,jdbcType=INTEGER}"); sql.SET("oil_type_name = #{record.oilTypeName,jdbcType=VARCHAR}"); + sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}"); sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}"); sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}"); @@ -220,6 +230,10 @@ public class HighGasOilPriceSqlProvider { sql.SET("oil_type_name = #{oilTypeName,jdbcType=VARCHAR}"); } + if (record.getStatus() != null) { + sql.SET("`status` = #{status,jdbcType=INTEGER}"); + } + if (record.getExt1() != null) { sql.SET("ext_1 = #{ext1,jdbcType=VARCHAR}"); } diff --git a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java index 7dbf717d..25285ba3 100644 --- a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java +++ b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java @@ -39,16 +39,16 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { int deleteByPrimaryKey(Long id); @Insert({ - "insert into high_ty_agent_price (ty_agent_oil_station_id, oil_no_name, ", - "oil_no, price_rate, ", - "`status`, create_time, ", - "update_time, ext_1, ", - "ext_2, ext_3)", - "values (#{tyAgentOilStationId,jdbcType=BIGINT}, #{oilNoName,jdbcType=VARCHAR}, ", - "#{oilNo,jdbcType=VARCHAR}, #{priceRate,jdbcType=DECIMAL}, ", - "#{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, ", - "#{updateTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ", - "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + "insert into high_ty_agent_price (belong_type, ty_agent_oil_station_id, ", + "oil_no_name, oil_no, ", + "price_rate, `status`, ", + "create_time, update_time, ", + "ext_1, ext_2, ext_3)", + "values (#{belongType,jdbcType=INTEGER}, #{tyAgentOilStationId,jdbcType=BIGINT}, ", + "#{oilNoName,jdbcType=VARCHAR}, #{oilNo,jdbcType=VARCHAR}, ", + "#{priceRate,jdbcType=DECIMAL}, #{status,jdbcType=INTEGER}, ", + "#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ", + "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" }) @Options(useGeneratedKeys=true,keyProperty="id") int insert(HighTyAgentPrice record); @@ -60,6 +60,7 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { @SelectProvider(type=HighTyAgentPriceSqlProvider.class, method="selectByExample") @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="belong_type", property="belongType", jdbcType=JdbcType.INTEGER), @Result(column="ty_agent_oil_station_id", property="tyAgentOilStationId", jdbcType=JdbcType.BIGINT), @Result(column="oil_no_name", property="oilNoName", jdbcType=JdbcType.VARCHAR), @Result(column="oil_no", property="oilNo", jdbcType=JdbcType.VARCHAR), @@ -75,13 +76,14 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { @Select({ "select", - "id, ty_agent_oil_station_id, oil_no_name, oil_no, price_rate, `status`, create_time, ", - "update_time, ext_1, ext_2, ext_3", + "id, belong_type, ty_agent_oil_station_id, oil_no_name, oil_no, price_rate, `status`, ", + "create_time, update_time, ext_1, ext_2, ext_3", "from high_ty_agent_price", "where id = #{id,jdbcType=BIGINT}" }) @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="belong_type", property="belongType", jdbcType=JdbcType.INTEGER), @Result(column="ty_agent_oil_station_id", property="tyAgentOilStationId", jdbcType=JdbcType.BIGINT), @Result(column="oil_no_name", property="oilNoName", jdbcType=JdbcType.VARCHAR), @Result(column="oil_no", property="oilNo", jdbcType=JdbcType.VARCHAR), @@ -106,7 +108,8 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { @Update({ "update high_ty_agent_price", - "set ty_agent_oil_station_id = #{tyAgentOilStationId,jdbcType=BIGINT},", + "set belong_type = #{belongType,jdbcType=INTEGER},", + "ty_agent_oil_station_id = #{tyAgentOilStationId,jdbcType=BIGINT},", "oil_no_name = #{oilNoName,jdbcType=VARCHAR},", "oil_no = #{oilNo,jdbcType=VARCHAR},", "price_rate = #{priceRate,jdbcType=DECIMAL},", diff --git a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java index 77c7fbe8..266b2c93 100644 --- a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java +++ b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java @@ -28,6 +28,10 @@ public class HighTyAgentPriceSqlProvider { SQL sql = new SQL(); sql.INSERT_INTO("high_ty_agent_price"); + if (record.getBelongType() != null) { + sql.VALUES("belong_type", "#{belongType,jdbcType=INTEGER}"); + } + if (record.getTyAgentOilStationId() != null) { sql.VALUES("ty_agent_oil_station_id", "#{tyAgentOilStationId,jdbcType=BIGINT}"); } @@ -78,6 +82,7 @@ public class HighTyAgentPriceSqlProvider { } else { sql.SELECT("id"); } + sql.SELECT("belong_type"); sql.SELECT("ty_agent_oil_station_id"); sql.SELECT("oil_no_name"); sql.SELECT("oil_no"); @@ -109,6 +114,10 @@ public class HighTyAgentPriceSqlProvider { sql.SET("id = #{record.id,jdbcType=BIGINT}"); } + if (record.getBelongType() != null) { + sql.SET("belong_type = #{record.belongType,jdbcType=INTEGER}"); + } + if (record.getTyAgentOilStationId() != null) { sql.SET("ty_agent_oil_station_id = #{record.tyAgentOilStationId,jdbcType=BIGINT}"); } @@ -158,6 +167,7 @@ public class HighTyAgentPriceSqlProvider { sql.UPDATE("high_ty_agent_price"); sql.SET("id = #{record.id,jdbcType=BIGINT}"); + sql.SET("belong_type = #{record.belongType,jdbcType=INTEGER}"); sql.SET("ty_agent_oil_station_id = #{record.tyAgentOilStationId,jdbcType=BIGINT}"); sql.SET("oil_no_name = #{record.oilNoName,jdbcType=VARCHAR}"); sql.SET("oil_no = #{record.oilNo,jdbcType=VARCHAR}"); @@ -178,6 +188,10 @@ public class HighTyAgentPriceSqlProvider { SQL sql = new SQL(); sql.UPDATE("high_ty_agent_price"); + if (record.getBelongType() != null) { + sql.SET("belong_type = #{belongType,jdbcType=INTEGER}"); + } + if (record.getTyAgentOilStationId() != null) { sql.SET("ty_agent_oil_station_id = #{tyAgentOilStationId,jdbcType=BIGINT}"); } diff --git a/hai-service/src/main/java/com/hai/entity/HighGasOilPrice.java b/hai-service/src/main/java/com/hai/entity/HighGasOilPrice.java index 86d468b6..cc422ef4 100644 --- a/hai-service/src/main/java/com/hai/entity/HighGasOilPrice.java +++ b/hai-service/src/main/java/com/hai/entity/HighGasOilPrice.java @@ -58,6 +58,11 @@ public class HighGasOilPrice implements Serializable { */ private String oilTypeName; + /** + * 状态 0:删除 1:正常 2:禁用 + */ + private Integer status; + private String ext1; private String ext2; @@ -138,6 +143,14 @@ public class HighGasOilPrice implements Serializable { this.oilTypeName = oilTypeName; } + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + public String getExt1() { return ext1; } @@ -183,6 +196,7 @@ public class HighGasOilPrice implements Serializable { && (this.getPriceOfficial() == null ? other.getPriceOfficial() == null : this.getPriceOfficial().equals(other.getPriceOfficial())) && (this.getOilType() == null ? other.getOilType() == null : this.getOilType().equals(other.getOilType())) && (this.getOilTypeName() == null ? other.getOilTypeName() == null : this.getOilTypeName().equals(other.getOilTypeName())) + && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) && (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1())) && (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2())) && (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3())); @@ -201,6 +215,7 @@ public class HighGasOilPrice implements Serializable { result = prime * result + ((getPriceOfficial() == null) ? 0 : getPriceOfficial().hashCode()); result = prime * result + ((getOilType() == null) ? 0 : getOilType().hashCode()); result = prime * result + ((getOilTypeName() == null) ? 0 : getOilTypeName().hashCode()); + result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode()); result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode()); result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode()); @@ -222,6 +237,7 @@ public class HighGasOilPrice implements Serializable { sb.append(", priceOfficial=").append(priceOfficial); sb.append(", oilType=").append(oilType); sb.append(", oilTypeName=").append(oilTypeName); + sb.append(", status=").append(status); sb.append(", ext1=").append(ext1); sb.append(", ext2=").append(ext2); sb.append(", ext3=").append(ext3); diff --git a/hai-service/src/main/java/com/hai/entity/HighGasOilPriceExample.java b/hai-service/src/main/java/com/hai/entity/HighGasOilPriceExample.java index 76109a29..1212ee50 100644 --- a/hai-service/src/main/java/com/hai/entity/HighGasOilPriceExample.java +++ b/hai-service/src/main/java/com/hai/entity/HighGasOilPriceExample.java @@ -685,6 +685,66 @@ public class HighGasOilPriceExample { return (Criteria) this; } + public Criteria andStatusIsNull() { + addCriterion("`status` is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("`status` is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Integer value) { + addCriterion("`status` =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("`status` <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("`status` >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("`status` >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("`status` <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("`status` <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("`status` in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("`status` not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Integer value1, Integer value2) { + addCriterion("`status` between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("`status` not between", value1, value2, "status"); + return (Criteria) this; + } + public Criteria andExt1IsNull() { addCriterion("ext_1 is null"); return (Criteria) this; diff --git a/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java b/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java index e173b643..7335748f 100644 --- a/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java +++ b/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java @@ -16,6 +16,11 @@ import java.util.Date; public class HighTyAgentPrice implements Serializable { private Long id; + /** + * 类型 1:平台 2:代理商 + */ + private Integer belongType; + /** * 代理油站id */ @@ -67,6 +72,14 @@ public class HighTyAgentPrice implements Serializable { this.id = id; } + public Integer getBelongType() { + return belongType; + } + + public void setBelongType(Integer belongType) { + this.belongType = belongType; + } + public Long getTyAgentOilStationId() { return tyAgentOilStationId; } @@ -160,6 +173,7 @@ public class HighTyAgentPrice implements Serializable { } HighTyAgentPrice other = (HighTyAgentPrice) that; return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getBelongType() == null ? other.getBelongType() == null : this.getBelongType().equals(other.getBelongType())) && (this.getTyAgentOilStationId() == null ? other.getTyAgentOilStationId() == null : this.getTyAgentOilStationId().equals(other.getTyAgentOilStationId())) && (this.getOilNoName() == null ? other.getOilNoName() == null : this.getOilNoName().equals(other.getOilNoName())) && (this.getOilNo() == null ? other.getOilNo() == null : this.getOilNo().equals(other.getOilNo())) @@ -177,6 +191,7 @@ public class HighTyAgentPrice implements Serializable { final int prime = 31; int result = 1; result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getBelongType() == null) ? 0 : getBelongType().hashCode()); result = prime * result + ((getTyAgentOilStationId() == null) ? 0 : getTyAgentOilStationId().hashCode()); result = prime * result + ((getOilNoName() == null) ? 0 : getOilNoName().hashCode()); result = prime * result + ((getOilNo() == null) ? 0 : getOilNo().hashCode()); @@ -197,6 +212,7 @@ public class HighTyAgentPrice implements Serializable { sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); + sb.append(", belongType=").append(belongType); sb.append(", tyAgentOilStationId=").append(tyAgentOilStationId); sb.append(", oilNoName=").append(oilNoName); sb.append(", oilNo=").append(oilNo); diff --git a/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java b/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java index 90f115cb..a1e1b167 100644 --- a/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java +++ b/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java @@ -186,6 +186,66 @@ public class HighTyAgentPriceExample { return (Criteria) this; } + public Criteria andBelongTypeIsNull() { + addCriterion("belong_type is null"); + return (Criteria) this; + } + + public Criteria andBelongTypeIsNotNull() { + addCriterion("belong_type is not null"); + return (Criteria) this; + } + + public Criteria andBelongTypeEqualTo(Integer value) { + addCriterion("belong_type =", value, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeNotEqualTo(Integer value) { + addCriterion("belong_type <>", value, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeGreaterThan(Integer value) { + addCriterion("belong_type >", value, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("belong_type >=", value, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeLessThan(Integer value) { + addCriterion("belong_type <", value, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeLessThanOrEqualTo(Integer value) { + addCriterion("belong_type <=", value, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeIn(List values) { + addCriterion("belong_type in", values, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeNotIn(List values) { + addCriterion("belong_type not in", values, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeBetween(Integer value1, Integer value2) { + addCriterion("belong_type between", value1, value2, "belongType"); + return (Criteria) this; + } + + public Criteria andBelongTypeNotBetween(Integer value1, Integer value2) { + addCriterion("belong_type not between", value1, value2, "belongType"); + return (Criteria) this; + } + public Criteria andTyAgentOilStationIdIsNull() { addCriterion("ty_agent_oil_station_id is null"); return (Criteria) this; diff --git a/hai-service/src/main/java/com/hai/enum_type/GasOilPriceStatusEnum.java b/hai-service/src/main/java/com/hai/enum_type/GasOilPriceStatusEnum.java new file mode 100644 index 00000000..a4ae3aa5 --- /dev/null +++ b/hai-service/src/main/java/com/hai/enum_type/GasOilPriceStatusEnum.java @@ -0,0 +1,36 @@ +package com.hai.enum_type; + +/** + * 油站油品价格状态 + * @author hurui + */ +public enum GasOilPriceStatusEnum { + status0(0 , "删除"), + status1(1 , "正常"), + status2(2 , "禁用"), + ; + + private Integer status; + private String name; + + GasOilPriceStatusEnum(int status , String name) { + this.status = status; + this.name = name; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java b/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java index 9b3d2c2e..840ee274 100644 --- a/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java +++ b/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java @@ -16,9 +16,11 @@ public interface HighTyAgentPriceService { /** * 根据代理油站id 查询详情 + * @param belongType * @param tyAgentOilStationId + * @param oilNo * @return */ - HighTyAgentPrice getDetail(Long tyAgentOilStationId, String oilNo); + HighTyAgentPrice getDetail(Integer belongType, Long tyAgentOilStationId, String oilNo); } diff --git a/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java index b601cb90..56ed3aba 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java @@ -3,6 +3,7 @@ package com.hai.service.impl; import com.hai.dao.HighGasOilPriceMapper; import com.hai.entity.HighGasOilPrice; import com.hai.entity.HighGasOilPriceExample; +import com.hai.enum_type.GasOilPriceStatusEnum; import com.hai.service.HighGasOilPriceService; import org.springframework.stereotype.Service; @@ -21,6 +22,7 @@ public class HighGasOilPriceServiceImpl implements HighGasOilPriceService { if (highGasOilPrice.getId() != null) { highGasOilPriceMapper.updateByPrimaryKey(highGasOilPrice); } else { + highGasOilPrice.setStatus(GasOilPriceStatusEnum.status1.getStatus()); highGasOilPriceMapper.insert(highGasOilPrice); } } @@ -39,7 +41,7 @@ public class HighGasOilPriceServiceImpl implements HighGasOilPriceService { @Override public List getGasOilPriceByStore(Long storeId) { HighGasOilPriceExample example = new HighGasOilPriceExample(); - example.createCriteria().andMerchantStoreIdEqualTo(storeId); + example.createCriteria().andMerchantStoreIdEqualTo(storeId).andStatusNotEqualTo(0); return highGasOilPriceMapper.selectByExample(example); } diff --git a/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java index 85e5bb32..34275f6d 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java @@ -30,9 +30,10 @@ public class HighTyAgentPriceServiceImpl implements HighTyAgentPriceService { } @Override - public HighTyAgentPrice getDetail(Long tyAgentOilStationId, String oilNo) { + public HighTyAgentPrice getDetail(Integer belongType, Long tyAgentOilStationId, String oilNo) { HighTyAgentPriceExample example = new HighTyAgentPriceExample(); example.createCriteria() + .andBelongTypeEqualTo(belongType) .andStatusEqualTo(1) .andTyAgentOilStationIdEqualTo(tyAgentOilStationId) .andOilNoEqualTo(oilNo); diff --git a/hai-service/src/main/resources/dev/commonConfig.properties b/hai-service/src/main/resources/dev/commonConfig.properties index ac35f2e5..9842dcac 100644 --- a/hai-service/src/main/resources/dev/commonConfig.properties +++ b/hai-service/src/main/resources/dev/commonConfig.properties @@ -56,3 +56,8 @@ CzNotifyUrl = https://hsgcs.dctpay.com/crest/czOrder/rechargeCallback CzAppKey = eaomqcbpdz7yjfih CzUrl = https://hfcs.dmjvip.com/index.php/third/mobile/ CzAppSecret = xkf9eoq2cjh6uvzp0mtrga134lnibdw8 + + +unionAppId=7113783e75354df2a985efd3f31b9528 +unionSecret=e2c731d2a026469aa6d218432f361653 +unionRsaKey=891f6775fba7f12cc23df7c75e02b39b891f6775fba7f12c diff --git a/hai-service/src/main/resources/pre/commonConfig.properties b/hai-service/src/main/resources/pre/commonConfig.properties index a97d4c4f..a21ce8f3 100644 --- a/hai-service/src/main/resources/pre/commonConfig.properties +++ b/hai-service/src/main/resources/pre/commonConfig.properties @@ -42,3 +42,8 @@ wx_cert=/home/project/wx_cert/ TelApiKey=2d01f6b520254b1a80f6b167832cea18 TelApiSecret=d11ee9b41e014a039f030e53ae6f5295 TelMemberId=d13091df65d64aafbf0f35d2093157b7 + + +unionAppId=7113783e75354df2a985efd3f31b9528 +unionSecret=e2c731d2a026469aa6d218432f361653 +unionRsaKey=891f6775fba7f12cc23df7c75e02b39b891f6775fba7f12c diff --git a/hai-service/src/main/resources/prod-9401/commonConfig.properties b/hai-service/src/main/resources/prod-9401/commonConfig.properties index 80e38a1e..ab28d1d7 100644 --- a/hai-service/src/main/resources/prod-9401/commonConfig.properties +++ b/hai-service/src/main/resources/prod-9401/commonConfig.properties @@ -51,3 +51,7 @@ CzNotifyUrl = https://hsg.dctpay.com/crest/czOrder/rechargeCallback CzAppKey = p429mlj3cvn5hb07 CzUrl = https://jj.dmjvip.com/index.php/third/mobile/ CzAppSecret = bf57pnqy8mkexr0v169c3g4odazwu2ij + +unionAppId=cf56ac6f9f6b4744bfba9e5587db147c +unionSecret=665193ddd44248acb461594cfe0ded5b +unionRsaKey=df0bdf7f5ef7bff770f2f21fe549c461df0bdf7f5ef7bff7 diff --git a/hai-service/src/main/resources/prod/commonConfig.properties b/hai-service/src/main/resources/prod/commonConfig.properties index 69a7bfff..47b6ade2 100644 --- a/hai-service/src/main/resources/prod/commonConfig.properties +++ b/hai-service/src/main/resources/prod/commonConfig.properties @@ -51,3 +51,8 @@ CzNotifyUrl = https://hsg.dctpay.com/crest/czOrder/rechargeCallback CzAppKey = p429mlj3cvn5hb07 CzUrl = https://jj.dmjvip.com/index.php/third/mobile/ CzAppSecret = bf57pnqy8mkexr0v169c3g4odazwu2ij + + +unionAppId=cf56ac6f9f6b4744bfba9e5587db147c +unionSecret=665193ddd44248acb461594cfe0ded5b +unionRsaKey=df0bdf7f5ef7bff770f2f21fe549c461df0bdf7f5ef7bff7 From 041931c60693f693abbfb4aed44ca38c20076f8a Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Thu, 28 Apr 2022 10:09:51 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bweb/controller/CommonController.java | 11 +- .../HighTyAgentPriceController.java | 109 +++++++++++++-- .../cweb/controller/HighGasController.java | 112 +++++++++------ .../cweb/controller/HighOrderController.java | 39 +++--- .../com/hai/dao/HighTyAgentPriceMapper.java | 17 ++- .../hai/dao/HighTyAgentPriceSqlProvider.java | 28 ++++ .../java/com/hai/entity/HighTyAgentPrice.java | 32 +++++ .../hai/entity/HighTyAgentPriceExample.java | 130 ++++++++++++++++++ .../hai/service/HighTyAgentPriceService.java | 14 +- .../impl/HighTyAgentPriceServiceImpl.java | 14 +- 10 files changed, 422 insertions(+), 84 deletions(-) diff --git a/hai-bweb/src/main/java/com/bweb/controller/CommonController.java b/hai-bweb/src/main/java/com/bweb/controller/CommonController.java index d3a77ac7..ae62e3a6 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/CommonController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/CommonController.java @@ -5,6 +5,7 @@ import com.hai.common.utils.DateUtil; import com.hai.common.utils.ResponseMsgUtil; import com.hai.config.TuanYouConfig; import com.hai.entity.SecConfig; +import com.hai.entity.SecDictionary; import com.hai.model.*; import com.hai.service.CommonService; import com.hai.service.SecConfigService; @@ -16,8 +17,11 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.Comparator; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @@ -87,8 +91,11 @@ public class CommonController { @ApiOperation(value = "根据 码值类型 查询数据字典") public ResponseData getDictionaryByCodeType(@RequestParam(name = "codeType", required = true) String codeType) { try { - - return ResponseMsgUtil.success(commonService.getDictionarys(codeType)); + List list = commonService.getDictionarys(codeType); + if (list != null && list.size() > 0) { + list = list.stream().sorted(Comparator.comparingDouble(entry -> entry.getSortId())).collect(Collectors.toList()); + } + return ResponseMsgUtil.success(list); } catch (Exception e) { log.error("CommonController --> getDictionaryByCodeType() error!", e); diff --git a/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java b/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java index e4dcf5d7..4bc05ef4 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/HighTyAgentPriceController.java @@ -9,6 +9,7 @@ import com.hai.common.exception.SysCode; import com.hai.common.security.UserCenter; import com.hai.common.utils.ResponseMsgUtil; import com.hai.entity.*; +import com.hai.model.HighMerchantStoreModel; import com.hai.model.ResponseData; import com.hai.service.*; import io.swagger.annotations.Api; @@ -67,7 +68,8 @@ public class HighTyAgentPriceController { for (Object obj : bodyArray) { JSONObject body = (JSONObject)JSONObject.toJSON(obj); if (body.getInteger("belongType") == null - || body.getLong("tyAgentOilStationId") == null + || body.getLong("oilStationId") == null + || StringUtils.isBlank(body.getString("oilStationName")) || StringUtils.isBlank(body.getString("oilNoName")) || StringUtils.isBlank(body.getString("oilNo")) || body.getBigDecimal("priceRate") == null) { @@ -75,10 +77,12 @@ public class HighTyAgentPriceController { } // 查询油站 - HighTyAgentPrice agentOilStation = tyAgentPriceService.getDetail(body.getInteger("belongType"),body.getLong("tyAgentOilStationId"), body.getString("oilNo")); + HighTyAgentPrice agentOilStation = tyAgentPriceService.getDetail(body.getInteger("belongType"),body.getLong("oilStationId"), body.getString("oilNo")); if (agentOilStation == null) { agentOilStation = new HighTyAgentPrice(); agentOilStation.setBelongType(body.getInteger("belongType")); + agentOilStation.setOilStationId(body.getLong("oilStationId")); + agentOilStation.setOilStationName(body.getString("oilStationName")); agentOilStation.setTyAgentOilStationId(body.getLong("tyAgentOilStationId")); agentOilStation.setOilNoName(body.getString("oilNoName")); agentOilStation.setOilNo(body.getString("oilNo")); @@ -97,6 +101,90 @@ public class HighTyAgentPriceController { } } + @RequestMapping(value = "/batchConfigPrice", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "批量配置价格") + public ResponseData batchConfigPrice(@RequestBody JSONObject body) { + try { + if (body.getInteger("belongType") == null + || body.getInteger("oilNo") == null + || body.getBigDecimal("priceRate") == null + || body.getJSONArray("oilStationList") == null + ) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + String oilNoName = commonService.getDictionaryCodeName("GAS_OIL_TYPE", body.getInteger("oilNo").toString()); + if (StringUtils.isBlank(oilNoName)) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的油品"); + } + + for (Object obj : body.getJSONArray("oilStationList")) { + JSONObject oilStation = (JSONObject)JSONObject.toJSON(obj); + if (oilStation.getLong("oilStationId") == null || StringUtils.isBlank(oilStation.getString("oilStationName"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, ""); + } + // 查询油站 + HighTyAgentPrice agentOilStation = tyAgentPriceService.getDetail(body.getInteger("belongType"), oilStation.getLong("oilStationId"), body.getString("oilNo")); + if (agentOilStation == null) { + agentOilStation = new HighTyAgentPrice(); + agentOilStation.setBelongType(body.getInteger("belongType")); + agentOilStation.setOilStationId(oilStation.getLong("oilStationId")); + agentOilStation.setOilStationName(oilStation.getString("oilStationName")); + agentOilStation.setTyAgentOilStationId(oilStation.getLong("tyAgentOilStationId")); + agentOilStation.setOilNoName(oilNoName); + agentOilStation.setOilNo(body.getString("oilNo")); + agentOilStation.setPriceRate(body.getBigDecimal("priceRate")); + } else { + agentOilStation.setPriceRate(body.getBigDecimal("priceRate")); + } + tyAgentPriceService.editTyAgentPrice(agentOilStation); + } + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("HighTyAgentPriceController --> editPrice() error!", e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value = "/batchConfigOilNo", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "批量油品管理") + public ResponseData batchConfigOilNo(@RequestBody JSONObject body) { + try { + if (body.getInteger("oilNo") == null + || body.getInteger("status") == null + || body.getJSONArray("oilStationList") == null + ) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + String oilNoName = commonService.getDictionaryCodeName("GAS_OIL_TYPE", body.getInteger("oilNo").toString()); + if (StringUtils.isBlank(oilNoName)) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的油品"); + } + for (Object obj : body.getJSONArray("oilStationList")) { + JSONObject oilStation = (JSONObject)JSONObject.toJSON(obj); + if (oilStation.getLong("oilStationId") == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, ""); + } + HighGasOilPrice oilNo = gasOilPriceService.getGasOilPriceByStoreAndOilNo(oilStation.getLong("oilStationId"), body.getInteger("oilNo")); + if (oilNo != null) { + oilNo.setStatus(body.getInteger("status")); + gasOilPriceService.editGasOilPrice(oilNo); + } + } + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("HighTyAgentPriceController --> batchConfigOilNo() error!", e); + return ResponseMsgUtil.exception(e); + } + } + @RequestMapping(value = "/getOilStationPrice", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "油站价格") @@ -104,11 +192,6 @@ public class HighTyAgentPriceController { @RequestParam(name = "oilStationId", required = true) Long oilStationId) { try { - HighTyAgentOilStation station = tyAgentOilStationService.getDetailByOilStationId(oilStationId); - if (station == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "加油站未分配,无法查看"); - } - List oilPriceList = gasOilPriceService.getGasOilPriceByStore(oilStationId); if (oilPriceList == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "此加油站,暂无法配置"); @@ -118,18 +201,24 @@ public class HighTyAgentPriceController { for (HighGasOilPrice price : oilPriceList) { oilPriceMap = new HashMap<>(); - oilPriceMap.put("tyAgentOilStationId", station.getId()); - oilPriceMap.put("oilStationId", price.getMerchantStoreId()); oilPriceMap.put("oilNo", price.getOilNo()); oilPriceMap.put("oilNoName", price.getOilNoName()); oilPriceMap.put("status", price.getStatus()); oilPriceMap.put("lowPrice", commonService.getDictionaryCodeName("TY_AGENT_OIL_STATION_LOW_PRICE", price.getOilNo().toString())); // 价格 - HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(belongType, station.getId(), price.getOilNo().toString()); + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(belongType, oilStationId, price.getOilNo().toString()); if (priceRate == null) { + // 油站 + HighMerchantStore store = merchantStoreService.getDetailById(price.getMerchantStoreId()); + if (store != null) { + oilPriceMap.put("oilStationId", store.getId()); + oilPriceMap.put("oilStationName", store.getStoreName()); + } oilPriceMap.put("priceRate", gasDiscountOilPriceService.getDetailByOilNo(price.getOilNo().toString()).getPriceRate()); } else { + oilPriceMap.put("oilStationId", priceRate.getOilStationId()); + oilPriceMap.put("oilStationName", priceRate.getOilStationName()); oilPriceMap.put("priceRate", priceRate.getPriceRate()); } oilPriceMapList.add(oilPriceMap); diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java b/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java index 8e7c0339..4a89815b 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java @@ -14,6 +14,7 @@ import com.hai.config.CommonSysConst; import com.hai.config.TuanYouConfig; import com.hai.dao.HighGasOrderPushMapper; import com.hai.entity.*; +import com.hai.enum_type.GasOilPriceStatusEnum; import com.hai.enum_type.OrderPushType; import com.hai.model.HighMerchantStoreModel; import com.hai.model.ResponseData; @@ -100,26 +101,33 @@ public class HighGasController { PageInfo> mapPageInfo = PageUtil.initPageInfoObj(pageNum, distance.size(), pageSize, new PageInfo<>(distance)); for (Map map : mapPageInfo.getList()) { if (StringUtils.isNotBlank(MapUtils.getString(map, "oil_no"))) { - // 查询是否配置了优惠比例 - HighGasDiscountOilPrice gasDiscountOilPrice = highGasDiscountOilPriceService.getDetailByOilNo(MapUtils.getString(map, "oil_no")); - if (gasDiscountOilPrice != null) { + + // 查询是否配置了【油站的】优惠比例 + HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(1, MapUtils.getLong(map, "id"), MapUtils.getString(map, "oil_no")); + if (tyAgentPrice != null) { // 优惠比例 / 100 = 最终优惠比例 - BigDecimal priceRate = gasDiscountOilPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); + BigDecimal priceRate = tyAgentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); // 油品国标价 * 最终优惠比例 map.put("price_vip", new BigDecimal(MapUtils.getString(map, "price_official")).multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + // 查询是否配置了【油品】优惠比例 + HighGasDiscountOilPrice gasDiscountOilPrice = highGasDiscountOilPriceService.getDetailByOilNo(MapUtils.getString(map, "oil_no")); + if (gasDiscountOilPrice != null) { + // 优惠比例 / 100 = 最终优惠比例 + BigDecimal priceRate = gasDiscountOilPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); + // 油品国标价 * 最终优惠比例 + map.put("price_vip", new BigDecimal(MapUtils.getString(map, "price_official")).multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); + } } + // 查询是否配置了【代理商】优惠比例 if (isTyAgent != null && isTyAgent == true) { - // 查询是否配置了优惠比例 - HighTyAgentOilStation tyAgentOilStation = tyAgentOilStationService.getDetailByOilStationId(MapUtils.getLong(map, "id")); - if (tyAgentOilStation != null) { - HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(2,tyAgentOilStation.getId(), MapUtils.getString(map, "oil_no")); - if (tyAgentPrice != null) { - // 优惠比例 / 100 = 最终优惠比例 - BigDecimal priceRate = tyAgentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); - // 油品国标价 * 最终优惠比例 - map.put("price_vip", new BigDecimal(MapUtils.getString(map, "price_official")).multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); - } + HighTyAgentPrice agentPrice = tyAgentPriceService.getDetail(2, MapUtils.getLong(map, "id"), MapUtils.getString(map, "oil_no")); + if (agentPrice != null) { + // 优惠比例 / 100 = 最终优惠比例 + BigDecimal priceRate = agentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); + // 油品国标价 * 最终优惠比例 + map.put("price_vip", new BigDecimal(MapUtils.getString(map, "price_official")).multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); } } } @@ -142,20 +150,26 @@ public class HighGasController { @RequestParam(name = "isTyAgent", required = false) Boolean isTyAgent) { try { BigDecimal discount = new BigDecimal("1"); + // 查询是否配置了【油站的】优惠比例 + HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(1, goodsId, oilNo); + if (tyAgentPrice != null) { + discount = tyAgentPrice.getPriceRate(); + } else { + // 查询是否配置了【油品】优惠比例 + HighGasDiscountOilPrice gasDiscountOilPrice = highGasDiscountOilPriceService.getDetailByOilNo(oilNo); + if (gasDiscountOilPrice != null) { + discount = gasDiscountOilPrice.getPriceRate(); + } + } + if (isTyAgent != null && isTyAgent.equals(true)) { - // 查询加油站 - HighTyAgentOilStation oilStation = tyAgentOilStationService.getDetailByOilStationId(goodsId); - if (oilStation != null) { - // 价格 - HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(1, oilStation.getId(), oilNo); - if (priceRate == null) { - discount = gasDiscountOilPriceService.getDetailByOilNo(oilNo).getPriceRate(); - } else { - discount = priceRate.getPriceRate(); - } + // 价格 + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(2, goodsId, oilNo); + if (priceRate == null) { + discount = gasDiscountOilPriceService.getDetailByOilNo(oilNo).getPriceRate(); + } else { + discount = priceRate.getPriceRate(); } - } else { - discount = gasDiscountOilPriceService.getDetailByOilNo(oilNo).getPriceRate(); } return ResponseMsgUtil.success(price.multiply(discount.divide(new BigDecimal("100"))).setScale(2,BigDecimal.ROUND_HALF_UP)); } catch (Exception e) { @@ -192,32 +206,42 @@ public class HighGasController { // 处理油品价格 for (Object oilPriceObject : originalOilPriceList) { JSONObject price = JSON.parseObject(JSONObject.toJSONString(oilPriceObject), JSONObject.class); - // 查询是否配置了优惠比例 - HighGasDiscountOilPrice gasDiscountOilPrice = highGasDiscountOilPriceService.getDetailByOilNo(price.getString("oilNo")); - if (gasDiscountOilPrice != null) { + + // 查询油站油品状态 + HighGasOilPrice oilNo = highGasOilPriceService.getGasOilPriceByStoreAndOilNo(store.getId(), price.getInteger("oilNo")); + if (oilNo != null && !oilNo.getStatus().equals(GasOilPriceStatusEnum.status1.getStatus())) { + continue; + } + + // 查询是否配置了【油站的】优惠比例 + HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(1, store.getId(), price.getString("oilNo")); + if (tyAgentPrice != null) { // 优惠比例 / 100 = 最终优惠比例 - BigDecimal priceRate = gasDiscountOilPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); + BigDecimal priceRate = tyAgentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); // 油品国标价 * 最终优惠比例 price.put("priceVip", price.getBigDecimal("priceOfficial").multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + // 查询是否配置了【油品】优惠比例 + HighGasDiscountOilPrice gasDiscountOilPrice = highGasDiscountOilPriceService.getDetailByOilNo(price.getString("oilNo")); + if (gasDiscountOilPrice != null) { + // 优惠比例 / 100 = 最终优惠比例 + BigDecimal priceRate = gasDiscountOilPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); + // 油品国标价 * 最终优惠比例 + price.put("priceVip", price.getBigDecimal("priceOfficial").multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); + } } + // 查询是否配置了【代理商油站】优惠比例 if (isTyAgent != null && isTyAgent == true) { - // 查询是否配置了优惠比例 - HighTyAgentOilStation tyAgentOilStation = tyAgentOilStationService.getDetailByOilStationId(store.getId()); - if (tyAgentOilStation != null) { - HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(1, tyAgentOilStation.getId(), price.getString("oilNo")); - if (tyAgentPrice != null) { - // 优惠比例 / 100 = 最终优惠比例 - BigDecimal priceRate = tyAgentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); - // 油品国标价 * 最终优惠比例 - price.put("priceVip", price.getBigDecimal("priceOfficial").multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); - } + HighTyAgentPrice agentPrice = tyAgentPriceService.getDetail(2, store.getId(), price.getString("oilNo")); + if (agentPrice != null) { + // 优惠比例 / 100 = 最终优惠比例 + BigDecimal priceRate = agentPrice.getPriceRate().divide(new BigDecimal("100").setScale(2, BigDecimal.ROUND_DOWN)); + // 油品国标价 * 最终优惠比例 + price.put("priceVip", price.getBigDecimal("priceOfficial").multiply(priceRate).setScale(2, BigDecimal.ROUND_HALF_UP)); } } - // 过滤油品,只保留汽油 - if (price.getInteger("oilType") == 1) { - newOilPriceList.add(price); - } + newOilPriceList.add(price); } result.put("oilPriceList", newOilPriceList); diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java b/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java index 507ca929..2d5b980d 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java @@ -234,27 +234,26 @@ public class HighOrderController { highOrder.setPayType(2); // 第三方平台 BigDecimal discount = new BigDecimal("1"); - if (highOrder.getIsTyAgent() != null && highOrder.getIsTyAgent() == true) { - // 查询加油站 - HighTyAgentOilStation oilStation = tyAgentOilStationService.getDetailByOilStationId(childOrder.getGoodsId()); - if (oilStation != null) { - childOrder.setGasSalesmanId(oilStation.getTySalesmanId()); - childOrder.setGasSalesmanName(oilStation.getTySalesmanName()); - childOrder.setGasAgentId(oilStation.getTyAgentId()); - childOrder.setGasAgentName(oilStation.getTyAgentName()); - childOrder.setGasOrgId(oilStation.getOrganizationId()); - childOrder.setGasOrgName(oilStation.getOrganizationName()); - - // 价格 - HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(1, oilStation.getId(), childOrder.getGasOilNo()); - if (priceRate == null) { - discount = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()).getPriceRate(); - } else { - discount = priceRate.getPriceRate(); - } - } + // 查询是否配置了【油站的】优惠比例 + HighTyAgentPrice tyAgentPrice = tyAgentPriceService.getDetail(1, childOrder.getGoodsId(), childOrder.getGasOilNo()); + if (tyAgentPrice != null) { + discount = tyAgentPrice.getPriceRate(); } else { - discount = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()).getPriceRate(); + // 查询是否配置了【油品】优惠比例 + HighGasDiscountOilPrice gasDiscountOilPrice = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()); + if (gasDiscountOilPrice != null) { + discount = gasDiscountOilPrice.getPriceRate(); + } + } + + if (highOrder.getIsTyAgent() != null && highOrder.getIsTyAgent().equals(true)) { + // 价格 + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(2, childOrder.getGoodsId(), childOrder.getGasOilNo()); + if (priceRate == null) { + discount = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()).getPriceRate(); + } else { + discount = priceRate.getPriceRate(); + } } // 获取当前加油价格 diff --git a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java index 25285ba3..cd7531a6 100644 --- a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java +++ b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceMapper.java @@ -39,12 +39,14 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { int deleteByPrimaryKey(Long id); @Insert({ - "insert into high_ty_agent_price (belong_type, ty_agent_oil_station_id, ", + "insert into high_ty_agent_price (belong_type, oil_station_id, ", + "oil_station_name, ty_agent_oil_station_id, ", "oil_no_name, oil_no, ", "price_rate, `status`, ", "create_time, update_time, ", "ext_1, ext_2, ext_3)", - "values (#{belongType,jdbcType=INTEGER}, #{tyAgentOilStationId,jdbcType=BIGINT}, ", + "values (#{belongType,jdbcType=INTEGER}, #{oilStationId,jdbcType=BIGINT}, ", + "#{oilStationName,jdbcType=VARCHAR}, #{tyAgentOilStationId,jdbcType=BIGINT}, ", "#{oilNoName,jdbcType=VARCHAR}, #{oilNo,jdbcType=VARCHAR}, ", "#{priceRate,jdbcType=DECIMAL}, #{status,jdbcType=INTEGER}, ", "#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ", @@ -61,6 +63,8 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), @Result(column="belong_type", property="belongType", jdbcType=JdbcType.INTEGER), + @Result(column="oil_station_id", property="oilStationId", jdbcType=JdbcType.BIGINT), + @Result(column="oil_station_name", property="oilStationName", jdbcType=JdbcType.VARCHAR), @Result(column="ty_agent_oil_station_id", property="tyAgentOilStationId", jdbcType=JdbcType.BIGINT), @Result(column="oil_no_name", property="oilNoName", jdbcType=JdbcType.VARCHAR), @Result(column="oil_no", property="oilNo", jdbcType=JdbcType.VARCHAR), @@ -76,14 +80,17 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { @Select({ "select", - "id, belong_type, ty_agent_oil_station_id, oil_no_name, oil_no, price_rate, `status`, ", - "create_time, update_time, ext_1, ext_2, ext_3", + "id, belong_type, oil_station_id, oil_station_name, ty_agent_oil_station_id, ", + "oil_no_name, oil_no, price_rate, `status`, create_time, update_time, ext_1, ", + "ext_2, ext_3", "from high_ty_agent_price", "where id = #{id,jdbcType=BIGINT}" }) @Results({ @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), @Result(column="belong_type", property="belongType", jdbcType=JdbcType.INTEGER), + @Result(column="oil_station_id", property="oilStationId", jdbcType=JdbcType.BIGINT), + @Result(column="oil_station_name", property="oilStationName", jdbcType=JdbcType.VARCHAR), @Result(column="ty_agent_oil_station_id", property="tyAgentOilStationId", jdbcType=JdbcType.BIGINT), @Result(column="oil_no_name", property="oilNoName", jdbcType=JdbcType.VARCHAR), @Result(column="oil_no", property="oilNo", jdbcType=JdbcType.VARCHAR), @@ -109,6 +116,8 @@ public interface HighTyAgentPriceMapper extends HighTyAgentPriceMapperExt { @Update({ "update high_ty_agent_price", "set belong_type = #{belongType,jdbcType=INTEGER},", + "oil_station_id = #{oilStationId,jdbcType=BIGINT},", + "oil_station_name = #{oilStationName,jdbcType=VARCHAR},", "ty_agent_oil_station_id = #{tyAgentOilStationId,jdbcType=BIGINT},", "oil_no_name = #{oilNoName,jdbcType=VARCHAR},", "oil_no = #{oilNo,jdbcType=VARCHAR},", diff --git a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java index 266b2c93..82245e6b 100644 --- a/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java +++ b/hai-service/src/main/java/com/hai/dao/HighTyAgentPriceSqlProvider.java @@ -32,6 +32,14 @@ public class HighTyAgentPriceSqlProvider { sql.VALUES("belong_type", "#{belongType,jdbcType=INTEGER}"); } + if (record.getOilStationId() != null) { + sql.VALUES("oil_station_id", "#{oilStationId,jdbcType=BIGINT}"); + } + + if (record.getOilStationName() != null) { + sql.VALUES("oil_station_name", "#{oilStationName,jdbcType=VARCHAR}"); + } + if (record.getTyAgentOilStationId() != null) { sql.VALUES("ty_agent_oil_station_id", "#{tyAgentOilStationId,jdbcType=BIGINT}"); } @@ -83,6 +91,8 @@ public class HighTyAgentPriceSqlProvider { sql.SELECT("id"); } sql.SELECT("belong_type"); + sql.SELECT("oil_station_id"); + sql.SELECT("oil_station_name"); sql.SELECT("ty_agent_oil_station_id"); sql.SELECT("oil_no_name"); sql.SELECT("oil_no"); @@ -118,6 +128,14 @@ public class HighTyAgentPriceSqlProvider { sql.SET("belong_type = #{record.belongType,jdbcType=INTEGER}"); } + if (record.getOilStationId() != null) { + sql.SET("oil_station_id = #{record.oilStationId,jdbcType=BIGINT}"); + } + + if (record.getOilStationName() != null) { + sql.SET("oil_station_name = #{record.oilStationName,jdbcType=VARCHAR}"); + } + if (record.getTyAgentOilStationId() != null) { sql.SET("ty_agent_oil_station_id = #{record.tyAgentOilStationId,jdbcType=BIGINT}"); } @@ -168,6 +186,8 @@ public class HighTyAgentPriceSqlProvider { sql.SET("id = #{record.id,jdbcType=BIGINT}"); sql.SET("belong_type = #{record.belongType,jdbcType=INTEGER}"); + sql.SET("oil_station_id = #{record.oilStationId,jdbcType=BIGINT}"); + sql.SET("oil_station_name = #{record.oilStationName,jdbcType=VARCHAR}"); sql.SET("ty_agent_oil_station_id = #{record.tyAgentOilStationId,jdbcType=BIGINT}"); sql.SET("oil_no_name = #{record.oilNoName,jdbcType=VARCHAR}"); sql.SET("oil_no = #{record.oilNo,jdbcType=VARCHAR}"); @@ -192,6 +212,14 @@ public class HighTyAgentPriceSqlProvider { sql.SET("belong_type = #{belongType,jdbcType=INTEGER}"); } + if (record.getOilStationId() != null) { + sql.SET("oil_station_id = #{oilStationId,jdbcType=BIGINT}"); + } + + if (record.getOilStationName() != null) { + sql.SET("oil_station_name = #{oilStationName,jdbcType=VARCHAR}"); + } + if (record.getTyAgentOilStationId() != null) { sql.SET("ty_agent_oil_station_id = #{tyAgentOilStationId,jdbcType=BIGINT}"); } diff --git a/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java b/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java index 7335748f..1d603a5c 100644 --- a/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java +++ b/hai-service/src/main/java/com/hai/entity/HighTyAgentPrice.java @@ -21,6 +21,16 @@ public class HighTyAgentPrice implements Serializable { */ private Integer belongType; + /** + * 加油站id + */ + private Long oilStationId; + + /** + * 加油站名称 + */ + private String oilStationName; + /** * 代理油站id */ @@ -80,6 +90,22 @@ public class HighTyAgentPrice implements Serializable { this.belongType = belongType; } + public Long getOilStationId() { + return oilStationId; + } + + public void setOilStationId(Long oilStationId) { + this.oilStationId = oilStationId; + } + + public String getOilStationName() { + return oilStationName; + } + + public void setOilStationName(String oilStationName) { + this.oilStationName = oilStationName; + } + public Long getTyAgentOilStationId() { return tyAgentOilStationId; } @@ -174,6 +200,8 @@ public class HighTyAgentPrice implements Serializable { HighTyAgentPrice other = (HighTyAgentPrice) that; return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) && (this.getBelongType() == null ? other.getBelongType() == null : this.getBelongType().equals(other.getBelongType())) + && (this.getOilStationId() == null ? other.getOilStationId() == null : this.getOilStationId().equals(other.getOilStationId())) + && (this.getOilStationName() == null ? other.getOilStationName() == null : this.getOilStationName().equals(other.getOilStationName())) && (this.getTyAgentOilStationId() == null ? other.getTyAgentOilStationId() == null : this.getTyAgentOilStationId().equals(other.getTyAgentOilStationId())) && (this.getOilNoName() == null ? other.getOilNoName() == null : this.getOilNoName().equals(other.getOilNoName())) && (this.getOilNo() == null ? other.getOilNo() == null : this.getOilNo().equals(other.getOilNo())) @@ -192,6 +220,8 @@ public class HighTyAgentPrice implements Serializable { int result = 1; result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); result = prime * result + ((getBelongType() == null) ? 0 : getBelongType().hashCode()); + result = prime * result + ((getOilStationId() == null) ? 0 : getOilStationId().hashCode()); + result = prime * result + ((getOilStationName() == null) ? 0 : getOilStationName().hashCode()); result = prime * result + ((getTyAgentOilStationId() == null) ? 0 : getTyAgentOilStationId().hashCode()); result = prime * result + ((getOilNoName() == null) ? 0 : getOilNoName().hashCode()); result = prime * result + ((getOilNo() == null) ? 0 : getOilNo().hashCode()); @@ -213,6 +243,8 @@ public class HighTyAgentPrice implements Serializable { sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); sb.append(", belongType=").append(belongType); + sb.append(", oilStationId=").append(oilStationId); + sb.append(", oilStationName=").append(oilStationName); sb.append(", tyAgentOilStationId=").append(tyAgentOilStationId); sb.append(", oilNoName=").append(oilNoName); sb.append(", oilNo=").append(oilNo); diff --git a/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java b/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java index a1e1b167..31d48efe 100644 --- a/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java +++ b/hai-service/src/main/java/com/hai/entity/HighTyAgentPriceExample.java @@ -246,6 +246,136 @@ public class HighTyAgentPriceExample { return (Criteria) this; } + public Criteria andOilStationIdIsNull() { + addCriterion("oil_station_id is null"); + return (Criteria) this; + } + + public Criteria andOilStationIdIsNotNull() { + addCriterion("oil_station_id is not null"); + return (Criteria) this; + } + + public Criteria andOilStationIdEqualTo(Long value) { + addCriterion("oil_station_id =", value, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdNotEqualTo(Long value) { + addCriterion("oil_station_id <>", value, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdGreaterThan(Long value) { + addCriterion("oil_station_id >", value, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdGreaterThanOrEqualTo(Long value) { + addCriterion("oil_station_id >=", value, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdLessThan(Long value) { + addCriterion("oil_station_id <", value, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdLessThanOrEqualTo(Long value) { + addCriterion("oil_station_id <=", value, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdIn(List values) { + addCriterion("oil_station_id in", values, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdNotIn(List values) { + addCriterion("oil_station_id not in", values, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdBetween(Long value1, Long value2) { + addCriterion("oil_station_id between", value1, value2, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationIdNotBetween(Long value1, Long value2) { + addCriterion("oil_station_id not between", value1, value2, "oilStationId"); + return (Criteria) this; + } + + public Criteria andOilStationNameIsNull() { + addCriterion("oil_station_name is null"); + return (Criteria) this; + } + + public Criteria andOilStationNameIsNotNull() { + addCriterion("oil_station_name is not null"); + return (Criteria) this; + } + + public Criteria andOilStationNameEqualTo(String value) { + addCriterion("oil_station_name =", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameNotEqualTo(String value) { + addCriterion("oil_station_name <>", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameGreaterThan(String value) { + addCriterion("oil_station_name >", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameGreaterThanOrEqualTo(String value) { + addCriterion("oil_station_name >=", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameLessThan(String value) { + addCriterion("oil_station_name <", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameLessThanOrEqualTo(String value) { + addCriterion("oil_station_name <=", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameLike(String value) { + addCriterion("oil_station_name like", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameNotLike(String value) { + addCriterion("oil_station_name not like", value, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameIn(List values) { + addCriterion("oil_station_name in", values, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameNotIn(List values) { + addCriterion("oil_station_name not in", values, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameBetween(String value1, String value2) { + addCriterion("oil_station_name between", value1, value2, "oilStationName"); + return (Criteria) this; + } + + public Criteria andOilStationNameNotBetween(String value1, String value2) { + addCriterion("oil_station_name not between", value1, value2, "oilStationName"); + return (Criteria) this; + } + public Criteria andTyAgentOilStationIdIsNull() { addCriterion("ty_agent_oil_station_id is null"); return (Criteria) this; diff --git a/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java b/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java index 840ee274..2a564d53 100644 --- a/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java +++ b/hai-service/src/main/java/com/hai/service/HighTyAgentPriceService.java @@ -2,6 +2,8 @@ package com.hai.service; import com.hai.entity.HighTyAgentPrice; +import java.util.List; + /** * 加油价格 * @author hurui @@ -17,10 +19,18 @@ public interface HighTyAgentPriceService { /** * 根据代理油站id 查询详情 * @param belongType - * @param tyAgentOilStationId + * @param oilStationId * @param oilNo * @return */ - HighTyAgentPrice getDetail(Integer belongType, Long tyAgentOilStationId, String oilNo); + HighTyAgentPrice getDetail(Integer belongType, Long oilStationId, String oilNo); + + /** + * 查询油站价格 + * @param belongType + * @param oilStationId + * @return + */ + List getPriceList(Integer belongType, Long oilStationId); } diff --git a/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java index 34275f6d..949f7ff2 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighTyAgentPriceServiceImpl.java @@ -30,12 +30,12 @@ public class HighTyAgentPriceServiceImpl implements HighTyAgentPriceService { } @Override - public HighTyAgentPrice getDetail(Integer belongType, Long tyAgentOilStationId, String oilNo) { + public HighTyAgentPrice getDetail(Integer belongType, Long oilStationId, String oilNo) { HighTyAgentPriceExample example = new HighTyAgentPriceExample(); example.createCriteria() .andBelongTypeEqualTo(belongType) .andStatusEqualTo(1) - .andTyAgentOilStationIdEqualTo(tyAgentOilStationId) + .andOilStationIdEqualTo(oilStationId) .andOilNoEqualTo(oilNo); List list = tyAgentPriceMapper.selectByExample(example); if (list.size() > 0) { @@ -43,4 +43,14 @@ public class HighTyAgentPriceServiceImpl implements HighTyAgentPriceService { } return null; } + + @Override + public List getPriceList(Integer belongType, Long oilStationId) { + HighTyAgentPriceExample example = new HighTyAgentPriceExample(); + example.createCriteria() + .andBelongTypeEqualTo(belongType) + .andOilStationIdEqualTo(oilStationId) + .andStatusEqualTo(1); + return tyAgentPriceMapper.selectByExample(example); + } } From a2163d8b35add1aa131c0bc4aa8cfebe5d8029a5 Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Thu, 5 May 2022 09:08:24 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HighCouponCodeController.java | 106 ++++++++++++++++++ .../com/hai/dao/HighCouponCodeMapperExt.java | 20 ++++ .../java/com/hai/model/GzSinopecModel.java | 62 ++++++++++ .../hai/service/HighCouponCodeService.java | 8 ++ .../impl/HighCouponAgentServiceImpl.java | 1 + .../impl/HighCouponCodeServiceImpl.java | 13 +++ .../HighTyAgentOilStationServiceImpl.java | 15 +++ 7 files changed, 225 insertions(+) create mode 100644 hai-service/src/main/java/com/hai/model/GzSinopecModel.java diff --git a/hai-bweb/src/main/java/com/bweb/controller/HighCouponCodeController.java b/hai-bweb/src/main/java/com/bweb/controller/HighCouponCodeController.java index 0a3c65c5..e668ed17 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/HighCouponCodeController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/HighCouponCodeController.java @@ -1,6 +1,8 @@ package com.bweb.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.bweb.config.SysConst; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hai.common.exception.ErrorCode; @@ -8,7 +10,10 @@ import com.hai.common.exception.ErrorHelp; import com.hai.common.exception.SysCode; import com.hai.common.security.SessionObject; import com.hai.common.security.UserCenter; +import com.hai.common.utils.DateUtil; import com.hai.common.utils.ResponseMsgUtil; +import com.hai.model.GzSinopecModel; +import com.hai.model.OilCardOrderModel; import com.hai.model.ResponseData; import com.hai.model.UserInfoModel; import com.hai.service.HighCouponCodeService; @@ -22,7 +27,10 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -94,4 +102,102 @@ public class HighCouponCodeController { return ResponseMsgUtil.exception(e); } } + + @RequestMapping(value="/getGzSinopecAssignList",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "查询贵州中石化分配列表") + public ResponseData getGzSinopecAssignList(@RequestParam(name = "couponName", required = false) String couponName, + @RequestParam(name = "status", required = false) Integer status, + @RequestParam(name = "assignTimeS", required = false) Long assignTimeS, + @RequestParam(name = "assignTimeE", required = false) Long assignTimeE, + @RequestParam(name = "pageNum", required = true) Integer pageNum, + @RequestParam(name = "pageSize", required = true) Integer pageSize) { + try { + Map map = new HashMap<>(); + map.put("couponName", couponName); + map.put("status", status); + map.put("assignTimeS", assignTimeS); + map.put("assignTimeE", assignTimeE); + + PageHelper.startPage(pageNum, pageSize); + return ResponseMsgUtil.success(new PageInfo<>(highCouponCodeService.getGzSinopecAssignList(map))); + + } catch (Exception e) { + log.error("HighCouponController -> getGzSinopeAssigncList() error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/importGzSinopecAssign",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "导出贵州中石化分配列表") + public ResponseData importGzSinopecAssign(@RequestParam(name = "couponName", required = false) String couponName, + @RequestParam(name = "assignTimeS", required = false) Long assignTimeS, + @RequestParam(name = "assignTimeE", required = false) Long assignTimeE, + @RequestParam(name = "status", required = false) Integer status) { + try { + Map map = new HashMap<>(); + map.put("couponName", couponName); + map.put("status", status); + map.put("assignTimeS", assignTimeS); + map.put("assignTimeE", assignTimeE); + + List list = highCouponCodeService.getGzSinopecAssignList(map); + + List headList = new ArrayList<>(); + headList.add("卡券名称"); + headList.add("卡券金额"); + headList.add("分发时间"); + headList.add("分发手机号"); + headList.add("状态"); + + List> dataList = new ArrayList<>(); + List data; + + for (GzSinopecModel gzSinopecModel: list) { + data = new ArrayList<>(); + data.add(gzSinopecModel.getCouponName()); + data.add(gzSinopecModel.getSalesPrice()); + data.add(DateUtil.format(gzSinopecModel.getSalesTime(), "yyyy-MM-dd HH:mm:ss")); + data.add(gzSinopecModel.getConvertUserPhone()); + if (gzSinopecModel.getStatus().equals(2)) { + data.add("待使用"); + } else if (gzSinopecModel.getStatus().equals(3)) { + data.add("已使用"); + } + dataList.add(data); + } + + String fileUrl = SysConst.getSysConfig().getFileUrl() + "/temporary/"; + String pathName = System.currentTimeMillis()+".xlsx"; + File file = new File(fileUrl); + if (!file.exists()) { + file.mkdirs(); + } + EasyExcel.write(fileUrl+pathName).head(generationHead(headList)).sheet("sheet1").doWrite(dataList); + + return ResponseMsgUtil.success(pathName); + + } catch (Exception e) { + log.error("HighCouponController -> importGzSinopecAssign() error!",e); + return ResponseMsgUtil.exception(e); + } + } + + + /** + * 生成头部 + * @param headList + * @return + */ + private static List> generationHead(List headList) { + List> list = new ArrayList<>(); + List head; + for (String headStr : headList) { + head = new ArrayList<>(); + head.add(headStr); + list.add(head); + } + return list; + } } diff --git a/hai-service/src/main/java/com/hai/dao/HighCouponCodeMapperExt.java b/hai-service/src/main/java/com/hai/dao/HighCouponCodeMapperExt.java index 5456b1b4..4f46287d 100644 --- a/hai-service/src/main/java/com/hai/dao/HighCouponCodeMapperExt.java +++ b/hai-service/src/main/java/com/hai/dao/HighCouponCodeMapperExt.java @@ -1,10 +1,12 @@ package com.hai.dao; import com.hai.entity.HighCouponCode; +import com.hai.model.GzSinopecModel; import org.apache.ibatis.annotations.*; import org.apache.ibatis.type.JdbcType; import java.util.List; +import java.util.Map; /** * mapper扩展类 @@ -83,4 +85,22 @@ public interface HighCouponCodeMapperExt { }) HighCouponCode selectCouponCodeByUserDiscount(@Param("discountUserRelId") Long discountUserRelId); + @Select({""}) + List selectGzSinopecAssignList(@Param("param") Map param); + } diff --git a/hai-service/src/main/java/com/hai/model/GzSinopecModel.java b/hai-service/src/main/java/com/hai/model/GzSinopecModel.java new file mode 100644 index 00000000..bb315771 --- /dev/null +++ b/hai-service/src/main/java/com/hai/model/GzSinopecModel.java @@ -0,0 +1,62 @@ +package com.hai.model; + +import java.math.BigDecimal; +import java.util.Date; + +public class GzSinopecModel { + + // 卡券名称 + private String couponName; + + // 卡券价格 + private BigDecimal salesPrice; + + // 销售时间 + private Date salesTime; + + // 领取人 + private String convertUserPhone; + + // 状态 + private Integer status; + + public String getCouponName() { + return couponName; + } + + public void setCouponName(String couponName) { + this.couponName = couponName; + } + + public BigDecimal getSalesPrice() { + return salesPrice; + } + + public void setSalesPrice(BigDecimal salesPrice) { + this.salesPrice = salesPrice; + } + + public Date getSalesTime() { + return salesTime; + } + + public void setSalesTime(Date salesTime) { + this.salesTime = salesTime; + } + + public String getConvertUserPhone() { + return convertUserPhone; + } + + public void setConvertUserPhone(String convertUserPhone) { + this.convertUserPhone = convertUserPhone; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } +} diff --git a/hai-service/src/main/java/com/hai/service/HighCouponCodeService.java b/hai-service/src/main/java/com/hai/service/HighCouponCodeService.java index 4b7e4e4b..465840b6 100644 --- a/hai-service/src/main/java/com/hai/service/HighCouponCodeService.java +++ b/hai-service/src/main/java/com/hai/service/HighCouponCodeService.java @@ -2,6 +2,7 @@ package com.hai.service; import com.hai.entity.HighCoupon; import com.hai.entity.HighCouponCode; +import com.hai.model.GzSinopecModel; import com.hai.model.OrderSumModel; import com.hai.model.UserInfoModel; @@ -111,4 +112,11 @@ public interface HighCouponCodeService { **/ List getCouponCodeList(Map map); + /** + * 查询贵州中石化卡券 + * @param map + * @return + */ + List getGzSinopecAssignList(Map map) throws Exception; + } diff --git a/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java index 986f173d..17727303 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java @@ -553,6 +553,7 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService { convertCode.setConvertUserPhone(phone); convertCode.setRemark(remark); convertCode.setCouponCode(System.currentTimeMillis()+""); + convertCode.setSalesTime(new Date()); convertCode.setStatus(2); highCouponAgentCodeMapper.updateByPrimaryKey(convertCode); diff --git a/hai-service/src/main/java/com/hai/service/impl/HighCouponCodeServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighCouponCodeServiceImpl.java index abc2c985..8ebf0472 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighCouponCodeServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighCouponCodeServiceImpl.java @@ -10,6 +10,7 @@ import com.hai.dao.HighChildOrderMapper; import com.hai.dao.HighCouponCodeMapper; import com.hai.dao.HighCouponCodeMapperExt; import com.hai.entity.*; +import com.hai.model.GzSinopecModel; import com.hai.model.UserInfoModel; import com.hai.service.*; import org.apache.commons.collections4.MapUtils; @@ -282,5 +283,17 @@ public class HighCouponCodeServiceImpl implements HighCouponCodeService { return highCouponCodeMapper.selectByExample(example); } + @Override + public List getGzSinopecAssignList(Map map) throws Exception { + if (MapUtils.getLong(map, "assignTimeS") != null) { + map.put("assignTimeS", DateUtil.date2String(new Date(MapUtils.getLong(map, "assignTimeS")), "yyyy-MM-dd HH:mm:ss")); + } + + if (MapUtils.getLong(map, "assignTimeE") != null) { + map.put("assignTimeE", DateUtil.date2String(new Date(MapUtils.getLong(map, "assignTimeE")), "yyyy-MM-dd HH:mm:ss")); + } + return highCouponCodeMapper.selectGzSinopecAssignList(map); + } + } diff --git a/hai-service/src/main/java/com/hai/service/impl/HighTyAgentOilStationServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighTyAgentOilStationServiceImpl.java index b6bc745c..ca5d6875 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighTyAgentOilStationServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighTyAgentOilStationServiceImpl.java @@ -29,6 +29,9 @@ public class HighTyAgentOilStationServiceImpl implements HighTyAgentOilStationSe @Resource private HighTySalesmanService tySalesmanService; + @Resource + private HighTyAgentPriceService tyAgentPriceService; + @Resource private HighMerchantStoreService merchantStoreService; @@ -106,6 +109,12 @@ public class HighTyAgentOilStationServiceImpl implements HighTyAgentOilStationSe } detail.setStatus(0); editData(detail); + + List priceList = tyAgentPriceService.getPriceList(2, detail.getOilStationId()); + for (HighTyAgentPrice price : priceList) { + price.setStatus(0); + tyAgentPriceService.editTyAgentPrice(price); + } } } @@ -144,6 +153,12 @@ public class HighTyAgentOilStationServiceImpl implements HighTyAgentOilStationSe detail.setTySalesmanId(null); detail.setTySalesmanName(null); editData(detail); + + List priceList = tyAgentPriceService.getPriceList(2, detail.getOilStationId()); + for (HighTyAgentPrice price : priceList) { + price.setStatus(0); + tyAgentPriceService.editTyAgentPrice(price); + } } } From 48ae277b5d4aa745ab55559cf5082b085b937c7d Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Fri, 6 May 2022 15:48:45 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cweb/controller/HighTestController.java | 2 +- .../cweb/controller/pay/OrderController.java | 14 ++- .../controller/pay/WechatPayController.java | 8 +- .../java/com/hai/config/WxOrderConfig.java | 2 +- .../pay/impl/GoodsOrderServiceImpl.java | 111 +++++++++++++++--- 5 files changed, 108 insertions(+), 29 deletions(-) diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighTestController.java b/hai-cweb/src/main/java/com/cweb/controller/HighTestController.java index 2d308e4f..f5240a0f 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighTestController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighTestController.java @@ -1 +1 @@ -package com.cweb.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cweb.config.SysConst; import com.hai.common.exception.ErrorCode; import com.hai.common.exception.ErrorHelp; import com.hai.common.exception.SysCode; import com.hai.common.pay.util.XmlUtil; import com.hai.common.pay.util.sdk.WXPayConstants; import com.hai.common.security.SessionObject; import com.hai.common.utils.*; import com.hai.config.*; import com.hai.dao.HighGasOrderPushMapper; import com.hai.entity.*; import com.hai.model.*; import com.hai.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContexts; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.util.IdGenerator; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.net.ssl.SSLContext; import javax.servlet.http.HttpServletRequest; import java.io.FileInputStream; import java.math.BigDecimal; import java.security.KeyStore; import java.util.*; /** * @Auther: 胡锐 * @Description: * @Date: 2021/3/26 23:08 */ @Controller @RequestMapping(value = "/test") @Api(value = "订单接口") public class HighTestController { private static Logger log = LoggerFactory.getLogger(HighTestController.class); @Resource private HighMerchantService highMerchantService; @Resource private HighMerchantStoreService highMerchantStoreService; @Resource private HighGasOilPriceService highGasOilPriceService; @Resource private HighOrderService highOrderService; @Resource private HighProfitSharingRecordService highProfitSharingRecordService; @Resource private HighGasOrderPushMapper highGasOrderPushMapper; @Resource private HuiLianTongConfig huiLianTongConfig; @Resource private UnionPayConfig unionPayConfig; @Resource private UnionStagingPayConfig unionStagingPayConfig; @Resource private UnionUserConfig unionUserConfig; @Resource private OutRechargeOrderService outRechargeOrderService; @Resource private HighOilCardService oilCardService; @RequestMapping(value = "/getHuiLianTongCardInfo", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询汇联通工会卡详情") public ResponseData getHuiLianTongCardInfo(@RequestParam(name = "cardNo", required = true) String cardNo, HttpServletRequest request) { try { // 用户 // JSONObject cardInfo = HuiLianTongUnionCardConfig.queryCardInfo(cardNo); if (StringUtils.isBlank(cardInfo.getString("data"))) { throw ErrorHelp.genException(SysCode.System, ErrorCode.REQUEST_ERROR, ""); } return ResponseMsgUtil.success(HuiLianTongUnionCardConfig.resolveResponse(cardInfo.getString("data"))); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/oilCardRefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "油卡退款") public ResponseData oilCardRefund(@RequestParam(name = "orderNo", required = true) String orderNo, HttpServletRequest request) { try { oilCardService.refund(orderNo); return ResponseMsgUtil.success(""); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryGasInfoByGasId", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据油站 id 拉取最新的油站数据") public ResponseData queryGasInfoByGasId(@RequestParam(name = "gasId", required = true) String gasId, HttpServletRequest request) { try { return ResponseMsgUtil.success(TuanYouConfig.queryGasInfoByGasId(gasId)); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } // // @RequestMapping(value = "/getMobile", method = RequestMethod.GET) // @ResponseBody // @ApiOperation(value = "话费充值") // public ResponseData getMobile( // @RequestParam(name = "orderNo", required = true) String orderNo, // @RequestParam(name = "amount", required = true) Integer amount, // @RequestParam(name = "phone", required = true) String phone, // HttpServletRequest request) { // try { // return ResponseMsgUtil.success(outRechargeOrderService.getMobile(phone,amount,orderNo)); // // } catch (Exception e) { // log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); // return ResponseMsgUtil.exception(e); // } // } @RequestMapping(value = "/initTYMerchantStore", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "初始化加油站") public ResponseData initTYMerchantStore(@RequestParam(name = "merchantId", required = true) Long merchantId) throws Exception { HighMerchantModel merchant = highMerchantService.getMerchantById(merchantId); if (merchant == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户"); } JSONObject jsonObjectP = TuanYouConfig.queryGasInfoListByPage(1, 1000); JSONObject resultObjectP = jsonObjectP.getObject("result", JSONObject.class); for (int i = 1; i <= resultObjectP.getInteger("totalPageNum").intValue();i++) { JSONObject jsonObject = TuanYouConfig.queryGasInfoListByPage(i, 1000); JSONObject resultObject = jsonObject.getObject("result", JSONObject.class); JSONArray jsonArray = resultObject.getJSONArray("gasInfoList"); HighMerchantStore highMerchantStore; HighGasOilPrice highGasOilPrice; for (Object gasObject : jsonArray) { JSONObject object = JSONObject.parseObject(JSONObject.toJSONString(gasObject)); HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreByKey(object.getString("gasId")); if (store != null) { store.setType(1); store.setMerchantId(merchant.getId()); store.setCompanyId(merchant.getCompanyId()); store.setStoreKey(object.getString("gasId")); store.setStoreName(object.getString("gasName")); store.setStoreLogo(object.getString("gasLogoSmall")); store.setRegionId(object.getLong("provinceCode")); store.setRegionName(object.getString("provinceName")); store.setAddress(object.getString("gasAddress")); store.setLongitude(object.getString("gasAddressLongitude")); store.setLatitude(object.getString("gasAddressLatitude")); store.setStatus(object.getInteger("gasStatus")); store.setOperatorId(0L); store.setOperatorName("系统创建"); store.setUpdateTime(new Date()); store.setExt1(object.getString("gasSourceId")); highMerchantStoreService.updateMerchantStoreDetail(store); JSONArray oilPriceList = object.getJSONArray("oilPriceList"); for (Object oilPrice : oilPriceList) { JSONObject oilPriceObject = JSONObject.parseObject(JSONObject.toJSONString(oilPrice)); // 查询门店油号 highGasOilPrice = highGasOilPriceService.getGasOilPriceByStoreAndOilNo(store.getId(), oilPriceObject.getInteger("oilNo")); if (highGasOilPrice == null) { highGasOilPrice = new HighGasOilPrice(); highGasOilPrice.setMerchantStoreId(store.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); highGasOilPrice.setOilNoName(oilPriceObject.getString("oilNoName")); highGasOilPrice.setPriceVip(oilPriceObject.getBigDecimal("priceVip")); highGasOilPrice.setPriceGun(oilPriceObject.getBigDecimal("priceGun")); highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); } else { highGasOilPrice.setMerchantStoreId(store.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); highGasOilPrice.setOilNoName(oilPriceObject.getString("oilNoName")); highGasOilPrice.setPriceVip(oilPriceObject.getBigDecimal("priceVip")); highGasOilPrice.setPriceGun(oilPriceObject.getBigDecimal("priceGun")); highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); } highGasOilPriceService.editGasOilPrice(highGasOilPrice); } } else { highMerchantStore = new HighMerchantStore(); highMerchantStore.setType(1); highMerchantStore.setMerchantId(merchant.getId()); highMerchantStore.setCompanyId(merchant.getCompanyId()); highMerchantStore.setStoreKey(object.getString("gasId")); highMerchantStore.setStoreName(object.getString("gasName")); highMerchantStore.setStoreLogo(object.getString("gasLogoSmall")); highMerchantStore.setRegionId(object.getLong("provinceCode")); highMerchantStore.setRegionName(object.getString("provinceName")); highMerchantStore.setAddress(object.getString("gasAddress")); highMerchantStore.setLongitude(object.getString("gasAddressLongitude")); highMerchantStore.setLatitude(object.getString("gasAddressLatitude")); highMerchantStore.setStatus(1); highMerchantStore.setOperatorId(0L); highMerchantStore.setOperatorName("系统创建"); highMerchantStore.setCreateTime(new Date()); highMerchantStore.setUpdateTime(new Date()); highMerchantStore.setExt1(object.getString("gasSourceId")); HighMerchantStoreModel merchantStoreModel = new HighMerchantStoreModel(); BeanUtils.copyProperties(highMerchantStore, merchantStoreModel); highMerchantStoreService.insertMerchantStore(merchantStoreModel); JSONArray oilPriceList = object.getJSONArray("oilPriceList"); for (Object oilPrice : oilPriceList) { JSONObject oilPriceObject = JSONObject.parseObject(JSONObject.toJSONString(oilPrice)); highGasOilPrice = new HighGasOilPrice(); highGasOilPrice.setMerchantStoreId(merchantStoreModel.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); highGasOilPrice.setOilNoName(oilPriceObject.getString("oilNoName")); highGasOilPrice.setPriceVip(oilPriceObject.getBigDecimal("priceVip")); highGasOilPrice.setPriceGun(oilPriceObject.getBigDecimal("priceGun")); highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); highGasOilPriceService.editGasOilPrice(highGasOilPrice); } } } } return ResponseMsgUtil.success("初始化完成"); } @RequestMapping(value = "/detectTYMerchantStore", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "检测加油站") public ResponseData detectTYMerchantStore(@RequestParam(name = "merchantId", required = true) Long merchantId) throws Exception { HighMerchantModel merchant = highMerchantService.getMerchantById(merchantId); if (merchant == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户"); } Map param = new HashMap<>(); param.put("merchantId", merchant.getId()); List stores = highMerchantStoreService.getMerchantStoreList(param); for (HighMerchantStore store : stores) { JSONObject jsonObject = TuanYouConfig.queryGasInfoByGasId(store.getStoreKey()); if (jsonObject != null && jsonObject.getString("code").equals("200")) { JSONObject result = jsonObject.getJSONObject("result"); store.setStatus(result.getInteger("gasStatus")); } else { store.setStatus(0); } highMerchantStoreService.updateMerchantStoreDetail(store); } return ResponseMsgUtil.success("初始化完成"); } @RequestMapping(value = "/pushTuanYouOrder", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "推送团油订单") public ResponseData pushTuanYouOrder(@RequestParam(name = "orderNo", required = true) String orderNo) { try { HighOrder order = highOrderService.getOrderByOrderNo(orderNo); for (HighChildOrder highChildOrder : order.getHighChildOrderList()) { HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreById(highChildOrder.getGoodsId()); // 推送团油订单 Map paramMap = new HashMap<>(); paramMap.put("gasId", store.getStoreKey()); paramMap.put("oilNo", highChildOrder.getGasOilNo()); paramMap.put("gunNo", highChildOrder.getGasGunNo()); BigDecimal priceGun = highChildOrder.getGasPriceGun(); BigDecimal priceVip = highChildOrder.getGasPriceVip(); paramMap.put("priceGun", priceGun); // 枪单价 paramMap.put("priceVip", priceVip); // 优惠价 paramMap.put("driverPhone", order.getMemPhone()); // paramMap.put("driverPhone", "17726395120"); paramMap.put("thirdSerialNo", order.getOrderNo()); paramMap.put("refuelingAmount", highChildOrder.getTotalPrice()); // 油品类型 1:汽油:2:柴油;3:天然气 if (highChildOrder.getGasOilType() == 1) { paramMap.put("accountNo", CommonSysConst.getSysConfig().getTuanYouGasolineAccount()); } else if (highChildOrder.getGasOilType() == 2) { paramMap.put("accountNo", CommonSysConst.getSysConfig().getTuanYouDieselAccount()); } JSONObject orderPushObject = TuanYouConfig.refuelingOrderPush(paramMap); // 推送团油订单记录 HighGasOrderPush highGasOrderPush = new HighGasOrderPush(); highGasOrderPush.setCreateTime(new Date()); highGasOrderPush.setCode(orderPushObject.getString("code")); highGasOrderPush.setRequestContent(JSONObject.toJSONString(paramMap)); highGasOrderPush.setReturnContent(orderPushObject.toJSONString()); highGasOrderPushMapper.insert(highGasOrderPush); if (orderPushObject != null && orderPushObject.getString("code").equals("200")) { highChildOrder.setGasOrderNo(orderPushObject.getJSONObject("result").getString("orderNo")); } highOrderService.updateOrder(order); } return ResponseMsgUtil.success(order); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryCompanyAccountInfo2JD", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询团油余额") public ResponseData queryCompanyAccountInfo2JD() { try { return ResponseMsgUtil.success(TuanYouConfig.queryCompanyAccountInfo2JD()); } catch (Exception e) { log.error("HighOrderController --> queryCompanyAccountInfo2JD() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryCompanyPriceDetail", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询团油余额") public ResponseData queryCompanyPriceDetail() { try { return ResponseMsgUtil.success(TuanYouConfig.queryCompanyPriceDetail("LW000115995", "92")); } catch (Exception e) { log.error("HighOrderController --> queryCompanyAccountInfo2JD() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/couJointDist", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "派发贵州卡券") public ResponseData couJointDist(@RequestParam(name = "token", required = true) String token) { try { return ResponseMsgUtil.success(HuiLianTongConfig.couJointDist(token,"HF2022031509263475105","20JY000575",1,"18385214742", "oArhO6QZSIJAcawo1Wwx5cKKZ0ns")); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/tradeQuery", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "派发贵州卡券") public ResponseData tradeQuery(@RequestParam(name = "token", required = true) String token) { try { return ResponseMsgUtil.success(UnionPayConfig.tradeQuery(UnionPayConfig.MER_ID3,UnionPayConfig.TERM_ID3,"HF2022031215130820400")); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/zwrefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "派发贵州卡券") public ResponseData zwrefund() { try { return ResponseMsgUtil.success(UnionPayConfig.zwrefund(UnionPayConfig.MER_ID3,UnionPayConfig.TERM_ID3,"HF2022031215130820400", "31720220312151311876232", new BigDecimal("270").multiply(new BigDecimal("100")).longValue())); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/unionPay", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "银联支付") public ResponseData unionPay(HttpServletRequest request) { try { // return ResponseMsgUtil.success(RequestUtils.getIpAddress(request)); return ResponseMsgUtil.success(unionPayConfig.upPreOrder(UnionPayConfig.MER_ID3, UnionPayConfig.TERM_ID3, "HF"+System.currentTimeMillis(), new BigDecimal("1"), "test",CommonSysConst.getSysConfig().getUnionPayNotifyUrl(), request)); } catch (Exception e) { log.error("HighOrderController --> unionPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/getToken", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "获取贵州中石化token") public ResponseData getToken() { try { return ResponseMsgUtil.success(huiLianTongConfig.getToken()); } catch (Exception e) { log.error("HighOrderController --> getToken() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/unionTradeQuery", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "银联交易查询") public ResponseData unionTradeQuery(@RequestParam(name = "paySerialNo", required = true) String paySerialNo) { try { return ResponseMsgUtil.success(UnionPayConfig.tradeQuery(UnionPayConfig.MER_ID1, UnionPayConfig.TERM_ID1, paySerialNo)); } catch (Exception e) { log.error("HighOrderController --> unionTradeQuery() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/getBackendToken", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "获取访问令牌backendToken") public ResponseData getBackendToken() { try { return ResponseMsgUtil.success(unionUserConfig.getBackendToken()); } catch (Exception e) { log.error("HighOrderController --> getBackendToken() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/wxSplitAccount", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "微信分账") public ResponseData wxSplitAccount() { try { HighOrder orderNo = highOrderService.getOrderByOrderNo("HF2021101812025050304"); wxProfitsharing(orderNo.getOrderNo(),orderNo.getPaySerialNo(),orderNo.getPayRealPrice()); return ResponseMsgUtil.success("分账成功"); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/unionStagingPay", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "银联分期支付") public ResponseData unionStagingPay(HttpServletRequest request) { try { /* String orderNo = DateUtil.format(new Date(), DateUtil.YMDHMS); orderNo += IDGenerator.nextId(28 - orderNo.length());*/ String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(unionStagingPayConfig.advancePay( orgTrace, orgTrace, new BigDecimal("1"), CommonSysConst.getSysConfig().getUnionStagingPayNotifyUrl(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryStaging", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "分期查询") public ResponseData queryStaging(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.queryStaging(orgTrace,oriOrgTrace ,"", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } /* @RequestMapping(value = "/orderToRefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "退款") public ResponseData orderToRefund(HttpServletRequest request) { try { OrderRefundModel orderRefundModel = WxOrderConfig.orderToRefund("4200001301202202035413938093", new BigDecimal("30.80"), new BigDecimal("16.90")); return ResponseMsgUtil.success(orderRefundModel); } catch (Exception e) { log.error("HighOrderController --> orderToRefund() error!", e); return ResponseMsgUtil.exception(e); } }*/ @RequestMapping(value = "/query", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "订单查询") public ResponseData query(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.query(orgTrace,oriOrgTrace ,"", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/mposrefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "分期退款") public ResponseData mposrefund(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.standardRefund(orgTrace,oriOrgTrace ,new BigDecimal("1"), "", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/mposfindrefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "分期退款查询") public ResponseData mposfindrefund(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.mposfindrefund(orgTrace,oriOrgTrace ,"", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } public void wxProfitsharing(String transaction_id,String out_order_no, BigDecimal amount) { try { Map param = new LinkedHashMap<>(); param.put("appid", "wx637bd6f7314daa46"); param.put("mch_id", "1289663601"); param.put("sub_mch_id" , "1609882817"); // 个体户黎杨珍 param.put("transaction_id" , transaction_id); param.put("out_order_no" , out_order_no); param.put("nonce_str" , WxUtils.makeNonStr()); // 分账金额 BigDecimal porofitSharingAmount = amount; List> receiversList = new ArrayList<>(); Map receiversMap = new LinkedHashMap<>(); receiversMap.put("type", "MERCHANT_ID"); receiversMap.put("account", "1603942866"); receiversMap.put("amount", porofitSharingAmount.multiply(new BigDecimal("100")).intValue()); receiversMap.put("description", "分给商户【惠昕石化】"); receiversList.add(receiversMap); param.put("receivers" , JSONObject.toJSONString(receiversList)); String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5" , WXPayConstants.SignType.HMACSHA256); param.put("sign" , signStr); String resultXmL = this.doRefundRequest(param.get("mch_id"),null, WxUtils.mapToXml(param)); // 请求分账返回的结果 ResultProfitSharing resultProfitSharing = XmlUtil.getObjectFromXML(resultXmL, ResultProfitSharing.class); if (!resultProfitSharing.getResult_code().equals("FAIL")) { HighProfitSharingRecord sharingRecord = new HighProfitSharingRecord(); sharingRecord.setOutOrderNo(resultProfitSharing.getOut_order_no()); sharingRecord.setTransactionId(resultProfitSharing.getTransaction_id()); sharingRecord.setOrderId(resultProfitSharing.getOrder_id()); sharingRecord.setStatus(resultProfitSharing.getResult_code()); sharingRecord.setPrice(amount); sharingRecord.setCreateTime(new Date()); sharingRecord.setContent(resultXmL); highProfitSharingRecordService.insert(sharingRecord); } } catch (Exception e) { log.error("CmsContentController --> getCorporateAdvertising() error!", e); } } public CloseableHttpClient readCertificate(String mchId) throws Exception{ /** * 注意PKCS12证书 是从微信商户平台-》账户设置-》 API安全 中下载的 */ KeyStore keyStore = KeyStore.getInstance("PKCS12"); //P12文件目录 证书路径,这里需要你自己修改,linux下还是windows下的根路径 FileInputStream instream = new FileInputStream("/home/project/wx_cert/1289663601_apiclient_cert.p12"); // FileInputStream instream = new FileInputStream("G:\\hurui-project/hai-parent/hai-service/src/main/java/privatekey/1289663601_apiclient_cert.p12"); try { keyStore.load(instream, "1289663601".toCharArray());//这里写密码..默认是你的MCHID } finally { instream.close(); } SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, "1289663601".toCharArray()).build();//这里也是写密码的 SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, SSLConnectionSocketFactory.getDefaultHostnameVerifier()); // Allow TLSv1 protocol only return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } public String doRefundRequest(String mchId, String url, String data) throws Exception { //小程序退款需要调用双向证书的认证 CloseableHttpClient httpClient = readCertificate(mchId); try { HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund"); // 设置响应头信息 httpost.addHeader("Connection", "keep-alive"); httpost.addHeader("Accept", "*/*"); httpost.addHeader("Content-Type", "text/xml"); httpost.addHeader("Host", "api.mch.weixin.qq.com"); httpost.addHeader("X-Requested-With", "XMLHttpRequest"); httpost.addHeader("Cache-Control", "max-age=0"); httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) "); httpost.setEntity(new StringEntity(data, "UTF-8")); CloseableHttpResponse response = httpClient.execute(httpost); try { HttpEntity entity = response.getEntity(); String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8"); EntityUtils.consume(entity); return jsonStr; } finally { response.close(); } } catch (Exception e){ throw new RuntimeException(e); } finally { httpClient.close(); } } } \ No newline at end of file +package com.cweb.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cweb.config.SysConst; import com.hai.common.exception.ErrorCode; import com.hai.common.exception.ErrorHelp; import com.hai.common.exception.SysCode; import com.hai.common.pay.util.XmlUtil; import com.hai.common.pay.util.sdk.WXPayConstants; import com.hai.common.security.SessionObject; import com.hai.common.utils.*; import com.hai.config.*; import com.hai.dao.HighGasOrderPushMapper; import com.hai.entity.*; import com.hai.model.*; import com.hai.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContexts; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.util.IdGenerator; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.net.ssl.SSLContext; import javax.servlet.http.HttpServletRequest; import java.io.FileInputStream; import java.math.BigDecimal; import java.security.KeyStore; import java.util.*; /** * @Auther: 胡锐 * @Description: * @Date: 2021/3/26 23:08 */ @Controller @RequestMapping(value = "/test") @Api(value = "订单接口") public class HighTestController { private static Logger log = LoggerFactory.getLogger(HighTestController.class); @Resource private HighMerchantService highMerchantService; @Resource private HighMerchantStoreService highMerchantStoreService; @Resource private HighGasOilPriceService highGasOilPriceService; @Resource private HighOrderService highOrderService; @Resource private HighProfitSharingRecordService highProfitSharingRecordService; @Resource private HighGasOrderPushMapper highGasOrderPushMapper; @Resource private HuiLianTongConfig huiLianTongConfig; @Resource private UnionPayConfig unionPayConfig; @Resource private UnionStagingPayConfig unionStagingPayConfig; @Resource private UnionUserConfig unionUserConfig; @Resource private OutRechargeOrderService outRechargeOrderService; @Resource private HighOilCardService oilCardService; @RequestMapping(value = "/wxGasProfitsharing", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "wxGasProfitsharing") public ResponseData wxGasProfitsharing(@RequestParam(name = "orderNo", required = true) String orderNo, HttpServletRequest request) { try { // 查询订单 HighOrder order = highOrderService.getOrderByOrderNo(orderNo); BigDecimal rake = new BigDecimal("0.05"); // 计算微信收取的手续费 支付金额 * 0.002 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 BigDecimal wxHandlingFee = order.getPayRealPrice().multiply(new BigDecimal("0.002")).setScale(2,BigDecimal.ROUND_HALF_DOWN); BigDecimal price = order.getPayRealPrice().subtract(wxHandlingFee); // 计算分账金额 手续费后的价格 * 0.05 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 BigDecimal profitSharingAmount = price.multiply(rake).setScale(2,BigDecimal.ROUND_DOWN); this.wxGasProfitsharing(order.getExt1(), order.getPaySerialNo(),order.getOrderNo(),profitSharingAmount); return ResponseMsgUtil.success(null); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } public void wxGasProfitsharing(String appid,String transaction_id,String out_order_no, BigDecimal amount) { try { Map param = new LinkedHashMap<>(); param.put("appid", appid); param.put("mch_id", "1289663601"); param.put("sub_mch_id" , "1624126902"); // 个体户黎杨珍 param.put("transaction_id" , transaction_id); param.put("out_order_no" , out_order_no); param.put("nonce_str" , WxUtils.makeNonStr()); // 分账金额 BigDecimal porofitSharingAmount = amount; List> receiversList = new ArrayList<>(); Map receiversMap = new LinkedHashMap<>(); receiversMap.put("type", "MERCHANT_ID"); receiversMap.put("account", "1603942866"); receiversMap.put("amount", porofitSharingAmount.multiply(new BigDecimal("100")).intValue()); receiversMap.put("description", "分给商户【惠昕石化】"); receiversList.add(receiversMap); param.put("receivers" , JSONObject.toJSONString(receiversList)); String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5" , WXPayConstants.SignType.HMACSHA256); param.put("sign" , signStr); String resultXmL = this.doRefundRequest(param.get("mch_id"),null, WxUtils.mapToXml(param)); // 请求分账返回的结果 ResultProfitSharing resultProfitSharing = XmlUtil.getObjectFromXML(resultXmL, ResultProfitSharing.class); HighProfitSharingRecord sharingRecord = new HighProfitSharingRecord(); sharingRecord.setOutOrderNo(out_order_no); sharingRecord.setTransactionId(transaction_id); sharingRecord.setOrderId(resultProfitSharing.getOrder_id()); sharingRecord.setStatus(resultProfitSharing.getResult_code()); sharingRecord.setPrice(amount); sharingRecord.setCreateTime(new Date()); sharingRecord.setContent(resultXmL); highProfitSharingRecordService.insert(sharingRecord); } catch (Exception e) { log.error("CmsContentController --> getCorporateAdvertising() error!", e); } } @RequestMapping(value = "/getHuiLianTongCardInfo", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询汇联通工会卡详情") public ResponseData getHuiLianTongCardInfo(@RequestParam(name = "cardNo", required = true) String cardNo, HttpServletRequest request) { try { // 用户 // JSONObject cardInfo = HuiLianTongUnionCardConfig.queryCardInfo(cardNo); if (StringUtils.isBlank(cardInfo.getString("data"))) { throw ErrorHelp.genException(SysCode.System, ErrorCode.REQUEST_ERROR, ""); } return ResponseMsgUtil.success(HuiLianTongUnionCardConfig.resolveResponse(cardInfo.getString("data"))); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/oilCardRefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "油卡退款") public ResponseData oilCardRefund(@RequestParam(name = "orderNo", required = true) String orderNo, HttpServletRequest request) { try { oilCardService.refund(orderNo); return ResponseMsgUtil.success(""); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryGasInfoByGasId", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据油站 id 拉取最新的油站数据") public ResponseData queryGasInfoByGasId(@RequestParam(name = "gasId", required = true) String gasId, HttpServletRequest request) { try { return ResponseMsgUtil.success(TuanYouConfig.queryGasInfoByGasId(gasId)); } catch (Exception e) { log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); return ResponseMsgUtil.exception(e); } } // // @RequestMapping(value = "/getMobile", method = RequestMethod.GET) // @ResponseBody // @ApiOperation(value = "话费充值") // public ResponseData getMobile( // @RequestParam(name = "orderNo", required = true) String orderNo, // @RequestParam(name = "amount", required = true) Integer amount, // @RequestParam(name = "phone", required = true) String phone, // HttpServletRequest request) { // try { // return ResponseMsgUtil.success(outRechargeOrderService.getMobile(phone,amount,orderNo)); // // } catch (Exception e) { // log.error("HighUserCardController --> getHuiLianTongCardInfo() error!", e); // return ResponseMsgUtil.exception(e); // } // } @RequestMapping(value = "/initTYMerchantStore", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "初始化加油站") public ResponseData initTYMerchantStore(@RequestParam(name = "merchantId", required = true) Long merchantId) throws Exception { HighMerchantModel merchant = highMerchantService.getMerchantById(merchantId); if (merchant == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户"); } JSONObject jsonObjectP = TuanYouConfig.queryGasInfoListByPage(1, 1000); JSONObject resultObjectP = jsonObjectP.getObject("result", JSONObject.class); for (int i = 1; i <= resultObjectP.getInteger("totalPageNum").intValue();i++) { JSONObject jsonObject = TuanYouConfig.queryGasInfoListByPage(i, 1000); JSONObject resultObject = jsonObject.getObject("result", JSONObject.class); JSONArray jsonArray = resultObject.getJSONArray("gasInfoList"); HighMerchantStore highMerchantStore; HighGasOilPrice highGasOilPrice; for (Object gasObject : jsonArray) { JSONObject object = JSONObject.parseObject(JSONObject.toJSONString(gasObject)); HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreByKey(object.getString("gasId")); if (store != null) { store.setType(1); store.setMerchantId(merchant.getId()); store.setCompanyId(merchant.getCompanyId()); store.setStoreKey(object.getString("gasId")); store.setStoreName(object.getString("gasName")); store.setStoreLogo(object.getString("gasLogoSmall")); store.setRegionId(object.getLong("provinceCode")); store.setRegionName(object.getString("provinceName")); store.setAddress(object.getString("gasAddress")); store.setLongitude(object.getString("gasAddressLongitude")); store.setLatitude(object.getString("gasAddressLatitude")); store.setStatus(object.getInteger("gasStatus")); store.setOperatorId(0L); store.setOperatorName("系统创建"); store.setUpdateTime(new Date()); store.setExt1(object.getString("gasSourceId")); highMerchantStoreService.updateMerchantStoreDetail(store); JSONArray oilPriceList = object.getJSONArray("oilPriceList"); for (Object oilPrice : oilPriceList) { JSONObject oilPriceObject = JSONObject.parseObject(JSONObject.toJSONString(oilPrice)); // 查询门店油号 highGasOilPrice = highGasOilPriceService.getGasOilPriceByStoreAndOilNo(store.getId(), oilPriceObject.getInteger("oilNo")); if (highGasOilPrice == null) { highGasOilPrice = new HighGasOilPrice(); highGasOilPrice.setMerchantStoreId(store.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); highGasOilPrice.setOilNoName(oilPriceObject.getString("oilNoName")); highGasOilPrice.setPriceVip(oilPriceObject.getBigDecimal("priceVip")); highGasOilPrice.setPriceGun(oilPriceObject.getBigDecimal("priceGun")); highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); } else { highGasOilPrice.setMerchantStoreId(store.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); highGasOilPrice.setOilNoName(oilPriceObject.getString("oilNoName")); highGasOilPrice.setPriceVip(oilPriceObject.getBigDecimal("priceVip")); highGasOilPrice.setPriceGun(oilPriceObject.getBigDecimal("priceGun")); highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); } highGasOilPriceService.editGasOilPrice(highGasOilPrice); } } else { highMerchantStore = new HighMerchantStore(); highMerchantStore.setType(1); highMerchantStore.setMerchantId(merchant.getId()); highMerchantStore.setCompanyId(merchant.getCompanyId()); highMerchantStore.setStoreKey(object.getString("gasId")); highMerchantStore.setStoreName(object.getString("gasName")); highMerchantStore.setStoreLogo(object.getString("gasLogoSmall")); highMerchantStore.setRegionId(object.getLong("provinceCode")); highMerchantStore.setRegionName(object.getString("provinceName")); highMerchantStore.setAddress(object.getString("gasAddress")); highMerchantStore.setLongitude(object.getString("gasAddressLongitude")); highMerchantStore.setLatitude(object.getString("gasAddressLatitude")); highMerchantStore.setStatus(1); highMerchantStore.setOperatorId(0L); highMerchantStore.setOperatorName("系统创建"); highMerchantStore.setCreateTime(new Date()); highMerchantStore.setUpdateTime(new Date()); highMerchantStore.setExt1(object.getString("gasSourceId")); HighMerchantStoreModel merchantStoreModel = new HighMerchantStoreModel(); BeanUtils.copyProperties(highMerchantStore, merchantStoreModel); highMerchantStoreService.insertMerchantStore(merchantStoreModel); JSONArray oilPriceList = object.getJSONArray("oilPriceList"); for (Object oilPrice : oilPriceList) { JSONObject oilPriceObject = JSONObject.parseObject(JSONObject.toJSONString(oilPrice)); highGasOilPrice = new HighGasOilPrice(); highGasOilPrice.setMerchantStoreId(merchantStoreModel.getId()); highGasOilPrice.setOilNo(oilPriceObject.getInteger("oilNo")); highGasOilPrice.setOilNoName(oilPriceObject.getString("oilNoName")); highGasOilPrice.setPriceVip(oilPriceObject.getBigDecimal("priceVip")); highGasOilPrice.setPriceGun(oilPriceObject.getBigDecimal("priceGun")); highGasOilPrice.setPriceOfficial(oilPriceObject.getBigDecimal("priceOfficial")); highGasOilPrice.setOilType(oilPriceObject.getInteger("oilType")); highGasOilPrice.setOilTypeName(oilPriceObject.getString("oilTypeName")); highGasOilPriceService.editGasOilPrice(highGasOilPrice); } } } } return ResponseMsgUtil.success("初始化完成"); } @RequestMapping(value = "/detectTYMerchantStore", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "检测加油站") public ResponseData detectTYMerchantStore(@RequestParam(name = "merchantId", required = true) Long merchantId) throws Exception { HighMerchantModel merchant = highMerchantService.getMerchantById(merchantId); if (merchant == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户"); } Map param = new HashMap<>(); param.put("merchantId", merchant.getId()); List stores = highMerchantStoreService.getMerchantStoreList(param); for (HighMerchantStore store : stores) { JSONObject jsonObject = TuanYouConfig.queryGasInfoByGasId(store.getStoreKey()); if (jsonObject != null && jsonObject.getString("code").equals("200")) { JSONObject result = jsonObject.getJSONObject("result"); store.setStatus(result.getInteger("gasStatus")); } else { store.setStatus(0); } highMerchantStoreService.updateMerchantStoreDetail(store); } return ResponseMsgUtil.success("初始化完成"); } @RequestMapping(value = "/pushTuanYouOrder", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "推送团油订单") public ResponseData pushTuanYouOrder(@RequestParam(name = "orderNo", required = true) String orderNo) { try { HighOrder order = highOrderService.getOrderByOrderNo(orderNo); for (HighChildOrder highChildOrder : order.getHighChildOrderList()) { HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreById(highChildOrder.getGoodsId()); // 推送团油订单 Map paramMap = new HashMap<>(); paramMap.put("gasId", store.getStoreKey()); paramMap.put("oilNo", highChildOrder.getGasOilNo()); paramMap.put("gunNo", highChildOrder.getGasGunNo()); BigDecimal priceGun = highChildOrder.getGasPriceGun(); BigDecimal priceVip = highChildOrder.getGasPriceVip(); paramMap.put("priceGun", priceGun); // 枪单价 paramMap.put("priceVip", priceVip); // 优惠价 paramMap.put("driverPhone", order.getMemPhone()); // paramMap.put("driverPhone", "17726395120"); paramMap.put("thirdSerialNo", order.getOrderNo()); paramMap.put("refuelingAmount", highChildOrder.getTotalPrice()); // 油品类型 1:汽油:2:柴油;3:天然气 if (highChildOrder.getGasOilType() == 1) { paramMap.put("accountNo", CommonSysConst.getSysConfig().getTuanYouGasolineAccount()); } else if (highChildOrder.getGasOilType() == 2) { paramMap.put("accountNo", CommonSysConst.getSysConfig().getTuanYouDieselAccount()); } JSONObject orderPushObject = TuanYouConfig.refuelingOrderPush(paramMap); // 推送团油订单记录 HighGasOrderPush highGasOrderPush = new HighGasOrderPush(); highGasOrderPush.setCreateTime(new Date()); highGasOrderPush.setCode(orderPushObject.getString("code")); highGasOrderPush.setRequestContent(JSONObject.toJSONString(paramMap)); highGasOrderPush.setReturnContent(orderPushObject.toJSONString()); highGasOrderPushMapper.insert(highGasOrderPush); if (orderPushObject != null && orderPushObject.getString("code").equals("200")) { highChildOrder.setGasOrderNo(orderPushObject.getJSONObject("result").getString("orderNo")); } highOrderService.updateOrder(order); } return ResponseMsgUtil.success(order); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryCompanyAccountInfo2JD", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询团油余额") public ResponseData queryCompanyAccountInfo2JD() { try { return ResponseMsgUtil.success(TuanYouConfig.queryCompanyAccountInfo2JD()); } catch (Exception e) { log.error("HighOrderController --> queryCompanyAccountInfo2JD() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryCompanyPriceDetail", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询团油余额") public ResponseData queryCompanyPriceDetail() { try { return ResponseMsgUtil.success(TuanYouConfig.queryCompanyPriceDetail("LW000115995", "92")); } catch (Exception e) { log.error("HighOrderController --> queryCompanyAccountInfo2JD() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/couJointDist", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "派发贵州卡券") public ResponseData couJointDist(@RequestParam(name = "token", required = true) String token) { try { return ResponseMsgUtil.success(HuiLianTongConfig.couJointDist(token,"HF2022031509263475105","20JY000575",1,"18385214742", "oArhO6QZSIJAcawo1Wwx5cKKZ0ns")); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/tradeQuery", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "派发贵州卡券") public ResponseData tradeQuery(@RequestParam(name = "token", required = true) String token) { try { return ResponseMsgUtil.success(UnionPayConfig.tradeQuery(UnionPayConfig.MER_ID3,UnionPayConfig.TERM_ID3,"HF2022031215130820400")); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/zwrefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "派发贵州卡券") public ResponseData zwrefund() { try { return ResponseMsgUtil.success(UnionPayConfig.zwrefund(UnionPayConfig.MER_ID3,UnionPayConfig.TERM_ID3,"HF2022031215130820400", "31720220312151311876232", new BigDecimal("270").multiply(new BigDecimal("100")).longValue())); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/unionPay", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "银联支付") public ResponseData unionPay(HttpServletRequest request) { try { // return ResponseMsgUtil.success(RequestUtils.getIpAddress(request)); return ResponseMsgUtil.success(unionPayConfig.upPreOrder(UnionPayConfig.MER_ID3, UnionPayConfig.TERM_ID3, "HF"+System.currentTimeMillis(), new BigDecimal("1"), "test",CommonSysConst.getSysConfig().getUnionPayNotifyUrl(), request)); } catch (Exception e) { log.error("HighOrderController --> unionPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/getToken", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "获取贵州中石化token") public ResponseData getToken() { try { return ResponseMsgUtil.success(huiLianTongConfig.getToken()); } catch (Exception e) { log.error("HighOrderController --> getToken() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/unionTradeQuery", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "银联交易查询") public ResponseData unionTradeQuery(@RequestParam(name = "paySerialNo", required = true) String paySerialNo) { try { return ResponseMsgUtil.success(UnionPayConfig.tradeQuery(UnionPayConfig.MER_ID1, UnionPayConfig.TERM_ID1, paySerialNo)); } catch (Exception e) { log.error("HighOrderController --> unionTradeQuery() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/getBackendToken", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "获取访问令牌backendToken") public ResponseData getBackendToken() { try { return ResponseMsgUtil.success(unionUserConfig.getBackendToken()); } catch (Exception e) { log.error("HighOrderController --> getBackendToken() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/wxSplitAccount", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "微信分账") public ResponseData wxSplitAccount() { try { HighOrder orderNo = highOrderService.getOrderByOrderNo("HF2021101812025050304"); wxProfitsharing(orderNo.getOrderNo(),orderNo.getPaySerialNo(),orderNo.getPayRealPrice()); return ResponseMsgUtil.success("分账成功"); } catch (Exception e) { log.error("HighOrderController --> getOrderById() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/unionStagingPay", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "银联分期支付") public ResponseData unionStagingPay(HttpServletRequest request) { try { /* String orderNo = DateUtil.format(new Date(), DateUtil.YMDHMS); orderNo += IDGenerator.nextId(28 - orderNo.length());*/ String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(unionStagingPayConfig.advancePay( orgTrace, orgTrace, new BigDecimal("1"), CommonSysConst.getSysConfig().getUnionStagingPayNotifyUrl(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/queryStaging", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "分期查询") public ResponseData queryStaging(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.queryStaging(orgTrace,oriOrgTrace ,"", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } /* @RequestMapping(value = "/orderToRefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "退款") public ResponseData orderToRefund(HttpServletRequest request) { try { OrderRefundModel orderRefundModel = WxOrderConfig.orderToRefund("4200001301202202035413938093", new BigDecimal("30.80"), new BigDecimal("16.90")); return ResponseMsgUtil.success(orderRefundModel); } catch (Exception e) { log.error("HighOrderController --> orderToRefund() error!", e); return ResponseMsgUtil.exception(e); } }*/ @RequestMapping(value = "/query", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "订单查询") public ResponseData query(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.query(orgTrace,oriOrgTrace ,"", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/mposrefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "分期退款") public ResponseData mposrefund(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.standardRefund(orgTrace,oriOrgTrace ,new BigDecimal("1"), "", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/mposfindrefund", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "分期退款查询") public ResponseData mposfindrefund(@RequestParam(name = "oriOrgTrace", required = true) String oriOrgTrace,HttpServletRequest request) { try { String orgTrace = CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(0,4) +CommonSysConst.getSysConfig().getUnionStagingPayOrgId().substring(CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length() - 4,CommonSysConst.getSysConfig().getUnionStagingPayOrgId().length()) +DateUtil.format(new Date(), DateUtil.YMDHMS) +IDGenerator.nextId(6); return ResponseMsgUtil.success(UnionStagingPayConfig.mposfindrefund(orgTrace,oriOrgTrace ,"", new Date(), request)); } catch (Exception e) { log.error("HighOrderController --> unionStagingPay() error!", e); return ResponseMsgUtil.exception(e); } } public void wxProfitsharing(String transaction_id,String out_order_no, BigDecimal amount) { try { Map param = new LinkedHashMap<>(); param.put("appid", "wx637bd6f7314daa46"); param.put("mch_id", "1289663601"); param.put("sub_mch_id" , "1609882817"); // 个体户黎杨珍 param.put("transaction_id" , transaction_id); param.put("out_order_no" , out_order_no); param.put("nonce_str" , WxUtils.makeNonStr()); // 分账金额 BigDecimal porofitSharingAmount = amount; List> receiversList = new ArrayList<>(); Map receiversMap = new LinkedHashMap<>(); receiversMap.put("type", "MERCHANT_ID"); receiversMap.put("account", "1603942866"); receiversMap.put("amount", porofitSharingAmount.multiply(new BigDecimal("100")).intValue()); receiversMap.put("description", "分给商户【惠昕石化】"); receiversList.add(receiversMap); param.put("receivers" , JSONObject.toJSONString(receiversList)); String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5" , WXPayConstants.SignType.HMACSHA256); param.put("sign" , signStr); String resultXmL = this.doRefundRequest(param.get("mch_id"),null, WxUtils.mapToXml(param)); // 请求分账返回的结果 ResultProfitSharing resultProfitSharing = XmlUtil.getObjectFromXML(resultXmL, ResultProfitSharing.class); if (!resultProfitSharing.getResult_code().equals("FAIL")) { HighProfitSharingRecord sharingRecord = new HighProfitSharingRecord(); sharingRecord.setOutOrderNo(resultProfitSharing.getOut_order_no()); sharingRecord.setTransactionId(resultProfitSharing.getTransaction_id()); sharingRecord.setOrderId(resultProfitSharing.getOrder_id()); sharingRecord.setStatus(resultProfitSharing.getResult_code()); sharingRecord.setPrice(amount); sharingRecord.setCreateTime(new Date()); sharingRecord.setContent(resultXmL); highProfitSharingRecordService.insert(sharingRecord); } } catch (Exception e) { log.error("CmsContentController --> getCorporateAdvertising() error!", e); } } public CloseableHttpClient readCertificate(String mchId) throws Exception{ /** * 注意PKCS12证书 是从微信商户平台-》账户设置-》 API安全 中下载的 */ KeyStore keyStore = KeyStore.getInstance("PKCS12"); //P12文件目录 证书路径,这里需要你自己修改,linux下还是windows下的根路径 FileInputStream instream = new FileInputStream("/home/project/wx_cert/1289663601_apiclient_cert.p12"); // FileInputStream instream = new FileInputStream("G:\\hurui-project/hai-parent/hai-service/src/main/java/privatekey/1289663601_apiclient_cert.p12"); try { keyStore.load(instream, "1289663601".toCharArray());//这里写密码..默认是你的MCHID } finally { instream.close(); } SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, "1289663601".toCharArray()).build();//这里也是写密码的 SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, SSLConnectionSocketFactory.getDefaultHostnameVerifier()); // Allow TLSv1 protocol only return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } public String doRefundRequest(String mchId, String url, String data) throws Exception { //小程序退款需要调用双向证书的认证 CloseableHttpClient httpClient = readCertificate(mchId); try { HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/profitsharing"); // 设置响应头信息 httpost.addHeader("Connection", "keep-alive"); httpost.addHeader("Accept", "*/*"); httpost.addHeader("Content-Type", "text/xml"); httpost.addHeader("Host", "api.mch.weixin.qq.com"); httpost.addHeader("X-Requested-With", "XMLHttpRequest"); httpost.addHeader("Cache-Control", "max-age=0"); httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) "); httpost.setEntity(new StringEntity(data, "UTF-8")); CloseableHttpResponse response = httpClient.execute(httpost); try { HttpEntity entity = response.getEntity(); String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8"); EntityUtils.consume(entity); return jsonStr; } finally { response.close(); } } catch (Exception e){ throw new RuntimeException(e); } finally { httpClient.close(); } } } \ No newline at end of file diff --git a/hai-cweb/src/main/java/com/cweb/controller/pay/OrderController.java b/hai-cweb/src/main/java/com/cweb/controller/pay/OrderController.java index a725c6cd..cb6485c8 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/pay/OrderController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/pay/OrderController.java @@ -183,6 +183,8 @@ public class OrderController { map.put("body","购买产品"); map.put("subject","购买产品"); + // 是否分账 + String profitSharing = "N"; //微信支付 String nonce_str = MD5Util.MD5Encode(String.valueOf(ThreadLocalRandom.current().nextInt(10000)), "UTF-8"); int total_fee = MathUtils.objectConvertBigDecimal(map.get("payPrice")).multiply(new BigDecimal("100")).intValue(); @@ -199,12 +201,12 @@ public class OrderController { weChatPayReqInfo.setSub_mch_id(SysConst.getSysConfig().getWxGzSubMchId());//商户号 } else if (order.getHighChildOrderList().get(0).getGoodsType() == 3) { - weChatPayReqInfo.setSub_mch_id("1609882817");//商户号 - + weChatPayReqInfo.setSub_mch_id("1624126902"); // 浩联商户号 + profitSharing = "Y"; } else { + //子商户号 weChatPayReqInfo.setSub_mch_id(SysConst.getSysConfig().getWxSubMchId()); } - //子商户号 // weChatPayReqInfo.setOpenid(openId); weChatPayReqInfo.setSub_openid(openId); @@ -216,7 +218,8 @@ public class OrderController { weChatPayReqInfo.setNotify_url(SysConst.getSysConfig().getNotifyUrl()); //通知url weChatPayReqInfo.setTrade_type("JSAPI"); //交易类型 weChatPayReqInfo.setAttach(map.get("orderScene").toString()); - weChatPayReqInfo.setProfit_sharing("N"); + weChatPayReqInfo.setProfit_sharing(profitSharing); + //附加数据,区分订单类型 Map payMap = new HashMap<>(); @@ -224,6 +227,9 @@ public class OrderController { payMap.put("api_key",SysConst.getSysConfig().getWxApiKey()); payMap.put("unified_order_url",SysConst.getSysConfig().getWxUnifiedOrderUrl()); SortedMap sortedMap = wechatPayUtil.goWechatPay(weChatPayReqInfo,payMap); + + order.setExt1(weChatPayReqInfo.getSub_appid()); + highOrderService.updateOrderDetail(order); return ResponseMsgUtil.success(sortedMap); } catch (Exception e) { log.error("orderToPay error!", e); diff --git a/hai-cweb/src/main/java/com/cweb/controller/pay/WechatPayController.java b/hai-cweb/src/main/java/com/cweb/controller/pay/WechatPayController.java index 6b224311..2b821bb6 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/pay/WechatPayController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/pay/WechatPayController.java @@ -148,16 +148,16 @@ public class WechatPayController { try { WxSharingReceiversVO receiversVO = new WxSharingReceiversVO(); - receiversVO.setAccount("1611202250"); + receiversVO.setAccount("1603942866"); receiversVO.setType("MERCHANT_ID"); - receiversVO.setName("重庆众卡汇电子商务有限公司"); + receiversVO.setName("重庆惠昕石化有限责任公司"); receiversVO.setRelation_type("SERVICE_PROVIDER"); Map map = new HashMap<>(); map.put("mch_id" , "1289663601"); - map.put("sub_mch_id" , "1607303848"); - map.put("appid" , "wx637bd6f7314daa46"); + map.put("sub_mch_id" , "1624126902"); + map.put("appid" , "wxa075e8509802f826"); map.put("nonce_str" , WxUtils.makeNonStr()); map.put("sign_type" , "HMAC-SHA256"); map.put("receiver" , JSONObject.toJSONString(receiversVO)); diff --git a/hai-service/src/main/java/com/hai/config/WxOrderConfig.java b/hai-service/src/main/java/com/hai/config/WxOrderConfig.java index bf1f45b9..bbd0a1b5 100644 --- a/hai-service/src/main/java/com/hai/config/WxOrderConfig.java +++ b/hai-service/src/main/java/com/hai/config/WxOrderConfig.java @@ -67,7 +67,7 @@ public class WxOrderConfig { Map param = new HashMap<>(); param.put("appid", "wx637bd6f7314daa46"); param.put("mch_id", "1289663601"); - param.put("sub_mch_id" , "1609882817"); + param.put("sub_mch_id" , "1624126902"); param.put("nonce_str", WxUtils.makeNonStr()); param.put("transaction_id", paySerialNo); param.put("out_refund_no", "HFR"+new Date().getTime()); diff --git a/hai-service/src/main/java/com/hai/service/pay/impl/GoodsOrderServiceImpl.java b/hai-service/src/main/java/com/hai/service/pay/impl/GoodsOrderServiceImpl.java index 9e846f4f..d4142d47 100644 --- a/hai-service/src/main/java/com/hai/service/pay/impl/GoodsOrderServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/pay/impl/GoodsOrderServiceImpl.java @@ -380,33 +380,64 @@ public class GoodsOrderServiceImpl implements PayService { highOrderService.updateOrder(order); - new Thread(() -> { - try { - Thread.sleep(120*1000); - BigDecimal rake = new BigDecimal("0.01"); - - // 计算微信收取的手续费 支付金额 * 0.002 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 - BigDecimal wxHandlingFee = order.getPayRealPrice().multiply(new BigDecimal("0.002")).setScale(2,BigDecimal.ROUND_HALF_DOWN); - BigDecimal price = order.getPayRealPrice().subtract(wxHandlingFee); - - // 计算分账金额 手续费后的价格 * 0.01 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 - BigDecimal profitSharingAmount = price.multiply(rake).setScale(2,BigDecimal.ROUND_DOWN); - this.wxProfitsharing(order.getPaySerialNo(),order.getOrderNo(),profitSharingAmount); - } catch (InterruptedException e) { - e.printStackTrace(); - } - }).start(); + if (order.getHighChildOrderList().get(0).getGoodsType().equals(3)) { + new Thread(() -> { + try { + Thread.sleep(120*1000); + BigDecimal rake = new BigDecimal("0.05"); + + // 计算微信收取的手续费 支付金额 * 0.002 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 + BigDecimal wxHandlingFee = order.getPayRealPrice().multiply(new BigDecimal("0.002")).setScale(2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal price = order.getPayRealPrice().subtract(wxHandlingFee); + + // 计算分账金额 手续费后的价格 * 0.05 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 + BigDecimal profitSharingAmount = price.multiply(rake).setScale(2,BigDecimal.ROUND_DOWN); + this.wxGasProfitsharing(order.getExt1(), order.getPaySerialNo(),order.getOrderNo(),profitSharingAmount); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }).start(); + } else { + new Thread(() -> { + try { + Thread.sleep(120*1000); + BigDecimal rake = new BigDecimal("0.01"); + + // 计算微信收取的手续费 支付金额 * 0.002 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 + BigDecimal wxHandlingFee = order.getPayRealPrice().multiply(new BigDecimal("0.002")).setScale(2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal price = order.getPayRealPrice().subtract(wxHandlingFee); + + // 计算分账金额 手续费后的价格 * 0.01 注:如果与两个相邻数字的距离相等,则为上舍入的舍入模式。 + BigDecimal profitSharingAmount = price.multiply(rake).setScale(2,BigDecimal.ROUND_DOWN); + this.wxProfitsharing(order.getExt1(), order.getPaySerialNo(),order.getOrderNo(),profitSharingAmount); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }).start(); + } } } } + public static void main(String[] args) { + BigDecimal totalPrice = new BigDecimal("100"); - public void wxProfitsharing(String transaction_id,String out_order_no, BigDecimal amount) { + BigDecimal wxHandlingFee = totalPrice.multiply(new BigDecimal("0.002")).setScale(2,BigDecimal.ROUND_HALF_DOWN); + System.out.println("手续费:" + wxHandlingFee); + + BigDecimal price = totalPrice.subtract(wxHandlingFee); + System.out.println("扣除手机费后的价格:" + price); + + BigDecimal profitSharingAmount = price.multiply(new BigDecimal("0.05")).setScale(2,BigDecimal.ROUND_DOWN); + System.out.println("实际分账价格:" + profitSharingAmount); + } + + public void wxGasProfitsharing(String appid, String transaction_id,String out_order_no, BigDecimal amount) { try { Map param = new LinkedHashMap<>(); - param.put("appid", "wx637bd6f7314daa46"); + param.put("appid", appid); param.put("mch_id", "1289663601"); - param.put("sub_mch_id" , "1609882817"); // 个体户黎杨珍 + param.put("sub_mch_id" , "1624126902"); // 渝北区浩联物资经营部 param.put("transaction_id" , transaction_id); param.put("out_order_no" , out_order_no); param.put("nonce_str" , WxUtils.makeNonStr()); @@ -444,6 +475,48 @@ public class GoodsOrderServiceImpl implements PayService { } } + public void wxProfitsharing(String appid,String transaction_id,String out_order_no, BigDecimal amount) { + try { + Map param = new LinkedHashMap<>(); + param.put("appid", appid); + param.put("mch_id", "1289663601"); + param.put("sub_mch_id" , "1609882817"); // 个体户黎杨珍 + param.put("transaction_id" , transaction_id); + param.put("out_order_no" , out_order_no); + param.put("nonce_str" , WxUtils.makeNonStr()); + + // 分账金额 + BigDecimal porofitSharingAmount = amount; + + List> receiversList = new ArrayList<>(); + Map receiversMap = new LinkedHashMap<>(); + receiversMap.put("type", "MERCHANT_ID"); + receiversMap.put("account", "1603942866"); + receiversMap.put("amount", porofitSharingAmount.multiply(new BigDecimal("100")).intValue()); + receiversMap.put("description", "分给商户【惠昕石化】"); + receiversList.add(receiversMap); + param.put("receivers" , JSONObject.toJSONString(receiversList)); + String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5" , WXPayConstants.SignType.HMACSHA256); + param.put("sign" , signStr); + String resultXmL = this.doRefundRequest(param.get("mch_id"),null, WxUtils.mapToXml(param)); + + // 请求分账返回的结果 + ResultProfitSharing resultProfitSharing = XmlUtil.getObjectFromXML(resultXmL, ResultProfitSharing.class); + + HighProfitSharingRecord sharingRecord = new HighProfitSharingRecord(); + sharingRecord.setOutOrderNo(out_order_no); + sharingRecord.setTransactionId(transaction_id); + sharingRecord.setOrderId(resultProfitSharing.getOrder_id()); + sharingRecord.setStatus(resultProfitSharing.getResult_code()); + sharingRecord.setPrice(amount); + sharingRecord.setCreateTime(new Date()); + sharingRecord.setContent(resultXmL); + highProfitSharingRecordService.insert(sharingRecord); + + } catch (Exception e) { + log.error("CmsContentController --> getCorporateAdvertising() error!", e); + } + } public CloseableHttpClient readCertificate(String mchId) throws Exception{ /**