| @@ -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> | |||||