| @@ -58,7 +58,7 @@ public class WxOfflineActivityGrantController extends BaseController { | |||||
| @ApiOperation("参加活动用户订单列表") | @ApiOperation("参加活动用户订单列表") | ||||
| @GetMapping("recordList") | @GetMapping("recordList") | ||||
| @ApiImplicitParams({}) | @ApiImplicitParams({}) | ||||
| public ResultData list(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { | |||||
| public ResultData recordList(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { | |||||
| if(wxOfflineActivityRecord.getActivityId() == null){ | if(wxOfflineActivityRecord.getActivityId() == null){ | ||||
| return new ResultData(Result.ERROR,"请选择活动"); | return new ResultData(Result.ERROR,"请选择活动"); | ||||
| } | } | ||||
| @@ -4,13 +4,11 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.WxOfflineActivity; | |||||
| import com.iformall.domain.po.WxOfflineActivityGrantAward; | |||||
| import com.iformall.domain.po.WxOfflineActivityGrantSettlement; | |||||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.domain.po.base.BaseEntity.SortField; | import com.iformall.domain.po.base.BaseEntity.SortField; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.OfflineActivitySettlement; | import com.iformall.domain.vo.OfflineActivitySettlement; | ||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.WxOfflineActivityGrantAwardService; | import com.iformall.service.WxOfflineActivityGrantAwardService; | ||||
| import com.iformall.service.WxOfflineActivityGrantSettlementService; | import com.iformall.service.WxOfflineActivityGrantSettlementService; | ||||
| import com.iformall.service.WxOfflineActivityRecordService; | import com.iformall.service.WxOfflineActivityRecordService; | ||||
| @@ -24,6 +22,8 @@ import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -117,4 +117,18 @@ public class WxOfflineActivitySettlementController extends BaseController { | |||||
| return new ResultData(recordList); | return new ResultData(recordList); | ||||
| } | } | ||||
| @ApiOperation("单个活动单个门店结算记录导出") | |||||
| @GetMapping("/merchantSettlementExport") | |||||
| public void exportData(@ModelAttribute WxOfflineActivityGrantSettlement grantSettlement, HttpServletRequest request, HttpServletResponse response) { | |||||
| if(grantSettlement.getActivityId() == null){ | |||||
| throw new MallinkException(Result.ERROR,"请选择活动"); | |||||
| } | |||||
| if(grantSettlement.getMerchantId() == null){ | |||||
| throw new MallinkException(Result.ERROR,"请选择门店"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| grantSettlement.updateTenantInfo(tenantInfo); | |||||
| wxOfflineActivityGrantSettlementService.exportData(request,response,grantSettlement); | |||||
| } | |||||
| } | } | ||||
| @@ -85,12 +85,40 @@ public class WxOfflineActivity extends TenantEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer validStatus; | private Integer validStatus; | ||||
| /** | |||||
| * 参与订单数量 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private Integer recordCount; | |||||
| /** | |||||
| * 参与待审核订单数量 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private Integer waitRecordCount; | |||||
| /** | |||||
| * 参与已审核订单数量 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private Integer successRecordCount; | |||||
| /** | /** | ||||
| * 参与订单数 | |||||
| * 参与商户数量 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private Integer mershantCount; | |||||
| /** | |||||
| * 发放商户数量 | |||||
| */ | */ | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer grantMershantCount; | private Integer grantMershantCount; | ||||
| /** | |||||
| * 发放奖项数量 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private Integer grantItemCount; | |||||
| /** | /** | ||||
| * 发放订单数 | * 发放订单数 | ||||
| */ | */ | ||||
| @@ -85,6 +85,8 @@ public class WxOfflineActivityGrantAward extends TenantEntity{ | |||||
| */ | */ | ||||
| @TableField(value = "create_by") | @TableField(value = "create_by") | ||||
| private Long createBy; | private Long createBy; | ||||
| @TableField(exist = false) | |||||
| private List<Long> createByIds; | |||||
| /** | /** | ||||
| * 创建时间 | * 创建时间 | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.domain.po; | package com.iformall.domain.po; | ||||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||||
| import com.baomidou.mybatisplus.annotation.IdType; | import com.baomidou.mybatisplus.annotation.IdType; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | import com.baomidou.mybatisplus.annotation.TableField; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | import com.baomidou.mybatisplus.annotation.TableId; | ||||
| @@ -39,6 +40,7 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { | |||||
| /** | /** | ||||
| * 订单编号 | * 订单编号 | ||||
| */ | */ | ||||
| @Excel(name = "订单号", width = 20, orderNum = "1") | |||||
| @TableField(value = "order_no") | @TableField(value = "order_no") | ||||
| private String orderNo; | private String orderNo; | ||||
| @@ -47,6 +49,12 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { | |||||
| */ | */ | ||||
| @TableField(value = "order_money") | @TableField(value = "order_money") | ||||
| private Integer orderMoney; | private Integer orderMoney; | ||||
| @Excel(name = "订单金额(元)", width = 20, orderNum = "3") | |||||
| @TableField(exist = false) | |||||
| private String orderMoneyStr; | |||||
| public String getOrderMoneyStr() { | |||||
| return orderMoney != null ? new BigDecimal(orderMoney).divide(new BigDecimal(100)).toPlainString(): orderMoneyStr; | |||||
| } | |||||
| /** | /** | ||||
| * 商户id | * 商户id | ||||
| @@ -111,22 +119,39 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { | |||||
| */ | */ | ||||
| @TableField(value = "real_grant_price") | @TableField(value = "real_grant_price") | ||||
| private Integer realGrantPrice; | private Integer realGrantPrice; | ||||
| @TableField(exist = false) | |||||
| @Excel(name = "发放价值(元)", width = 20, orderNum = "4") | |||||
| private String realGrantPriceStr; | |||||
| public String getRealGrantPriceStr() { | |||||
| return realGrantPrice != null ? new BigDecimal(realGrantPrice).divide(new BigDecimal(100)).toPlainString(): realGrantPriceStr; | |||||
| } | |||||
| /** | /** | ||||
| * 实际商管承担总金额 | * 实际商管承担总金额 | ||||
| */ | */ | ||||
| @TableField(value = "real_mall_share_price") | @TableField(value = "real_mall_share_price") | ||||
| private Integer realMallSharePrice; | private Integer realMallSharePrice; | ||||
| @Excel(name = "商管承担金额(元)", width = 20, orderNum = "5") | |||||
| private String realMallSharePriceStr; | |||||
| public String getRealMallSharePriceStr() { | |||||
| return realMallSharePrice != null ? new BigDecimal(realMallSharePrice).divide(new BigDecimal(100)).toPlainString(): realMallSharePriceStr; | |||||
| } | |||||
| /** | /** | ||||
| * 实际商户承担总金额 | * 实际商户承担总金额 | ||||
| */ | */ | ||||
| @TableField(value = "real_merchant_share_price") | @TableField(value = "real_merchant_share_price") | ||||
| private Integer realMerchantSharePrice; | private Integer realMerchantSharePrice; | ||||
| @Excel(name = "商户承担金额(元)", width = 20, orderNum = "6") | |||||
| private String realMerchantSharePriceStr; | |||||
| public String getRealMerchantSharePriceStr() { | |||||
| return realMerchantSharePrice != null ? new BigDecimal(realMerchantSharePrice).divide(new BigDecimal(100)).toPlainString(): realMerchantSharePriceStr; | |||||
| } | |||||
| /** | /** | ||||
| * 创建时间 | * 创建时间 | ||||
| */ | */ | ||||
| @Excel(name = "发放时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "2") | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.iformall.domain.po; | package com.iformall.domain.po; | ||||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||||
| import com.baomidou.mybatisplus.annotation.IdType; | import com.baomidou.mybatisplus.annotation.IdType; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | import com.baomidou.mybatisplus.annotation.TableField; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | import com.baomidou.mybatisplus.annotation.TableId; | ||||
| @@ -33,6 +34,7 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| /** | /** | ||||
| * 订单号 | * 订单号 | ||||
| */ | */ | ||||
| @Excel(name = "订单号", width = 20, orderNum = "1") | |||||
| @TableField(value = "order_no") | @TableField(value = "order_no") | ||||
| private String orderNo; | private String orderNo; | ||||
| @@ -41,10 +43,17 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| */ | */ | ||||
| @TableField(value = "order_money") | @TableField(value = "order_money") | ||||
| private Integer orderMoney; | private Integer orderMoney; | ||||
| @Excel(name = "订单金额(元)", width = 20, orderNum = "7") | |||||
| @TableField(exist = false) | |||||
| private String orderMoneyStr; | |||||
| public String getOrderMoneyStr() { | |||||
| return orderMoney != null ? new BigDecimal(orderMoney).divide(new BigDecimal(100)).toPlainString(): orderMoneyStr; | |||||
| } | |||||
| /** | /** | ||||
| * 客户姓名 | * 客户姓名 | ||||
| */ | */ | ||||
| @Excel(name = "客户姓名", width = 20, orderNum = "3") | |||||
| @TableField(value = "cus_name") | @TableField(value = "cus_name") | ||||
| private String cusName; | private String cusName; | ||||
| @@ -57,12 +66,14 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| /** | /** | ||||
| * 客户电话 | * 客户电话 | ||||
| */ | */ | ||||
| @Excel(name = "客户电话", width = 20, orderNum = "4") | |||||
| @TableField(value = "cus_phone") | @TableField(value = "cus_phone") | ||||
| private String cusPhone; | private String cusPhone; | ||||
| /** | /** | ||||
| * 客户地址 | * 客户地址 | ||||
| */ | */ | ||||
| @Excel(name = "客户地址", width = 20, orderNum = "5") | |||||
| @TableField(value = "cus_address") | @TableField(value = "cus_address") | ||||
| private String cusAddress; | private String cusAddress; | ||||
| @@ -102,6 +113,7 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| @TableField(value = "merchant_id") | @TableField(value = "merchant_id") | ||||
| private Long merchantId; | private Long merchantId; | ||||
| @Excel(name = "商户名称", width = 20, orderNum = "6") | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private String merchantName; | private String merchantName; | ||||
| @@ -116,6 +128,7 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| /** | /** | ||||
| * 创建时间 | * 创建时间 | ||||
| */ | */ | ||||
| @Excel(name = "提交时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "2") | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @@ -139,6 +152,7 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| /** | /** | ||||
| * 审批状态 | * 审批状态 | ||||
| */ | */ | ||||
| @Excel(name = "审核状态", width = 20, orderNum = "8", replace = {"审核中_0", "已审批_1", "已驳回_2", "已发奖_10"}) | |||||
| @TableField(value = "audit_status") | @TableField(value = "audit_status") | ||||
| private Integer auditStatus; | private Integer auditStatus; | ||||
| @@ -163,7 +177,7 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||||
| private Date auditTimeEnd; | private Date auditTimeEnd; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Long sendByName; | |||||
| private String sendByName; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Date sendTimeBegin; | private Date sendTimeBegin; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| @@ -3,6 +3,8 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxOfflineActivityGrantAward; | import com.iformall.domain.po.WxOfflineActivityGrantAward; | ||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| * @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Mapper | * @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Mapper | ||||
| @@ -13,6 +15,7 @@ public interface WxOfflineActivityGrantAwardMapper extends CommonMapper<WxOfflin | |||||
| Integer getCusCount(WxOfflineActivityGrantAward grantAwardQ); | Integer getCusCount(WxOfflineActivityGrantAward grantAwardQ); | ||||
| List<Long> getRecordIdList(WxOfflineActivityGrantAward grantAwardQ); | |||||
| } | } | ||||
| @@ -3,6 +3,7 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxOfflineActivityGrantItem; | import com.iformall.domain.po.WxOfflineActivityGrantItem; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import org.apache.ibatis.annotations.Param; | |||||
| import java.util.List; | import java.util.List; | ||||
| @@ -14,7 +15,9 @@ import java.util.List; | |||||
| */ | */ | ||||
| public interface WxOfflineActivityGrantItemMapper extends CommonMapper<WxOfflineActivityGrantItem, Long> { | public interface WxOfflineActivityGrantItemMapper extends CommonMapper<WxOfflineActivityGrantItem, Long> { | ||||
| void insertList(List<WxOfflineActivityGrantItem> rantItemList); | |||||
| void insertList(@Param("grantItemList")List<WxOfflineActivityGrantItem> grantItemList); | |||||
| Integer getSumAwardCount(WxOfflineActivityGrantItem grantItemQ); | |||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxOfflineActivityGrantSettlement; | |||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import com.iformall.domain.vo.OfflineActivitySettlement; | import com.iformall.domain.vo.OfflineActivitySettlement; | ||||
| import com.iformall.domain.vo.OfflineActivitySettlementStatistics; | import com.iformall.domain.vo.OfflineActivitySettlementStatistics; | ||||
| import org.apache.ibatis.annotations.Param; | |||||
| import java.util.List; | import java.util.List; | ||||
| @@ -16,7 +17,7 @@ import java.util.List; | |||||
| */ | */ | ||||
| public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper<WxOfflineActivityGrantSettlement, Long> { | public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper<WxOfflineActivityGrantSettlement, Long> { | ||||
| void insertList(List<WxOfflineActivityGrantSettlement> settlementList); | |||||
| void insertList(@Param("settlementList")List<WxOfflineActivityGrantSettlement> settlementList); | |||||
| OfflineActivitySettlementStatistics settlementStatistics(WxOfflineActivityGrantSettlement settlement); | OfflineActivitySettlementStatistics settlementStatistics(WxOfflineActivityGrantSettlement settlement); | ||||
| @@ -17,7 +17,7 @@ public interface WxOfflineActivityRecordGrantMapper extends CommonMapper<WxOffli | |||||
| Integer selectGrantCount(@Param("tenantId")String tenantId, @Param("activityId")Long activityId, @Param("recordId")Long recordId); | Integer selectGrantCount(@Param("tenantId")String tenantId, @Param("activityId")Long activityId, @Param("recordId")Long recordId); | ||||
| void insertList(List<WxOfflineActivityRecordGrant> recordGrantList); | |||||
| void insertList(@Param("recordGrantList")List<WxOfflineActivityRecordGrant> recordGrantList); | |||||
| } | } | ||||
| @@ -27,6 +27,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineAct | |||||
| WxOfflineActivityRecord selectLimitOne(WxOfflineActivityRecord wxOfflineActivityRecord); | WxOfflineActivityRecord selectLimitOne(WxOfflineActivityRecord wxOfflineActivityRecord); | ||||
| Integer getCount(WxOfflineActivityRecord recordQ); | Integer getCount(WxOfflineActivityRecord recordQ); | ||||
| Integer getMerchantCount(WxOfflineActivityRecord recordQ); | |||||
| } | } | ||||
| @@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.service.IService; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.OfflineActivitySettlement; | import com.iformall.domain.vo.OfflineActivitySettlement; | ||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -27,4 +29,6 @@ public interface WxOfflineActivityGrantSettlementService { | |||||
| List<OfflineActivitySettlement> getActivitySettlement(WxOfflineActivityGrantSettlement grantSettlement); | List<OfflineActivitySettlement> getActivitySettlement(WxOfflineActivityGrantSettlement grantSettlement); | ||||
| List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement); | List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement); | ||||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement); | |||||
| } | } | ||||
| @@ -52,6 +52,7 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity | |||||
| awaItem.setGrade(-1); | awaItem.setGrade(-1); | ||||
| awaItem.setMinAmount(0); | awaItem.setMinAmount(0); | ||||
| awaItem.setMaxAmount(-1); | awaItem.setMaxAmount(-1); | ||||
| awaItem.setPrice(0); | |||||
| } | } | ||||
| if(awaItem.getCreateDate() == null){ | if(awaItem.getCreateDate() == null){ | ||||
| awaItem.setCreateDate(activityItem.getUpdateDate()); | awaItem.setCreateDate(activityItem.getUpdateDate()); | ||||
| @@ -195,6 +195,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| if(record.getCreateDate().before(activity.getStartTime()) || record.getCreateDate().after(activity.getEndTime())){ | if(record.getCreateDate().before(activity.getStartTime()) || record.getCreateDate().after(activity.getEndTime())){ | ||||
| throw new MallinkException(Result.ERROR, "请检查活动时间"); | throw new MallinkException(Result.ERROR, "请检查活动时间"); | ||||
| } | } | ||||
| if(wxOfflineActivityRecordGrantMapper.selectGrantCount(activity.getTenantId(),activity.getId(),record.getId()) > 0){ | |||||
| throw new MallinkException(Result.ERROR, "请检查订单是否已参与活动"); | |||||
| } | |||||
| } | } | ||||
| wxOfflineActivityGrantAward.setRecordList(wxOfflineActivityRecords); | wxOfflineActivityGrantAward.setRecordList(wxOfflineActivityRecords); | ||||
| wxOfflineActivityGrantAward.setActivityName(activity.getName()); | wxOfflineActivityGrantAward.setActivityName(activity.getName()); | ||||
| @@ -209,6 +212,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId()); | List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId()); | ||||
| Map<Long, WxOfflineActivityItem> activityItemMap = activityItemList.stream().collect(Collectors.toMap(WxOfflineActivityItem::getId, Function.identity())); | Map<Long, WxOfflineActivityItem> activityItemMap = activityItemList.stream().collect(Collectors.toMap(WxOfflineActivityItem::getId, Function.identity())); | ||||
| int i = 0; | |||||
| for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) { | for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) { | ||||
| if(grantActivityItem.getId() == null){ | if(grantActivityItem.getId() == null){ | ||||
| throw new MallinkException(Result.ERROR, "请检查活动项参数"); | throw new MallinkException(Result.ERROR, "请检查活动项参数"); | ||||
| @@ -220,11 +224,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| List<WxOfflineActivityGrantItem> activityGrantItemList = grantActivityItem.getActivityGrantItemList(); | List<WxOfflineActivityGrantItem> activityGrantItemList = grantActivityItem.getActivityGrantItemList(); | ||||
| if(activityGrantItemList == null || activityGrantItemList.isEmpty()){ | if(activityGrantItemList == null || activityGrantItemList.isEmpty()){ | ||||
| continue; | continue; | ||||
| // throw new MallinkException(Result.ERROR, "请检查活动奖项参数"); | |||||
| } | } | ||||
| Map<Long, WxOfflineActivityAwardsItem> awardsItemMap = activityItem.getActivityAwardsItemList().stream().collect(Collectors.toMap(WxOfflineActivityAwardsItem::getId, Function.identity())); | Map<Long, WxOfflineActivityAwardsItem> awardsItemMap = activityItem.getActivityAwardsItemList().stream().collect(Collectors.toMap(WxOfflineActivityAwardsItem::getId, Function.identity())); | ||||
| for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) { | for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) { | ||||
| i++; | |||||
| if(grantGrantItem.getAwardCount() == null){ | if(grantGrantItem.getAwardCount() == null){ | ||||
| grantGrantItem.setAwardCount(1); | grantGrantItem.setAwardCount(1); | ||||
| } | } | ||||
| @@ -296,6 +302,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| } | } | ||||
| } | } | ||||
| if(i == 0){ | |||||
| throw new MallinkException(Result.ERROR, "请检查是否有活动奖项"); | |||||
| } | |||||
| } | } | ||||
| private void handlerGrantItem(WxOfflineActivityGrantItem grantGrantItem,WxOfflineActivity activity,WxOfflineActivityItem activityItem,WxOfflineActivityAwardsItem awardsItem){ | private void handlerGrantItem(WxOfflineActivityGrantItem grantGrantItem,WxOfflineActivity activity,WxOfflineActivityItem activityItem,WxOfflineActivityAwardsItem awardsItem){ | ||||
| @@ -13,6 +13,7 @@ import com.iformall.enums.EnumOfflineActivityStatus; | |||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.mapper.WxMerchantMapper; | import com.iformall.mapper.WxMerchantMapper; | ||||
| import com.iformall.mapper.WxOfflineActivityMapper; | import com.iformall.mapper.WxOfflineActivityMapper; | ||||
| import com.iformall.service.ExcelService; | |||||
| import com.iformall.service.WxMerchantService; | import com.iformall.service.WxMerchantService; | ||||
| import com.iformall.service.WxOfflineActivityGrantSettlementService; | import com.iformall.service.WxOfflineActivityGrantSettlementService; | ||||
| import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper; | import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper; | ||||
| @@ -20,6 +21,8 @@ import com.iformall.utils.DateUtils; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.math.RoundingMode; | import java.math.RoundingMode; | ||||
| import java.text.NumberFormat; | import java.text.NumberFormat; | ||||
| @@ -45,6 +48,9 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct | |||||
| @Autowired | @Autowired | ||||
| WxMerchantService wxMerchantService; | WxMerchantService wxMerchantService; | ||||
| @Autowired | |||||
| ExcelService excelService; | |||||
| @Override | @Override | ||||
| public void settlement(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { | public void settlement(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { | ||||
| List<WxOfflineActivityGrantSettlement> settlementList = new ArrayList<>(); | List<WxOfflineActivityGrantSettlement> settlementList = new ArrayList<>(); | ||||
| @@ -209,6 +215,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct | |||||
| if(new Date().before(activity.getStartTime())){ | if(new Date().before(activity.getStartTime())){ | ||||
| activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); | activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); | ||||
| } | } | ||||
| //获取结算相关 | //获取结算相关 | ||||
| WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement(); | WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement(); | ||||
| settlement.updateTenantInfo(activity); | settlement.updateTenantInfo(activity); | ||||
| @@ -256,6 +263,12 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct | |||||
| public List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement) { | public List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement) { | ||||
| return wxOfflineActivityGrantSettlementMapper.findList(grantSettlement); | return wxOfflineActivityGrantSettlementMapper.findList(grantSettlement); | ||||
| } | } | ||||
| @Override | |||||
| public void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement) { | |||||
| List<WxOfflineActivityGrantSettlement> list = wxOfflineActivityGrantSettlementMapper.findList(grantSettlement); | |||||
| excelService.exportExcel(list, null, "活动商户结算", WxOfflineActivityGrantSettlement.class, "活动商户结算.xlsx", response, false); | |||||
| } | |||||
| } | } | ||||
| @@ -31,6 +31,8 @@ public class WxOfflineActivityRecordGrantServiceImpl implements WxOfflineActivit | |||||
| recordGrant.setActivityId(wxOfflineActivityGrantAward.getActivityId()); | recordGrant.setActivityId(wxOfflineActivityGrantAward.getActivityId()); | ||||
| recordGrant.setRecordId(recordId); | recordGrant.setRecordId(recordId); | ||||
| recordGrant.setGrantId(wxOfflineActivityGrantAward.getId()); | recordGrant.setGrantId(wxOfflineActivityGrantAward.getId()); | ||||
| recordGrantList.add(recordGrant); | |||||
| }); | }); | ||||
| wxOfflineActivityRecordGrantMapper.insertList(recordGrantList); | wxOfflineActivityRecordGrantMapper.insertList(recordGrantList); | ||||
| @@ -4,13 +4,13 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.WxMerchant; | |||||
| import com.iformall.domain.po.WxOfflineActivityGrantAward; | |||||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.OfflineActivityRecordStatistics; | import com.iformall.domain.vo.OfflineActivityRecordStatistics; | ||||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | import com.iformall.enums.EnumOfflineActivityRecordStatus; | ||||
| import com.iformall.mapper.WxMerchantMapper; | import com.iformall.mapper.WxMerchantMapper; | ||||
| import com.iformall.mapper.WxOfflineActivityGrantAwardMapper; | |||||
| import com.iformall.service.MallUserInfoService; | |||||
| import com.iformall.service.WxMerchantService; | import com.iformall.service.WxMerchantService; | ||||
| import com.iformall.service.WxOfflineActivityRecordService; | import com.iformall.service.WxOfflineActivityRecordService; | ||||
| import com.iformall.mapper.WxOfflineActivityRecordMapper; | import com.iformall.mapper.WxOfflineActivityRecordMapper; | ||||
| @@ -32,10 +32,15 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||||
| @Autowired | @Autowired | ||||
| private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; | private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; | ||||
| @Autowired | |||||
| WxOfflineActivityGrantAwardMapper wxOfflineActivityGrantAwardMapper; | |||||
| @Autowired | @Autowired | ||||
| WxMerchantMapper wxMerchantMapper; | WxMerchantMapper wxMerchantMapper; | ||||
| @Autowired | @Autowired | ||||
| WxMerchantService wxMerchantService; | WxMerchantService wxMerchantService; | ||||
| @Autowired | |||||
| MallUserInfoService mallUserInfoService; | |||||
| @Override | @Override | ||||
| public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { | public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { | ||||
| @@ -58,16 +63,48 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||||
| record.setMerchantIdList(mids); | record.setMerchantIdList(mids); | ||||
| } | } | ||||
| } | } | ||||
| //发奖处理(多对多关系) | |||||
| WxOfflineActivityGrantAward awardQ = null; | |||||
| if(StringUtils.isNotBlank(record.getSendByName())){ | |||||
| MallUserInfo userInfo = new MallUserInfo(); | |||||
| userInfo.updateTenantInfo(record); | |||||
| userInfo.setUsername(record.getSendByName()); | |||||
| List<Long> mids = mallUserInfoService.getUserIdList(userInfo); | |||||
| if (null == mids || mids.size() <= 0 ) { | |||||
| record.setId(-1L); | |||||
| }else { | |||||
| awardQ = new WxOfflineActivityGrantAward(); | |||||
| awardQ.updateTenantInfo(record); | |||||
| awardQ.setCreateByIds(mids); | |||||
| } | |||||
| } | |||||
| if(record.getSendTimeBegin() != null || record.getSendTimeEnd() != null){ | |||||
| if(awardQ == null){ | |||||
| awardQ = new WxOfflineActivityGrantAward(); | |||||
| awardQ.updateTenantInfo(record); | |||||
| awardQ.setCreateDateBegin(record.getSendTimeBegin()); | |||||
| awardQ.setCreateDateEnd(record.getSendTimeEnd()); | |||||
| } | |||||
| } | |||||
| if(awardQ != null){ | |||||
| List<Long> rids = wxOfflineActivityGrantAwardMapper.getRecordIdList(awardQ); | |||||
| if (null == rids || rids.size() <= 0 ) { | |||||
| record.setId(-1L); | |||||
| }else{ | |||||
| record.setIds(rids); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| private void handlerRecordList(TenantEntity tenantEntity,List<WxOfflineActivityRecord> recordList) { | private void handlerRecordList(TenantEntity tenantEntity,List<WxOfflineActivityRecord> recordList) { | ||||
| if (recordList != null && recordList.size() > 0) { | |||||
| WxMerchant merchantQ = new WxMerchant(); | |||||
| merchantQ.updateTenantInfo(tenantEntity); | |||||
| Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||||
| for (WxOfflineActivityRecord record : recordList) { | |||||
| record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); | |||||
| } | |||||
| if (recordList == null || recordList.size() <= 0) { | |||||
| return; | |||||
| } | |||||
| WxMerchant merchantQ = new WxMerchant(); | |||||
| merchantQ.updateTenantInfo(tenantEntity); | |||||
| Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||||
| for (WxOfflineActivityRecord record : recordList) { | |||||
| record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); | |||||
| } | } | ||||
| } | } | ||||
| @@ -3,13 +3,15 @@ package com.iformall.service.impl; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.WxOfflineActivity; | |||||
| import com.iformall.domain.po.WxOfflineActivityItem; | |||||
| import com.iformall.domain.po.WxOfflineActivityMerchant; | |||||
| import com.iformall.domain.po.WxRaffleActivity; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.domain.vo.OfflineActivityRecordStatistics; | |||||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | import com.iformall.enums.EnumOfflineActivityMerchantType; | ||||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||||
| import com.iformall.enums.EnumOfflineActivityStatus; | import com.iformall.enums.EnumOfflineActivityStatus; | ||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.mapper.WxOfflineActivityGrantItemMapper; | |||||
| import com.iformall.mapper.WxOfflineActivityMerchantMapper; | |||||
| import com.iformall.mapper.WxOfflineActivityRecordMapper; | |||||
| import com.iformall.service.WxOfflineActivityItemService; | import com.iformall.service.WxOfflineActivityItemService; | ||||
| import com.iformall.service.WxOfflineActivityMerchantService; | import com.iformall.service.WxOfflineActivityMerchantService; | ||||
| import com.iformall.service.WxOfflineActivityService; | import com.iformall.service.WxOfflineActivityService; | ||||
| @@ -19,7 +21,9 @@ import org.springframework.stereotype.Service; | |||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -35,7 +39,13 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{ | |||||
| @Autowired | @Autowired | ||||
| WxOfflineActivityItemService wxOfflineActivityItemService; | WxOfflineActivityItemService wxOfflineActivityItemService; | ||||
| @Autowired | @Autowired | ||||
| WxOfflineActivityMerchantMapper wxOfflineActivityMerchantMapper; | |||||
| @Autowired | |||||
| WxOfflineActivityMerchantService wxOfflineActivityMerchantService; | WxOfflineActivityMerchantService wxOfflineActivityMerchantService; | ||||
| @Autowired | |||||
| WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; | |||||
| @Autowired | |||||
| WxOfflineActivityGrantItemMapper wxOfflineActivityGrantItemMapper; | |||||
| @Override | @Override | ||||
| public PageInfo<WxOfflineActivity> listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxOfflineActivity> listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize) { | ||||
| @@ -66,7 +76,41 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{ | |||||
| if(now.before(activity.getStartTime())){ | if(now.before(activity.getStartTime())){ | ||||
| activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); | activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); | ||||
| } | } | ||||
| //获取发奖订单数 | |||||
| //参与订单数 | |||||
| WxOfflineActivityRecord wxOfflineActivityRecord = new WxOfflineActivityRecord(); | |||||
| wxOfflineActivityRecord.updateTenantInfo(activity); | |||||
| wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime()); | |||||
| wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime()); | |||||
| if(EnumOfflineActivityMerchantType.ADD.getCode().equals(activity.getAllMerchant())){ | |||||
| List<Long> merchantIds = wxOfflineActivityMerchantMapper.getMerchantIdList(activity.getId(), activity.getTenantId()); | |||||
| wxOfflineActivityRecord.setMerchantIdList(merchantIds); | |||||
| }else if(EnumOfflineActivityMerchantType.UN_ADD.getCode().equals(activity.getAllMerchant())){ | |||||
| List<Long> merchantIds = wxOfflineActivityMerchantMapper.getMerchantIdList(activity.getId(), activity.getTenantId()); | |||||
| wxOfflineActivityRecord.setNotMerchantIdList(merchantIds); | |||||
| } | |||||
| List<OfflineActivityRecordStatistics> auditStatusStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord); | |||||
| Integer audting = 0, audi_success = 0, audt_fail = 0; | |||||
| for(OfflineActivityRecordStatistics statistics : auditStatusStatistics){ | |||||
| if(EnumOfflineActivityRecordStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ | |||||
| audting = statistics.getCount(); | |||||
| } else if (EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { | |||||
| audi_success = statistics.getCount(); | |||||
| } else if (EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { | |||||
| audt_fail = statistics.getCount(); | |||||
| } | |||||
| } | |||||
| activity.setRecordCount(audting+audi_success+audt_fail); | |||||
| activity.setWaitRecordCount(audting); | |||||
| activity.setSuccessRecordCount(audi_success); | |||||
| //参与商户数 | |||||
| activity.setMershantCount(wxOfflineActivityRecordMapper.getMerchantCount(wxOfflineActivityRecord)); | |||||
| //发放奖项数量 | |||||
| WxOfflineActivityGrantItem grantItemQ = new WxOfflineActivityGrantItem(); | |||||
| grantItemQ.updateTenantInfo(activity); | |||||
| grantItemQ.setActivityId(activity.getId()); | |||||
| activity.setGrantItemCount(wxOfflineActivityGrantItemMapper.getSumAwardCount(grantItemQ)); | |||||
| } | } | ||||
| } | } | ||||
| @@ -52,4 +52,32 @@ | |||||
| and `create_date` <= #{createDateEnd} | and `create_date` <= #{createDateEnd} | ||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="getRecordIdList" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" resultType="Long"> | |||||
| SELECT DISTINCT rg.record_id | |||||
| FROM wx_offline_activity_grant_award ga | |||||
| left join wx_offline_activity_record_grant rg | |||||
| where 1 = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and ga.`tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and ga.`parent_tenant_id` = #{parentTenantId} | |||||
| </if> | |||||
| <if test=" null != createDateBegin"> | |||||
| and ga.`create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and ga.`create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != createByIds "> | |||||
| and ga.create_by in | |||||
| <foreach collection="createByIds" index="index" item="sendItem" open="(" separator="," close=")"> | |||||
| #{sendItem} | |||||
| </foreach> | |||||
| </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -5,54 +5,54 @@ | |||||
| <mapper namespace="com.iformall.mapper.WxOfflineActivityGrantItemMapper"> | <mapper namespace="com.iformall.mapper.WxOfflineActivityGrantItemMapper"> | ||||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantItem"> | <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantItem"> | ||||
| <id property="id" column="id" jdbcType="BIGINT"/> | |||||
| <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | |||||
| <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | |||||
| <result property="grantId" column="grant_id" jdbcType="BIGINT"/> | |||||
| <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | |||||
| <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | |||||
| <result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/> | |||||
| <result property="activityItemName" column="activity_item_name" jdbcType="INTEGER"/> | |||||
| <result property="activityItemType" column="activity_item_type" jdbcType="SMALLINT"/> | |||||
| <result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/> | |||||
| <result property="awardName" column="award_name" jdbcType="VARCHAR"/> | |||||
| <result property="awardGrade" column="award_grade" jdbcType="INTEGER"/> | |||||
| <result property="awardMinAmount" column="award_min_amount" jdbcType="INTEGER"/> | |||||
| <result property="awardMaxAmount" column="award_max_amount" jdbcType="INTEGER"/> | |||||
| <result property="awardsItemRule" column="awards_item_rule" jdbcType="INTEGER"/> | |||||
| <result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/> | |||||
| <result property="awardPrice" column="award_price" jdbcType="INTEGER"/> | |||||
| <result property="awardCount" column="award_count" jdbcType="INTEGER"/> | |||||
| <result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/> | |||||
| <result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/> | |||||
| <result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/> | |||||
| <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/> | |||||
| <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/> | |||||
| <id property="id" column="id" jdbcType="BIGINT"/> | |||||
| <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | |||||
| <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | |||||
| <result property="grantId" column="grant_id" jdbcType="BIGINT"/> | |||||
| <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | |||||
| <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | |||||
| <result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/> | |||||
| <result property="activityItemName" column="activity_item_name" jdbcType="INTEGER"/> | |||||
| <result property="activityItemType" column="activity_item_type" jdbcType="SMALLINT"/> | |||||
| <result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/> | |||||
| <result property="awardName" column="award_name" jdbcType="VARCHAR"/> | |||||
| <result property="awardGrade" column="award_grade" jdbcType="INTEGER"/> | |||||
| <result property="awardMinAmount" column="award_min_amount" jdbcType="INTEGER"/> | |||||
| <result property="awardMaxAmount" column="award_max_amount" jdbcType="INTEGER"/> | |||||
| <result property="awardsItemRule" column="awards_item_rule" jdbcType="INTEGER"/> | |||||
| <result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/> | |||||
| <result property="awardPrice" column="award_price" jdbcType="INTEGER"/> | |||||
| <result property="awardCount" column="award_count" jdbcType="INTEGER"/> | |||||
| <result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/> | |||||
| <result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/> | |||||
| <result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/> | |||||
| <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/> | |||||
| <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| id,tenant_id,parent_tenant_id, | |||||
| id,tenant_id,parent_tenant_id, | |||||
| grant_id,activity_id,activity_name, | |||||
| activity_item_id,activity_item_name,activity_item_type, | |||||
| award_itam_id,award_name,award_grade, | |||||
| award_min_amount,award_max_amount,awards_item_rule,cash_back_ratio, | |||||
| award_price,award_count,money_rule, | |||||
| mall_share_rate,merchant_share_rate, | |||||
| create_date,update_date | |||||
| </sql> | |||||
| <insert id="insertList" parameterType="java.util.List"> | |||||
| insert into wx_offline_activity_grant_item | |||||
| (id,tenant_id,parent_tenant_id, | |||||
| grant_id,activity_id,activity_name, | grant_id,activity_id,activity_name, | ||||
| activity_item_id,activity_item_name,activity_item_type, | activity_item_id,activity_item_name,activity_item_type, | ||||
| award_itam_id,award_name,award_grade, | award_itam_id,award_name,award_grade, | ||||
| award_min_amount,award_max_amount,awards_item_rule,cash_back_ratio, | award_min_amount,award_max_amount,awards_item_rule,cash_back_ratio, | ||||
| award_price,award_count,money_rule, | award_price,award_count,money_rule, | ||||
| mall_share_rate,merchant_share_rate, | mall_share_rate,merchant_share_rate, | ||||
| create_date,update_date | |||||
| </sql> | |||||
| <insert id="insertList" parameterType="java.util.List"> | |||||
| insert into wx_offline_activity_grant_item | |||||
| (`id`,`tenant_id`,`parent_tenant_id`, | |||||
| `grant_id`,`activity_id`,`activity_name`, | |||||
| `activity_item_id`,`activity_item_name`,`activity_item_type`, | |||||
| `award_itam_id`,`award_name`,`award_grade`, | |||||
| `award_min_amount`,`award_max_amount`,`awards_item_rule`,`cash_back_ratio`, | |||||
| `award_price`,`award_count`,`money_rule`, | |||||
| `mall_share_rate`,`merchant_share_rate`, | |||||
| `create_date`,`update_date`) | |||||
| create_date,update_date) | |||||
| values | values | ||||
| <foreach collection="addList" item="item" index="index" separator=","> | |||||
| <foreach collection="grantItemList" item="item" index="index" separator=","> | |||||
| (#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, | (#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, | ||||
| #{item.grantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityName,jdbcType=VARCHAR}, | #{item.grantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityName,jdbcType=VARCHAR}, | ||||
| #{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER}, | #{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER}, | ||||
| @@ -63,4 +63,19 @@ | |||||
| #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) | #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) | ||||
| </foreach> | </foreach> | ||||
| </insert> | </insert> | ||||
| <select id="getSumAwardCount" parameterType="com.iformall.domain.po.WxOfflineActivityGrantItem" resultType="Integer"> | |||||
| SELECT COUNT(1) FROM wx_offline_activity_grant_item | |||||
| where 1 = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and tenant_id = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and parent_tenant_id = #{parentTenantId} | |||||
| </if> | |||||
| <if test=" null != activityId "> | |||||
| and activity_id = #{activityId} | |||||
| </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -111,7 +111,7 @@ | |||||
| real_grant_price,real_mall_share_price,real_merchant_share_price, | real_grant_price,real_mall_share_price,real_merchant_share_price, | ||||
| create_date,update_date) | create_date,update_date) | ||||
| values | values | ||||
| <foreach collection="addList" item="item" index="index" separator=","> | |||||
| <foreach collection="settlementList" item="item" index="index" separator=","> | |||||
| (#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, | (#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, | ||||
| #{item.recordId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=INTEGER}, | #{item.recordId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=INTEGER}, | ||||
| #{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT}, | #{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT}, | ||||
| @@ -155,7 +155,7 @@ | |||||
| <select id="getActivitySettlement" parameterType="com.iformall.domain.po.WxOfflineActivityGrantSettlement" resultType="com.iformall.domain.vo.OfflineActivitySettlement"> | <select id="getActivitySettlement" parameterType="com.iformall.domain.po.WxOfflineActivityGrantSettlement" resultType="com.iformall.domain.vo.OfflineActivitySettlement"> | ||||
| SELECT merchant_id as 'merchantId', | SELECT merchant_id as 'merchantId', | ||||
| activity_id as 'activityId', | activity_id as 'activityId', | ||||
| count(DISTINCT record_id) as 'recordCount', | |||||
| count(record_id) as 'recordCount', | |||||
| IFNULL(sum(order_money),0) as 'sumOrderMoney', | IFNULL(sum(order_money),0) as 'sumOrderMoney', | ||||
| IFNULL(sum(real_grant_price),0) as 'sumGrantPrice', | IFNULL(sum(real_grant_price),0) as 'sumGrantPrice', | ||||
| IFNULL(sum(real_mall_share_price),0) as 'sumMallPrice', | IFNULL(sum(real_mall_share_price),0) as 'sumMallPrice', | ||||
| @@ -27,7 +27,7 @@ | |||||
| insert into wx_offline_activity_record_grant | insert into wx_offline_activity_record_grant | ||||
| (`tenant_id`,`parent_tenant_id`,`activity_id`,`record_id`,`grant_id`) | (`tenant_id`,`parent_tenant_id`,`activity_id`,`record_id`,`grant_id`) | ||||
| values | values | ||||
| <foreach collection="addList" item="item" index="index" separator=","> | |||||
| <foreach collection="recordGrantList" item="item" index="index" separator=","> | |||||
| (#{item.tenantId,jdbcType=VARCHAR}, | (#{item.tenantId,jdbcType=VARCHAR}, | ||||
| #{item.parentTenantId,jdbcType=VARCHAR}, | #{item.parentTenantId,jdbcType=VARCHAR}, | ||||
| #{item.activityId,jdbcType=BIGINT}, | #{item.activityId,jdbcType=BIGINT}, | ||||
| @@ -136,35 +136,7 @@ | |||||
| count(1) as 'count', | count(1) as 'count', | ||||
| IFNULL(sum(order_money),0) as 'sumMoney' | IFNULL(sum(order_money),0) as 'sumMoney' | ||||
| FROM wx_offline_activity_record | FROM wx_offline_activity_record | ||||
| where 1 = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| </if> | |||||
| <if test=" null != merchantId "> | |||||
| and `merchant_id` = #{merchantId} | |||||
| </if> | |||||
| <if test=" null != businessId "> | |||||
| and `business_id` = #{businessId} | |||||
| </if> | |||||
| <if test=" null != cusPhone and cusPhone != '' "> | |||||
| and `cus_phone` = #{cusPhone} | |||||
| </if> | |||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != auditStatus "> | |||||
| and `audit_status` = #{auditStatus} | |||||
| </if> | |||||
| <include refid="statisticsWhereConditions" /> | |||||
| GROUP BY audit_status | GROUP BY audit_status | ||||
| </select> | </select> | ||||
| @@ -203,6 +175,15 @@ | |||||
| <select id="getCount" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="Integer"> | <select id="getCount" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="Integer"> | ||||
| SELECT COUNT(1) FROM wx_offline_activity_record | SELECT COUNT(1) FROM wx_offline_activity_record | ||||
| <include refid="statisticsWhereConditions" /> | |||||
| </select> | |||||
| <select id="getMerchantCount" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="Integer"> | |||||
| SELECT COUNT(distinct merchant_id) FROM wx_offline_activity_record | |||||
| <include refid="statisticsWhereConditions" /> | |||||
| </select> | |||||
| <sql id="statisticsWhereConditions"> | |||||
| where 1 = 1 | where 1 = 1 | ||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| and `tenant_id` = #{tenantId} | and `tenant_id` = #{tenantId} | ||||
| @@ -210,6 +191,15 @@ | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | <if test=" null != parentTenantId and '' != parentTenantId"> | ||||
| and `parent_tenant_id` = #{parentTenantId} | and `parent_tenant_id` = #{parentTenantId} | ||||
| </if> | </if> | ||||
| <if test=" null != merchantId "> | |||||
| and `merchant_id` = #{merchantId} | |||||
| </if> | |||||
| <if test=" null != businessId "> | |||||
| and `business_id` = #{businessId} | |||||
| </if> | |||||
| <if test=" null != cusPhone and cusPhone != '' "> | |||||
| and `cus_phone` = #{cusPhone} | |||||
| </if> | |||||
| <if test=" null != createDateBegin"> | <if test=" null != createDateBegin"> | ||||
| and `create_date` >= #{createDateBegin} | and `create_date` >= #{createDateBegin} | ||||
| @@ -218,6 +208,25 @@ | |||||
| <if test=" null != createDateEnd"> | <if test=" null != createDateEnd"> | ||||
| and `create_date` <= #{createDateEnd} | and `create_date` <= #{createDateEnd} | ||||
| </if> | </if> | ||||
| </select> | |||||
| <if test=" null != auditStatus "> | |||||
| and `audit_status` = #{auditStatus} | |||||
| </if> | |||||
| <if test=" null != merchantIdList "> | |||||
| and merchant_id in | |||||
| <foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")"> | |||||
| #{midItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != notMerchantIdList "> | |||||
| and merchant_id not in | |||||
| <foreach collection="notMerchantIdList" index="index" item="midItem" open="(" separator="," close=")"> | |||||
| #{midItem} | |||||
| </foreach> | |||||
| </if> | |||||
| </sql> | |||||
| </mapper> | </mapper> | ||||