zhangxin il y a 2 semaines
Parent
commit
4457310d0c

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/SysDictData.java

@@ -42,7 +42,7 @@ public class SysDictData{
     private String isDefault;
 
     /** 状态(0正常 1停用) */
-    private String status;
+    private Integer status;
 
     /** 搜索值 */
     @JsonIgnore

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/SysDictType.java

@@ -33,7 +33,7 @@ public class SysDictType{
     private String dictType;
 
     /** 状态(0正常 1停用) */
-    private String status;
+    private Integer status;
 
     /** 搜索值 */
     @JsonIgnore

+ 8 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/SysDictDataMapper.java

@@ -1,6 +1,8 @@
 package com.yami.shop.dao;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.SysDictData;
+import com.yami.shop.common.util.PageParam;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -93,4 +95,10 @@ public interface SysDictDataMapper
      * @return 结果
      */
     public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
+
+    IPage<SysDictData> selectDictTypePage(@Param("pageQuery") PageParam<SysDictData> pageQuery,@Param("dictData")SysDictData dictData);
+
+    boolean findExist(@Param("dict")SysDictData dict);
+
+    void deleteDictDataByDictType(@Param("dictType")String dictType);
 }

+ 6 - 0
yami-shop-service/src/main/java/com/yami/shop/service/ISysDictDataService.java

@@ -1,6 +1,8 @@
 package com.yami.shop.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.SysDictData;
+import com.yami.shop.common.util.PageParam;
 
 import java.util.List;
 
@@ -58,4 +60,8 @@ public interface ISysDictDataService
      * @return 结果
      */
     public int updateDictData(SysDictData dictData);
+
+    boolean checkDictDataUnique(SysDictData dict);
+
+    IPage<SysDictData> selectDictTypePage(SysDictData dictData, PageParam<SysDictData> pageQuery);
 }

+ 0 - 13
yami-shop-service/src/main/java/com/yami/shop/service/ISysDictTypeService.java

@@ -58,20 +58,7 @@ public interface ISysDictTypeService
      */
     public void deleteDictTypeByIds(Long[] dictIds);
 
-    /**
-     * 加载字典缓存数据
-     */
-    public void loadingDictCache();
 
-    /**
-     * 清空字典缓存数据
-     */
-    public void clearDictCache();
-
-    /**
-     * 重置字典缓存数据
-     */
-    public void resetDictCache();
 
     /**
      * 新增保存字典类型信息

+ 23 - 13
yami-shop-service/src/main/java/com/yami/shop/service/impl/SysDictDataServiceImpl.java

@@ -1,8 +1,14 @@
 package com.yami.shop.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.SysDictData;
+import com.yami.shop.bean.model.SysDictType;
+import com.yami.shop.common.util.PageParam;
 import com.yami.shop.dao.SysDictDataMapper;
 import com.yami.shop.service.ISysDictDataService;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -66,10 +72,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService
     {
         for (Long dictCode : dictCodes)
         {
-            SysDictData data = selectDictDataById(dictCode);
             dictDataMapper.deleteDictDataById(dictCode);
-            List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
-//            DictUtils.setDictCache(data.getDictType(), dictDatas);
         }
     }
 
@@ -83,11 +86,6 @@ public class SysDictDataServiceImpl implements ISysDictDataService
     public int insertDictData(SysDictData data)
     {
         int row = dictDataMapper.insertDictData(data);
-        if (row > 0)
-        {
-            List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
-//            DictUtils.setDictCache(data.getDictType(), dictDatas);
-        }
         return row;
     }
 
@@ -101,11 +99,23 @@ public class SysDictDataServiceImpl implements ISysDictDataService
     public int updateDictData(SysDictData data)
     {
         int row = dictDataMapper.updateDictData(data);
-        if (row > 0)
-        {
-            List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
-//            DictUtils.setDictCache(data.getDictType(), dictDatas);
-        }
         return row;
     }
+
+    /**
+     * 校验字典键值是否唯一
+     *
+     * @param dict 字典数据
+     * @return 结果
+     */
+    @Override
+    public boolean checkDictDataUnique(SysDictData dict) {
+        boolean exist = dictDataMapper.findExist(dict);
+        return !exist;
+    }
+
+    @Override
+    public IPage<SysDictData> selectDictTypePage(SysDictData dictData, PageParam<SysDictData> pageQuery) {
+        return dictDataMapper.selectDictTypePage(pageQuery,dictData);
+    }
 }

+ 18 - 60
yami-shop-service/src/main/java/com/yami/shop/service/impl/SysDictTypeServiceImpl.java

@@ -3,6 +3,7 @@ package com.yami.shop.service.impl;
 import com.aliyun.oss.ServiceException;
 import com.yami.shop.bean.model.SysDictData;
 import com.yami.shop.bean.model.SysDictType;
+import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.dao.SysDictDataMapper;
 import com.yami.shop.dao.SysDictTypeMapper;
 import com.yami.shop.service.ISysDictTypeService;
@@ -31,14 +32,14 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
     @Autowired
     private SysDictDataMapper dictDataMapper;
 
-    /**
-     * 项目启动时,初始化字典到缓存
-     */
-    @PostConstruct
-    public void init()
-    {
-        loadingDictCache();
-    }
+//    /**
+//     * 项目启动时,初始化字典到缓存
+//     */
+//    @PostConstruct
+//    public void init()
+//    {
+//        loadingDictCache();
+//    }
 
     /**
      * 根据条件分页查询字典类型
@@ -72,15 +73,9 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
     @Override
     public List<SysDictData> selectDictDataByType(String dictType)
     {
-//        List<SysDictData> dictDatas = DictUtils.getDictCache(dictType);
-//        if (ObjectUtils.isNotEmpty(dictDatas))
-//        {
-//            return dictDatas;
-//        }
         List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType);
         if (ObjectUtils.isNotEmpty(dictDatas))
         {
-//            DictUtils.setDictCache(dictType, dictDatas);
             return dictDatas;
         }
         return null;
@@ -121,48 +116,20 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
         for (Long dictId : dictIds)
         {
             SysDictType dictType = selectDictTypeById(dictId);
-            if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0)
-            {
-                throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
+            if (dictType!=null){
+                if (0==dictType.getStatus()){
+                    if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0)
+                    {
+                        throw new GlobalException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
+                    }
+                }
+                dictTypeMapper.deleteDictTypeById(dictId);
+                dictDataMapper.deleteDictDataByDictType(dictType.getDictType());
             }
-            dictTypeMapper.deleteDictTypeById(dictId);
-//            DictUtils.removeDictCache(dictType.getDictType());
-        }
-    }
 
-    /**
-     * 加载字典缓存数据
-     */
-    @Override
-    public void loadingDictCache()
-    {
-        SysDictData dictData = new SysDictData();
-        dictData.setStatus("0");
-        Map<String, List<SysDictData>> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType));
-        for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet())
-        {
-//            DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList()));
         }
     }
 
-    /**
-     * 清空字典缓存数据
-     */
-    @Override
-    public void clearDictCache()
-    {
-//        DictUtils.clearDictCache();
-    }
-
-    /**
-     * 重置字典缓存数据
-     */
-    @Override
-    public void resetDictCache()
-    {
-        clearDictCache();
-        loadingDictCache();
-    }
 
     /**
      * 新增保存字典类型信息
@@ -174,10 +141,6 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
     public int insertDictType(SysDictType dict)
     {
         int row = dictTypeMapper.insertDictType(dict);
-        if (row > 0)
-        {
-//            DictUtils.setDictCache(dict.getDictType(), null);
-        }
         return row;
     }
 
@@ -194,11 +157,6 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
         SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId());
         dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType());
         int row = dictTypeMapper.updateDictType(dict);
-        if (row > 0)
-        {
-            List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType());
-//            DictUtils.setDictCache(dict.getDictType(), dictDatas);
-        }
         return row;
     }
 

+ 5 - 1
yami-shop-service/src/main/resources/mapper/OrderMapper.xml

@@ -484,6 +484,7 @@
         SELECT a.*,b.receiver,b.mobile user_mobile,c.shop_name FROM tz_order a
         LEFT JOIN tz_user_addr_order b on a.addr_order_id=b.addr_order_id
         LEFT JOIN tz_shop_detail c on a.shop_id=c.shop_id
+        left join  tz_user d on a.user_id = d.user_id
         <where>
             <if test="orderParam.orderNumber != null and orderParam.orderNumber != ''">
                 and a.order_number = #{orderParam.orderNumber}
@@ -495,7 +496,10 @@
                 </foreach>
             </if>
             <if test="orderParam.dvyType != null and orderParam.dvyType != ''">
-                and a.dvy_type = #{orderParam.dvyType}
+                and d.dvy_type = #{orderParam.dvyType}
+            </if>
+            <if test="orderParam.personnelType != null">
+                and a.personnel_type = #{orderParam.personnelType}
             </if>
             <if test="orderParam.shopId != null">
                 and a.shop_id = #{orderParam.shopId}

+ 36 - 2
yami-shop-service/src/main/resources/mapper/SysDictDataMapper.xml

@@ -54,7 +54,38 @@
 	</select>
 
 	<select id="countDictDataByType" resultType="Integer">
-	    select count(1) from sys_dict_data where dict_type=#{dictType}
+	    select count(1) from sys_dict_data where dict_type=#{dictType} and status =0
+	</select>
+    <select id="selectDictTypePage" resultType="com.yami.shop.bean.model.SysDictData">
+		<include refid="selectDictDataVo"/>
+		<where>
+			<if test="dictData.dictType != null and dictData.dictType != ''">
+				AND dict_type = #{dictData.dictType}
+			</if>
+			<if test="dictData.dictLabel != null and dictData.dictLabel != ''">
+				AND dict_label like concat('%', #{dictData.dictLabel}, '%')
+			</if>
+			<if test="dictData.status != null and dictData.status != ''">
+				AND status = #{dictData.status}
+			</if>
+		</where>
+		order by dict_sort asc
+	</select>
+	<select id="findExist" resultType="java.lang.Boolean">
+		SELECT CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END
+		FROM sys_dict_data
+		<where>
+			<if test="dict.dictType != null and dict.dictType != ''">
+				AND dict_type = #{dict.dictType}
+			</if>
+			<if test="dict.dictValue != null and dict.dictValue != ''">
+				AND dict_value = #{dict.dictValue}
+			</if>
+			<if test="dict.dictCode != null">
+				AND dict_code != #{dict.dictCode}
+			</if>
+		</where>
+		LIMIT 1
 	</select>
 
 	<delete id="deleteDictDataById" parameterType="Long">
@@ -67,6 +98,9 @@
  			#{dictCode}
         </foreach>
  	</delete>
+	<delete id="deleteDictDataByDictType">
+		delete from sys_dict_data where dict_type = #{dictType}
+	</delete>
 
 	<update id="updateDictData" parameterType="com.yami.shop.bean.model.SysDictData">
  		update sys_dict_data
@@ -87,7 +121,7 @@
 	</update>
 
 	<update id="updateDictDataType" parameterType="String">
- 		update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType}
+ 		update sys_dict_data set dict_type = #{newDictType}  where dict_type = #{oldDictType}
 	</update>
 
  	<insert id="insertDictData" parameterType="com.yami.shop.bean.model.SysDictData">

+ 102 - 0
yami-shop-sys/src/main/java/com/yami/shop/sys/controller/SysDictDataController.java

@@ -0,0 +1,102 @@
+package com.yami.shop.sys.controller;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.model.SysDictData;
+import com.yami.shop.common.util.PageParam;
+import com.yami.shop.common.util.R;
+import com.yami.shop.service.ISysDictDataService;
+import com.yami.shop.service.ISysDictTypeService;
+import lombok.RequiredArgsConstructor;
+
+import lombok.extern.java.Log;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 数据字典信息
+ *
+ * @author Lion Li
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/dict/data")
+public class SysDictDataController {
+
+    private final ISysDictDataService dictDataService;
+    private final ISysDictTypeService dictTypeService;
+
+    /**
+     * 查询字典数据列表
+     */
+
+    @GetMapping("/list")
+    public R<IPage<SysDictData>> list(SysDictData dictData, PageParam<SysDictData> pageQuery) {
+        return R.SUCCESS(dictDataService.selectDictTypePage(dictData, pageQuery));
+    }
+
+
+    /**
+     * 查询字典数据详细
+     *
+     * @param dictCode 字典code
+     */
+    @GetMapping(value = "/{dictCode}")
+    public R<SysDictData> getInfo(@PathVariable Long dictCode) {
+        return R.SUCCESS(dictDataService.selectDictDataById(dictCode));
+    }
+
+    /**
+     * 根据字典类型查询字典数据信息
+     *
+     * @param dictType 字典类型
+     */
+    @GetMapping(value = "/type/{dictType}")
+    public R<List<SysDictData>> dictType(@PathVariable String dictType) {
+        List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
+        if (ObjectUtil.isNull(data)) {
+            data = new ArrayList<>();
+        }
+        return R.SUCCESS(data);
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PostMapping
+    public R<Void> add(@Validated @RequestBody SysDictData dict) {
+        if (!dictDataService.checkDictDataUnique(dict)) {
+            return R.FAIL("新增字典数据'" + dict.getDictValue() + "'失败,字典键值已存在");
+        }
+        dictDataService.insertDictData(dict);
+        return R.SUCCESS();
+    }
+
+    /**
+     * 修改保存字典类型
+     */
+
+    @PutMapping
+    public R<Void> edit(@Validated @RequestBody SysDictData dict) {
+        if (!dictDataService.checkDictDataUnique(dict)) {
+            return R.FAIL("修改字典数据'" + dict.getDictValue() + "'失败,字典键值已存在");
+        }
+        dictDataService.updateDictData(dict);
+        return R.SUCCESS();
+    }
+
+    /**
+     * 删除字典类型
+     *
+     * @param dictCodes 字典code串
+     */
+    @DeleteMapping("/{dictCodes}")
+    public R<Void> remove(@PathVariable Long[] dictCodes) {
+        dictDataService.deleteDictDataByIds(dictCodes);
+        return R.SUCCESS();
+    }
+}

+ 91 - 0
yami-shop-sys/src/main/java/com/yami/shop/sys/controller/SysDictTypeController.java

@@ -0,0 +1,91 @@
+package com.yami.shop.sys.controller;
+
+import com.yami.shop.bean.model.SysDictType;
+import com.yami.shop.common.util.R;
+import com.yami.shop.service.ISysDictTypeService;
+import lombok.RequiredArgsConstructor;
+
+import lombok.extern.java.Log;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 数据字典信息
+ *
+ * @author Lion Li
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/dict/type")
+public class SysDictTypeController{
+
+    private final ISysDictTypeService dictTypeService;
+
+    /**
+     * 查询字典类型列表
+     */
+    @GetMapping("/list")
+    public R<List<SysDictType>> list(SysDictType dictType) {
+        return R.SUCCESS(dictTypeService.selectDictTypeList(dictType));
+    }
+
+    /**
+     * 查询字典类型详细
+     *
+     * @param dictId 字典ID
+     */
+    @GetMapping(value = "/{dictId}")
+    public R<SysDictType> getInfo(@PathVariable Long dictId) {
+        return R.SUCCESS(dictTypeService.selectDictTypeById(dictId));
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PostMapping
+    public R<Void> add(@Validated @RequestBody SysDictType dict) {
+        if (!dictTypeService.checkDictTypeUnique(dict)) {
+            return R.FAIL("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dictTypeService.insertDictType(dict);
+        return R.SUCCESS();
+    }
+
+    /**
+     * 修改字典类型
+     */
+    @PutMapping
+    public R<Void> edit(@Validated @RequestBody SysDictType dict) {
+        if (!dictTypeService.checkDictTypeUnique(dict)) {
+            return R.FAIL("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dictTypeService.updateDictType(dict);
+        return R.SUCCESS();
+    }
+
+    /**
+     * 删除字典类型
+     *
+     * @param dictIds 字典ID串
+     */
+    @DeleteMapping("/{dictIds}")
+    public R<Void> remove(@PathVariable Long[] dictIds) {
+        dictTypeService.deleteDictTypeByIds(dictIds);
+        return R.SUCCESS();
+    }
+
+
+    /**
+     * 获取字典选择框列表
+     */
+    @GetMapping("/optionselect")
+    public R<List<SysDictType>> optionselect() {
+        List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
+        return R.SUCCESS(dictTypes);
+    }
+}