| @@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Value; | |||||
| import org.springframework.boot.SpringApplication; | import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.EnableAspectJAutoProxy; | |||||
| import springfox.documentation.swagger2.annotations.EnableSwagger2; | import springfox.documentation.swagger2.annotations.EnableSwagger2; | ||||
| /** | /** | ||||
| @@ -18,6 +20,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; | |||||
| @EnableSwagger2 | @EnableSwagger2 | ||||
| @EnableRocketMQ | @EnableRocketMQ | ||||
| @EnableEncryptableProperties | @EnableEncryptableProperties | ||||
| @EnableAspectJAutoProxy(exposeProxy = true) | |||||
| public class ScheduleApplication { | public class ScheduleApplication { | ||||
| @Value("${fm.exception}") | @Value("${fm.exception}") | ||||
| @@ -16,6 +16,8 @@ import java.util.Date; | |||||
| @EqualsAndHashCode(callSuper = true) | @EqualsAndHashCode(callSuper = true) | ||||
| public class WxCardInfo extends TenantEntity { | public class WxCardInfo extends TenantEntity { | ||||
| private static final long serialVersionUID = 2974374593127477999L; | |||||
| @Excel(name = "卡号", width = 20, orderNum = "1") | @Excel(name = "卡号", width = 20, orderNum = "1") | ||||
| @io.swagger.annotations.ApiModelProperty(value="主键ID-与coupon_order_id一致",name="id") | @io.swagger.annotations.ApiModelProperty(value="主键ID-与coupon_order_id一致",name="id") | ||||
| protected Long id; | protected Long id; | ||||
| @@ -11,5 +11,7 @@ public interface WxCardInfoMapper extends CommonMapper<WxCardInfo, Long> { | |||||
| List<WxCardVo> findVoList(WxCardVo wxCardVo); | List<WxCardVo> findVoList(WxCardVo wxCardVo); | ||||
| void updateTransferStatusByCouponId(Long couponId); | void updateTransferStatusByCouponId(Long couponId); | ||||
| List<WxCardInfo> findList(WxCardInfo wxCardInfo); | |||||
| } | } | ||||
| @@ -226,5 +226,8 @@ public interface WxOrderService { | |||||
| * H5支付后, 券再注入 | * H5支付后, 券再注入 | ||||
| */ | */ | ||||
| Long saveOuterOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId); | Long saveOuterOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId); | ||||
| int countGroupOrder(Long groupId); | |||||
| } | } | ||||
| @@ -84,15 +84,26 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { | |||||
| //错误,更新状态,定时任务会发起退款 | //错误,更新状态,定时任务会发起退款 | ||||
| order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); | order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); | ||||
| wxOrderMapper.updateById(order); | wxOrderMapper.updateById(order); | ||||
| wxOrderGroup.setStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); | |||||
| wxOrderGroupMapper.updateOrderGroup(wxOrderGroup); | |||||
| throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团人数已满,将稍后退款。"); | throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团人数已满,将稍后退款。"); | ||||
| } | } | ||||
| Integer remainPeople = wxOrderGroup.getRemainPeople()-1; | |||||
| //此处拼团数量应从订单总数查询 | |||||
| int ordercount = wxOrderService.countGroupOrder(orderGroupId); | |||||
| Integer remainPeople = wxCoupon.getPressLimitNum()-ordercount; | |||||
| //Integer remainPeople = wxOrderGroup.getRemainPeople()-1; | |||||
| wxOrderGroup.setStatus(remainPeople == 0 ? EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode() : wxOrderGroup.getStatus()); | wxOrderGroup.setStatus(remainPeople == 0 ? EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode() : wxOrderGroup.getStatus()); | ||||
| wxOrderGroup.setUpdateDate(new Date()); | wxOrderGroup.setUpdateDate(new Date()); | ||||
| wxOrderGroup.setRemainPeople(remainPeople); | |||||
| logger.info("非首次拼团,更新拼团信息, 剩余人数-1"); | logger.info("非首次拼团,更新拼团信息, 剩余人数-1"); | ||||
| int row = wxOrderGroupMapper.updateOrderGroup(wxOrderGroup); | int row = wxOrderGroupMapper.updateOrderGroup(wxOrderGroup); | ||||
| if (row != 1) { | if (row != 1) { | ||||
| //TODO 这个时候应该要发起异步退款。 | |||||
| //这个时候应该要发起异步退款。 | |||||
| wxOrderGroup.setStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode()); | |||||
| order.setOrderStatus(wxOrderGroup.getStatus()); | |||||
| wxOrderMapper.updateById(order); | |||||
| wxOrderGroupMapper.updateOrderGroup(wxOrderGroup); | |||||
| throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团失败,将稍后退款."); | throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团失败,将稍后退款."); | ||||
| } | } | ||||
| @@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; | |||||
| import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| @@ -1006,86 +1007,102 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| if (coupon.getType().equals(EnumCouponType.CARD_MULTIMCH.getCode())) { | if (coupon.getType().equals(EnumCouponType.CARD_MULTIMCH.getCode())) { | ||||
| isCard = true; | isCard = true; | ||||
| } | } | ||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| WxCouponOrder couponOrder = new WxCouponOrder(); | |||||
| couponOrder.setId(idWorker.nextId()); | |||||
| couponOrder.updateTenantInfo(order); | |||||
| couponOrder.setCouponId(order.getProductId()); | |||||
| couponOrder.setCouponType(coupon.getType()); | |||||
| couponOrder.setCUserId(user.getId()); | |||||
| couponOrder.setOwnerId(user.getId()); | |||||
| couponOrder.setAutoRefund(coupon.getAutoRefund()); | |||||
| couponOrder.setOrderId(order.getOrderNumber()); | |||||
| couponOrder.setExpiredTime(valid_date); | |||||
| if (!isCard) { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||||
| } else { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_USING.getCode()); | |||||
| //TODO 如果orderId已经存在,则不再添加 | |||||
| WxCouponOrder couponOrderQ = new WxCouponOrder(); | |||||
| couponOrderQ.setOrderId(order.getId()); | |||||
| WxCouponOrder couponOrder = null; | |||||
| List<WxCouponOrder> couponorderlist = wxCouponOrderMapper.findList(couponOrderQ); | |||||
| if (null != couponorderlist && couponorderlist.size() > 0 ) { | |||||
| couponOrder = couponorderlist.get(0); | |||||
| }else { | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| couponOrder = new WxCouponOrder(); | |||||
| couponOrder.setId(idWorker.nextId()); | |||||
| couponOrder.updateTenantInfo(order); | |||||
| couponOrder.setCouponId(order.getProductId()); | |||||
| couponOrder.setCouponType(coupon.getType()); | |||||
| couponOrder.setCUserId(user.getId()); | |||||
| couponOrder.setOwnerId(user.getId()); | |||||
| couponOrder.setAutoRefund(coupon.getAutoRefund()); | |||||
| couponOrder.setOrderId(order.getOrderNumber()); | |||||
| couponOrder.setExpiredTime(valid_date); | |||||
| if (!isCard) { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||||
| } else { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_USING.getCode()); | |||||
| } | |||||
| couponOrder.setCreateDate(curr); | |||||
| couponOrder.setUpdateDate(curr); | |||||
| couponOrder.setCouponPrice(order.getPayment()); | |||||
| wxCouponOrderMapper.insert(couponOrder); | |||||
| } | } | ||||
| couponOrder.setCreateDate(curr); | |||||
| couponOrder.setUpdateDate(curr); | |||||
| couponOrder.setCouponPrice(order.getPayment()); | |||||
| wxCouponOrderMapper.insert(couponOrder); | |||||
| /// 储值卡信息添加 | /// 储值卡信息添加 | ||||
| if (isCard) { | if (isCard) { | ||||
| Integer fee = 0; | |||||
| WxCardInfo cardInfo = new WxCardInfo(); | |||||
| cardInfo.setId(couponOrder.getId()); | |||||
| cardInfo.updateTenantInfo(order); | |||||
| cardInfo.setCouponId(order.getProductId()); | |||||
| cardInfo.setAmount(coupon.getPrice()); | |||||
| cardInfo.setSaleAmount(coupon.getSalePrice()); | |||||
| cardInfo.setRemainingAmount(coupon.getPrice()); | |||||
| if (!coupon.checkIsFree()) { | |||||
| // 有价卡 | |||||
| cardInfo.setTransactionId(payOrder.getTransactionId()); | |||||
| if (payOrder.getShareAmount() != null) { | |||||
| // 开启分账 | |||||
| fee = payOrder.getPayAmount() - payOrder.getShareAmount(); | |||||
| cardInfo.setShareFeeAmount(payOrder.getShareAmount()); | |||||
| cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount()); | |||||
| cardInfo.setRateAmount(payOrder.getRateAmount()); | |||||
| } else { | |||||
| // 未开启分账 | |||||
| fee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRate(), false); | |||||
| Integer shareAmount = payOrder.getPayAmount() - fee; | |||||
| cardInfo.setShareFeeAmount(shareAmount); | |||||
| cardInfo.setRemainingShareFeeAmount(shareAmount); | |||||
| if (payAccount.getRealRate() != null) { | |||||
| int iRealChargeFee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRealRate(), true); | |||||
| if (fee > iRealChargeFee) { | |||||
| cardInfo.setRateAmount(fee - iRealChargeFee); | |||||
| } | |||||
| } | |||||
| } | |||||
| } else { | |||||
| // 免费卡 | |||||
| cardInfo.setShareFeeAmount(0); | |||||
| cardInfo.setRemainingShareFeeAmount(0); | |||||
| cardInfo.setRateAmount(0); | |||||
| if (coupon.getPasswordSupport().equals(EnumCouponPasswordSupport.SUPPORTED.getCode())) { | |||||
| WxCouponPassword updateCPwd = new WxCouponPassword(); | |||||
| updateCPwd.setId(couponPasswordId); | |||||
| updateCPwd.setCardId(cardInfo.getId()); | |||||
| updateCPwd.setStatus(EnumCouponPasswordStatus.USED.getCode()); | |||||
| couponPasswordMapper.updateById(updateCPwd); | |||||
| } | |||||
| } | |||||
| cardInfo.setServiceFeeAmount(fee); | |||||
| cardInfo.setCreateDate(curr); | |||||
| cardInfo.setUpdateDate(curr); | |||||
| cardInfo.setSupportTransfer(coupon.getSupportTransfer()); | |||||
| //检查卡是否下架,如果是,不可转赠 | |||||
| WxCouponChannel wxCouponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId()); | |||||
| if (wxCouponChannel != null && wxCouponChannel.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { | |||||
| cardInfo.setSupportTransfer(EnumCouponTransfer.NO.getCode()); | |||||
| } | |||||
| wxCardInfoMapper.insert(cardInfo); | |||||
| //判断该transctionId是否已经存在,如果存在,则不添加 | |||||
| WxCardInfo cardInfoq = new WxCardInfo(); | |||||
| cardInfoq.setTransactionId(payOrder.getTransactionId()); | |||||
| List<WxCardInfo> cardInfoList = wxCardInfoMapper.findList(cardInfoq); | |||||
| if (null != cardInfoList && cardInfoList.size() > 0) { | |||||
| //do nothing | |||||
| }else { | |||||
| Integer fee = 0; | |||||
| WxCardInfo cardInfo = new WxCardInfo(); | |||||
| cardInfo.setId(couponOrder.getId()); | |||||
| cardInfo.updateTenantInfo(order); | |||||
| cardInfo.setCouponId(order.getProductId()); | |||||
| cardInfo.setAmount(coupon.getPrice()); | |||||
| cardInfo.setSaleAmount(coupon.getSalePrice()); | |||||
| cardInfo.setRemainingAmount(coupon.getPrice()); | |||||
| if (!coupon.checkIsFree()) { | |||||
| // 有价卡 | |||||
| cardInfo.setTransactionId(payOrder.getTransactionId()); | |||||
| if (payOrder.getShareAmount() != null) { | |||||
| // 开启分账 | |||||
| fee = payOrder.getPayAmount() - payOrder.getShareAmount(); | |||||
| cardInfo.setShareFeeAmount(payOrder.getShareAmount()); | |||||
| cardInfo.setRemainingShareFeeAmount(payOrder.getShareAmount()); | |||||
| cardInfo.setRateAmount(payOrder.getRateAmount()); | |||||
| } else { | |||||
| // 未开启分账 | |||||
| fee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRate(), false); | |||||
| Integer shareAmount = payOrder.getPayAmount() - fee; | |||||
| cardInfo.setShareFeeAmount(shareAmount); | |||||
| cardInfo.setRemainingShareFeeAmount(shareAmount); | |||||
| if (payAccount.getRealRate() != null) { | |||||
| int iRealChargeFee = PayUtils.getPayRate(payOrder.getPayAmount(), payAccount.getRealRate(), true); | |||||
| if (fee > iRealChargeFee) { | |||||
| cardInfo.setRateAmount(fee - iRealChargeFee); | |||||
| } | |||||
| } | |||||
| } | |||||
| } else { | |||||
| // 免费卡 | |||||
| cardInfo.setShareFeeAmount(0); | |||||
| cardInfo.setRemainingShareFeeAmount(0); | |||||
| cardInfo.setRateAmount(0); | |||||
| if (coupon.getPasswordSupport().equals(EnumCouponPasswordSupport.SUPPORTED.getCode())) { | |||||
| WxCouponPassword updateCPwd = new WxCouponPassword(); | |||||
| updateCPwd.setId(couponPasswordId); | |||||
| updateCPwd.setCardId(cardInfo.getId()); | |||||
| updateCPwd.setStatus(EnumCouponPasswordStatus.USED.getCode()); | |||||
| couponPasswordMapper.updateById(updateCPwd); | |||||
| } | |||||
| } | |||||
| cardInfo.setServiceFeeAmount(fee); | |||||
| cardInfo.setCreateDate(curr); | |||||
| cardInfo.setUpdateDate(curr); | |||||
| cardInfo.setSupportTransfer(coupon.getSupportTransfer()); | |||||
| //检查卡是否下架,如果是,不可转赠 | |||||
| WxCouponChannel wxCouponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId()); | |||||
| if (wxCouponChannel != null && wxCouponChannel.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { | |||||
| cardInfo.setSupportTransfer(EnumCouponTransfer.NO.getCode()); | |||||
| } | |||||
| wxCardInfoMapper.insert(cardInfo); | |||||
| } | |||||
| } | } | ||||
| return couponOrder; | return couponOrder; | ||||
| } | } | ||||
| @@ -2261,5 +2278,18 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| return orderGroupId != null && !orderGroupId.equals(0L); | return orderGroupId != null && !orderGroupId.equals(0L); | ||||
| } | } | ||||
| @Override | |||||
| public int countGroupOrder(Long groupId) { | |||||
| WxOrder query = new WxOrder(); | |||||
| query.setOrderGroupId(groupId); | |||||
| List<Integer> statusS = new ArrayList<Integer>(); | |||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); | |||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); | |||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode()); | |||||
| //statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); | |||||
| query.setStatusS(statusS); | |||||
| return wxOrderMapper.countList(query); | |||||
| } | |||||
| } | } | ||||
| @@ -124,6 +124,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| public void handleSuccessOrder(WxPayOrder oldRecord,WxOrder order,Map<String, String> retMap) { | public void handleSuccessOrder(WxPayOrder oldRecord,WxOrder order,Map<String, String> retMap) { | ||||
| Date curDate = new Date(); | Date curDate = new Date(); | ||||
| if (oldRecord.getPayOrderStatus() != EnumPayStatus.PAY_STATUS_SUCCESS.getCode()) { | if (oldRecord.getPayOrderStatus() != EnumPayStatus.PAY_STATUS_SUCCESS.getCode()) { | ||||
| //因为此处是处理订单支付成功了但是订单状态为未支付成功的异常状态,库存不应该再扣减 | |||||
| //更新wxPayOrder | //更新wxPayOrder | ||||
| oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| String timEndStr = retMap.get("time_end"); | String timEndStr = retMap.get("time_end"); | ||||
| @@ -200,12 +201,6 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| if (repeatPay) { | if (repeatPay) { | ||||
| if (oldRecord.getPayOrderStatus()!=EnumPayStatus.PAY_STATUS_WAIT.getCode()) { | if (oldRecord.getPayOrderStatus()!=EnumPayStatus.PAY_STATUS_WAIT.getCode()) { | ||||
| oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); | oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); | ||||
| Long payno = idworker.nextId(); | |||||
| if (null == payno || payno.longValue() <=0) { | |||||
| throw new MallinkException(ErrorCode.PAY_ORDER_PAYING.getCode(),"订单支付流水号生成失败!handleWxOrderQuery:oldRecord:"+oldRecord+":wxstatus:"+wxpaystatus); | |||||
| } | |||||
| oldRecord.setPayOrderNo(String.valueOf(payno)); | |||||
| int sqlRow0 =wxPayOrderMapper.updateById(oldRecord); | int sqlRow0 =wxPayOrderMapper.updateById(oldRecord); | ||||
| if (sqlRow0 != 1) { | if (sqlRow0 != 1) { | ||||
| logger.error("pay order update error: " + oldRecord.toString()); | logger.error("pay order update error: " + oldRecord.toString()); | ||||
| @@ -349,12 +344,6 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| }else if(oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_FAIL.getCode()|| | }else if(oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_FAIL.getCode()|| | ||||
| oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_NOTPAY.getCode()) { | oldRecord.getPayOrderStatus()==EnumPayStatus.PAY_STATUS_NOTPAY.getCode()) { | ||||
| oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); | oldRecord.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); | ||||
| //重新设置支付no | |||||
| Long payno = idworker.nextId(); | |||||
| if (null == payno || payno.longValue() <=0) { | |||||
| throw new MallinkException(ErrorCode.PAY_ORDER_PAYING.getCode(),"订单支付流水号生成失败!service oldRecord:"+oldRecord); | |||||
| } | |||||
| oldRecord.setPayOrderNo(String.valueOf(payno)); | |||||
| int sqlRow0 = wxPayOrderMapper.updateById(oldRecord); | int sqlRow0 = wxPayOrderMapper.updateById(oldRecord); | ||||
| if (sqlRow0 != 1) { | if (sqlRow0 != 1) { | ||||
| logger.error("pay order update error: " + record.toString()); | logger.error("pay order update error: " + record.toString()); | ||||
| @@ -25,7 +25,7 @@ | |||||
| `share_fee_amount`,`remaining_share_fee_amount`, `rate_amount`, | `share_fee_amount`,`remaining_share_fee_amount`, `rate_amount`, | ||||
| `create_date`,`update_date`,`support_transfer` | `create_date`,`update_date`,`support_transfer` | ||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| where 1 = 1 | where 1 = 1 | ||||
| <if test=" null != id "> | <if test=" null != id "> | ||||
| @@ -211,4 +211,10 @@ | |||||
| update wx_card_info set support_transfer=0,update_date=now() where support_transfer=1 and coupon_id=#{couponId} | update wx_card_info set support_transfer=0,update_date=now() where support_transfer=1 and coupon_id=#{couponId} | ||||
| </update> | </update> | ||||
| <select id="findList" parameterType="com.iformall.domain.po.WxCardInfo" resultMap="BaseResultMap"> | |||||
| select <include refid="allColumns" /> | |||||
| from wx_card_info | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -133,7 +133,7 @@ | |||||
| </select> | </select> | ||||
| <select id="countList" parameterType="com.iformall.domain.po.WxOrder" resultType="java.lang.Integer"> | <select id="countList" parameterType="com.iformall.domain.po.WxOrder" resultType="java.lang.Integer"> | ||||
| select count(*) from wx_order | |||||
| select count(1) from wx_order | |||||
| <include refid="dynamicWhereConditions"/> | <include refid="dynamicWhereConditions"/> | ||||
| </select> | </select> | ||||