Browse Source

增加阶梯直降

zangguocen 4 years ago
parent
commit
9a96b1ac1c

+ 64 - 1
yijia-market/src/main/java/com/yijia/markert/controller/MarkertPlanController.java

@@ -1,5 +1,6 @@
 package com.yijia.markert.controller;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.yijia.common.core.domain.entity.SysDept;
@@ -7,11 +8,13 @@ import com.yijia.common.core.domain.model.LoginUser;
 import com.yijia.common.utils.DateUtils;
 import com.yijia.common.utils.SecurityUtils;
 
+import com.yijia.common.utils.StringUtils;
 import com.yijia.common.utils.poi.ExcelUtil;
 import com.yijia.markert.domain.MarkertPlan;
 import com.yijia.markert.service.IMarkertPlanService;
 import com.yijia.system.service.ISysDeptService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -56,7 +59,12 @@ public class MarkertPlanController extends BaseController
         }
         markertPlan.setStatus("0");
         startPage();
-        List<MarkertPlan> planList = markertPlanService.selectMarkertPlanList(markertPlan);
+        List<MarkertPlan> planList =new ArrayList<>();
+        if(markertPlan.getDiscountPlanType()!=null && markertPlan.getDiscountPlanType().equals("4")){
+            planList  = markertPlanService.searchMarkertPlanList(markertPlan);
+        }else{
+            planList  = markertPlanService.selectMarkertPlanList(markertPlan);
+        }
         return getDataTable(planList);
     }
 
@@ -137,4 +145,59 @@ public class MarkertPlanController extends BaseController
         i=markertPlanService.updateMarkertPlan(markertPlan);
         return toAjax(i);
     }
+
+    /**
+     * 新增阶梯营销方案
+     */
+    @Log(title = "营销方案", businessType = BusinessType.INSERT)
+    @PostMapping("/addMarketPlanInfo")
+    @Transactional
+    public AjaxResult addMarketPlanInfo(@RequestBody MarkertPlan markertPlan)
+    {
+        int i =0;
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+        //查询所有的数据
+        MarkertPlan plans =new MarkertPlan();
+        plans.setDiscountPlanType("4");
+        plans.setStationId(currentUser.getUser().getDeptId());
+        plans.setOilName(markertPlan.getOilName());
+        List<MarkertPlan> markertPlans  =markertPlanService.selectMarkertPlanList(plans);
+        if(markertPlans!=null && markertPlans.size()>0){
+            for(MarkertPlan plan:markertPlans){
+                i= markertPlanService.deleteMarkertPlanById(plan.getId());
+            }
+        }
+        if(markertPlan!=null && markertPlan.getList()!=null && markertPlan.getList().size()>0){
+            for(MarkertPlan plan:markertPlan.getList()){
+                plan.setStationId(currentUser.getUser().getDeptId());
+                plan.setCreateBy(currentUser.getUser().getUserId()+"");
+                plan.setCreateTime(DateUtils.getNowDate());
+                plan.setStatus("0");
+                plan.setGrade(markertPlan.getGrade());
+                plan.setDiscountTerm(markertPlan.getDiscountTerm());
+                plan.setVipDiscountyPlus(markertPlan.getVipDiscountyPlus());
+                plan.setCouponPlus(markertPlan.getCouponPlus());
+                plan.setOilName(markertPlan.getOilName());
+                plan.setDiscountPlanType(markertPlan.getDiscountPlanType());
+                i= markertPlanService.insertMarkertPlan(plan);
+            }
+        }
+        return toAjax(i);
+    }
+
+    /**
+     * 删除营销方案
+     */
+    @Log(title = "删除营销方案", businessType = BusinessType.DELETE)
+    @PostMapping("/deleteMarketPlan")
+    public AjaxResult deleteMarketPlan(@RequestBody MarkertPlan markertPlan)
+    {
+       int i=0;
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+       if(markertPlan!=null && markertPlan.getOilName()!=null) {
+         markertPlan.setStationId(currentUser.getUser().getDeptId());
+         i = markertPlanService.deleteMarkertPlan(markertPlan);
+       }
+       return toAjax(i);
+    }
 }

+ 25 - 0
yijia-market/src/main/java/com/yijia/markert/domain/MarkertPlan.java

@@ -6,6 +6,7 @@ import com.yijia.common.annotation.Excel;
 import com.yijia.common.core.domain.BaseEntity;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 营销方案对象 markert_plan
@@ -31,6 +32,7 @@ public class MarkertPlan extends BaseEntity
     /** 优惠条件金额(100元) */
     @Excel(name = "优惠条件金额", readConverterExp = "1=00元")
     private String discountAmt;
+    private String discountAmtEnd;
 
     /** 优惠金额 */
     @Excel(name = "优惠金额")
@@ -82,6 +84,29 @@ public class MarkertPlan extends BaseEntity
      */
     private String discountActivityAmt;
 
+    private List<MarkertPlan> list;
+
+    public List<MarkertPlan> getList() {
+        return list;
+    }
+
+    public void setList(List<MarkertPlan> list) {
+        this.list = list;
+    }
+
+    /**
+     *
+     * @return
+     */
+
+    public String getDiscountAmtEnd() {
+        return discountAmtEnd;
+    }
+
+    public void setDiscountAmtEnd(String discountAmtEnd) {
+        this.discountAmtEnd = discountAmtEnd;
+    }
+
     public String getDiscountSettingFlag() {
         return discountSettingFlag;
     }

+ 17 - 8
yijia-market/src/main/java/com/yijia/markert/mapper/MarkertPlanMapper.java

@@ -7,15 +7,15 @@ import java.util.List;
 
 /**
  * 营销方案Mapper接口
- * 
+ *
  * @author yijia
  * @date 2020-12-22
  */
-public interface MarkertPlanMapper 
+public interface MarkertPlanMapper
 {
     /**
      * 查询营销方案
-     * 
+     *
      * @param id 营销方案ID
      * @return 营销方案
      */
@@ -23,7 +23,7 @@ public interface MarkertPlanMapper
 
     /**
      * 查询营销方案列表
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 营销方案集合
      */
@@ -31,7 +31,7 @@ public interface MarkertPlanMapper
 
     /**
      * 新增营销方案
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 结果
      */
@@ -39,7 +39,7 @@ public interface MarkertPlanMapper
 
     /**
      * 修改营销方案
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 结果
      */
@@ -47,7 +47,7 @@ public interface MarkertPlanMapper
 
     /**
      * 删除营销方案
-     * 
+     *
      * @param id 营销方案ID
      * @return 结果
      */
@@ -55,9 +55,18 @@ public interface MarkertPlanMapper
 
     /**
      * 批量删除营销方案
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */
     public int deleteMarkertPlanByIds(Long[] ids);
+
+    /**
+     * 阶梯营销管理
+     * @param markertPlan
+     * @return
+     */
+    public List<MarkertPlan> searchMarkertPlanList(MarkertPlan markertPlan);
+
+    public int deleteMarkertPlan(MarkertPlan markertPlan);
 }

+ 17 - 8
yijia-market/src/main/java/com/yijia/markert/service/IMarkertPlanService.java

@@ -5,15 +5,15 @@ import com.yijia.markert.domain.MarkertPlan;
 
 /**
  * 营销方案Service接口
- * 
+ *
  * @author yijia
  * @date 2020-12-22
  */
-public interface IMarkertPlanService 
+public interface IMarkertPlanService
 {
     /**
      * 查询营销方案
-     * 
+     *
      * @param id 营销方案ID
      * @return 营销方案
      */
@@ -21,7 +21,7 @@ public interface IMarkertPlanService
 
     /**
      * 查询营销方案列表
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 营销方案集合
      */
@@ -29,7 +29,7 @@ public interface IMarkertPlanService
 
     /**
      * 新增营销方案
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 结果
      */
@@ -37,7 +37,7 @@ public interface IMarkertPlanService
 
     /**
      * 修改营销方案
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 结果
      */
@@ -45,7 +45,7 @@ public interface IMarkertPlanService
 
     /**
      * 批量删除营销方案
-     * 
+     *
      * @param ids 需要删除的营销方案ID
      * @return 结果
      */
@@ -53,9 +53,18 @@ public interface IMarkertPlanService
 
     /**
      * 删除营销方案信息
-     * 
+     *
      * @param id 营销方案ID
      * @return 结果
      */
     public int deleteMarkertPlanById(Long id);
+
+    /**
+     * 查询阶梯直降
+     * @param markertPlan
+     * @return
+     */
+    public List<MarkertPlan> searchMarkertPlanList(MarkertPlan markertPlan);
+
+    public int deleteMarkertPlan(MarkertPlan markertPlan);
 }

+ 36 - 8
yijia-market/src/main/java/com/yijia/markert/service/impl/MarkertPlanServiceImpl.java

@@ -9,19 +9,19 @@ import com.yijia.markert.service.IMarkertPlanService;
 
 /**
  * 营销方案Service业务层处理
- * 
+ *
  * @author yijia
  * @date 2020-12-22
  */
 @Service
-public class MarkertPlanServiceImpl implements IMarkertPlanService 
+public class MarkertPlanServiceImpl implements IMarkertPlanService
 {
     @Autowired
     private MarkertPlanMapper markertPlanMapper;
 
     /**
      * 查询营销方案
-     * 
+     *
      * @param id 营销方案ID
      * @return 营销方案
      */
@@ -33,7 +33,7 @@ public class MarkertPlanServiceImpl implements IMarkertPlanService
 
     /**
      * 查询营销方案列表
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 营销方案
      */
@@ -45,7 +45,7 @@ public class MarkertPlanServiceImpl implements IMarkertPlanService
 
     /**
      * 新增营销方案
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 结果
      */
@@ -57,7 +57,7 @@ public class MarkertPlanServiceImpl implements IMarkertPlanService
 
     /**
      * 修改营销方案
-     * 
+     *
      * @param markertPlan 营销方案
      * @return 结果
      */
@@ -69,7 +69,7 @@ public class MarkertPlanServiceImpl implements IMarkertPlanService
 
     /**
      * 批量删除营销方案
-     * 
+     *
      * @param ids 需要删除的营销方案ID
      * @return 结果
      */
@@ -81,7 +81,7 @@ public class MarkertPlanServiceImpl implements IMarkertPlanService
 
     /**
      * 删除营销方案信息
-     * 
+     *
      * @param id 营销方案ID
      * @return 结果
      */
@@ -90,4 +90,32 @@ public class MarkertPlanServiceImpl implements IMarkertPlanService
     {
         return markertPlanMapper.deleteMarkertPlanById(id);
     }
+
+    /**
+     * 查询阶梯营销活动
+     * @param markertPlan
+     * @return
+     */
+    @Override
+    public List<MarkertPlan> searchMarkertPlanList(MarkertPlan markertPlan) {
+        List<MarkertPlan> list = markertPlanMapper.searchMarkertPlanList(markertPlan);
+        if(list!=null &&  list.size()>0){
+            for(MarkertPlan plan:list){
+                MarkertPlan markertPlan1 =new MarkertPlan();
+                markertPlan1.setOilName(plan.getOilName());
+                markertPlan1.setStationId(plan.getStationId());
+                markertPlan1.setDiscountPlanType(plan.getDiscountPlanType());
+                List<MarkertPlan> planList = markertPlanMapper.selectMarkertPlanList(markertPlan1);
+                if(planList!=null && planList.size()>0){
+                    plan.setList(planList);
+                }
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public int deleteMarkertPlan(MarkertPlan markertPlan) {
+        return markertPlanMapper.deleteMarkertPlan(markertPlan);
+    }
 }

+ 57 - 5
yijia-market/src/main/resources/mapper/market/MarkertPlanMapper.xml

@@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="grade"    column="grade"    />
         <result property="discountTerm"    column="discount_term"    />
         <result property="discountAmt"    column="discount_amt"    />
+        <result property="discountAmtEnd"    column="discount_amt_end"    />
         <result property="gasoilDiscountAmt"    column="gasoil_discount_amt"    />
         <result property="vipDiscountyPlus"    column="vip_discounty_plus"    />
         <result property="couponPlus"    column="coupon_plus"    />
@@ -30,14 +31,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <sql id="selectMarkertPlanVo">
        select p.id, p.grade, p.discount_term, p.discount_amt, p.gasoil_discount_amt, p.vip_discounty_plus, p.coupon_plus, p.discount_plan_type,
          p.oil_name, p.station_id,d.dept_name as station_name, p.status,p.create_by,p.create_time,p.update_by,p.update_time,
-         p.discount_setting_flag,p.discount_type,p.discount_date,p.discount_activity_amt
+         p.discount_setting_flag,p.discount_type,p.discount_date,p.discount_activity_amt,p.discount_amt_end
           from markert_plan p join sys_dept d on p.station_id = d.dept_id
     </sql>
 
     <select id="selectMarkertPlanList" parameterType="MarkertPlan" resultMap="MarkertPlanResult">
         select  p.id,  p.grade, p.discount_term,  p.discount_amt,  p.gasoil_discount_amt, p.vip_discounty_plus, p.coupon_plus, p.discount_plan_type,
         p.oil_name, station_id, p.status,p.create_by,p.create_time,p.update_by,p.update_time,d.dept_name as station_name,
-        p.discount_setting_flag,p.discount_type,p.discount_date,p.discount_activity_amt
+        p.discount_setting_flag,p.discount_type,p.discount_date,p.discount_activity_amt,p.discount_amt_end
         from markert_plan p join sys_dept d on  d.dept_id =p.station_id
         <where>
             <if test="grade != null  and grade != ''"> and p.grade = #{grade}</if>
@@ -47,9 +48,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="vipDiscountyPlus != null  and vipDiscountyPlus != ''"> and p.vip_discounty_plus = #{vipDiscountyPlus}</if>
             <if test="couponPlus != null  and couponPlus != ''"> and p.coupon_plus = #{couponPlus}</if>
             <if test="discountPlanType != null  and discountPlanType != ''"> and p.discount_plan_type = #{discountPlanType}</if>
-            <if test="oilName != null  and oilName != ''"> and p.oil_name like concat('%', #{oilName}, '%')</if>
+            <if test="oilName != null  and oilName != ''">
+                and p.oil_name like concat('%', #{oilName}, '%')
+             </if>
             <if test="stationId != null "> and p.station_id = #{stationId}</if>
             <if test="status != null  and status != ''"> and p.status = #{status}</if>
+            <if test="stationId != null "> and station_id = #{stationId}</if>
             <if test="stationIdList != null ">
                 and station_id in
                 <foreach item="item" index="index" collection="stationIdList"
@@ -58,16 +62,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 </foreach>
             </if>
         </where>
+        order by p.oil_name,p.discount_amt_end+0
     </select>
 
     <select id="selectMarkertPlanById" parameterType="Long" resultMap="MarkertPlanResult">
           select  p.id,  p.grade, p.discount_term,  p.discount_amt,  p.gasoil_discount_amt, p.vip_discounty_plus, p.coupon_plus, p.discount_plan_type,
           p.oil_name, station_id, p.status,p.create_by,p.create_time,p.update_by,p.update_time,d.dept_name as station_name,
-          p.discount_setting_flag,p.discount_type,p.discount_date,p.discount_activity_amt
+          p.discount_setting_flag,p.discount_type,p.discount_date,p.discount_activity_amt,p.discount_amt_end
           from markert_plan p join sys_dept d on  d.dept_id =p.station_id
         where id = #{id}
     </select>
 
+    <select id="searchMarkertPlanList" parameterType="Long" resultMap="MarkertPlanResult">
+         SELECT DISTINCT grade,oil_name,station_id,discount_type,discount_date,coupon_plus,discount_plan_type,
+         vip_discounty_plus,discount_term,discount_setting_flag,d.dept_name as station_name
+        from markert_plan p join sys_dept d on  d.dept_id =p.station_id
+        <where>
+            <if test="grade != null  and grade != ''"> and p.grade = #{grade}</if>
+            <if test="discountPlanType != null  and discountPlanType != ''"> and p.discount_plan_type = #{discountPlanType}</if>
+            <if test="status != null  and status != ''"> and p.status = #{status}</if>
+            <if test="stationId != null "> and station_id = #{stationId}</if>
+            <if test="stationIdList != null ">
+                and station_id in
+                <foreach item="item" index="index" collection="stationIdList"
+                         open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        order by oil_name desc
+    </select>
+
     <insert id="insertMarkertPlan" parameterType="MarkertPlan" useGeneratedKeys="true" keyProperty="id">
         insert into markert_plan
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -89,6 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="discountType != null">discount_type,</if>
             <if test="discountDate != null">discount_date,</if>
             <if test="discountActivityAmt != null">discount_activity_amt,</if>
+            <if test="discountAmtEnd != null">discount_amt_end,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="grade != null">#{grade},</if>
@@ -109,6 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="discountType != null">#{discountType},</if>
             <if test="discountDate != null">#{discountDate},</if>
             <if test="discountActivityAmt != null">#{discountActivityAmt},</if>
+            <if test="discountAmtEnd != null">#{discountAmtEnd},</if>
          </trim>
     </insert>
 
@@ -133,6 +160,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="discountType != null">discount_type=#{discountType},</if>
             <if test="discountDate != null">discount_date =#{discountDate},</if>
             <if test="discountActivityAmt != null">discount_activity_amt = #{discountActivityAmt},</if>
+            <if test="discountAmtEnd != null">discount_amt_end = #{discountAmtEnd},</if>
         </trim>
         where id = #{id}
     </update>
@@ -147,5 +175,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
-
+    <delete id="deleteMarkertPlan" parameterType="MarkertPlan">
+        delete from markert_plan
+        <where>
+            <if test="grade != null  and grade != ''"> and grade = #{grade}</if>
+            <if test="discountTerm != null  and discountTerm != ''"> and discount_term = #{discountTerm}</if>
+            <if test="discountAmt != null  and discountAmt != ''"> and discount_amt = #{discountAmt}</if>
+            <if test="gasoilDiscountAmt != null  and gasoilDiscountAmt != ''"> and gasoil_discount_amt = #{gasoilDiscountAmt}</if>
+            <if test="vipDiscountyPlus != null  and vipDiscountyPlus != ''"> and vip_discounty_plus = #{vipDiscountyPlus}</if>
+            <if test="couponPlus != null  and couponPlus != ''"> and coupon_plus = #{couponPlus}</if>
+            <if test="discountPlanType != null  and discountPlanType != ''"> and discount_plan_type = #{discountPlanType}</if>
+            <if test="oilName != null  and oilName != ''">
+                and oil_name = #{oilName}
+            </if>
+            <if test="stationId != null "> and station_id = #{stationId}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="stationId != null "> and station_id = #{stationId}</if>
+            <if test="stationIdList != null ">
+                and station_id in
+                <foreach item="item" index="index" collection="stationIdList"
+                         open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </delete>
 </mapper>