From 3928baf745047292e7ee8fa7ac7c849ffc8c5269 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Thu, 3 Jan 2019 10:56:03 +0800 Subject: [PATCH 01/41] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/WxCUserBasicInfoController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 3a655f131..661487e78 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -1,6 +1,7 @@ package com.iformall.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -263,6 +264,7 @@ public class WxCUserBasicInfoController extends BaseController { public ResultData queryTemplateCount() { String userId = getUser().getId().toString(); Map entries = stringRedisTemplate.opsForHash().entries(userId); + logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>1"); if (entries.size() < 4) { entries.clear(); return new ResultData(Result.SUCCESS, "ok", entries); @@ -273,6 +275,7 @@ public class WxCUserBasicInfoController extends BaseController { String failCount = entries.get("failCount").toString(); if (allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); + logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>2"); //完全失败 stringRedisTemplate.opsForHash().delete(userId, "allCount"); stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); From 52e0b8aa7584a9e7e9c4c8a3904857a38aa5ad44 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 3 Jan 2019 11:36:09 +0800 Subject: [PATCH 02/41] =?UTF-8?q?[=E6=94=B6=E6=AC=BE=E7=A0=81=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E9=97=AE=E9=A2=98][=E4=BF=AE=E6=94=B9]:=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxMerchantMicroPayController.java | 10 +--- .../iformall/domain/dto/WxOrderReportDto.java | 52 ++----------------- .../impl/MarkingDataReportServiceImpl.java | 6 +-- .../main/resources/mapper/WxOrderMapper.xml | 15 +++++- 4 files changed, 21 insertions(+), 62 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantMicroPayController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantMicroPayController.java index 5bd35d38e..6558df02b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantMicroPayController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantMicroPayController.java @@ -4,22 +4,15 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxOrderReportDto; import com.iformall.domain.vo.WxMerchantMicroPayVo; -import com.iformall.domain.vo.WxMerchantTradeDailyVo; +import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumOrderType; import com.iformall.service.MarkingDataReportService; -import com.iformall.service.WxMerchantTradeDailyService; -import com.iformall.service.WxOrderService; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; @RestController @RequestMapping("wxMerchantMicroPay") @@ -36,6 +29,7 @@ public class WxMerchantMicroPayController extends BaseController { WxOrderReportDto wxOrderReportDto = new WxOrderReportDto(); wxOrderReportDto.setTenantId(getTenantId()); wxOrderReportDto.setType(EnumOrderType.MICROPAY.getCode()); + wxOrderReportDto.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); return new ResultData(markingDataReportService.listOrderReportByDate(wxOrderReportDto)); } diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/WxOrderReportDto.java b/mallinkService/src/main/java/com/iformall/domain/dto/WxOrderReportDto.java index 72384278f..8b98d5f15 100644 --- a/mallinkService/src/main/java/com/iformall/domain/dto/WxOrderReportDto.java +++ b/mallinkService/src/main/java/com/iformall/domain/dto/WxOrderReportDto.java @@ -1,10 +1,13 @@ package com.iformall.domain.dto; +import lombok.Data; + import java.util.Date; /** * Created by syf on 2018/8/30. */ +@Data public class WxOrderReportDto { private String tenantId; private Long merchantId; @@ -12,52 +15,5 @@ public class WxOrderReportDto { private Date startTime; private Date endTime; private Integer type; - - public String getTenantId() { - return tenantId; - } - - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } - - public Long getMerchantId() { - return merchantId; - } - - public void setMerchantId(Long merchantId) { - this.merchantId = merchantId; - } - - public String getMerchantName() { - return merchantName; - } - - public void setMerchantName(String merchantName) { - this.merchantName = merchantName; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public Date getStartTime() { - return startTime; - } - - public void setStartTime(Date startTime) { - this.startTime = startTime; - } - - public Date getEndTime() { - return endTime; - } - - public void setEndTime(Date endTime) { - this.endTime = endTime; - } + private Integer orderStatus; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index 0bcd95184..56070df79 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -6,10 +6,7 @@ import com.iformall.domain.dto.MarkingCouponDataReportDto; import com.iformall.domain.dto.WxOrderReportDto; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.vo.*; -import com.iformall.enums.EnumCarCmd; -import com.iformall.enums.EnumCouponSendSendType; -import com.iformall.enums.EnumCouponType; -import com.iformall.enums.EnumOrderType; +import com.iformall.enums.*; import com.iformall.mapper.*; import com.iformall.service.MarkingDataReportService; import com.iformall.utils.DateUtils; @@ -428,6 +425,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("endTime", addDay(1)); } params.put("type", wxOrderReportDto.getType()); + params.put("orderStatus", wxOrderReportDto.getOrderStatus()); List list = wxOrderMapper.listOrderReportByDate(params); String startdate = DateUtils.getTimeBefore(30, new Date()); diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 4d7990737..41ca18f0e 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -323,9 +323,20 @@ - select from wx_card_spend - - + + and `create_date` = #{createDate} + + + and `update_date` = #{updateDate} + + + and `pay_status` = #{payStatus} + + + and `create_date` between #{startdate} and #{enddate} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + + - - - + + + - + cs.`id`,cs.`tenant_id`,cs.`card_id`,cs.`owner_id`,cs.`merchant_id`,cs.`order_id`,cs.`deduction_amount`,cs.`payment`,cs.`real_payment`, cs.`card_remain_amount`,cs.`card_before_amount`,cs.`card_remain_real_amount`,cs.`card_before_real_amount`, cs.`create_date`,cs.`update_date`, cs.`pay_status`, @@ -139,125 +154,125 @@ ou.`nick_name` as onick_name, ou.`phone` as ou_phone - - where 1 = 1 - - and cs.`id` = #{id} - - - and cs.`tenant_id` = #{tenantId} - - - and cs.`card_id` = #{cardId} - - - and cs.`owner_id` = #{ownerId} - - - and cs.`merchant_id` = #{merchantId} - - - and cs.`order_id` = #{orderId} - - - and cs.`deduction_amount` = #{deductionAmount} - - - and cs.`payment` = #{payment} - - - and cs.`real_payment` = #{realPayment} - - - and cs.`card_remain_amount` = #{cardRemainAmount} - - - and cs.`card_before_amount` = #{cardBeforeAmount} - - - and cs.`card_remain_real_amount` = #{cardRemainRealAmount} - - - and cs.`card_before_real_amount` = #{cardBeforeRealAmount} - - - and cs.`create_date` = #{createDate} - - - and cs.`update_date` = #{updateDate} - - - and cs.`pay_status` = #{payStatus} - - - and ms.`status` = #{status} - - - and ou.`phone` = #{ouPhone} - - - and cs.`create_date` between #{startdate} and #{enddate} - - - and cs.`pay_status` in - - #{sItem} - - - - and cs.id in - - #{idItem} - - - + + where 1 = 1 + + and cs.`id` = #{id} + + + and cs.`tenant_id` = #{tenantId} + + + and cs.`card_id` = #{cardId} + + + and cs.`owner_id` = #{ownerId} + + + and cs.`merchant_id` = #{merchantId} + + + and cs.`order_id` = #{orderId} + + + and cs.`deduction_amount` = #{deductionAmount} + + + and cs.`payment` = #{payment} + + + and cs.`real_payment` = #{realPayment} + + + and cs.`card_remain_amount` = #{cardRemainAmount} + + + and cs.`card_before_amount` = #{cardBeforeAmount} + + + and cs.`card_remain_real_amount` = #{cardRemainRealAmount} + + + and cs.`card_before_real_amount` = #{cardBeforeRealAmount} + + + and cs.`create_date` = #{createDate} + + + and cs.`update_date` = #{updateDate} + + + and cs.`pay_status` = #{payStatus} + + + and ms.`status` = #{status} + + + and ou.`phone` = #{ouPhone} + + + and cs.`create_date` between #{startdate} and #{enddate} + + + and cs.`pay_status` in + + #{sItem} + + + + and cs.id in + + #{idItem} + + + - + select + + from wx_card_spend cs left join wx_coupon_order co on co.id = cs.card_id left join wx_coupon c on c.id = co.coupon_id - left join wx_merchant m on m.id = cs.merchant_id + left join wx_merchant m on m.id = cs.merchant_id left join wx_merchant_subsidy ms on ms.order_id = cs.order_id - left join wx_c_user ou on ou.id = co.owner_id - + left join wx_c_user ou on ou.id = co.owner_id + order by cs.create_date DESC - + + + + + - - - - From 93e958ba9fed4383db2ccab18ca3b120691065b7 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 11:04:51 +0800 Subject: [PATCH 07/41] =?UTF-8?q?[=E8=A1=A5=E8=B4=B4][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E8=A1=A5=E8=B4=B4=E5=AF=BC=E5=87=BA=E5=92=8CUI=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxMerchantSubsidyController.java | 1 + .../impl/WxMerchantSubsidyServiceImpl.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantSubsidyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantSubsidyController.java index a2da9a647..abcccf83f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantSubsidyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxMerchantSubsidyController.java @@ -130,6 +130,7 @@ public class WxMerchantSubsidyController extends BaseController { wxMerchantSubsidy.setStatusS(tmpList); } } + wxMerchantSubsidy.setSortColumns(WxMerchantSubsidy.Field.CreateDate_DESC); wxMerchantSubsidyService.exportData(wxMerchantSubsidy, request, response); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java index f271faa04..2121d71bf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java @@ -25,6 +25,7 @@ import com.iformall.common.IdWorker; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; @@ -94,7 +95,8 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService { String filename = UUID.randomUUID() + ".xlsx"; filepath = filepath + filename; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + DecimalFormat df = new DecimalFormat("0.00"); try { File file = new File(filepath); @@ -129,13 +131,16 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService { WxMerchantSubsidyVo entity = subsidyVoList.get(i); - idCellTwo.setCellValue(entity.getId()); + idCellTwo.setCellValue(String.valueOf(entity.getId())); merchantNameCellTwo.setCellValue(entity.getMerchantName()); if (entity.getCreateDate() != null) createDateCellTwo.setCellValue(sdf.format(entity.getCreateDate())); - orderPaymentCellTwo.setCellValue(entity.getOrderPayment()/ 100); - receiverPaymentCellTwo.setCellValue(entity.getReceiverPayment() / 100); - subsidyCellTwo.setCellValue(entity.getSubsidy() / 100); + String dStr = df.format((float)entity.getOrderPayment()/100); + orderPaymentCellTwo.setCellValue(dStr); + dStr = df.format((float)entity.getReceiverPayment()/100); + receiverPaymentCellTwo.setCellValue(dStr); + dStr = df.format((float)entity.getSubsidy()/100); + subsidyCellTwo.setCellValue(dStr); String statusStr = "未补贴"; if (entity.getStatus().equals(EnumMerchantSubsidyStatus.NOT_SUBSIDY.getCode())) { statusStr = "未补贴"; From 813e3f91ef3e9a56acc67974d3de51ca6d44e973 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 11:05:29 +0800 Subject: [PATCH 08/41] =?UTF-8?q?[=E5=8D=A1=E6=B6=88=E8=B4=B9=E5=88=97?= =?UTF-8?q?=E8=A1=A8][=E4=BF=AE=E6=94=B9]:=E5=8D=A1=E6=B6=88=E8=B4=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AF=BC=E5=87=BA=E5=92=8CUI=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxCardSpendServiceImpl.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index ffd358f0b..ef38f50eb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -16,7 +15,6 @@ import com.iformall.service.WxCardSpendService; import com.iformall.service.WxProfitSharingOrderService; import com.iformall.utils.Constant; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; @@ -32,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -483,7 +482,8 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { String filename = UUID.randomUUID() + ".xlsx"; filepath = filepath + filename; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + DecimalFormat df = new DecimalFormat("0.00"); try { File file = new File(filepath); @@ -527,16 +527,19 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { WxCardSpendVo entity = cardSpendVoList.get(i); - idCellTwo.setCellValue(entity.getId()); + idCellTwo.setCellValue(String.valueOf(entity.getId())); ownerCellTwo.setCellValue(entity.getOnickName()); phoneCellTwo.setCellValue(entity.getOuPhone()); cardNameCellTwo.setCellValue(entity.getTitle()); merchantNameCellTwo.setCellValue(entity.getMerchantName()); - costCellTwo.setCellValue(entity.getDeductionAmount()); + String dStr = df.format((float)entity.getDeductionAmount()/100); + costCellTwo.setCellValue(dStr); if (entity.getCreateDate() != null) costTimeCellTwo.setCellValue(sdf.format(entity.getCreateDate())); - receivePayCellTwo.setCellValue(entity.getPayment()); - realReceivePayCellTwo.setCellValue(entity.getRealPayment()); + dStr = df.format((float)entity.getPayment()/100); + receivePayCellTwo.setCellValue(dStr); + dStr = df.format((float)entity.getRealPayment()/100); + realReceivePayCellTwo.setCellValue(dStr); String statusStr = "未支付"; if (entity.getPayStatus().equals(EnumCardSpendStatus.NOT_PAY.getCode())) statusStr = "未支付"; From d03fa925953127041d5111a91ea9152417716f2f Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 11:29:36 +0800 Subject: [PATCH 09/41] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E5=88=86=E8=B4=A6][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E5=88=86=E8=B4=A6=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E4=B8=BA0=EF=BC=8C=E4=BC=9A=E5=AF=BC=E8=87=B4=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxCardSpendServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index ef38f50eb..2c222914d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -367,6 +367,10 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { cardSpend.setCardId(cardId); cardSpend.setOrderId(orderId); cardSpend = wxCardSpendMapper.selectOne(cardSpend); + if (cardSpend != null && cardSpend.getRealPayment() <= 0) { + logger.error("微信分账金额为0, 无法再分"); + return; + } WxCardInfo cardInfo = wxCardInfoMapper.selectByPrimaryKey(cardSpend.getCardId()); WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(orderId); WxMerchant merchant = wxMerchantMapper.selectByPrimaryKey(cardSpend.getMerchantId()); @@ -387,6 +391,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { ResultData resultData = profitSharingOrderService.createSharingOrder(shareOrder); if(resultData.code != Result.SUCCESS) { // 分账异常 + logger.error(resultData.message); throw new MallinkException(resultData.code, resultData.message); } From 4064abf39ec812c1b6de244eddb87d054655b5e6 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 11:46:17 +0800 Subject: [PATCH 10/41] =?UTF-8?q?[=E5=88=B8=E5=AF=BC=E5=87=BA][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E5=88=B8=E5=AF=BC=E5=87=BA=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WxCouponOrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponOrderController.java index 2643004e1..4ea2b0852 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -110,7 +110,7 @@ public class WxCouponOrderController extends BaseController { } catch (Exception e) { wxCouponOrder.setEndDate(null); } - + wxCouponOrder.setSortColumns(WxCouponOrder.Field.Id_DESC); wxCouponOrderService.exportData(request, response, wxCouponOrder); } From 05b1a74d3f0b04a9b545078387b11ca4096bb9e2 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Fri, 4 Jan 2019 13:42:03 +0800 Subject: [PATCH 11/41] =?UTF-8?q?[B=E7=AB=AF=E7=AE=A1=E7=90=86=E5=91=98][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E5=AF=86=E7=A0=81=E5=AD=97=E6=AE=B5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxMerchantBUserController.java | 2 +- .../com/iformall/domain/po/WxMerchantBUser.java | 14 +++++++------- .../service/impl/WxMerchantBUserServiceImpl.java | 2 +- .../resources/mapper/WxMerchantBUserMapper.xml | 12 ++++++------ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 7dec8590c..82402f61f 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -235,7 +235,7 @@ public class WxMerchantBUserController extends BaseController { return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID); } // check password - if (user1.getbUserPwd().equalsIgnoreCase(password)) { + if (user1.getUserPwd().equalsIgnoreCase(password)) { user1.createToken(currentDate); token = user1.getToken(); resultMap.put("token", token); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java index 0972707d4..934e0fb1c 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java @@ -50,8 +50,8 @@ public class WxMerchantBUser implements Serializable { @io.swagger.annotations.ApiModelProperty(value = "B端用户手机号", name = "phone") private String phone; /***/ - @io.swagger.annotations.ApiModelProperty(value = "", name = "bUserPwd") - private String bUserPwd; + @io.swagger.annotations.ApiModelProperty(value = "", name = "userPwd") + private String userPwd; /*商户id**/ @io.swagger.annotations.ApiModelProperty(value = "商户id", name = "merchantId") private Long merchantId; @@ -159,19 +159,19 @@ public class WxMerchantBUser implements Serializable { this.status = status; } - public String getbUserPwd() { - return bUserPwd; + public String getUserPwd() { + return userPwd; } - public void setbUserPwd(String bUserPwd) { - this.bUserPwd = bUserPwd; + public void setUserPwd(String userPwd) { + this.userPwd = userPwd; } public static enum Field { Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), TenantId_ASC("`tenant_id` ASC"), TenantId_DESC("`tenant_id` DESC"), Phone_ASC("`phone` ASC"), Phone_DESC("`phone` DESC"), - BUserPwd_ASC("`b_user_pwd` ASC"), BUserPwd_DESC("`b_user_pwd` DESC"), + UserPwd_ASC("`user_pwd` ASC"), UserPwd_DESC("`user_pwd` DESC"), MerchantId_ASC("`merchant_id` ASC"), MerchantId_DESC("`merchant_id` DESC"), CreateDate_ASC("`create_date` ASC"), CreateDate_DESC("`create_date` DESC"), UpdateDate_ASC("`update_date` ASC"), UpdateDate_DESC("`update_date` DESC"), diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index b8f7fb319..0d7cfdab3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -118,7 +118,7 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { List list = wxMerchantBUserMapper.findList(bUser); if (list.size() > 0) { bUser = list.get(0); - bUser.setbUserPwd(pwd); + bUser.setUserPwd(pwd); try { wxMerchantBUserMapper.updateByPrimaryKeySelective(bUser); } catch (Exception e) { diff --git a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml index 181c3da5b..31bd24945 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - `id`,`tenant_id`,`phone`,`b_user_pwd`,`merchant_id`,`create_date`,`update_date`,`app_id`,`token`,`expire_time`,`name`,`status` + `id`,`tenant_id`,`phone`,`user_pwd`,`merchant_id`,`create_date`,`update_date`,`app_id`,`token`,`expire_time`,`name`,`status` @@ -36,10 +36,10 @@ and `phone` = #{phone} - - - - and `b_user_pwd` like concat('%', #{bUserPwd},'%') + + + + and `user_pwd` like concat('%', #{userPwd},'%') From b3bc53644abbb1b21b8466f16116d128329015e2 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 14:33:41 +0800 Subject: [PATCH 12/41] =?UTF-8?q?[C=E7=AB=AF=E5=9B=BE=E7=89=87=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0][=E4=BF=AE=E6=94=B9]:=E6=B7=BB=E5=8A=A0=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/interceptor/HttpServletRequestWrapperFilter.java | 4 +++- .../java/com/iformall/interceptor/RequestInterceptor.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java index c0e7a01d6..4df979d09 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java @@ -17,7 +17,9 @@ public class HttpServletRequestWrapperFilter implements Filter { ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest) { String url = ((HttpServletRequest) request).getRequestURI(); - if (!url.contains("awsFileUpload") && !url.contains("ueditor/exec") + if (!url.contains("awsFileUpload") + && !url.contains("cimgUpload") + && !url.contains("ueditor/exec") && !url.contains("/wxCUserBasicInfo/importTemplate")) { requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request); } else { diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index bc04dfea6..efaa52f5b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -45,6 +45,7 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { String url = request.getRequestURL().toString(); if(url.contains("pvlog") || url.contains("awsFileUpload") + || url.contains("cimgUpload") || url.contains("ueditor/exec")) { // pvlog不检查幂等 // awsFileUpload不检查幂等 From b02bef77cb1735537e3d94c979630c50b2762fde Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 14:48:35 +0800 Subject: [PATCH 13/41] =?UTF-8?q?[C=E7=AB=AF=E5=9B=BE=E7=89=87=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0][=E4=BF=AE=E6=94=B9]:=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/UploadController.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java index d7224312d..063cc2f1f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/UploadController.java @@ -209,17 +209,8 @@ public class UploadController extends BaseController { metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(multiReq.getSize()); - FileOutputStream fos = null; - BufferedInputStream fs = null; - - String fileName = ""; - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - if (dot >= 0) { - fileName = "cimg/" + multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } else { - fileName = "cimg/" + UUID.randomUUID().toString(); - } - + String fileName = multiReq.getOriginalFilename(); + fileName = "cimg/" + fileName; ResultData data = awsUpload(multiReq, metadata, fileName); return data; } From 392dd7a3ddcd01b9097a748d7c01c5b5551030f4 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 22:29:11 +0800 Subject: [PATCH 14/41] =?UTF-8?q?[coupon=E8=A1=A5=E8=B4=B4=E5=AD=97?= =?UTF-8?q?=E6=AE=B5][=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/WxCouponMapper.xml | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index c38315b5a..bca5a8da5 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -27,10 +27,14 @@ + + - `id`,`tenant_id`,`type`,`cover_img`,`title`,`sub_title`,`sale_price`,`use_price`,`use_limit_quantity`,`send_type`,`valid_type`,`valid_start_date`,`valid_end_date`,`valid_days`,`detail`,`price`,`unit`,`remain_inventory`,`inventory`,`remark`,`status`,`create_date`,`update_date`,`business`,`support_transfer`,`subsidy_num`,`subsidy_type` + `id`,`tenant_id`,`type`,`cover_img`,`title`,`sub_title`,`sale_price`,`use_price`,`use_limit_quantity`,`send_type`, + `valid_type`,`valid_start_date`,`valid_end_date`,`valid_days`,`detail`,`price`,`unit`,`remain_inventory`,`inventory`, + `remark`,`status`,`create_date`,`update_date`,`business`,`support_transfer`,`subsidy_num`,`subsidy_type` @@ -136,6 +140,14 @@ and `support_transfer` = #{supportTransfer} + + and `subsidy_type` = #{subsidyType} + + + + and `subsidy_num` = #{subsidyNum} + + and id in @@ -255,6 +267,14 @@ and `support_transfer` = #{supportTransfer} + + and `subsidy_type` = #{subsidyType} + + + + and `subsidy_num` = #{subsidyNum} + + and id in @@ -374,6 +394,14 @@ and `support_transfer` = #{supportTransfer} + + and `subsidy_type` = #{subsidyType} + + + + and `subsidy_num` = #{subsidyNum} + + and id in From ad95a632f5da4653f35f01530be36c3f5cd6c62f Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 22:30:18 +0800 Subject: [PATCH 15/41] =?UTF-8?q?[coupon=20channel][=E7=A7=BB=E9=99=A4]:?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A0=E7=94=A8=E7=9A=84sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/WxCouponChannelMapper.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index 9c7bd6b09..ff7fa5c41 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -91,11 +91,6 @@ - - update wx_coupon_channel set status=#{status} where tenant_id=#{tenantId} and coupon_id=#{couponId} From d64f6bac0b8da11caae6716c5f0e055a88ebb578 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 23:45:56 +0800 Subject: [PATCH 16/41] =?UTF-8?q?[=E5=82=A8=E5=80=BC=E5=8D=A1][=E6=96=B0?= =?UTF-8?q?=E5=A2=9E]:=E5=82=A8=E5=80=BC=E5=8D=A1=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E6=9C=AA=E6=94=AF=E4=BB=98=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/OrderExpiringSchedule.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index b315119fd..163040b99 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -37,21 +37,28 @@ public class OrderExpiringSchedule { Map dateMap = new HashMap(); Date curDate = new Date(); + Date expireDate = new Date(curDate.getTime() - TIME_OUT_VALUE ); - // 只检查券相关订单 + // 券相关订单 dateMap.put("type", EnumOrderType.COUPON.getCode()); - dateMap.put("endDate", new Date(curDate.getTime() - TIME_OUT_VALUE )); - List wxOrderList = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); + dateMap.put("endDate", expireDate); + List orderCoupons = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); + orderCoupons.parallelStream().forEach( o -> { + orderExpired(o); + }); - for(WxOrder wxOrder: wxOrderList){ - orderExpired(wxOrder); - } + // 卡相关订单 + dateMap.put("type", EnumOrderType.PREPAIDCARD.getCode()); + dateMap.put("endDate", new Date(curDate.getTime() - TIME_OUT_VALUE )); + List orderCards = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); + orderCards.parallelStream().forEach( o -> { + orderExpired(o); + }); } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void orderExpired(WxOrder order) { order.setUpdateDate(new Date()); - order.setType(EnumOrderType.COUPON.getCode()); order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode()); wxOrderMapper.updateByPrimaryKeySelective(order); From 9dc21b62b096f2d1a60854cbfdc1b24f4a3d0d5e Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 4 Jan 2019 23:51:56 +0800 Subject: [PATCH 17/41] =?UTF-8?q?[=E5=82=A8=E5=80=BC=E5=8D=A1][=E6=96=B0?= =?UTF-8?q?=E5=A2=9E]:=E5=82=A8=E5=80=BC=E5=8D=A1=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E6=9C=AA=E6=94=AF=E4=BB=98=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/schedule/OrderExpiringSchedule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 163040b99..3a13030c0 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -49,7 +49,7 @@ public class OrderExpiringSchedule { // 卡相关订单 dateMap.put("type", EnumOrderType.PREPAIDCARD.getCode()); - dateMap.put("endDate", new Date(curDate.getTime() - TIME_OUT_VALUE )); + dateMap.put("endDate", expireDate); List orderCards = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); orderCards.parallelStream().forEach( o -> { orderExpired(o); From 93526c4cd1c7cde535f4cbabea845c643716177c Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 5 Jan 2019 08:08:36 +0800 Subject: [PATCH 18/41] =?UTF-8?q?[=E5=82=A8=E5=80=BC=E5=8D=A1][=E7=A7=BB?= =?UTF-8?q?=E9=99=A4]:=E5=8D=A1=E6=94=AF=E4=BB=98=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=8D=E9=9C=80=E8=A6=81=E6=A3=80=E6=9F=A5=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/schedule/OrderExpiringSchedule.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 3a13030c0..0052426ce 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -46,14 +46,6 @@ public class OrderExpiringSchedule { orderCoupons.parallelStream().forEach( o -> { orderExpired(o); }); - - // 卡相关订单 - dateMap.put("type", EnumOrderType.PREPAIDCARD.getCode()); - dateMap.put("endDate", expireDate); - List orderCards = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); - orderCards.parallelStream().forEach( o -> { - orderExpired(o); - }); } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) From dcf12895b50fef842ee63051e7d4a20d88c190d3 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Sat, 5 Jan 2019 11:56:10 +0800 Subject: [PATCH 19/41] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E5=AF=BC=E5=85=A5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/interceptor/RequestInterceptor.java | 3 ++- .../main/java/com/iformall/domain/vo/CUserBaseInfoT.java | 2 ++ .../service/impl/WxCUserBasicInfoServiceImpl.java | 9 +++++---- pom.xml | 9 +-------- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java index efaa52f5b..3adf70465 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/RequestInterceptor.java @@ -46,7 +46,8 @@ public class RequestInterceptor extends HandlerInterceptorAdapter { if(url.contains("pvlog") || url.contains("awsFileUpload") || url.contains("cimgUpload") - || url.contains("ueditor/exec")) { + || url.contains("ueditor/exec") + || url.contains("/wxCUserBasicInfo/importTemplate")) { // pvlog不检查幂等 // awsFileUpload不检查幂等 // ueditor 不检查幂等 diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java b/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java index 9df810a27..e22fa2e31 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java @@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.annotation.Excel; import javax.persistence.Transient; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; import java.io.Serializable; public class CUserBaseInfoT implements Serializable { @@ -19,6 +20,7 @@ public class CUserBaseInfoT implements Serializable { @Excel(name="手机号",width = 20,orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="微信用户绑定的手机号",name="phone") @NotNull + @Pattern(regexp = "1[34578]\\d{9}", message = "手机号不正确") private String phone; /**用户昵称**/ @Excel(name="微信昵称",width = 20,orderNum = "4") diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index acc98d9d7..ab046fef4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -514,12 +514,13 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { final IdWorker idWorker = IdWorker.get(); ImportParams params = new ImportParams(); - IExcelDataHandler handler = new UserExcelHandler(); - handler.setNeedHandlerFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"});// 注意这里对应的是excel的列名。也就是对象上指定的列名。 - params.setDataHandler(handler); + //IExcelDataHandler handler = new UserExcelHandler(); + //handler.setNeedHandlerFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"});// 注意这里对应的是excel的列名。也就是对象上指定的列名。 + //params.setDataHandler(handler); //params.setVerifyHandler(); // 需要验证 - params.setNeedVerfiy(true); + params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); + params.setNeedVerify(true); try { diff --git a/pom.xml b/pom.xml index 5f4d3421a..706ac09fd 100644 --- a/pom.xml +++ b/pom.xml @@ -260,14 +260,7 @@ cn.afterturn easypoi-spring-boot-starter - 3.3.0 - - - - - org.apache.poi - poi-ooxml-schemas - 3.15 + 4.0.0 From a9dc5e9a6c2ed1de2cb984701d4b6bf786522f8e Mon Sep 17 00:00:00 2001 From: gongbiao Date: Sat, 5 Jan 2019 12:21:00 +0800 Subject: [PATCH 20/41] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E5=AF=BC=E5=85=A5=E6=97=B6=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=8F=B7=E6=A3=80=E9=AA=8C]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java b/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java index e22fa2e31..f5e4a6afc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/CUserBaseInfoT.java @@ -20,7 +20,7 @@ public class CUserBaseInfoT implements Serializable { @Excel(name="手机号",width = 20,orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="微信用户绑定的手机号",name="phone") @NotNull - @Pattern(regexp = "1[34578]\\d{9}", message = "手机号不正确") + @Pattern(regexp = "1[0123456789]\\d{9}", message = "手机号不正确") private String phone; /**用户昵称**/ @Excel(name="微信昵称",width = 20,orderNum = "4") From 6409723ac9bbf01d708908edacae7a6488384b16 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 5 Jan 2019 12:23:49 +0800 Subject: [PATCH 21/41] =?UTF-8?q?[=E5=82=A8=E5=80=BC=E5=8D=A1][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E8=BF=87=E6=9C=9F=E4=B8=8E=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/CouponOrderExpiringSchedule.java | 51 ++++++++++++++----- .../impl/WxRefundOrderServiceImpl.java | 4 -- 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index faa011180..1f54b38f6 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -1,9 +1,14 @@ package com.iformall.schedule; +import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; import com.iformall.config.PayProperty; import com.iformall.domain.po.*; import com.iformall.enums.EnumAppType; +import com.iformall.enums.EnumCouponOrderStatus; +import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumPayType; +import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.WxPayOrderService; import com.iformall.service.WxRefundOrderService; @@ -15,6 +20,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; @Component @@ -50,20 +56,41 @@ public class CouponOrderExpiringSchedule { List list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate(); + list.parallelStream().forEach(co -> { + // 券过期与退款分离 + couponOrderExpire(co); + + if(!co.getCouponType().equals(EnumCouponType.CARD_MULTIMCH.getCode())) { + // 非储值卡, 可以退款 + WxAppinfo appinfo = new WxAppinfo(); + appinfo.setTenantId(co.getTenantId()); + appinfo.setType(EnumAppType.B.getCode()); + appinfo = wxAppinfoMapper.findList(appinfo).get(0); + + try { + wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, co.getId(), EnumPayType.PAY_AUTO_REFUND, null); + } catch (Exception e) { + logger.error("退款失败:"+e.getMessage()+"couponOrderId="+co.getId()); + } + } - for(WxCouponOrder co:list) { - - WxAppinfo appinfo = new WxAppinfo(); - appinfo.setTenantId(co.getTenantId()); - appinfo.setType(EnumAppType.B.getCode()); - appinfo = wxAppinfoMapper.findList(appinfo).get(0); + }); + } - try { - wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, co.getId(), EnumPayType.PAY_AUTO_REFUND, null); - } catch (Exception e) { - logger.error("退款失败:"+e.getMessage()+"couponOrderId="+co.getId()); - continue; - } + private void couponOrderExpire(WxCouponOrder co) { + // 标记 couponOrder过期 + WxCouponOrder wxCouponOrder = new WxCouponOrder(); + wxCouponOrder.setId(co.getId()); + if(co.getCouponType().equals(EnumCouponType.CARD_MULTIMCH.getCode())) { + wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_OVER_TIME.getCode()); // 卡线下退款 + } else { + wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()); //券已过期 + } + wxCouponOrder.setUpdateDate(new Date()); + try { + wxCouponOrderMapper.updateByPrimaryKeySelective(wxCouponOrder); + } catch (Exception e) { + logger.error("db failed: couponOrder-" + wxCouponOrder.getId() + ", e:" + e.getMessage()); } } } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java index f7f205af2..b36725355 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -300,10 +300,6 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { throw new MallinkException(ErrorCode.REFUND_PAY_ORDER_IS_ZERO); } - if (wxCouponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode())) { - logger.error("已过期: couponOrder-" + couponOrderId); - throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); - } if (wxCouponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode())) { logger.error("已退款: couponOrder-" + couponOrderId); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); From 52ab2b88cf4550229c594bb4514135af1302c68d Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 5 Jan 2019 12:44:17 +0800 Subject: [PATCH 22/41] =?UTF-8?q?[=E5=82=A8=E5=80=BC=E5=8D=A1][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E5=82=A8=E5=80=BC=E5=8D=A1=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=A1=AB=E5=86=99cUserId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WxCardPayController.java | 7 ++++++- .../main/java/com/iformall/service/WxOrderService.java | 4 +++- .../com/iformall/service/impl/WxOrderServiceImpl.java | 8 ++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java index e122846c4..0ea1d9a73 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -6,6 +6,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxCardSpendVo; +import com.iformall.enums.EnumMerchantStatus; import com.iformall.exception.MallinkException; import com.iformall.service.*; import io.swagger.annotations.Api; @@ -106,10 +107,14 @@ public class WxCardPayController extends BaseController { WxCUser user = getUser(); WxMerchant merchant = wxMerchantService.getById(merchantId); + if (merchant.getStatus() == EnumMerchantStatus.NOT_VALID.getCode()) { + logger.error("商户已禁用, merchantId: " + merchant.getId()); + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID); + } WxOrder order = null; try { - order = wxOrderService.saveCardPayOrder(merchant, totalFeeStr, payment); + order = wxOrderService.saveCardPayOrder(merchant, user, totalFeeStr, payment); } catch (MallinkException e) { logger.error("saveCardPayOrder 1" + e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index dae516d91..afea50e2c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -51,10 +51,12 @@ public interface WxOrderService { /** * 商户码-储值卡支付 * @param merchant + * @param cUser * @param totalFeeStr + * @param payment * @return 订单id */ - WxOrder saveCardPayOrder(WxMerchant merchant, String totalFeeStr, Integer payment); + WxOrder saveCardPayOrder(WxMerchant merchant, WxCUser cUser, String totalFeeStr, Integer payment); /** * 免费券订单接口 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index d658ec1ef..e7eb3411b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -452,12 +452,7 @@ public class WxOrderServiceImpl implements WxOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxOrder saveCardPayOrder(WxMerchant merchant, String totalFeeStr, Integer payment) { - if (merchant.getStatus() == EnumMerchantStatus.NOT_VALID.getCode()) { - logger.error("商户已禁用, merchantId: " + merchant.getId()); - throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_VALID); - } - + public WxOrder saveCardPayOrder(WxMerchant merchant, WxCUser cUser, String totalFeeStr, Integer payment) { Date curr = new Date(); final IdWorker idWorker = IdWorker.get(); @@ -473,6 +468,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setOrderNumber(orderNumber); record.setType(EnumOrderType.PREPAIDCARD.getCode()); record.setProductId(merchant.getId()); + record.setcUserId(cUser.getId()); record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); record.setPayment(payment); record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); From 49fb863bb3e74894262c5a4cb69dcc2e3f19c438 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 5 Jan 2019 12:51:11 +0800 Subject: [PATCH 23/41] =?UTF-8?q?[=E5=82=A8=E5=80=BC=E5=8D=A1][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E5=82=A8=E5=80=BC=E5=8D=A1=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=9B=B4=E6=96=B0order=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxCardSpendServiceImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 2c222914d..b033183ca 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -119,7 +119,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { return new ResultData(ErrorCode.DB_FAIL.getCode(), "获取payAccount失败"); } - // 5. 扣减计算 + // 4. 扣减计算 Integer payment = cardInfo.getSaleAmount() * record.getDeductionAmount() / cardInfo.getAmount(); Double dChargeFee = Math.ceil(payment * 1.0D * payAccount.getRate() / 10000); Integer real_payment = payment - dChargeFee.intValue(); @@ -132,7 +132,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { remain_real_pament = cardInfo.getRemainingShareFeeAmount() - real_payment; } - // 6 insert card_spend + // 5 insert card_spend record.setId(idWorker.nextId()); record.setPayment(payment); record.setRealPayment(real_payment); @@ -150,6 +150,19 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { return new ResultData(ErrorCode.DB_FAIL.getCode(), "card spend 插入出错!"); } + // 6. update order status + WxOrder orderUpdate = new WxOrder(); + orderUpdate.setId(order.getId()); + orderUpdate.setPaymentTime(curDate); + orderUpdate.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); + orderUpdate.setUpdateDate(curDate); + try { + wxOrderMapper.updateByPrimaryKeySelective(orderUpdate); + } catch (Exception e) { + logger.error("order update error"); + return new ResultData(ErrorCode.DB_FAIL.getCode(), "order update 出错!"); + } + // 7. update card info cardInfo.setRemainingAmount(remaingAmount); cardInfo.setRemainingShareFeeAmount(remain_real_pament); From 0f9064331d69dbf88cb5d6d9aaac9be84a670d87 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Sat, 5 Jan 2019 18:33:35 +0800 Subject: [PATCH 24/41] =?UTF-8?q?[=E4=BA=A4=E6=98=93=E5=AF=B9=E8=B4=A6?= =?UTF-8?q?=E5=8D=95][=E4=BF=AE=E6=94=B9][=E6=9F=A5=E8=AF=A2=E9=97=AE?= =?UTF-8?q?=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/WxOrderMapper.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 41ca18f0e..2917a3be5 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -427,7 +427,7 @@ o.order_status,o.create_date,o.update_date,o.detail,'[多商户交易]' merchant_name,cubi.`name` c_user_name,cubi.phone from ( - select o.* from wx_order o where o.type in (0,3) and o.id in( + select o.* from wx_order o where o.type=0 and o.id in( select o.id from wx_order o left join wx_coupon_merchant cm on o.product_id=cm.product_id group by o.id having count(o.id)>1)) o left join wx_c_user_basic_info cubi on o.c_user_id=cubi.id @@ -436,7 +436,7 @@ o.order_status,o.create_date,o.update_date,o.detail,m.`name` merchant_name,cubi.`name` c_user_name,cubi.phone from( select o.*,cm.merchant_id from ( - select o.* from wx_order o where o.type in (0,3) and o.id not in( + select o.* from wx_order o where o.type=0 and o.id not in( select o.id from wx_order o left join wx_coupon_merchant cm on o.product_id=cm.product_id group by o.id having count(o.id)>1) ) o @@ -447,6 +447,12 @@ where type in (1,2))o left join wx_merchant m on o.merchant_id=m.id left join wx_c_user_basic_info cubi on o.c_user_id=cubi.id + union all + select o.id,o.order_number,o.tenant_id,o.c_user_id,o.product_id,o.type,o.payment_type,o.payment,o.payment_time, + o.order_status,o.create_date,o.update_date,o.detail,m.`name` merchant_name,cubi.`name` c_user_name,cubi.phone + from wx_order o left join wx_merchant m on o.product_id=m.id + left join wx_c_user_basic_info cubi on o.c_user_id=cubi.id + where o.type=3 ) o From 47fd799208029d33913efbe4a0cd2ed11fa5ba53 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Sat, 5 Jan 2019 18:52:25 +0800 Subject: [PATCH 25/41] =?UTF-8?q?[=E6=A0=87=E7=AD=BE=E7=9F=AD=E4=BF=A1][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E4=BF=9D=E5=AD=98=E8=8D=89=E7=A8=BF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/WxMsgController.java | 2 +- .../service/impl/WxCUserTagsServiceImpl.java | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java index 7f3d6b815..046ea31d0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxMsgController.java @@ -107,7 +107,7 @@ public class WxMsgController extends BaseController { if (phones.equals("")) {//没有手工输入手机号时解析标签,有,继续流转 phones = parselabel(wxMsg.getTenantId(), wxMsg); if (phones.equals("")) {//解析之后手机号依然不存在时返回 - return new ResultData(ErrorCode.MSG_PHONE_NOT_FOUND); + return new ResultData(ErrorCode.MSG_NO_VALID_PHONE); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java index 040b32b30..6e4e73556 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java @@ -126,11 +126,14 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { String str = JSON.toJSONString(tagId); hs.addAll(wxCUserTagsMapper.findByTags(str, tenantId)); } - List userIds = new ArrayList<>(); - userIds.addAll(hs); - WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo(); - wxCUserBasicInfo.setIds(userIds); - return wxCUserBasicInfoMapper.findList(wxCUserBasicInfo); + if (!hs.isEmpty()) { + List userIds = new ArrayList<>(); + userIds.addAll(hs); + WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo(); + wxCUserBasicInfo.setIds(userIds); + return wxCUserBasicInfoMapper.findList(wxCUserBasicInfo); + } + return new ArrayList<>(); } From f5feced1967f0c0c526c3b896c7eba6679157430 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Sat, 5 Jan 2019 19:01:39 +0800 Subject: [PATCH 26/41] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E5=AF=BC=E5=85=A5=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=8F=90=E7=A4=BA]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkService/src/main/java/com/iformall/common/ErrorCode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index aeca60fa5..802959840 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -253,7 +253,7 @@ public enum ErrorCode{ /** * 会员 */ - MEM_IMPORT_ERR(13000, "模板导入失败"), + MEM_IMPORT_ERR(13000, "模板导入失败,请尝试重新导入"), MEM_SCORE_NOT_ENOUGH(13001, "成长值不够扣减值"), /** From ab642418bdc953fce0a3a3aaa2ae72f904c9f610 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 7 Jan 2019 10:49:16 +0800 Subject: [PATCH 27/41] =?UTF-8?q?[=E7=B2=BE=E5=87=86=E5=8F=91=E5=88=B8][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E5=87=8F=E5=BA=93=E5=AD=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/service/impl/WxOrderServiceImpl.java | 6 ++++++ .../src/main/resources/mapper/WxCouponInjectMapper.xml | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index e7eb3411b..7dd8e58a5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -613,6 +613,9 @@ public class WxOrderServiceImpl implements WxOrderService { throw new MallinkException(ErrorCode.COUPON_IS_NOT_FREE); } + // 减库存操作 + stockReduce(user, coupon, couponIdStr); + int payment = coupon.getSalePrice(); Date curr = new Date(); @@ -692,6 +695,9 @@ public class WxOrderServiceImpl implements WxOrderService { throw new MallinkException(ErrorCode.COUPON_IS_NOT_FREE); } + // 减库存操作 + stockReduce(user, coupon, couponIdStr); + int payment = coupon.getSalePrice(); Date curr = new Date(); diff --git a/mallinkService/src/main/resources/mapper/WxCouponInjectMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponInjectMapper.xml index d0a898984..6309176f5 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponInjectMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponInjectMapper.xml @@ -55,9 +55,9 @@ and `coupon_id` = #{couponId} - - - + + + and `coupon_name` like concat('%', #{couponName},'%') From 675d45cdaec2d6196c111863f7517c8b355ed81a Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 7 Jan 2019 11:02:26 +0800 Subject: [PATCH 28/41] =?UTF-8?q?[=E8=BD=A6=E6=B5=81][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E8=BD=A6=E6=B5=81=E7=BC=B4=E8=B4=B9=E5=9B=9E=E8=B0=83=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0tenantId=E5=A1=AB=E5=85=85=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCarCallBackController.java | 9 +++++- .../iformall/mapper/WxCarCmdLogMapper.java | 2 ++ .../iformall/service/WxCarCmdLogService.java | 28 +++++++++++++------ .../service/impl/WxCarCmdLogServiceImpl.java | 8 +++++- .../resources/mapper/WxCarCmdLogMapper.xml | 7 +++-- 5 files changed, 41 insertions(+), 13 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java index bce24ee6f..ec598a3ba 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java @@ -228,10 +228,17 @@ public class WxCarCallBackController extends BaseController { logger.info("["+getIpAddr()+"etcpPaidCallback: " + paramMap.toString()); String carNumber = paramMap.get("plateNumber"); - // TODO how to get the parkId + // 根据orderId获取入场信息,确定租户ID + String orderId = paramMap.get("orderId"); + HashMap map = new HashMap(); + map.put("synId", orderId); + String tenant_id = wxCarCmdLogService.getTenantIdBySynId(map); Date currentDate = new Date(); WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); + if(StringUtils.isNotBlank(tenant_id)) { + wxCarCmdLog.setTenantId(tenant_id); + } wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PAY_MANUAL.getCode()); wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java index c9d913946..ce6651f5f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java @@ -23,4 +23,6 @@ public interface WxCarCmdLogMapper extends CommonMapper { List> queryPlateNumberList(Map carParams); + String queryTenantIdBySynId(HashMap params); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java b/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java index 6bf2c506e..7016361a5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java @@ -3,14 +3,16 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCarCmdLog; +import java.util.HashMap; + public interface WxCarCmdLogService { /** * 根据实体查询分页列表 * * @param record - * @param offset - * @param limit + * @param pageIndex + * @param pageSize * @return */ PageInfo listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize); @@ -36,12 +38,20 @@ public interface WxCarCmdLogService { * @param id */ void deleteById(Long id); - - - - - - - + + /** + * 根据synId获取tenantId + * @param params + * @return + */ + String getTenantIdBySynId(HashMap params); + + + + + + + + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java index 3e8b35b03..6b36ff66f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java @@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.iformall.common.IdWorker; +import java.util.HashMap; + @Service public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -47,7 +49,11 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { } - + @Override + public String getTenantIdBySynId(HashMap params) { + return wxCarCmdLogMapper.queryTenantIdBySynId(params); + } + diff --git a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml index c8218729f..c6a675023 100644 --- a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml @@ -103,8 +103,11 @@ and json_unquote(JSON_EXTRACT(cmd_json,'$.plateNumber')) is not null group by plateNumber - - + + From 373cd33281dbf15e2c30f0a20c10425a473ad2a0 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 7 Jan 2019 13:26:41 +0800 Subject: [PATCH 29/41] =?UTF-8?q?[=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E8=A1=A5=E5=BD=95=E7=94=9F=E6=88=90?= =?UTF-8?q?=E8=B4=A6=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxRentContractServiceImpl.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 99e67dfcf..4ddc19a41 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -165,6 +165,22 @@ public class WxRentContractServiceImpl implements WxRentContractService { return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); } wxRentContractMapper.insertSelective(record); + //建立账单 + if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) + && record.getReceivePeriod() != null && record.getDeposit() > 0 && record.getPrice() > 0) { + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setMerchantId(record.getMerchantId()); + List> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent); + if (billRentList.size() == 0) { + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.setId(record.getMerchantId()); + wxMerchant.setTenantId(record.getTenantId()); + //租金 + buildRent(wxMerchant); + //押金 + buildDeposit(wxMerchant); + } + } } catch (Exception e) { logger.error("保存租赁合同信息失败,e:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); From 1db07aaf1b402d405e662978d046276b91342d0d Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 7 Jan 2019 15:46:29 +0800 Subject: [PATCH 30/41] =?UTF-8?q?[=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C][?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0][=E5=90=88=E5=90=8C=E7=B1=BB=E5=9E=8B]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/enums/EnumRentContractType.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java index f83d37d81..096c2198b 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java @@ -8,7 +8,8 @@ package com.iformall.enums; public enum EnumRentContractType { RENT_BY_AREA(1, "面积"), - RENT_BY_JOINT(2, "联营扣点") + RENT_BY_JOINT(2, "联营扣点"), + RENT_BY_AREA_AND_JOINT(3, "面积与联营扣点取高") ; public static EnumRentContractType getEnum(Integer code) { From 71fe365131db23fa769b9cb43982c3385f9ec557 Mon Sep 17 00:00:00 2001 From: hupeng Date: Mon, 7 Jan 2019 16:13:33 +0800 Subject: [PATCH 31/41] =?UTF-8?q?[BUG][1000758]:=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=AE=A2=E6=B5=81=E6=95=B0=E6=8D=AE=E6=9C=89=E6=95=88?= =?UTF-8?q?=E6=97=A0=E6=95=88=E6=A0=87=E8=AE=B0=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxWiWideInfo.java | 11 ++++++ .../iformall/enums/EnumWiWideInfoStatus.java | 36 +++++++++++++++++++ .../service/impl/DataTowerServiceImpl.java | 12 +++++++ .../resources/mapper/WxWiwideInfoMapper.xml | 4 +-- 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumWiWideInfoStatus.java diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxWiWideInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxWiWideInfo.java index b073fa387..771a7999c 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxWiWideInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxWiWideInfo.java @@ -59,6 +59,9 @@ public class WxWiWideInfo implements Serializable { @io.swagger.annotations.ApiModelProperty(value="expiredTime",name="expiredTime") private Date expiredTime; + /*卖外迪信息类型列表,1,支持客流 2,支持wifi*/ + @io.swagger.annotations.ApiModelProperty(value="capability",name="capability") + private String capability; public String getTenantId() { return tenantId; @@ -105,6 +108,14 @@ public class WxWiWideInfo implements Serializable { this.expiredTime = expiredTime; } + public String getCapability() { + return capability; + } + + public void setCapability(String capability) { + this.capability = capability; + } + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumWiWideInfoStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumWiWideInfoStatus.java new file mode 100644 index 000000000..c7869d904 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumWiWideInfoStatus.java @@ -0,0 +1,36 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumWiWideInfoStatus { + + INVALID(0, "未开通"), + VALID(1, "已开通") + ; + + public static EnumWiWideInfoStatus getEnum(Integer code) { + for (EnumWiWideInfoStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumWiWideInfoStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java index a88051ba2..b8ec1c830 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java @@ -1,5 +1,6 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; @@ -673,6 +674,17 @@ public class DataTowerServiceImpl implements DataTowerService { return new ResultData(ErrorCode.WIWIDE_INFO_NOT_FOUND); } wiWideInfo = list.get(0); + List cap = JSONArray.parseArray(wiWideInfo.getCapability(), Integer.class); + Integer dataType; + try { + dataType = Integer.valueOf(params.get("dataType")); + }catch (Exception e){ + return new ResultData(ErrorCode.WIWIDE_INFO_NOT_FOUND); + } + + if (cap == null || !cap.stream().anyMatch(c->c.equals(dataType))) { + return new ResultData(ErrorCode.WIWIDE_INFO_NOT_FOUND); + } String res = WiwideUtil.queryData(wiWideInfo, getWiwideToken(wiWideInfo), params); JSONObject result = JSONObject.parseObject(res); if (result.getInteger("result") == 200){ diff --git a/mallinkService/src/main/resources/mapper/WxWiwideInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxWiwideInfoMapper.xml index 5e1b36d86..6898a08c4 100644 --- a/mallinkService/src/main/resources/mapper/WxWiwideInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxWiwideInfoMapper.xml @@ -9,11 +9,11 @@ - + - `id`,`tenant_id`,`wiwide_id`,`wiwide_key`,`wiwide_url`, `token`,`expired_time` + `id`,`tenant_id`,`wiwide_id`,`wiwide_key`,`wiwide_url`, `token`,`expired_time`,`capability` From 0b00cb33316cdbe202b73f3df617e92a5fb5e747 Mon Sep 17 00:00:00 2001 From: hupeng Date: Mon, 7 Jan 2019 16:17:40 +0800 Subject: [PATCH 32/41] =?UTF-8?q?[BUG][1000758]:=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E6=95=B0=E6=8D=AE=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/service/impl/DataTowerServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java index b8ec1c830..57681d097 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java @@ -678,6 +678,7 @@ public class DataTowerServiceImpl implements DataTowerService { Integer dataType; try { dataType = Integer.valueOf(params.get("dataType")); + params.remove("dataType"); }catch (Exception e){ return new ResultData(ErrorCode.WIWIDE_INFO_NOT_FOUND); } From c9945b9c2bf649b941c50130f1870647b0ed8fc6 Mon Sep 17 00:00:00 2001 From: hupeng Date: Mon, 7 Jan 2019 19:14:33 +0800 Subject: [PATCH 33/41] =?UTF-8?q?[BUG][1000749]:=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=90=A5=E9=94=80=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E6=9F=A5=E8=AF=A2=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/WxCouponOrderMapper.xml | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 501dee210..80a83e048 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -145,33 +145,38 @@ From 23c9abfe0f764f934a3b65abc29e9f3017f97d5f Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 7 Jan 2019 19:51:01 +0800 Subject: [PATCH 34/41] =?UTF-8?q?[=E4=BA=91=E7=AB=AF=E6=B5=8B=E8=AF=95=20v?= =?UTF-8?q?ersion:.426.552=EF=BC=9A=E8=90=A5=E9=94=80=E7=BB=9F=E8=AE=A1-?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E9=97=AE=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MarkingDataReportServiceImpl.java | 4 ++-- .../main/resources/mapper/WxCouponOrderMapper.xml | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index 56070df79..49337c987 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -566,7 +566,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { if (markingCouponDataReportDto.getStartTime() != null) params1.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); if (markingCouponDataReportDto.getEndTime() != null) - params1.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); + params1.put("endTime", markingCouponDataReportDto.getEndTime()); PageHelper.startPage(pageIndex, pageSize); List wxUserVisitList = wxUserVisitMapper.touchUsersReportList(params1); @@ -580,7 +580,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { if (markingCouponDataReportDto.getStartTime() != null) params2.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); if (markingCouponDataReportDto.getEndTime() != null) - params2.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); + params2.put("endTime", markingCouponDataReportDto.getEndTime()); List couponDatalist = wxCouponOrderMapper.touchUsersReportList(params2); Map visitMap = couponDatalist.stream().collect(Collectors.toMap(TouchUsersReportVo::getxTime, p -> p)); diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 80a83e048..5a5e36fa1 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -378,8 +378,8 @@ and co.coupon_order_status = #{couponOrderStatus} - - + + and (case when com.mc=1 then (select m.name from wx_merchant m, wx_coupon_merchant cm where m.id = cm.merchant_id and cm.product_id=co.coupon_id) else '[多商户通用]' end) @@ -393,9 +393,13 @@ AND co.create_date < #{endDate,jdbcType=TIMESTAMP} - + + + and co.id = #{id} + + order by ${sortColumns} - + From 7e8b5ab056bf199fd0918fc4a45452c021e6796a Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 11:32:48 +0800 Subject: [PATCH 35/41] =?UTF-8?q?[B=E7=AB=AF=E6=94=B6=E6=AC=BE=E7=A0=81?= =?UTF-8?q?=E5=8A=A0=E5=AF=86][=E4=BF=AE=E6=94=B9]:=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E7=A0=81=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxMerchantBUserController.java | 10 +++++ .../controller/WxCardPayController.java | 16 +++---- .../iformall/controller/WxMallController.java | 4 +- .../controller/WxMerchantController.java | 43 +++++++++++++++++++ .../domain/vo/WxMerchantDiscountVo.java | 38 ---------------- .../com/iformall/mapper/WxMerchantMapper.java | 6 ++- .../iformall/service/WxMerchantService.java | 13 +++++- .../service/impl/WxMerchantServiceImpl.java | 8 +++- .../java/com/iformall/utils/HashUtil.java | 23 ++++++++++ .../resources/mapper/WxMerchantMapper.xml | 23 +++++++++- 10 files changed, 129 insertions(+), 55 deletions(-) create mode 100644 mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java delete mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantDiscountVo.java diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 82402f61f..4cc5cedf8 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -10,6 +10,7 @@ import com.iformall.enums.EnumMerchantBUserStatus; import com.iformall.enums.EnumMerchantStatus; import com.iformall.interceptor.AuthorizationInterceptor; import com.iformall.service.*; +import com.iformall.utils.HashUtil; import com.iformall.utils.IPUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -81,6 +82,15 @@ public class WxMerchantBUserController extends BaseController { resultMap.put("service_phone", mall.getServicePhone()); resultMap.put("tenant_id",merchant.getTenantId()); resultMap.put("merchant_id",merchant.getId()); + String mid = null; + try { + mid = String.valueOf(merchant.getId()); + if(mid != null) { + resultMap.put("merchant_id_scan", HashUtil.EncoderByMd5(mid)); + } + }catch (Exception e) { + logger.error(e.getMessage()); + } return new ResultData(resultMap); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java index 0ea1d9a73..32fffeb88 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCardPayController.java @@ -45,22 +45,22 @@ public class WxCardPayController extends BaseController { @Autowired WxCardSpendService wxCardSpendService; - @ApiOperation(value = "C端扫B端储值卡支付订单", notes = "params:{\"cardId\":\"String\",\"merchantCode\":\"String\",\"totalFee\":\"String(元)\"}") + @ApiOperation(value = "C端扫B端储值卡支付订单", notes = "params:{\"cardId\":\"String\",\"merchantId\":\"String\",\"totalFee\":\"String(元)\"}") @PostMapping("order_create") public ResultData saveCardPayOrder(@RequestBody Map paramMap, HttpServletRequest request) { String ipStr = getIpAddr(); logger.info("saveCardPayOrder: " + ipStr + " :" + paramMap.toString()); String cardIdStr = paramMap.get("cardId"); - String merchantCode = paramMap.get("merchantCode"); + String merchantStr = paramMap.get("merchantId"); String totalFeeStr = paramMap.get("totalFee"); if (StringUtils.isBlank(cardIdStr)) { logger.error("cardId不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "cardId不能为空"); } - if (StringUtils.isBlank(merchantCode)) { - logger.error("merchantCode不能为空"); - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantCode不能为空"); + if (StringUtils.isBlank(merchantStr)) { + logger.error("merchantId不能为空"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId不能为空"); } if (StringUtils.isBlank(totalFeeStr)) { logger.error("totalFee不能为空"); @@ -76,10 +76,10 @@ public class WxCardPayController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "cardIdStr转换失败"); } try { - merchantId = Long.valueOf(merchantCode); + merchantId = Long.valueOf(merchantStr); } catch (Exception e) { - logger.error("merchantCode convert failed:" + merchantCode); - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantCode转换失败"); + logger.error("merchantCode convert failed:" + merchantStr); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId转换失败"); } BigDecimal totalFee = new BigDecimal(totalFeeStr); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java index 09ac2e7f4..040198b89 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java @@ -5,7 +5,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; -import com.iformall.domain.vo.WxMerchantDiscountVo; +import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.EnumMerchantStatus; import com.iformall.service.*; import io.swagger.annotations.Api; @@ -123,7 +123,7 @@ public class WxMallController extends BaseController { WxMerchant merchantQ = new WxMerchant(); merchantQ.setTenantId(user.getTenantId()); merchantQ.setStatus(EnumMerchantStatus.VALID.getCode()); - List list = wxMerchantService.getDisCountList(merchantQ); + List list = wxMerchantService.getDisCountList(merchantQ); return new ResultData(Result.SUCCESS, "查询成功", list); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java new file mode 100644 index 000000000..c3f2d7ff2 --- /dev/null +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -0,0 +1,43 @@ +package com.iformall.controller; + +import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; +import com.iformall.domain.vo.WxMerchantVo; +import com.iformall.service.WxMerchantService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; + +/** + * @author Stormeye + */ +@RestController +@RequestMapping("wxMerchant") +public class WxMerchantController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxMerchantService wxMerchantService; + + + @ApiOperation("根据code查询接口") + @GetMapping("/findByCode") + @ApiImplicitParam(name = "merchantCode", value = "merchantCode", dataType = "String", paramType = "query", required = true) + public ResultData findByCode(String merchantCode) { + logger.debug("[" + getIpAddr() + "] WxMerchantController::findByCode"); + if(merchantCode == null) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + HashMap params = new HashMap(); + params.put("tenantId", getTenantId()); + params.put("merchantCode", merchantCode); + WxMerchantVo wxMerchant = wxMerchantService.getMerchantInfo(params); + return new ResultData(wxMerchant); + } + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantDiscountVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantDiscountVo.java deleted file mode 100644 index 366ebaf95..000000000 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantDiscountVo.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.iformall.domain.vo; - -public class WxMerchantDiscountVo extends WxMerchantVo { - private static final long serialVersionUID = 6687964942922444531L; - - @io.swagger.annotations.ApiModelProperty(value="VIP折扣率1",name="vipDiscountRate1") - private Integer vipDiscountRate1; - - @io.swagger.annotations.ApiModelProperty(value="VIP折扣率2",name="vipDiscountRate2") - private Integer vipDiscountRate2; - - @io.swagger.annotations.ApiModelProperty(value="VIP折扣率3",name="vipDiscountRate3") - private Integer vipDiscountRate3; - - public Integer getVipDiscountRate1() { - return vipDiscountRate1; - } - - public void setVipDiscountRate1(Integer vipDiscountRate1) { - this.vipDiscountRate1 = vipDiscountRate1; - } - - public Integer getVipDiscountRate2() { - return vipDiscountRate2; - } - - public void setVipDiscountRate2(Integer vipDiscountRate2) { - this.vipDiscountRate2 = vipDiscountRate2; - } - - public Integer getVipDiscountRate3() { - return vipDiscountRate3; - } - - public void setVipDiscountRate3(Integer vipDiscountRate3) { - this.vipDiscountRate3 = vipDiscountRate3; - } -} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index 62824a57f..1a53acbfa 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -3,13 +3,15 @@ package com.iformall.mapper; import java.util.*; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxMerchant; -import com.iformall.domain.vo.WxMerchantDiscountVo; +import com.iformall.domain.vo.WxMerchantVo; public interface WxMerchantMapper extends CommonMapper { List findList(WxMerchant wxMerchant); - List findDiscountList(WxMerchant wxMerchant); + List findDiscountList(WxMerchant wxMerchant); + + WxMerchantVo getMerchantByCode(HashMap params); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 2432514e0..b28564305 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -3,8 +3,9 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.WxMerchant; -import com.iformall.domain.vo.WxMerchantDiscountVo; +import com.iformall.domain.vo.WxMerchantVo; +import java.util.HashMap; import java.util.List; /** @@ -28,7 +29,15 @@ public interface WxMerchantService { * @param record * @return */ - List getDisCountList(WxMerchant record); + List getDisCountList(WxMerchant record); + + /** + * 根据code查询 + * + * @param params + * @return + */ + WxMerchantVo getMerchantInfo(HashMap params); /** * 根据实体查询分页列表 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 1f7c7ee90..dcafa63c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -7,7 +7,6 @@ import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; -import com.iformall.domain.vo.WxMerchantDiscountVo; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.*; import com.iformall.exception.MallinkException; @@ -102,10 +101,15 @@ public class WxMerchantServiceImpl implements WxMerchantService { } @Override - public List getDisCountList(WxMerchant record) { + public List getDisCountList(WxMerchant record) { return wxMerchantMapper.findDiscountList(record); } + @Override + public WxMerchantVo getMerchantInfo(HashMap params) { + return wxMerchantMapper.getMerchantByCode(params); + } + @Override public List etcpList(WxMerchant record) { record.setCarVendorType(EnumCarVendor.CAR_ETCP.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/utils/HashUtil.java b/mallinkService/src/main/java/com/iformall/utils/HashUtil.java index 62e11d599..4d99d09ed 100644 --- a/mallinkService/src/main/java/com/iformall/utils/HashUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/HashUtil.java @@ -1,6 +1,8 @@ package com.iformall.utils; +import java.io.UnsupportedEncodingException; import java.security.MessageDigest; +import java.util.Base64; /** * @author Stormeye @@ -82,4 +84,25 @@ public class HashUtil { } return diff == 0; } + + public static String EncoderByMd5(String str) { + if (str == null) { + return null; + } + try { + String enc = hash("md5", str); + enc = new String(Base64.getUrlEncoder().encode(enc.getBytes("utf-8"))); + return enc; + } catch (UnsupportedEncodingException e) { + return null; + } + } + + public static String DecodeByMD5(String str) { + if (str == null) { + return null; + } + String dec = new String(Base64.getUrlDecoder().decode(str)); + return dec; + } } diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index 13f16540e..ea13f8152 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -98,7 +98,7 @@ m.vip_discount_rate1, m.vip_discount_rate2, m.vip_discount_rate3 - + @@ -135,5 +135,26 @@ + + From f5946c84b68e062bdb30c152ccefd644296e2372 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 11:43:44 +0800 Subject: [PATCH 36/41] =?UTF-8?q?[C=E7=AB=AF=E6=89=ABB=E7=AB=AF][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E6=94=B6=E6=AC=BE=E7=A0=81=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/controller/WxMerchantController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java index c3f2d7ff2..32f0949a0 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -4,6 +4,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.service.WxMerchantService; +import com.iformall.utils.HashUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -35,7 +36,7 @@ public class WxMerchantController extends BaseController { } HashMap params = new HashMap(); params.put("tenantId", getTenantId()); - params.put("merchantCode", merchantCode); + params.put("merchantCode", HashUtil.DecodeByMD5(merchantCode)); WxMerchantVo wxMerchant = wxMerchantService.getMerchantInfo(params); return new ResultData(wxMerchant); } From 50f81ba6cf80f264e11d2fcc0f2c5b2af6f9ceb2 Mon Sep 17 00:00:00 2001 From: hupeng Date: Tue, 8 Jan 2019 12:06:49 +0800 Subject: [PATCH 37/41] =?UTF-8?q?[BUG][1000764]:=E9=99=90=E6=97=B6?= =?UTF-8?q?=E6=8A=A2=E8=B4=AD=E6=B2=A1=E6=9C=89=E6=8C=89=E6=97=B6=E4=B8=8A?= =?UTF-8?q?=E6=9E=B6=E9=97=AE=E9=A2=98,A=E7=AB=AF=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=BF=87=E6=BB=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCouponChannelController.java | 2 +- .../iformall/domain/po/WxCouponChannel.java | 32 +++++++++++++++++++ .../mapper/WxCouponChannelMapper.xml | 7 +++- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java index d8bf0aad8..92a59b70c 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java @@ -37,7 +37,7 @@ public class WxCouponChannelController extends BaseController { wxCouponChannel.setTenantId(getTenantId()); wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); wxCouponChannel.setSortColumns(WxCouponChannel.Field.CreateDate_DESC); - + wxCouponChannel.setIsCRequest(0);//标记为C端调用 return new ResultData(wxCouponChannelService.listPageCVo(wxCouponChannel, pageNum, pageSize)); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java index 8e0d729d7..9c8938a2f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java @@ -40,6 +40,15 @@ public class WxCouponChannel implements Serializable { this.ids = ids; } + @Transient + private Integer isCRequest; + + @Transient + private Date startdate; + + @Transient + private Date enddate; + @Transient protected List couponIds; @@ -89,6 +98,13 @@ public class WxCouponChannel implements Serializable { @io.swagger.annotations.ApiModelProperty(value="子频道ID",name="subTargetId") private Long subTargetId; + public Integer getIsCRequest() { + return isCRequest; + } + + public void setIsCRequest(Integer isCRequest) { + this.isCRequest = isCRequest; + } public String getTenantId() { return tenantId; @@ -165,6 +181,22 @@ public class WxCouponChannel implements Serializable { this.subTargetId = subTargetId; } + public Date getStartdate() { + return startdate; + } + + public void setStartdate(Date startdate) { + this.startdate = startdate; + } + + public Date getEnddate() { + return enddate; + } + + public void setEnddate(Date enddate) { + this.enddate = enddate; + } + public static enum Field diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index ff7fa5c41..ed67253d4 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -52,7 +52,11 @@ and cc.`business` = #{business} - + + and cc.`create_date` between #{startdate} and #{enddate} + + + and cc.`begin_time` < now() and cc.`end_time` > now() @@ -68,6 +72,7 @@ and cc.`update_date` = #{updateDate} + and cc.`sub_target_id` = #{subTargetId} From 7814c6303dfd4ed06b6ed0f6ce03d8defe921cfa Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 12:43:08 +0800 Subject: [PATCH 38/41] =?UTF-8?q?[BUG][1000736]:=E8=90=A5=E9=94=80?= =?UTF-8?q?=E8=A1=A5=E8=B4=B4=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java index 2121d71bf..51aff49b5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java @@ -131,7 +131,7 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService { WxMerchantSubsidyVo entity = subsidyVoList.get(i); - idCellTwo.setCellValue(String.valueOf(entity.getId())); + idCellTwo.setCellValue(String.valueOf(entity.getOrderId())); merchantNameCellTwo.setCellValue(entity.getMerchantName()); if (entity.getCreateDate() != null) createDateCellTwo.setCellValue(sdf.format(entity.getCreateDate())); From bde6f1e1ee4b3403703b025e755961acf78d6829 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 13:08:30 +0800 Subject: [PATCH 39/41] =?UTF-8?q?[B=E7=AB=AF=E6=94=B6=E6=AC=BE=E7=A0=81][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E6=B7=BB=E5=8A=A0api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/controller/WxMerchantController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java index 32f0949a0..8fa77063b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -18,7 +18,7 @@ import java.util.HashMap; * @author Stormeye */ @RestController -@RequestMapping("wxMerchant") +@RequestMapping("/api/merchant") public class WxMerchantController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); From d8b4ce0281d1cf2985001b462913edb6cd8cd417 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 14:05:40 +0800 Subject: [PATCH 40/41] =?UTF-8?q?[A=E7=AB=AF=E4=BC=9A=E5=91=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=87=BA][=E4=BC=98=E5=8C=96]:admintest?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E4=BC=9A=E5=91=98=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E5=87=BA5s=E4=BB=A5=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/vo/WxCUserBasicInfoVo.java | 18 ++++ .../mapper/WxCUserBasicInfoMapper.java | 3 + .../impl/WxCUserBasicInfoServiceImpl.java | 31 +++--- .../mapper/WxCUserBasicInfoMapper.xml | 100 ++++++++++++++++++ 4 files changed, 139 insertions(+), 13 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/WxCUserBasicInfoVo.java diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserBasicInfoVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserBasicInfoVo.java new file mode 100644 index 000000000..d4aa75f03 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserBasicInfoVo.java @@ -0,0 +1,18 @@ +package com.iformall.domain.vo; + +import com.iformall.domain.po.WxCUserBasicInfo; + +public class WxCUserBasicInfoVo extends WxCUserBasicInfo { + + /**用户tags*/ + @io.swagger.annotations.ApiModelProperty(value="用户tags",name="tags") + private String tags; + + public String getTags() { + return tags; + } + + public void setTags(String tags) { + this.tags = tags; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java index aa7919bea..c43646aee 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java @@ -4,6 +4,7 @@ import com.iformall.common.CommonMapper; import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.vo.CUserBaseVo; +import com.iformall.domain.vo.WxCUserBasicInfoVo; import java.util.List; @@ -22,4 +23,6 @@ public interface WxCUserBasicInfoMapper extends CommonMapper findVoList(WxCUserBasicInfo wxCUserBasicInfo); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index ab046fef4..54dfa6512 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -18,6 +18,7 @@ import com.iformall.domain.po.WxTags; import com.iformall.domain.vo.CUserBaseInfoT; import com.iformall.domain.vo.CUserBaseVo; import com.iformall.domain.vo.CUserTagVo; +import com.iformall.domain.vo.WxCUserBasicInfoVo; import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.enums.EnumScoreType; import com.iformall.mapper.WxCUserBasicInfoMapper; @@ -155,7 +156,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { public void exportData(HttpServletRequest request, HttpServletResponse response, String tenantId) { WxCUserBasicInfo basicInfoQ = new WxCUserBasicInfo(); basicInfoQ.setTenantId(tenantId); - List memberlist = wxCUserBasicInfoMapper.findList(basicInfoQ); + List memberlist = wxCUserBasicInfoMapper.findVoList(basicInfoQ); XSSFWorkbook workbook; String filepath = Constant.fileDirectory; @@ -168,6 +169,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + WxTags wxTagsQ = new WxTags(); + List tagList = wxTagsMapper.findList(wxTagsQ); + try { File file = new File(filepath); workbook = new XSSFWorkbook(); @@ -211,7 +215,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { tagCellTwo = rowtwo.createCell(9); scoreCellTwo = rowtwo.createCell(10); - WxCUserBasicInfo entity = memberlist.get(i); + WxCUserBasicInfoVo entity = memberlist.get(i); String sexStr = "保密"; if (entity.getSex() == 1) @@ -229,21 +233,22 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { updateDateCellTwo.setCellValue(sdf.format(entity.getUpdateDate())); createDateCellTwo.setCellValue(sdf.format(entity.getCreateDate())); if (entity != null) { - if (entity.getTagId() != null) { - WxCUserTags uTag = wxCUserTagsMapper.selectByPrimaryKey(entity.getTagId()); - if (uTag != null && StringUtils.isNotBlank(uTag.getTags())) { - List ids = JSONObject.parseArray(uTag.getTags(), Long.class); + if (entity.getTagId() != null && entity.getTags() != null) { + if (StringUtils.isNotBlank(entity.getTags())) { + List ids = JSONObject.parseArray(entity.getTags(), Long.class); if (!ids.isEmpty()) { - WxTags wxTagsQ = new WxTags(); - wxTagsQ.setIds(ids); - List tagList = wxTagsMapper.findList(wxTagsQ); String tagNames = ""; String tagIds = ""; List tagIdList = new ArrayList<>(); - for (WxTags wt : tagList) { - tagNames += wt.getName() + "/"; - tagIds += wt.getId() + ","; - tagIdList.add(wt.getId()); + for(Long id: ids) { + for(WxTags tag: tagList) { + if(id.equals(tag.getId())) { + tagNames += tag.getName() + "/"; + tagIds += tag.getId() + ","; + tagIdList.add(tag.getId()); + break; + } + } } if (StringUtils.isNotBlank(tagNames)) { entity.setTagNames(tagNames.substring(0, tagNames.length() - 1)); diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 18f151397..c7288dda2 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -194,4 +194,104 @@ + + + + + + + + + + + + + + + + + + + + + + cu.`id`,cu.`phone`,cu.`birthdate`,cu.`education`,cu.`sex`,cu.`email`,cu.`address`,cu.`poins`,cu.`tag_id`, + cu.`create_date`,cu.`update_date`,cu.`tenant_id`,cu.`name`,cu.`level`,cu.`nick_name`, + cut.`tags` + + + + where 1 = 1 + + + and cu.`id` = #{id} + + + + and cu.`tenant_id` = #{tenantId} + + + + and cu.`phone` like concat('%', #{phone},'%') + + + + and cu.`birthdate` = #{birthdate} + + + + and cu.`education` like concat('%', #{education},'%') + + + + and cu.`sex` = #{sex} + + + + and cu.`email` like concat('%', #{email},'%') + + + + and cu.`address` like concat('%', #{address},'%') + + + + and cu.`poins` = #{poins} + + + + and cu.`tag_id` = #{tagId} + + + + and cu.`create_date` = #{createDate} + + + + and cu.`update_date` = #{updateDate} + + + + and `name` like concat('%', #{name},'%') + + + and cu.`create_date` between #{startTime} and #{endTime} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + From fcacc2366d3a98200bb78a3f893c24784d206f07 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 8 Jan 2019 14:45:43 +0800 Subject: [PATCH 41/41] =?UTF-8?q?[BUG][1000714]:redis=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 24 +++++++-------- .../impl/WxCUserBasicInfoServiceImpl.java | 30 +++++++++---------- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 661487e78..b3870c09e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -262,8 +262,8 @@ public class WxCUserBasicInfoController extends BaseController { @GetMapping("/queryTemplateCount") public ResultData queryTemplateCount() { - String userId = getUser().getId().toString(); - Map entries = stringRedisTemplate.opsForHash().entries(userId); + String importKey = "import-" + getUser().getId(); + Map entries = stringRedisTemplate.opsForHash().entries(importKey); logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>1"); if (entries.size() < 4) { entries.clear(); @@ -274,22 +274,22 @@ public class WxCUserBasicInfoController extends BaseController { String successCount = entries.get("successCount").toString(); String failCount = entries.get("failCount").toString(); - if (allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); + if (StringUtils.isNotBlank(failCount) && allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>2"); //完全失败 - stringRedisTemplate.opsForHash().delete(userId, "allCount"); - stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); - stringRedisTemplate.opsForHash().delete(userId, "successCount"); - stringRedisTemplate.opsForHash().delete(userId, "failCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "successCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); return new ResultData(ErrorCode.MEM_IMPORT_ERR); } //导入完成 - if (allSuccessCount.equals(successCount)) { + if (StringUtils.isNotBlank(allSuccessCount) && allSuccessCount.equals(successCount)) { ResultData ok = new ResultData(Result.SUCCESS, "ok", entries); - stringRedisTemplate.opsForHash().delete(userId, "allCount"); - stringRedisTemplate.opsForHash().delete(userId, "allSuccessCount"); - stringRedisTemplate.opsForHash().delete(userId, "successCount"); - stringRedisTemplate.opsForHash().delete(userId, "failCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "successCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); return ok; } return new ResultData(Result.SUCCESS, "查询成功", entries); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 54dfa6512..ff36a341e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -518,27 +518,25 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { final IdWorker idWorker = IdWorker.get(); + String importKey = "import-" + userId; + + //默认添加到redis里 + stringRedisTemplate.opsForHash().put(importKey, "allCount", ""); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "0"); + ImportParams params = new ImportParams(); - //IExcelDataHandler handler = new UserExcelHandler(); - //handler.setNeedHandlerFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"});// 注意这里对应的是excel的列名。也就是对象上指定的列名。 - //params.setDataHandler(handler); - //params.setVerifyHandler(); // 需要验证 params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); params.setNeedVerify(true); try { - ExcelImportResult datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); List successList = datalist.getList(); List failList = datalist.getFailList(); - logger.info("验证通过的数量:" + successList.size()); - logger.info("验证未通过的数量:" + failList.size()); - //如果不存在就添加 - stringRedisTemplate.opsForHash().put(userId, "allCount", successList.size() + failList.size() + ""); - stringRedisTemplate.opsForHash().put(userId, "allSuccessCount", successList.size() + ""); - stringRedisTemplate.opsForHash().put(userId, "successCount", "0"); - stringRedisTemplate.opsForHash().put(userId, "failCount", failList.size() + ""); + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); successList.parallelStream().forEach(uBase->{ @@ -650,12 +648,12 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { stringRedisTemplate.opsForHash().increment(userId,"successCount",1); }); } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "successCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); e.printStackTrace(); logger.error("导入模板失败:"+e.getMessage()); - stringRedisTemplate.opsForHash().put(userId, "allCount", "1"); - stringRedisTemplate.opsForHash().put(userId, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(userId, "successCount", "0"); - stringRedisTemplate.opsForHash().put(userId, "failCount", "1"); } return new ResultData();