| @@ -301,6 +301,7 @@ public class WxVtwoPrizeDrawActivityController extends BaseController { | |||||
| // return new ResultData(Result.ERROR,"签名为空"); | // return new ResultData(Result.ERROR,"签名为空"); | ||||
| // } | // } | ||||
| activityGrant.setCreateBy(getUserId()); | activityGrant.setCreateBy(getUserId()); | ||||
| activityGrant.setCreateByName(getUser().getName()); | |||||
| try{ | try{ | ||||
| wxVtwoPrizeDrawActivityService.grantAward(prizeDrawActivity, activityGrant); | wxVtwoPrizeDrawActivityService.grantAward(prizeDrawActivity, activityGrant); | ||||
| return new ResultData(); | return new ResultData(); | ||||
| @@ -140,6 +140,8 @@ public class WxVtwoActivityGrant extends TenantEntity { | |||||
| */ | */ | ||||
| @TableField(value = "create_by") | @TableField(value = "create_by") | ||||
| private Long createBy; | private Long createBy; | ||||
| @TableField(exist = false) | |||||
| private String createByName; | |||||
| /** | /** | ||||
| * 创建时间 | * 创建时间 | ||||
| @@ -103,31 +103,31 @@ public class WxVtwoActivityGrantExport extends TenantEntity { | |||||
| /** | /** | ||||
| * 审批状态 | * 审批状态 | ||||
| */ | */ | ||||
| @TableField(value = "order_audit_status") | |||||
| @TableField(exist = false) | |||||
| private Integer orderAuditStatus; | private Integer orderAuditStatus; | ||||
| /** | /** | ||||
| * 审核人 | * 审核人 | ||||
| */ | */ | ||||
| @TableField(value = "order_audit_by") | |||||
| @TableField(exist = false) | |||||
| private Long orderAuditBy; | private Long orderAuditBy; | ||||
| /** | /** | ||||
| * | * | ||||
| */ | */ | ||||
| @TableField(value = "order_audit_name") | |||||
| @TableField(exist = false) | |||||
| private String orderAuditName; | private String orderAuditName; | ||||
| /** | /** | ||||
| * 审批意见 | * 审批意见 | ||||
| */ | */ | ||||
| @TableField(value = "order_audit_remark") | |||||
| @TableField(exist = false) | |||||
| private String orderAuditRemark; | private String orderAuditRemark; | ||||
| /** | /** | ||||
| * 审核时间 | * 审核时间 | ||||
| */ | */ | ||||
| @TableField(value = "order_audit_time") | |||||
| @TableField(exist = false) | |||||
| private Date orderAuditTime; | private Date orderAuditTime; | ||||
| /** | /** | ||||
| @@ -3,6 +3,9 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantExport; | import com.iformall.domain.po.WxVtwoActivityGrantExport; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import org.apache.ibatis.annotations.Param; | |||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -12,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
| */ | */ | ||||
| public interface WxVtwoActivityGrantExportMapper extends CommonMapper<WxVtwoActivityGrantExport, Long> { | public interface WxVtwoActivityGrantExportMapper extends CommonMapper<WxVtwoActivityGrantExport, Long> { | ||||
| void insertList(@Param("grantExportList")List<WxVtwoActivityGrantExport> grantExportList); | |||||
| } | } | ||||
| @@ -1,7 +1,11 @@ | |||||
| package com.iformall.service; | package com.iformall.service; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrantExport; | import com.iformall.domain.po.WxVtwoActivityGrantExport; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantSettlement; | |||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -10,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService; | |||||
| */ | */ | ||||
| public interface WxVtwoActivityGrantExportService extends IService<WxVtwoActivityGrantExport> { | public interface WxVtwoActivityGrantExportService extends IService<WxVtwoActivityGrantExport> { | ||||
| void saveGrantExport(WxVtwoActivityGrant activityGrant, List<WxVtwoActivityGrantSettlement> settlementList); | |||||
| } | } | ||||
| @@ -1,11 +1,25 @@ | |||||
| package com.iformall.service.impl; | package com.iformall.service.impl; | ||||
| import com.alibaba.fastjson.JSONObject; | |||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
| import com.iformall.common.IdWorker; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrantExport; | import com.iformall.domain.po.WxVtwoActivityGrantExport; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantSettlement; | |||||
| import com.iformall.domain.po.WxVtwoActivityOrder; | |||||
| import com.iformall.service.WxVtwoActivityGrantExportService; | import com.iformall.service.WxVtwoActivityGrantExportService; | ||||
| import com.iformall.mapper.WxVtwoActivityGrantExportMapper; | import com.iformall.mapper.WxVtwoActivityGrantExportMapper; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import java.math.BigDecimal; | |||||
| import java.math.RoundingMode; | |||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import java.util.function.Function; | |||||
| import java.util.stream.Collectors; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| * @description 针对表【wx_vtwo_activity_grant_export(线下活动发放奖励导出)】的数据库操作Service实现 | * @description 针对表【wx_vtwo_activity_grant_export(线下活动发放奖励导出)】的数据库操作Service实现 | ||||
| @@ -15,6 +29,84 @@ import org.springframework.stereotype.Service; | |||||
| public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActivityGrantExportMapper, WxVtwoActivityGrantExport> | public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActivityGrantExportMapper, WxVtwoActivityGrantExport> | ||||
| implements WxVtwoActivityGrantExportService{ | implements WxVtwoActivityGrantExportService{ | ||||
| @Autowired | |||||
| private WxVtwoActivityGrantExportMapper wxVtwoActivityGrantExportMapper; | |||||
| @Override | |||||
| public void saveGrantExport(WxVtwoActivityGrant activityGrant, List<WxVtwoActivityGrantSettlement> settlementList) { | |||||
| Map<Long, List<WxVtwoActivityGrantSettlement>> orderSettlementMap = settlementList.stream().collect(Collectors.groupingBy(WxVtwoActivityGrantSettlement::getOrderId)); | |||||
| Map<Long, WxVtwoActivityOrder> orderMap = activityGrant.getOrderList().stream().collect(Collectors.toMap(WxVtwoActivityOrder::getId, Function.identity())); | |||||
| List<WxVtwoActivityGrantExport> grantExportList = new ArrayList<>(); | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| orderSettlementMap.keySet().forEach(orderId -> { | |||||
| List<WxVtwoActivityGrantSettlement> orderSettlementList = orderSettlementMap.get(orderId); | |||||
| WxVtwoActivityOrder order = orderMap.get(orderId); | |||||
| WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); | |||||
| grantExport.setId(idWorker.nextId()); | |||||
| grantExport.setActivityId(activityGrant.getActivityId()); | |||||
| grantExport.setGrantId(activityGrant.getId()); | |||||
| grantExport.setGrantUserName(activityGrant.getRealName()); | |||||
| grantExport.setGrantUserCard(activityGrant.getRealCard()); | |||||
| grantExport.setGrantBy(activityGrant.getCreateBy()); | |||||
| grantExport.setGrantByName(activityGrant.getCreateByName()); | |||||
| grantExport.setGrantTime(activityGrant.getCreateDate()); | |||||
| grantExport.setGrantRemark(activityGrant.getRemark()); | |||||
| grantExport.setSignImg(activityGrant.getSignImg()); | |||||
| }); | |||||
| wxVtwoActivityGrantExportMapper.insertList(grantExportList); | |||||
| } | |||||
| private WxVtwoActivityGrantExport getGrantExport(WxVtwoActivityOrder order,List<WxVtwoActivityGrantSettlement> orderSettlementList){ | |||||
| WxVtwoActivityGrantExport grantExport = new WxVtwoActivityGrantExport(); | |||||
| grantExport.updateTenantInfo(order); | |||||
| grantExport.setOrderId(order.getId()); | |||||
| grantExport.setOrderNo(order.getOrderNo()); | |||||
| grantExport.setOrderAmount(order.getOrderMoney()); | |||||
| grantExport.setMerchantId(order.getMerchantId()); | |||||
| grantExport.setMerchantName(order.getMerchantName()); | |||||
| grantExport.setMerchantShopNum(order.getShopNumber()); | |||||
| grantExport.setBusinessId(order.getBusinessId()); | |||||
| grantExport.setBusinessName(order.getBusinessName()); | |||||
| grantExport.setLotteryNum(order.getLotteryNumStr()); | |||||
| grantExport.setLotteryNum(order.getLotteryNum()); | |||||
| grantExport.setAnniversaryLotteryNum(order.getAnniversaryLotteryNum()); | |||||
| grantExport.setOrderCreateTime(order.getCreateDate()); | |||||
| grantExport.setVipNum(order.getVipNum()); | |||||
| grantExport.setCusName(order.getCusName()); | |||||
| grantExport.setCusPhone(order.getCusPhone()); | |||||
| grantExport.setCusAddress(order.getCusAddress()); | |||||
| grantExport.setLegionId(order.getLegionId()); | |||||
| grantExport.setLegionName(order.getLegionName()); | |||||
| grantExport.setUnionId(order.getUnionId()); | |||||
| grantExport.setUnionName(order.getUnionName()); | |||||
| grantExport.setGrantDetail(JSONObject.toJSONString(orderSettlementList)); | |||||
| BigDecimal grantPrice = BigDecimal.ZERO; | |||||
| BigDecimal mallSharePrice = BigDecimal.ZERO; | |||||
| BigDecimal merchantSharePrice = BigDecimal.ZERO; | |||||
| BigDecimal taxAmount = BigDecimal.ZERO; | |||||
| for (WxVtwoActivityGrantSettlement grantSettlement:orderSettlementList){ | |||||
| grantPrice = grantPrice.add(grantSettlement.getOrderGrantPrice()); | |||||
| mallSharePrice = mallSharePrice.add(grantSettlement.getOrderMallSharePrice()); | |||||
| merchantSharePrice = merchantSharePrice.add(grantSettlement.getOrderMerchantSharePrice()); | |||||
| if(grantSettlement.getTaxAmount() != null ){ | |||||
| taxAmount = taxAmount.add(grantSettlement.getTaxAmount()); | |||||
| } | |||||
| } | |||||
| grantExport.setGrantPrice(grantPrice); | |||||
| grantExport.setMallSharePrice(mallSharePrice); | |||||
| grantExport.setMerchantSharePrice(merchantSharePrice); | |||||
| grantExport.setMallShareRate(mallSharePrice.divide(grantPrice,4, RoundingMode.HALF_UP) | |||||
| .multiply(new BigDecimal(100))); | |||||
| grantExport.setMerchantShareRate(merchantSharePrice.divide(grantPrice,4, RoundingMode.HALF_UP) | |||||
| .multiply(new BigDecimal(100))); | |||||
| grantExport.setTaxAmount(taxAmount); | |||||
| return grantExport; | |||||
| } | |||||
| } | } | ||||
| @@ -5,6 +5,8 @@ import com.iformall.common.IdWorker; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.enums.EnumOfflineActivityAwardsModeType; | import com.iformall.enums.EnumOfflineActivityAwardsModeType; | ||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.mapper.WxVtwoActivityGrantMapper; | |||||
| import com.iformall.service.WxVtwoActivityGrantExportService; | |||||
| import com.iformall.service.WxVtwoActivityGrantSettlementService; | import com.iformall.service.WxVtwoActivityGrantSettlementService; | ||||
| import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper; | import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -31,6 +33,9 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl<WxVtwo | |||||
| @Autowired | @Autowired | ||||
| private WxVtwoActivityGrantSettlementMapper wxVtwoActivityGrantSettlementMapper; | private WxVtwoActivityGrantSettlementMapper wxVtwoActivityGrantSettlementMapper; | ||||
| @Autowired | |||||
| private WxVtwoActivityGrantExportService wxVtwoActivityGrantExportService; | |||||
| @Override | @Override | ||||
| public void saveGrantSettlement(WxVtwoActivityGrant activityGrant) { | public void saveGrantSettlement(WxVtwoActivityGrant activityGrant) { | ||||
| List<WxVtwoActivityOrder> amountOrderList = activityGrant.getOrderList().stream().filter(o -> EnumYesOrNo.YES.getCode().equals(o.getIsAmount())) | List<WxVtwoActivityOrder> amountOrderList = activityGrant.getOrderList().stream().filter(o -> EnumYesOrNo.YES.getCode().equals(o.getIsAmount())) | ||||
| @@ -70,6 +75,8 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl<WxVtwo | |||||
| } | } | ||||
| wxVtwoActivityGrantSettlementMapper.insertList(settlementList); | wxVtwoActivityGrantSettlementMapper.insertList(settlementList); | ||||
| wxVtwoActivityGrantExportService.saveGrantExport(activityGrant,settlementList); | |||||
| } | } | ||||
| private void handleOrderRatio(List<WxVtwoActivityOrder> orderList){ | private void handleOrderRatio(List<WxVtwoActivityOrder> orderList){ | ||||
| @@ -21,11 +21,6 @@ | |||||
| <result property="lotteryCount" column="lottery_count" jdbcType="INTEGER"/> | <result property="lotteryCount" column="lottery_count" jdbcType="INTEGER"/> | ||||
| <result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="VARCHAR"/> | <result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="VARCHAR"/> | ||||
| <result property="orderCreateTime" column="order_create_time" jdbcType="TIMESTAMP"/> | <result property="orderCreateTime" column="order_create_time" jdbcType="TIMESTAMP"/> | ||||
| <result property="orderAuditStatus" column="order_audit_status" jdbcType="INTEGER"/> | |||||
| <result property="orderAuditBy" column="order_audit_by" jdbcType="BIGINT"/> | |||||
| <result property="orderAuditName" column="order_audit_name" jdbcType="VARCHAR"/> | |||||
| <result property="orderAuditRemark" column="order_audit_remark" jdbcType="VARCHAR"/> | |||||
| <result property="orderAuditTime" column="order_audit_time" jdbcType="TIMESTAMP"/> | |||||
| <result property="vipNum" column="vip_num" jdbcType="VARCHAR"/> | <result property="vipNum" column="vip_num" jdbcType="VARCHAR"/> | ||||
| <result property="cusName" column="cus_name" jdbcType="VARCHAR"/> | <result property="cusName" column="cus_name" jdbcType="VARCHAR"/> | ||||
| <result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/> | <result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/> | ||||
| @@ -59,8 +54,7 @@ | |||||
| order_amount,merchant_id,merchant_name, | order_amount,merchant_id,merchant_name, | ||||
| merchant_shop_num,business_id,business_name, | merchant_shop_num,business_id,business_name, | ||||
| lottery_num,lottery_count,anniversary_lottery_num, | lottery_num,lottery_count,anniversary_lottery_num, | ||||
| order_create_time,order_audit_status,order_audit_by, | |||||
| order_audit_name,order_audit_remark,order_audit_time, | |||||
| order_create_time, | |||||
| vip_num,cus_name,cus_phone, | vip_num,cus_name,cus_phone, | ||||
| cus_card,cus_address,legion_id, | cus_card,cus_address,legion_id, | ||||
| legion_name,union_id,union_name, | legion_name,union_id,union_name, | ||||
| @@ -110,4 +104,39 @@ | |||||
| select <include refid="allColumns" /> from wx_vtwo_activity_grant_export | select <include refid="allColumns" /> from wx_vtwo_activity_grant_export | ||||
| where id = #{id} and tenant_id=#{tenantId} | where id = #{id} and tenant_id=#{tenantId} | ||||
| </select> | </select> | ||||
| <insert id="insertList" parameterType="java.util.List"> | |||||
| insert into wx_vtwo_activity_grant_export | |||||
| (id, | |||||
| activity_id,order_id,order_no, | |||||
| order_amount,merchant_id,merchant_name, | |||||
| merchant_shop_num,business_id,business_name, | |||||
| lottery_num,lottery_count,anniversary_lottery_num, | |||||
| order_create_time, | |||||
| vip_num,cus_name,cus_phone, | |||||
| cus_card,cus_address,legion_id, | |||||
| legion_name,union_id,union_name, | |||||
| grant_id,grant_user_name,grant_user_card, | |||||
| grant_by,grant_by_name,grant_time,grant_remark, | |||||
| sign_img,grant_detail,grant_price, | |||||
| mall_share_price,merchant_share_price,mall_share_rate, | |||||
| merchant_share_rate,tax_amount) | |||||
| values | |||||
| <foreach collection="grantExportList" item="item" index="index" separator=","> | |||||
| (#{item.id,jdbcType=BIGINT}, | |||||
| #{item.activityId,jdbcType=BIGINT},#{item.orderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR}, | |||||
| #{item.orderAmount,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT},#{item.merchantName,jdbcType=VARCHAR}, | |||||
| #{item.merchantShopNum,jdbcType=VARCHAR},#{item.businessId,jdbcType=INTEGER},#{item.businessName,jdbcType=VARCHAR}, | |||||
| #{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER},#{item.anniversaryLotteryNum,jdbcType=VARCHAR}, | |||||
| #{item.orderCreateTime,jdbcType=TIMESTAMP}, | |||||
| #{item.vipNum,jdbcType=VARCHAR},#{item.cusName,jdbcType=VARCHAR},#{item.cusPhone,jdbcType=VARCHAR}, | |||||
| #{item.cusCard,jdbcType=VARCHAR},#{item.cusAddress,jdbcType=VARCHAR},#{itemLegionId,jdbcType=BIGINT}, | |||||
| #{item.legionName,jdbcType=VARCHAR},#{item.unionId,jdbcType=BIGINT},#{item.unionName,jdbcType=VARCHAR}, | |||||
| #{item.grantId,jdbcType=BIGINT},#{item.grantUserName,jdbcType=VARCHAR},#{item.grantUserCard,jdbcType=VARCHAR}, | |||||
| #{item.grantBy,jdbcType=BIGINT},#{item.grantByName,jdbcType=VARCHAR},#{item.grantTime,jdbcType=TIMESTAMP},#{item.grantRemark,jdbcType=VARCHAR}, | |||||
| #{item.signImg,jdbcType=VARCHAR},#{item.grantDetail,jdbcType=VARCHAR},#{item.grantPrice,jdbcType=DECIMAL}, | |||||
| #{item.mallSharePrice,jdbcType=DECIMAL},#{item.merchantSharePrice,jdbcType=DECIMAL},#{item.mallShareRate,jdbcType=DECIMAL}, | |||||
| #{item.merchantShareRate,jdbcType=DECIMAL},#{item.taxAmount,jdbcType=DECIMAL}) | |||||
| </foreach> | |||||
| </insert> | |||||
| </mapper> | </mapper> | ||||