diff --git a/hai-bweb/src/main/java/com/bweb/controller/ApiIpAddressController.java b/hai-bweb/src/main/java/com/bweb/controller/ApiIpAddressController.java index bf395a74..429394e9 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/ApiIpAddressController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/ApiIpAddressController.java @@ -121,38 +121,5 @@ public class ApiIpAddressController { } } - @RequestMapping(value="/configMerchant",method = RequestMethod.POST) - @ResponseBody - @ApiOperation(value = "配置门店可用接口") - public ResponseData configMerchant(@RequestBody JSONObject object, HttpServletRequest request) { - try { - SessionObject sessionObject = userCenter.getSessionObject(request); - UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject(); - if (userInfoModel.getBsCompany() == null) { - log.error("HighMerchantController -> updateMerchant() error!","该主角色没有权限"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, ""); - } - - if (object.getString("mchId") == null || object.getString("configProduct") == null) { - log.error("ApiMemberProductController -> insertMemberProduct() error!","参数错误"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); - } - - ApiMerchants merchants = apiMerchantsService.findByMchId(object.getString("mchId")); - - if (merchants == null) { - log.error("ApiMemberProductController -> insertMemberProduct() error!","商户状态错误"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户状态错误"); - } - - secConfigService.configMerchant(object.getString("mchId") , object.getString("configProduct")); - - return ResponseMsgUtil.success("配置成功"); - } catch (Exception e) { - log.error("ApiMerchantsController -> insertMerchant() error!",e); - return ResponseMsgUtil.exception(e); - } - } - } diff --git a/hai-bweb/src/main/java/com/bweb/controller/ApiMchProduct/ApiMchProductController.java b/hai-bweb/src/main/java/com/bweb/controller/ApiMchProduct/ApiMchProductController.java index 743800ba..d64e80f8 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/ApiMchProduct/ApiMchProductController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/ApiMchProduct/ApiMchProductController.java @@ -1,30 +1,33 @@ package com.bweb.controller.ApiMchProduct; import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageInfo; import com.hai.common.exception.ErrorCode; 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.ResponseMsgUtil; +import com.hai.entity.*; import com.hai.model.ResponseData; -import com.hai.model.UserInfoModel; import com.hai.openApi.service.ApiMchProductService; import com.hai.order.type.OrderProductType; +import com.hai.service.ApiMerchantsService; +import com.hai.service.BsCompanyService; +import com.hai.service.HighMerchantService; +import com.hai.service.SecConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.Objects; +import java.math.BigDecimal; +import java.util.*; @Controller @RequestMapping(value = "/apiMchProduct") @@ -39,6 +42,18 @@ public class ApiMchProductController { @Autowired private UserCenter userCenter; + @Resource + private BsCompanyService bsCompanyService; + + @Resource + private HighMerchantService highMerchantService; + + @Resource + private ApiMerchantsService apiMerchantsService; + + @Resource + private SecConfigService secConfigService; + @RequestMapping(value = "/insertMchProduct", method = RequestMethod.POST) @ResponseBody @@ -46,40 +61,128 @@ public class ApiMchProductController { public ResponseData insertMchProduct(@RequestBody JSONObject object, HttpServletRequest request) { try { - SessionObject sessionObject = userCenter.getSessionObject(request); - UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject(); - if (object == null || - object.getInteger("productType") == null || - object.getString("mchId") == null || - object.getBigDecimal("discount") == null + object.getString("mchId") == null ) { log.error("ApiProductController -> insertProduct() error!"); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - if (Objects.equals(object.getInteger("productType"), OrderProductType.PRODUCT_TYPE6.getNumber())) { - if (object.getLong("companyId") == null || - object.getString("merchantId") == null - ) { - log.error("ApiProductController -> insertProduct() error!"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + ApiMerchants merchants = apiMerchantsService.findByMchId(object.getString("mchId")); + + if (merchants == null) { + log.error("ApiMemberProductController -> insertMemberProduct() error!","商户状态错误"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户状态错误"); + } + + apiMchProductService.detailConfigMchProduct(object.getString("mchId")); + secConfigService.deleteSecConfig(object.getString("mchId")); + + if (object.getJSONArray("productType") != null && object.getJSONArray("productType").size() > 0) { + apiMchProductService.configMchProduct(object); + } + + return ResponseMsgUtil.success("配置成功"); + + } catch (Exception e) { + log.error("ApiProductController --> insertPrice() error!", e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value = "/getListApiMchProduct", method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "查询商户产品列表") + public ResponseData getListApiMchProduct(@RequestParam(value = "mchId", required = true) String mchId) { + try { + + Map map = new HashMap<>(); + map.put("mchId", mchId); + + List list = apiMchProductService.getListMchProduct(map); + + for (ApiMchProduct apiMchProduct : list) { + if (apiMchProduct.getProductType().equals(6)) { + apiMchProduct.setExt1(OrderProductType.getDataByType(apiMchProduct.getProductType()).getName() + productName(apiMchProduct.getCompanyId(),apiMchProduct.getMerchantId())); + } else { + apiMchProduct.setExt1(OrderProductType.getDataByType(apiMchProduct.getProductType()).getName()); } + } + return ResponseMsgUtil.success(list); - object.put("operatorId", userInfoModel.getSecUser().getId()); - object.put("operatorName", userInfoModel.getSecUser().getLoginName()); + } catch (Exception e) { + log.error("OutRechargePriceController --> getListUser() error!", e); + return ResponseMsgUtil.exception(e); + } + } + @RequestMapping(value = "/detailApiMchProduct", method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "删除商户产品") + public ResponseData detailApiMchProduct(@RequestParam(value = "id", required = true) Long id) { + try { + + ApiMchProduct apiMchProduct = apiMchProductService.findById(id); + + secConfigService.deleteSecConfig(apiMchProduct.getMchId() , OrderProductType.getDataByType(apiMchProduct.getProductType()).getApiCode()); + apiMchProductService.detailApiMchProduct(id); + return ResponseMsgUtil.success("操作成功"); - apiMchProductService.insertMchProduct(object); + } catch (Exception e) { + log.error("OutRechargePriceController --> getListUser() error!", e); + return ResponseMsgUtil.exception(e); + } + } - return ResponseMsgUtil.success("新增成功"); + @RequestMapping(value = "/findMchProduct", method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "查询商户产品") + public ResponseData findMchProduct(@RequestParam(value = "id", required = true) Long id) { + try { + return ResponseMsgUtil.success(apiMchProductService.findById(id)); + + } catch (Exception e) { + log.error("OutRechargePriceController --> getListUser() error!", e); + return ResponseMsgUtil.exception(e); + } + } + + + @RequestMapping(value = "/editMchProduct", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "修改配置产品") + public ResponseData editMchProduct(@RequestBody JSONObject object) { + try { + + if (object == null || + object.getBigDecimal("discount") == null || + object.getLong("id") == null + ) { + log.error("ApiProductController -> configApiProduct() error!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + ApiMchProduct apiMchProduct = apiMchProductService.findById(object.getLong("id")); + + apiMchProduct.setDiscount(object.getBigDecimal("discount")); + apiMchProduct.setUpdateTime(new Date()); + + apiMchProductService.updateMchProduct(apiMchProduct); + + return ResponseMsgUtil.success("修改成功"); } catch (Exception e) { log.error("ApiProductController --> insertPrice() error!", e); return ResponseMsgUtil.exception(e); } } + + // 编辑产品名称 + private String productName(Long companyId , Long merchantId) { + return "(" + bsCompanyService.getCompanyById(companyId).getName() + "-" + highMerchantService.getMerchantById(merchantId).getMerchantName() + ")"; + } + } diff --git a/hai-bweb/src/main/java/com/bweb/controller/ApiProductController.java b/hai-bweb/src/main/java/com/bweb/controller/ApiProductController.java index 7e7fdbdd..3bf2a633 100644 --- a/hai-bweb/src/main/java/com/bweb/controller/ApiProductController.java +++ b/hai-bweb/src/main/java/com/bweb/controller/ApiProductController.java @@ -52,12 +52,10 @@ public class ApiProductController { @RequestParam(value = "phoneRechargeType", required = false) Integer phoneRechargeType, @RequestParam(value = "status", required = false) Integer status, @RequestParam(name = "pageNum", required = true) Integer pageNum, - @RequestParam(name = "pageSize", required = true) Integer pageSize, HttpServletRequest request + @RequestParam(name = "pageSize", required = true) Integer pageSize ) { try { - SessionObject sessionObject = userCenter.getSessionObject(request); - UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject(); Map map = new HashMap<>(); diff --git a/hai-cweb/src/main/java/com/cweb/controller/CmsContentController.java b/hai-cweb/src/main/java/com/cweb/controller/CmsContentController.java index 411a131c..a472e76f 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/CmsContentController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/CmsContentController.java @@ -33,7 +33,7 @@ import java.util.stream.Collectors; @Controller @Api(value = "内容管理 内容发布") @RequestMapping(value = "/cmsContent") -public class CmsContentController { +public class CmsContentController { private static Logger log = LoggerFactory.getLogger(CmsContentController.class); @@ -140,7 +140,7 @@ public class CmsContentController { } if (cmsCategory.getType() == 3 || cmsCategory.getType() == 6 || cmsCategory.getType() == 9) { - if (object.getJSONArray("childDate").size() >0) { + if (object.getJSONArray("childDate") != null && object.getJSONArray("childDate").size() >0) { objectList.add(object); } } else { diff --git a/hai-order/src/main/java/com/web/controller/business/OrderMobileRechargeController.java b/hai-order/src/main/java/com/web/controller/business/OrderMobileRechargeController.java index 5a38edb1..8a66f8f8 100644 --- a/hai-order/src/main/java/com/web/controller/business/OrderMobileRechargeController.java +++ b/hai-order/src/main/java/com/web/controller/business/OrderMobileRechargeController.java @@ -9,6 +9,8 @@ import com.hai.common.exception.SysCode; import com.hai.common.security.UserCenter; import com.hai.common.utils.ResponseMsgUtil; import com.hai.entity.HighOrder; +import com.hai.entity.OutRechargeChildOrder; +import com.hai.entity.OutRechargeOrder; import com.hai.enum_type.OrderStatusEnum; import com.hai.enum_type.UserObjectTypeEnum; import com.hai.model.ResponseData; @@ -16,6 +18,7 @@ import com.hai.model.UserInfoModel; import com.hai.order.model.OrderThirdPartyModel; import com.hai.order.service.OrderService; import com.hai.order.type.OrderPayType; +import com.hai.service.OutRechargeChildOrderService; import com.hai.service.OutRechargeOrderService; import com.hai.service.impl.OutRechargeOrderServiceImpl; import com.web.config.SysConst; @@ -50,6 +53,9 @@ public class OrderMobileRechargeController { @Resource private OutRechargeOrderService outRechargeOrderService; + @Resource + private OutRechargeChildOrderService outRechargeChildOrderService; + @Resource private OrderService orderService; @@ -165,6 +171,10 @@ public class OrderMobileRechargeController { for (HighOrder thirdPartyModel : orderList) { model = new OrderThirdPartyModel(); model.setOrderNo(thirdPartyModel.getOrderNo()); + OutRechargeOrder outRechargeOrder = outRechargeOrderService.findByOrderNo(thirdPartyModel.getOrderNo()); + if (outRechargeOrder.getOutRechargeChildOrders().size() > 0) { + model.setRegOrderNo(outRechargeOrder.getOutRechargeChildOrders().get(0).getOrderNo()); + } model.setMemPhone(thirdPartyModel.getMemPhone()); model.setTitle(thirdPartyModel.getTitle()); model.setTotalPrice(thirdPartyModel.getTotalPrice()); diff --git a/hai-service/src/main/java/com/hai/config/CmsContentConfig.java b/hai-service/src/main/java/com/hai/config/CmsContentConfig.java index 87fb8e5d..826681bc 100644 --- a/hai-service/src/main/java/com/hai/config/CmsContentConfig.java +++ b/hai-service/src/main/java/com/hai/config/CmsContentConfig.java @@ -41,7 +41,7 @@ public class CmsContentConfig { map.put("status" , 1); PageHelper.startPage(1, 3); return new PageInfo<>( highDiscountPackageService.getDiscountPackageList(map)).getList(); - } else if (CmsContentDataEnum.REFUEL.getName().equals(title) || CmsContentDataEnum.INTEGRAL.getName().equals(title)){ + } else if (CmsContentDataEnum.REFUEL.getName().equals(title) || CmsContentDataEnum.INTEGRAL.getName().equals(title) || CmsContentDataEnum.UNION_CARD.getName().equals(title)){ map.put("companyId", companyId); map.put("displayArea", CmsContentDataEnum.getTypeByName(title)); map.put("notCouponSource", 2); diff --git a/hai-service/src/main/java/com/hai/openApi/model/ApiGasOliPriceModel.java b/hai-service/src/main/java/com/hai/openApi/model/ApiGasOliPriceModel.java new file mode 100644 index 00000000..ec023f8f --- /dev/null +++ b/hai-service/src/main/java/com/hai/openApi/model/ApiGasOliPriceModel.java @@ -0,0 +1,112 @@ +package com.hai.openApi.model; + +import java.math.BigDecimal; +import java.util.List; + +public class ApiGasOliPriceModel { + + /** + * 油号 + */ + private String oilNo; + + /** + * 油品名称 + */ + private String oilNoName; + + + /** + * 成本价 + */ + private BigDecimal priceCost; + + /** + * 枪价 + */ + private BigDecimal priceGun; + + /** + * 官方指导价 + */ + private BigDecimal priceOfficial; + + /** + * 油品类型 1:汽油:2:柴油;3:天然气 + */ + private Integer oilType; + + /** + * 燃油类型名 1:汽油:2:柴油;3:天然气 + */ + private String oilTypeName; + + /** + * 油枪号数组 + */ + private String[] gasOliNo; + + public String getOilNo() { + return oilNo; + } + + public void setOilNo(String oilNo) { + this.oilNo = oilNo; + } + + public String getOilNoName() { + return oilNoName; + } + + public void setOilNoName(String oilNoName) { + this.oilNoName = oilNoName; + } + + public BigDecimal getPriceCost() { + return priceCost; + } + + public void setPriceCost(BigDecimal priceCost) { + this.priceCost = priceCost; + } + + public BigDecimal getPriceGun() { + return priceGun; + } + + public void setPriceGun(BigDecimal priceGun) { + this.priceGun = priceGun; + } + + public BigDecimal getPriceOfficial() { + return priceOfficial; + } + + public void setPriceOfficial(BigDecimal priceOfficial) { + this.priceOfficial = priceOfficial; + } + + public Integer getOilType() { + return oilType; + } + + public void setOilType(Integer oilType) { + this.oilType = oilType; + } + + public String getOilTypeName() { + return oilTypeName; + } + + public void setOilTypeName(String oilTypeName) { + this.oilTypeName = oilTypeName; + } + + public String[] getGasOliNo() { + return gasOliNo; + } + + public void setGasOliNo(String[] gasOliNo) { + this.gasOliNo = gasOliNo; + } +} diff --git a/hai-service/src/main/java/com/hai/openApi/model/ApiMchStoreModel.java b/hai-service/src/main/java/com/hai/openApi/model/ApiMchStoreModel.java new file mode 100644 index 00000000..c11b5bcc --- /dev/null +++ b/hai-service/src/main/java/com/hai/openApi/model/ApiMchStoreModel.java @@ -0,0 +1,96 @@ +package com.hai.openApi.model; + +import java.util.List; + +public class ApiMchStoreModel { + + // 区域名称 + private String regionName; + + // 门店logo + private String storeLogo; + + // 门店编码 + private String storeCode; + + // 门店名称 + private String storeName; + + // 门店地址 + private String address; + + // 经度 + private String longitude; + + // 纬度 + /** + * 商户地址纬度 + */ + private String latitude; + + private List apiGasOliPriceModels; + + public String getRegionName() { + return regionName; + } + + public void setRegionName(String regionName) { + this.regionName = regionName; + } + + public String getStoreLogo() { + return storeLogo; + } + + public void setStoreLogo(String storeLogo) { + this.storeLogo = storeLogo; + } + + public String getStoreCode() { + return storeCode; + } + + public void setStoreCode(String storeCode) { + this.storeCode = storeCode; + } + + public String getStoreName() { + return storeName; + } + + public void setStoreName(String storeName) { + this.storeName = storeName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public List getApiGasOliPriceModels() { + return apiGasOliPriceModels; + } + + public void setApiGasOliPriceModels(List apiGasOliPriceModels) { + this.apiGasOliPriceModels = apiGasOliPriceModels; + } +} diff --git a/hai-service/src/main/java/com/hai/openApi/service/ApiMchProductService.java b/hai-service/src/main/java/com/hai/openApi/service/ApiMchProductService.java index e5f6e848..d4530a58 100644 --- a/hai-service/src/main/java/com/hai/openApi/service/ApiMchProductService.java +++ b/hai-service/src/main/java/com/hai/openApi/service/ApiMchProductService.java @@ -23,7 +23,10 @@ public interface ApiMchProductService { * @Param [apiMchProduct] * @Return void */ - void insertMchProduct(JSONObject object); + void insertMchProduct(ApiMchProduct apiMchProduct); + + void configMchProduct(JSONObject object); + /** * @Author Sum1Dream * @Name updateMchProduct @@ -53,4 +56,24 @@ public interface ApiMchProductService { * @Return com.hai.entity.ApiMchProduct */ ApiMchProduct findById(Long id); + + /** + * @Author Sum1Dream + * @Name detailConfigMchProduct + * @Description // 删除商户配置相关产品 + * @Date 17:02 2023/2/23 + * @Param [mchId] + * @Return void + */ + void detailConfigMchProduct(String mchId); + + /** + * @Author Sum1Dream + * @Name detailApiMchProduct + * @Description // 根据id删除配置产品 + * @Date 11:06 2023/2/24 + * @Param [id] + * @Return void + */ + void detailApiMchProduct(Long id); } diff --git a/hai-service/src/main/java/com/hai/openApi/service/impl/ApiMchProductServiceImpl.java b/hai-service/src/main/java/com/hai/openApi/service/impl/ApiMchProductServiceImpl.java index c58e1410..e3882477 100644 --- a/hai-service/src/main/java/com/hai/openApi/service/impl/ApiMchProductServiceImpl.java +++ b/hai-service/src/main/java/com/hai/openApi/service/impl/ApiMchProductServiceImpl.java @@ -1,14 +1,25 @@ package com.hai.openApi.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.hai.common.exception.ErrorCode; +import com.hai.common.exception.ErrorHelp; +import com.hai.common.exception.SysCode; import com.hai.dao.ApiMchProductMapper; import com.hai.entity.ApiMchProduct; +import com.hai.entity.ApiMchProductExample; +import com.hai.entity.SecConfig; import com.hai.openApi.service.ApiMchProductService; +import com.hai.order.type.OrderProductType; +import com.hai.service.SecConfigService; +import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Map; +import java.util.Objects; @Service("apiMchProductService") public class ApiMchProductServiceImpl implements ApiMchProductService { @@ -16,9 +27,57 @@ public class ApiMchProductServiceImpl implements ApiMchProductService { @Resource private ApiMchProductMapper apiMchProductMapper; + @Resource + private SecConfigService secConfigService; + + @Override + public void insertMchProduct(ApiMchProduct apiMchProduct) { + apiMchProductMapper.insert(apiMchProduct); + } + @Override - public void insertMchProduct(JSONObject object) { -// apiMchProductMapper.insert(apiMchProduct); + public void configMchProduct(JSONObject object) { + + // 转换产品类型数组 + JSONArray productTypeS = object.getJSONArray("productType"); + + ApiMchProduct apiMchProduct; + + for (Object productType : productTypeS) { + + apiMchProduct = new ApiMchProduct(); + + apiMchProduct.setProductType(Integer.valueOf(productType.toString())); + apiMchProduct.setMchId(object.getString("mchId")); + apiMchProduct.setDiscount(object.getBigDecimal("discount")); + apiMchProduct.setStatus(1); + apiMchProduct.setCreateTime(new Date()); + apiMchProduct.setUpdateTime(new Date()); + + // 插入接口权限 + SecConfig secConfig = new SecConfig(); + secConfig.setCodeValue(object.getString("mchId")); + secConfig.setCodeType(OrderProductType.getDataByType(Integer.valueOf(productType.toString())).getApiCode()); + secConfigService.insertSecConfig(secConfig); + + if (Integer.valueOf(productType.toString()).equals(OrderProductType.PRODUCT_TYPE6.getNumber())) { + if (object.getLong("companyId") == null || + object.getString("merchantId") == null + ) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + JSONArray merchantIdS = object.getJSONArray("merchantId"); + for (Object merchantId : merchantIdS) { + apiMchProduct.setMerchantId(Long.valueOf(merchantId.toString())); + apiMchProduct.setCompanyId(object.getLong("companyId")); + insertMchProduct(apiMchProduct); + } + } else { + insertMchProduct(apiMchProduct); + } + + } + } @Override @@ -28,11 +87,39 @@ public class ApiMchProductServiceImpl implements ApiMchProductService { @Override public List getListMchProduct(Map map) { - return null; + ApiMchProductExample example = new ApiMchProductExample(); + ApiMchProductExample.Criteria criteria = example.createCriteria(); + + if (MapUtils.getString(map , "mchId") != null) { + criteria.andMchIdEqualTo(MapUtils.getString(map , "mchId")); + } + if (MapUtils.getInteger(map , "productType") != null) { + criteria.andProductTypeEqualTo(MapUtils.getInteger(map , "productType")); + } + + criteria.andStatusEqualTo(1); + return apiMchProductMapper.selectByExample(example); } @Override public ApiMchProduct findById(Long id) { return apiMchProductMapper.selectByPrimaryKey(id); } + + @Override + public void detailConfigMchProduct(String mchId) { + ApiMchProductExample example = new ApiMchProductExample(); + example.createCriteria().andMchIdEqualTo(mchId); + + List list = apiMchProductMapper.selectByExample(example); + for (ApiMchProduct apiMchProduct : list) { + apiMchProductMapper.deleteByPrimaryKey(apiMchProduct.getId()); + } + + } + + @Override + public void detailApiMchProduct(Long id) { + apiMchProductMapper.deleteByPrimaryKey(id); + } } diff --git a/hai-service/src/main/java/com/hai/order/model/OrderThirdPartyModel.java b/hai-service/src/main/java/com/hai/order/model/OrderThirdPartyModel.java index ccc00961..53ac4124 100644 --- a/hai-service/src/main/java/com/hai/order/model/OrderThirdPartyModel.java +++ b/hai-service/src/main/java/com/hai/order/model/OrderThirdPartyModel.java @@ -20,6 +20,10 @@ public class OrderThirdPartyModel { @ExcelProperty(value = "交易订单号") private String orderNo; + @ColumnWidth(25) + @ExcelProperty(value = "充值订单号") + private String regOrderNo; + @ColumnWidth(15) @ExcelProperty(value = "客户电话") private String memPhone; diff --git a/hai-service/src/main/java/com/hai/order/service/impl/OrderServiceImpl.java b/hai-service/src/main/java/com/hai/order/service/impl/OrderServiceImpl.java index 273ab726..1cff5be2 100644 --- a/hai-service/src/main/java/com/hai/order/service/impl/OrderServiceImpl.java +++ b/hai-service/src/main/java/com/hai/order/service/impl/OrderServiceImpl.java @@ -743,7 +743,6 @@ public class OrderServiceImpl implements OrderService { criteria.andCreateTimeLessThan(new Date(MapUtils.getLong(param, "finishTimeE"))); } - example.setOrderByClause("create_time desc"); return orderMapper.selectByExample(example); } diff --git a/hai-service/src/main/java/com/hai/order/type/OrderProductType.java b/hai-service/src/main/java/com/hai/order/type/OrderProductType.java index 54b90dbf..31cfe60b 100644 --- a/hai-service/src/main/java/com/hai/order/type/OrderProductType.java +++ b/hai-service/src/main/java/com/hai/order/type/OrderProductType.java @@ -9,16 +9,16 @@ import java.util.Objects; * @date: 2022/8/25 **/ public enum OrderProductType { - PRODUCT_TYPE1(1, "星巴克","orderLogo/starbucks.png"), - PRODUCT_TYPE2(2, "肯德基", "orderLogo/kfc.png"), - PRODUCT_TYPE3(3, "第三方充值", "orderLogo/member-top-up.png"), - PRODUCT_TYPE4(4, "积分充值", "orderLogo/integral-top-up.png"), - PRODUCT_TYPE5(5, "购买卡券", "orderLogo/coupon.png"), - PRODUCT_TYPE6(6, "在线加油" , "orderLogo/refuel-online.png"), - PRODUCT_TYPE7(7, "优惠券包", "orderLogo/coupon-packs.png"), - PRODUCT_TYPE8(8, "汇联通工会卡充值", "orderLogo/hlt.png"), - PRODUCT_TYPE9(9, "话费充值" , "orderLogo/calls.png"), - PRODUCT_TYPE10(10, "电影票" ,""), + PRODUCT_TYPE1(1, "星巴克","orderLogo/starbucks.png", "STARBUCKS_CONFIG"), + PRODUCT_TYPE2(2, "肯德基", "orderLogo/kfc.png" , "KFC_CONFIG"), + PRODUCT_TYPE3(3, "第三方充值", "orderLogo/member-top-up.png" , "MEMBER_RECHARGE_CONFIG"), + PRODUCT_TYPE4(4, "积分充值", "orderLogo/integral-top-up.png" , "INTEGRAL_RECHARGE_CONFIG"), + PRODUCT_TYPE5(5, "购买卡券", "orderLogo/coupon.png", "COUPON_CONFIG"), + PRODUCT_TYPE6(6, "在线加油" , "orderLogo/refuel-online.png", "REFUEL_ONLINE_CONFIG"), + PRODUCT_TYPE7(7, "优惠券包", "orderLogo/coupon-packs.png", "COUPON_PACKS_CONFIG"), + PRODUCT_TYPE8(8, "汇联通工会卡充值", "orderLogo/hlt.png", "HLT_CONFIG"), + PRODUCT_TYPE9(9, "话费充值" , "orderLogo/calls.png", "CALLS_CONFIG"), + PRODUCT_TYPE10(10, "电影票" ,"" , ""), ; private Integer number; @@ -27,10 +27,13 @@ public enum OrderProductType { private String imgUrl; - OrderProductType(int number, String name , String imgUrl) { + private String apiCode; + + OrderProductType(int number, String name , String imgUrl , String apiCode) { this.number = number; this.name = name; this.imgUrl = imgUrl; + this.apiCode = apiCode; } /** @@ -68,4 +71,12 @@ public enum OrderProductType { public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } + + public String getApiCode() { + return apiCode; + } + + public void setApiCode(String apiCode) { + this.apiCode = apiCode; + } } diff --git a/hai-service/src/main/java/com/hai/service/SecConfigService.java b/hai-service/src/main/java/com/hai/service/SecConfigService.java index dd132051..05bec2bf 100644 --- a/hai-service/src/main/java/com/hai/service/SecConfigService.java +++ b/hai-service/src/main/java/com/hai/service/SecConfigService.java @@ -89,6 +89,7 @@ public interface SecConfigService { * @Param [mchId, configProduct] * @Return void */ - void configMerchant(String mchId , String configProduct); + void deleteSecConfig(String mchId); + void deleteSecConfig(String mchId, String codeType); } diff --git a/hai-service/src/main/java/com/hai/service/impl/OutRechargeChildOrderServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/OutRechargeChildOrderServiceImpl.java index f2414d2f..e19c5bab 100644 --- a/hai-service/src/main/java/com/hai/service/impl/OutRechargeChildOrderServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/OutRechargeChildOrderServiceImpl.java @@ -60,9 +60,8 @@ public class OutRechargeChildOrderServiceImpl implements OutRechargeChildOrderSe public OutRechargeChildOrder findByOrderNo(String orderNo) { OutRechargeChildOrderExample example = new OutRechargeChildOrderExample(); OutRechargeChildOrderExample.Criteria criteria = example.createCriteria(); - criteria.andOrderNoEqualTo(orderNo); - + example.setOrderByClause("create_time desc"); List list = rechargeChildOrderMapper.selectByExample(example); if (list.size() > 0 ) { diff --git a/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java index 2ad9c977..50f9ac93 100644 --- a/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java @@ -619,7 +619,7 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService { // 组装查询子订单数据 childOrderMap.put("parent_order_id", outRechargeOrder.getId()); - // 添加查询是否存在充值中的子订单 + // 查询子订单 List childOrderList = outRechargeChildOrderService.getListRechargeChildOrder(childOrderMap); // 定义新的子订单对象 diff --git a/hai-service/src/main/java/com/hai/service/impl/SecConfigServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/SecConfigServiceImpl.java index 70adfef8..62da0e82 100644 --- a/hai-service/src/main/java/com/hai/service/impl/SecConfigServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/SecConfigServiceImpl.java @@ -5,18 +5,14 @@ import com.hai.common.utils.WxUtils; import com.hai.dao.SecConfigMapper; import com.hai.entity.SecConfig; import com.hai.entity.SecConfigExample; -import com.hai.entity.SecDictionary; -import com.hai.entity.SecDictionaryExample; import com.hai.service.ApiMerchantsService; import com.hai.service.SecConfigService; import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.SortedMap; @Service("secConfigServiceImpl") public class SecConfigServiceImpl implements SecConfigService { @@ -81,26 +77,22 @@ public class SecConfigServiceImpl implements SecConfigService { } @Override - public void configMerchant(String mchId, String configProduct) { + public void deleteSecConfig(String mchId) { SecConfigExample example = new SecConfigExample(); example.createCriteria().andCodeValueEqualTo(mchId); + // 删除当前配置 + secConfigMapper.deleteByExample(example); - List list = secConfigMapper.selectByExample(example); - - // 删除当前所有配置 - for (SecConfig secConfig : list) { - secConfigMapper.deleteByPrimaryKey(secConfig.getId()); - } + } - String [] configProductArray = configProduct.split(","); + @Override + public void deleteSecConfig(String mchId, String codeType) { + SecConfigExample example = new SecConfigExample(); - for (String s : configProductArray) { - SecConfig secConfig = new SecConfig(); - secConfig.setCodeType(s); - secConfig.setCodeValue(mchId); - secConfigMapper.insert(secConfig); - } + example.createCriteria().andCodeValueEqualTo(mchId).andCodeTypeEqualTo(codeType); + // 删除当前配置 + secConfigMapper.deleteByExample(example); } } diff --git a/v1/src/main/java/com/v1/controller/RefuelOnlineController.java b/v1/src/main/java/com/v1/controller/RefuelOnlineController.java new file mode 100644 index 00000000..2af01bd8 --- /dev/null +++ b/v1/src/main/java/com/v1/controller/RefuelOnlineController.java @@ -0,0 +1,137 @@ +package com.v1.controller; + +import com.alibaba.fastjson.JSONObject; +import com.hai.common.exception.ErrorCode; +import com.hai.common.exception.ErrorHelp; +import com.hai.common.exception.SysCode; +import com.hai.common.utils.ResponseMsgUtil; +import com.hai.entity.*; +import com.hai.model.ResponseData; +import com.hai.openApi.model.ApiMchStoreModel; +import com.hai.openApi.service.ApiMchProductService; +import com.hai.order.type.OrderProductType; +import com.hai.service.ApiIpAddressService; +import com.hai.service.ApiMerchantsService; +import com.hai.service.HighMerchantStoreService; +import com.hai.service.SecConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/refuelOnline") +@Api(value = "在线加油接口") +public class RefuelOnlineController { + + private static Logger log = LoggerFactory.getLogger(RefuelOnlineController.class); + + @Resource + private ApiIpAddressService apiIpAddressService; + + @Resource + private ApiMerchantsService apiMerchantsService; + + @Resource + private SecConfigService secConfigService; + + @Resource + private ApiMchProductService apiMchProductService; + + @Resource + private HighMerchantStoreService highMerchantStoreService; + + @RequestMapping(value = "/getStationStores", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "获取油站门店") + public ResponseData getStationStores(@RequestBody JSONObject object , HttpServletRequest request ) { + try { + + String ip = ""; + // 有的user可能使用代理,为处理用户使用代理的情况,使用x-forwarded-for + if (request.getHeader("x-forwarded-for") == null) { + ip = request.getRemoteAddr(); + } else { + ip = request.getHeader("x-forwarded-for"); + } + + if (!apiIpAddressService.validationIpAddressLegal(object.getString("merchId") , ip)) { + log.error("getRechargeProduct error!", "非法ip地址,请联系管理人员!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.IP_ERROR, "非法ip地址,请联系管理人员!"); + } + + if (StringUtils.isBlank(object.getString("apiKey")) || + StringUtils.isBlank(object.getString("merchId")) || + StringUtils.isBlank(object.getString("sign")) + ) { + log.error("getRechargeProduct error!", "请求参数校验失败!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR); + } + + ApiMerchants apiMerchants = apiMerchantsService.findByMchId(object.getString("merchId")); + + if (apiMerchants == null) { + log.error("getRechargeProduct error!", "帐户号错误!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_NOT_EXIST); + } + + if (!secConfigService.isConfig(OrderProductType.PRODUCT_TYPE6.getApiCode(), object.getString("merchId"))) { + log.error("getAllCities error!", "当前帐户无权限查询!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.MERCHANT_NOT_AUTHORIZED, "当前帐户无权限查询!"); + } + + Map map = new HashMap<>(); + map.put("apiKey" , object.getString("apiKey")); + map.put("merchId" , object.getString("merchId")); + + if (!secConfigService.isSignVerify(map , object.getString("sign"))) { + log.error("getRechargeProduct error!", "签名校验失败!"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.SIGN_VERIFY); + } + + Map mapProduct = new HashMap<>(); + mapProduct.put("mchId" , object.getString("merchId")); + mapProduct.put("productType" , OrderProductType.PRODUCT_TYPE6.getNumber()); + + List apiMchProducts = apiMchProductService.getListMchProduct(mapProduct); + + Map mapMerchant; + List merchantStores = new ArrayList<>(); + + for (ApiMchProduct mchProduct : apiMchProducts) { + mapMerchant = new HashMap<>(); + mapMerchant.put("merchantId" , mchProduct.getMerchantId()); + merchantStores.addAll(highMerchantStoreService.getMerchantStoreList(mapMerchant)); + } + + List apiMchStoreModels = new ArrayList<>(); + + for (HighMerchantStore merchantStore : merchantStores) { + ApiMchStoreModel apiMchStoreModel = new ApiMchStoreModel(); + apiMchStoreModel.setAddress(merchantStore.getAddress()); +// apiMchStoreModel.setStore_logo(); + } + + return ResponseMsgUtil.success(merchantStores); + + } catch (Exception e) { + log.error("HighOpenApiController --> getRechargeProduct() error!", e); + return ResponseMsgUtil.exception(e); + } + } + +} diff --git a/v1/src/main/resources/dev/logback.xml b/v1/src/main/resources/dev/logback.xml index eb31bd4d..9cfef73b 100644 --- a/v1/src/main/resources/dev/logback.xml +++ b/v1/src/main/resources/dev/logback.xml @@ -56,7 +56,26 @@ UTF-8 - + + + + log/RechargeLog.log + + log/RechargeLog/RechargeLog.log.%d.%i + + + 64 MB + + + + + %d %p (%file:%line\)- %m%n + + UTF-8 + + + @@ -72,4 +91,11 @@ + + + + + + +