Bladeren bron

bug修改和批次管理新增商品链接

zmj 6 uur geleden
bovenliggende
commit
5f7c06303d

+ 2 - 0
ruoyi-modules/ruoyi-base/src/main/java/com/ruoyi/base/controller/BatchController.java

@@ -1,8 +1,10 @@
 package com.ruoyi.base.controller;
 
+
 import java.util.List;
 import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;

+ 4 - 0
ruoyi-modules/ruoyi-base/src/main/java/com/ruoyi/base/domain/Batch.java

@@ -48,6 +48,10 @@ public class Batch extends BaseEntity
     @Excel(name = "商品简介")
     private String productDesc;
 
+    /** 微信小店商品链接 */
+    @Excel(name = "微信小店商品链接")
+    private String shopUrl;
+
     /** 农场名称 */
     @Excel(name = "农场名称")
     private String farmName;

+ 2 - 7
ruoyi-modules/ruoyi-base/src/main/java/com/ruoyi/base/mapper/FieldDeviceMapper.java

@@ -12,13 +12,7 @@ import java.util.List;
  */
 public interface FieldDeviceMapper
 {
-    /**
-     * 查询地块设备绑定
-     *
-     * @param id 地块设备绑定主键
-     * @return 地块设备绑定
-     */
-    public FieldDevice selectFieldDeviceById(Long id);
+
 
     /**
      * 查询地块设备绑定列表
@@ -61,4 +55,5 @@ public interface FieldDeviceMapper
     public int deleteFieldDeviceByIds(Long[] ids);
 
 
+    FieldDevice selectFieldDeviceByDeviceId(Long deviceId);
 }

+ 1 - 0
ruoyi-modules/ruoyi-base/src/main/java/com/ruoyi/base/mapper/FieldMapper.java

@@ -1,6 +1,7 @@
 package com.ruoyi.base.mapper;
 
 import com.ruoyi.base.domain.Field;
+import com.ruoyi.base.domain.FieldDevice;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 9 - 0
ruoyi-modules/ruoyi-base/src/main/java/com/ruoyi/base/service/IFieldService.java

@@ -3,6 +3,7 @@ package com.ruoyi.base.service;
 import com.github.pagehelper.PageInfo;
 import com.ruoyi.base.domain.Device;
 import com.ruoyi.base.domain.Field;
+import com.ruoyi.base.domain.FieldDevice;
 import com.ruoyi.base.domain.FieldPersonnel;
 import com.ruoyi.base.domain.vo.FieldVO;
 
@@ -186,4 +187,12 @@ public interface IFieldService
      * @return 地块VO对象
      */
     public FieldVO convertToVO(Field field);
+
+    /**
+     * 查询设备当前绑定的地块信息
+     *
+     * @param deviceId 设备ID
+     * @return 地块设备绑定信息
+     */
+    public FieldDevice selectFieldDeviceByDeviceId(Long deviceId);
 }

+ 30 - 2
ruoyi-modules/ruoyi-base/src/main/java/com/ruoyi/base/service/impl/FieldServiceImpl.java

@@ -21,6 +21,7 @@ import com.ruoyi.common.security.utils.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -133,10 +134,26 @@ public class FieldServiceImpl implements IFieldService
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int bindFieldDevice(Long[] ids) {
+        Long fieldId = ids[0];
+        Long deviceId = ids[1];
+
+        FieldDevice existingBinding = fieldDeviceMapper.selectFieldDeviceByDeviceId(deviceId);
+
+        if (existingBinding != null && !"1".equals(existingBinding.getStatus())) {
+            FieldDevice unbindDevice = new FieldDevice();
+            unbindDevice.setFieldId(existingBinding.getFieldId());
+            unbindDevice.setDeviceId(deviceId);
+            unbindDevice.setStatus("1");
+            unbindDevice.setUpdateTime(new Date());
+            unbindDevice.setUpdateBy(SecurityUtils.getUsername());
+            fieldDeviceMapper.updateFieldDevice(unbindDevice);
+        }
+
         FieldDevice fieldDevice = new FieldDevice();
-        fieldDevice.setFieldId(ids[0]);
-        fieldDevice.setDeviceId(ids[1]);
+        fieldDevice.setFieldId(fieldId);
+        fieldDevice.setDeviceId(deviceId);
         fieldDevice.setBindingTime(new Date());
         fieldDevice.setStatus("0");
         fieldDevice.setCreateTime(new Date());
@@ -275,6 +292,17 @@ public class FieldServiceImpl implements IFieldService
         return fieldVO;
     }
 
+    /**
+     * 查询设备当前绑定的地块信息
+     *
+     * @param deviceId 设备ID
+     * @return 地块设备绑定信息
+     */
+    @Override
+    public FieldDevice selectFieldDeviceByDeviceId(Long deviceId) {
+        return fieldDeviceMapper.selectFieldDeviceByDeviceId(deviceId);
+    }
+
     /**
      * 转换地块实体为VO对象
      *

+ 6 - 2
ruoyi-modules/ruoyi-base/src/main/resources/mapper/base/BatchMapper.xml

@@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="productSpec"    column="product_spec"    />
         <result property="productImage"    column="product_image"    />
         <result property="productDesc"    column="product_desc"    />
+        <result property="shopUrl"    column="shop_url"    />
         <result property="farmName"    column="farm_name"    />
         <result property="farmRegion"    column="farm_region"    />
         <result property="farmImage"    column="farm_image"    />
@@ -29,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectBatchVo">
-        select id, batch_no, product_name, product_spec, product_image, product_desc, farm_name, farm_region, farm_image, farm_intro, produce_date, package_date,start_planting_time, status, created_at, updated_at from batch
+        select id, batch_no, product_name, product_spec, product_image, product_desc, shop_url, farm_name, farm_region, farm_image, farm_intro, produce_date, package_date,start_planting_time, status, created_at, updated_at from batch
     </sql>
 
     <select id="selectBatchList" parameterType="Batch" resultMap="BatchResult">
@@ -58,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectBatchById" parameterType="Long" resultMap="BatchResult">
-        select id, batch_no, product_name, product_spec, product_image, product_desc, farm_id, field_id,
+        select id, batch_no, product_name, product_spec, product_image, product_desc, shop_url, farm_id, field_id,
                farm_name, farm_region, farm_image, farm_intro, produce_date, package_date,start_planting_time, status, created_at, updated_at from batch
 
         where id = #{id}
@@ -83,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productSpec != null">product_spec,</if>
             <if test="productImage != null">product_image,</if>
             <if test="productDesc != null">product_desc,</if>
+            <if test="shopUrl != null">shop_url,</if>
             <if test="farmId != null and farmId != ''">farm_id,</if>
             <if test="fieldId != null and fieldId != ''">field_id,</if>
             <if test="farmName != null and farmName != ''">farm_name,</if>
@@ -102,6 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productSpec != null">#{productSpec},</if>
             <if test="productImage != null">#{productImage},</if>
             <if test="productDesc != null">#{productDesc},</if>
+            <if test="shopUrl != null">#{shopUrl},</if>
             <if test="farmId != null and farmId != ''">#{farmId},</if>
             <if test="fieldId != null and fieldId != ''">#{fieldId},</if>
             <if test="farmName != null and farmName != ''">#{farmName},</if>
@@ -125,6 +128,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productSpec != null">product_spec = #{productSpec},</if>
             <if test="productImage != null">product_image = #{productImage},</if>
             <if test="productDesc != null">product_desc = #{productDesc},</if>
+            <if test="shopUrl != null">shop_url = #{shopUrl},</if>
             <if test="farmId != null and farmId != ''">farm_id = #{farmId},</if>
             <if test="fieldId != null and fieldId != ''">field_id = #{fieldId},</if>
             <if test="farmName != null and farmName != ''">farm_name = #{farmName},</if>

+ 2 - 2
ruoyi-modules/ruoyi-base/src/main/resources/mapper/base/DeviceMapper.xml

@@ -74,7 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         de.manufacturer, de.install_date, de.status, de.last_active_time, de.create_time, de.update_time, de.remark,d.dept_name, d.leader,f.field_name
         from device de
         left join sys_dept d on de.farm_id = d.dept_id
-        left join  field_device fd on de.id = fd.device_id
+        LEFT JOIN field_device fd ON de.id = fd.device_id AND fd.status = '0'
         left join field f on fd.field_id = f.id
         <where>
             (fd.status = 0 or fd.status is null)
@@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                de.manufacturer, de.install_date, de.status, de.last_active_time,d.dept_name,f.field_name,de.remark,longitude,latitude
         from device de
                  left join sys_dept d on de.farm_id = d.dept_id
-                 left join field_device fd on de.id = fd.device_id
+                 left join field_device fd on de.id = fd.device_id and fd.status = '0'
                  left join field f on fd.field_id = f.id
 
         where de.id = #{id} and (fd.status = 0 or fd.status is null);

+ 6 - 3
ruoyi-modules/ruoyi-base/src/main/resources/mapper/base/FieldDeviceMapper.xml

@@ -32,11 +32,14 @@
         </where>
     </select>
 
-    <select id="selectFieldDeviceById" parameterType="Long" resultMap="FieldDeviceResult">
+    <select id="selectFieldDeviceByDeviceId" parameterType="Long" resultMap="FieldDeviceResult">
         <include refid="selectFieldDeviceVo"/>
-        where id = #{id}
+        where device_id = #{deviceId} and status = '0' and is_deleted = 0
+        order by create_time desc
+        limit 1
     </select>
 
+
     <insert id="insertFieldDevice" parameterType="FieldDevice" useGeneratedKeys="true" keyProperty="id">
         insert into field_device
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -93,4 +96,4 @@
             #{id}
         </foreach>
     </delete>
-</mapper>
+</mapper>