| @@ -0,0 +1,53 @@ | |||
| package com.iformall.domain.po; | |||
| import com.baomidou.mybatisplus.annotation.IdType; | |||
| import com.baomidou.mybatisplus.annotation.TableField; | |||
| import com.baomidou.mybatisplus.annotation.TableId; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import java.io.Serializable; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| import lombok.ToString; | |||
| /** | |||
| * 军团活动配置线下活动 | |||
| * @TableName wx_legion_activity_offline_config | |||
| */ | |||
| @TableName(value ="wx_legion_activity_offline_config") | |||
| @Data | |||
| @ToString(callSuper = true) | |||
| @EqualsAndHashCode(callSuper = true) | |||
| public class WxLegionActivityOfflineConfig extends TenantEntity { | |||
| /** | |||
| * 主键ID | |||
| */ | |||
| @TableId(value = "id") | |||
| private Long id; | |||
| /** | |||
| * 租户ID | |||
| */ | |||
| @TableField(value = "tenant_id") | |||
| private String tenantId; | |||
| /** | |||
| * 父租户ID | |||
| */ | |||
| @TableField(value = "parent_tenant_id") | |||
| private String parentTenantId; | |||
| /** | |||
| * 活动id | |||
| */ | |||
| @TableField(value = "legion_activity_id") | |||
| private Long legionActivityId; | |||
| /** | |||
| * 军团id | |||
| */ | |||
| @TableField(value = "offline_activity_id") | |||
| private Long offlineActivityId; | |||
| } | |||
| @@ -0,0 +1,29 @@ | |||
| package com.iformall.mapper; | |||
| import com.iformall.domain.po.WxLegionActivityMerchantConfig; | |||
| import com.iformall.domain.po.WxLegionActivityOfflineConfig; | |||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||
| import org.apache.ibatis.annotations.Param; | |||
| import java.util.List; | |||
| /** | |||
| * @author xiaohu | |||
| * @description 针对表【wx_legion_activity_offline_config(军团活动配置线下活动)】的数据库操作Mapper | |||
| * @createDate 2024-09-30 12:22:26 | |||
| * @Entity com.iformall.domain.po.WxLegionActivityOfflineConfig | |||
| */ | |||
| public interface WxLegionActivityOfflineConfigMapper extends BaseMapper<WxLegionActivityOfflineConfig> { | |||
| void deleteByLegionActivity(@Param("legionActivityId")Long legionActivityId, @Param("tenantId")String tenantId); | |||
| void insertList(@Param("configList")List<WxLegionActivityOfflineConfig> legionActivityOfflineConfigList); | |||
| List<WxLegionActivityOfflineConfig> findList(WxLegionActivityOfflineConfig offlineConfig); | |||
| List<Long> getOfflineActivityIds(@Param("legionActivityId")Long legionActivityId, @Param("tenantId")String tenantId); | |||
| } | |||
| @@ -0,0 +1,23 @@ | |||
| package com.iformall.service; | |||
| import com.iformall.domain.po.WxLegionActivity; | |||
| import com.iformall.domain.po.WxLegionActivityOfflineConfig; | |||
| import com.baomidou.mybatisplus.extension.service.IService; | |||
| import com.iformall.domain.po.WxLegionActivityOrder; | |||
| import com.iformall.domain.po.WxOfflineActivity; | |||
| import java.util.List; | |||
| /** | |||
| * @author xiaohu | |||
| * @description 针对表【wx_legion_activity_offline_config(军团活动配置线下活动)】的数据库操作Service | |||
| * @createDate 2024-09-30 12:22:26 | |||
| */ | |||
| public interface WxLegionActivityOfflineConfigService { | |||
| void handleOfflineConfig(WxLegionActivity wxLegionActivity); | |||
| List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity); | |||
| void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder); | |||
| } | |||
| @@ -0,0 +1,109 @@ | |||
| package com.iformall.service.impl; | |||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.mapper.WxLegionActivityOrderMapper; | |||
| import com.iformall.mapper.WxOfflineActivityMapper; | |||
| import com.iformall.mapper.WxOfflineActivityRecordMapper; | |||
| import com.iformall.service.WxLegionActivityOfflineConfigService; | |||
| import com.iformall.mapper.WxLegionActivityOfflineConfigMapper; | |||
| import com.iformall.service.WxMerchantService; | |||
| import com.iformall.service.WxOfflineActivityRecordService; | |||
| import com.iformall.service.WxOfflineActivityService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.util.ArrayList; | |||
| import java.util.Collections; | |||
| import java.util.List; | |||
| /** | |||
| * @author xiaohu | |||
| * @description 针对表【wx_legion_activity_offline_config(军团活动配置线下活动)】的数据库操作Service实现 | |||
| * @createDate 2024-09-30 12:22:26 | |||
| */ | |||
| @Service | |||
| public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivityOfflineConfigService{ | |||
| @Autowired | |||
| private WxLegionActivityOfflineConfigMapper wxLegionActivityOfflineConfigMapper; | |||
| @Autowired | |||
| private WxOfflineActivityMapper wxOfflineActivityMapper; | |||
| @Autowired | |||
| private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; | |||
| @Autowired | |||
| private WxMerchantService wxMerchantService; | |||
| @Override | |||
| public void handleOfflineConfig(WxLegionActivity wxLegionActivity) { | |||
| wxLegionActivityOfflineConfigMapper.deleteByLegionActivity(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); | |||
| if(wxLegionActivity.getOfflineActivityList() == null || wxLegionActivity.getOfflineActivityList().isEmpty()){ | |||
| return; | |||
| } | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| List<WxLegionActivityOfflineConfig> legionActivityOfflineConfigList = new ArrayList<>(); | |||
| for (WxOfflineActivity wxOfflineActivity : wxLegionActivity.getOfflineActivityList()) { | |||
| WxLegionActivityOfflineConfig wxLegionActivityOfflineConfig = new WxLegionActivityOfflineConfig(); | |||
| wxLegionActivityOfflineConfig.setId(idWorker.nextId()); | |||
| wxLegionActivityOfflineConfig.updateTenantInfo(wxLegionActivity); | |||
| wxLegionActivityOfflineConfig.setLegionActivityId(wxLegionActivity.getId()); | |||
| wxLegionActivityOfflineConfig.setOfflineActivityId(wxOfflineActivity.getId()); | |||
| legionActivityOfflineConfigList.add(wxLegionActivityOfflineConfig); | |||
| } | |||
| wxLegionActivityOfflineConfigMapper.insertList(legionActivityOfflineConfigList); | |||
| } | |||
| @Override | |||
| public List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity) { | |||
| List<Long> OfflineActivityIds = wxLegionActivityOfflineConfigMapper.getOfflineActivityIds(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); | |||
| if(OfflineActivityIds == null || OfflineActivityIds.isEmpty()){ | |||
| return Collections.emptyList(); | |||
| } | |||
| WxOfflineActivity wxOfflineActivity = new WxOfflineActivity(); | |||
| wxOfflineActivity.updateTenantInfo(wxLegionActivity); | |||
| wxOfflineActivity.setIds(OfflineActivityIds); | |||
| return wxOfflineActivityMapper.findList(wxOfflineActivity); | |||
| } | |||
| @Override | |||
| public void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { | |||
| //所有都同步(绑定线下活动意义不大) | |||
| IdWorker idWorker = IdWorker.get(); | |||
| WxOfflineActivityRecord activityRecord = new WxOfflineActivityRecord(); | |||
| activityRecord.setId(idWorker.nextId()); | |||
| activityRecord.updateTenantInfo(legionActivityOrder); | |||
| activityRecord.setFromOrderId(legionActivityOrder.getId()); | |||
| activityRecord.setOrderNo(legionActivityOrder.getOrderNo()); | |||
| activityRecord.setOrderMoney(legionActivityOrder.getOrderMoney()); | |||
| activityRecord.setCusName(legionActivityOrder.getCusName()); | |||
| activityRecord.setCusPhone(legionActivityOrder.getCusAddress()); | |||
| activityRecord.setCreateBy(legionActivityOrder.getCreateBy()); | |||
| activityRecord.setMerchantId(legionActivityOrder.getMerchantId()); | |||
| if(activityRecord.getMerchantId() != null){ | |||
| WxMerchant merchant = wxMerchantService.selectById(activityRecord.getMerchantId()); | |||
| activityRecord.setBusinessId(merchant.getBusinessId()); | |||
| } | |||
| activityRecord.setCreateDate(legionActivityOrder.getCreateDate()); | |||
| activityRecord.setUpdateDate(legionActivityOrder.getUpdateDate()); | |||
| // activityRecord.setAuditRemark(legionActivityOrder.getAuditRemark()); | |||
| activityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | |||
| activityRecord.setAuditBy(legionActivityOrder.getAuditBy()); | |||
| activityRecord.setAuditTime(legionActivityOrder.getAuditTime()); | |||
| wxOfflineActivityRecordMapper.insert(activityRecord); | |||
| } | |||
| } | |||
| @@ -0,0 +1,80 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE mapper | |||
| PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||
| <mapper namespace="com.iformall.mapper.WxLegionActivityOfflineConfigMapper"> | |||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxLegionActivityOfflineConfig"> | |||
| <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="legionActivityId" column="legion_activity_id" jdbcType="BIGINT"/> | |||
| <result property="offlineActivityId" column="offline_activity_id" jdbcType="BIGINT"/> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| id,tenant_id,parent_tenant_id, | |||
| legion_activity_id,offline_activity_id | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| where 1 = 1 | |||
| <if test=" null != id "> | |||
| and `id` = #{id} | |||
| </if> | |||
| <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 != legionActivityId "> | |||
| and `legion_activity_id` = #{legionActivityId} | |||
| </if> | |||
| <if test=" null != offlineActivityId "> | |||
| and `offline_activity_id` = #{offlineActivityId} | |||
| </if> | |||
| <if test=" null != ids "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| #{idItem} | |||
| </foreach> | |||
| </if> | |||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||
| </sql> | |||
| <select id="findList" parameterType="com.iformall.domain.po.WxLegionActivityOfflineConfig" resultMap="BaseResultMap"> | |||
| select <include refid="allColumns" /> from wx_legion_activity_offline_config | |||
| <include refid="dynamicWhereConditions" /> | |||
| </select> | |||
| <select id="getOfflineActivityIds" parameterType="java.util.HashMap" resultType="Long"> | |||
| select offline_activity_id from wx_legion_activity_offline_config | |||
| where `legion_activity_id` = #{legionActivityId} | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| </select> | |||
| <delete id="deleteByLegionActivity" parameterType="java.util.HashMap"> | |||
| delete from wx_legion_activity_offline_config | |||
| where `legion_activity_id` = #{legionActivityId} | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| </delete> | |||
| <insert id="insertList" parameterType="java.util.List"> | |||
| insert into wx_legion_activity_offline_config | |||
| (id, | |||
| legion_activity_id,offline_activity_id) | |||
| values | |||
| <foreach collection="configList" item="item" index="index" separator=","> | |||
| (#{item.id,jdbcType=BIGINT}, | |||
| #{item.legionActivityId,jdbcType=BIGINT},#{item.offlineActivityId,jdbcType=BIGINT}) | |||
| </foreach> | |||
| </insert> | |||
| </mapper> | |||