数据字典模块部分提交
							parent
							
								
									5b07634cfd
								
							
						
					
					
						commit
						8089319f64
					
				| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
package cn.iocoder.mall.admin.application.controller;
 | 
					package cn.iocoder.mall.admin.application.controller.admins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.common.framework.vo.CommonResult;
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
import cn.iocoder.mall.admin.api.AdminService;
 | 
					import cn.iocoder.mall.admin.api.AdminService;
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,57 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.application.controller.admins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.DataDictService;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.bo.DataDictBO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.application.convert.DataDictConvert;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.application.vo.DataDictVO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.annotation.Reference;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("admins/data_dict")
 | 
				
			||||||
 | 
					@Api("数据字典模块")
 | 
				
			||||||
 | 
					public class DataDictController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Reference(validation = "true")
 | 
				
			||||||
 | 
					    private DataDictService dataDictService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("/list")
 | 
				
			||||||
 | 
					    @ApiOperation(value = "数据字典全列表")
 | 
				
			||||||
 | 
					    public CommonResult<List<DataDictVO>> list() {
 | 
				
			||||||
 | 
					        CommonResult<List<DataDictBO>> result = dataDictService.selectDataDictList();
 | 
				
			||||||
 | 
					        return DataDictConvert.INSTANCE.convert(result);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping("/add")
 | 
				
			||||||
 | 
					    @ApiOperation(value = "创建数据字典")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "enumValue", value = "大类枚举值", required = true, example = "gender"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "value", value = "小类数值", required = true, example = "1"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "displayName", value = "展示名", required = true, example = "男"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "sort", required = true, value = "排序值", defaultValue = "10"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "memo", value = "备注", example = "你猜我猜不猜"),
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    public CommonResult<DataDictVO> add(@RequestParam("enumValue") String enumValue,
 | 
				
			||||||
 | 
					                                        @RequestParam("value") String value,
 | 
				
			||||||
 | 
					                                        @RequestParam("displayName") String displayName,
 | 
				
			||||||
 | 
					                                        @RequestParam("sort") Integer sort,
 | 
				
			||||||
 | 
					                                        @RequestParam(value = "memo", required = false) String memo) {
 | 
				
			||||||
 | 
					        // 创建 DataDictAddDTO 对象
 | 
				
			||||||
 | 
					        DataDictAddDTO dataDictAddDTO = new DataDictAddDTO().setEnumValue(enumValue).setValue(value).setDisplayName(displayName)
 | 
				
			||||||
 | 
					                .setSort(sort).setMemo(memo);
 | 
				
			||||||
 | 
					        // 保存数据字典
 | 
				
			||||||
 | 
					        CommonResult<DataDictBO> result = dataDictService.addDataDict(AdminSecurityContextHolder.getContext().getAdminId(), dataDictAddDTO);
 | 
				
			||||||
 | 
					        // 返回结果
 | 
				
			||||||
 | 
					        return DataDictConvert.INSTANCE.convert2(result);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
package cn.iocoder.mall.admin.application.controller;
 | 
					package cn.iocoder.mall.admin.application.controller.admins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.common.framework.vo.CommonResult;
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
import cn.iocoder.mall.admin.api.OAuth2Service;
 | 
					import cn.iocoder.mall.admin.api.OAuth2Service;
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
package cn.iocoder.mall.admin.application.controller;
 | 
					package cn.iocoder.mall.admin.application.controller.admins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.common.framework.vo.CommonResult;
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
import cn.iocoder.mall.admin.api.ResourceService;
 | 
					import cn.iocoder.mall.admin.api.ResourceService;
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
package cn.iocoder.mall.admin.application.controller;
 | 
					package cn.iocoder.mall.admin.application.controller.admins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.common.framework.util.CollectionUtil;
 | 
					import cn.iocoder.common.framework.util.CollectionUtil;
 | 
				
			||||||
import cn.iocoder.common.framework.vo.CommonResult;
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.application.convert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.bo.DataDictBO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.application.vo.DataDictVO;
 | 
				
			||||||
 | 
					import org.mapstruct.Mapper;
 | 
				
			||||||
 | 
					import org.mapstruct.Mappings;
 | 
				
			||||||
 | 
					import org.mapstruct.factory.Mappers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface DataDictConvert {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictConvert INSTANCE = Mappers.getMapper(DataDictConvert.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mappings({})
 | 
				
			||||||
 | 
					    DataDictVO convert(DataDictBO dataDictBO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mappings({})
 | 
				
			||||||
 | 
					    List<DataDictVO> convert(List<DataDictBO> dataDictBOs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mappings({})
 | 
				
			||||||
 | 
					    CommonResult<List<DataDictVO>> convert(CommonResult<List<DataDictBO>> result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mappings({})
 | 
				
			||||||
 | 
					    CommonResult<DataDictVO> convert2(CommonResult<DataDictBO> result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,76 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.application.vo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@ApiModel("数据字典 VO")
 | 
				
			||||||
 | 
					public class DataDictVO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "编号", required = true, example = "1")
 | 
				
			||||||
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "大类枚举值", required = true, example = "gender")
 | 
				
			||||||
 | 
					    private String enumValue;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "小类数值", required = true, example = "1")
 | 
				
			||||||
 | 
					    private String value;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "展示名", required = true, example = "男")
 | 
				
			||||||
 | 
					    private String displayName;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "排序值", required = true, example = "10")
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "备注", example = "你猜")
 | 
				
			||||||
 | 
					    private Integer memo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getId() {
 | 
				
			||||||
 | 
					        return id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictVO setId(Integer id) {
 | 
				
			||||||
 | 
					        this.id = id;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getEnumValue() {
 | 
				
			||||||
 | 
					        return enumValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictVO setEnumValue(String enumValue) {
 | 
				
			||||||
 | 
					        this.enumValue = enumValue;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getValue() {
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictVO setValue(String value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getDisplayName() {
 | 
				
			||||||
 | 
					        return displayName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictVO setDisplayName(String displayName) {
 | 
				
			||||||
 | 
					        this.displayName = displayName;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictVO setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getMemo() {
 | 
				
			||||||
 | 
					        return memo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictVO setMemo(Integer memo) {
 | 
				
			||||||
 | 
					        this.memo = memo;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.api;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.bo.DataDictBO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface DataDictService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CommonResult<List<DataDictBO>> selectDataDictList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CommonResult<DataDictBO> addDataDict(Integer adminId, DataDictAddDTO dataDictAddDTO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CommonResult<Boolean> updateDataDict(Integer adminId, DataDictUpdateDTO dataDictUpdateDTO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CommonResult<Boolean> deleteDataDict(Integer adminId, Integer dataDictId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,102 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.api.bo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 数据字典 BO
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DataDictBO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 编号
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 大类枚举值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String enumValue;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 小类数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String value;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 展示名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String displayName;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String memo;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 创建时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Date createTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getId() {
 | 
				
			||||||
 | 
					        return id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setId(Integer id) {
 | 
				
			||||||
 | 
					        this.id = id;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getEnumValue() {
 | 
				
			||||||
 | 
					        return enumValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setEnumValue(String enumValue) {
 | 
				
			||||||
 | 
					        this.enumValue = enumValue;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getValue() {
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setValue(String value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getDisplayName() {
 | 
				
			||||||
 | 
					        return displayName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setDisplayName(String displayName) {
 | 
				
			||||||
 | 
					        this.displayName = displayName;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getMemo() {
 | 
				
			||||||
 | 
					        return memo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setMemo(String memo) {
 | 
				
			||||||
 | 
					        this.memo = memo;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Date getCreateTime() {
 | 
				
			||||||
 | 
					        return createTime;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictBO setCreateTime(Date createTime) {
 | 
				
			||||||
 | 
					        this.createTime = createTime;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,11 @@ public enum AdminErrorCodeEnum {
 | 
				
			||||||
    // ========== 角色模块 1002004000 ==========
 | 
					    // ========== 角色模块 1002004000 ==========
 | 
				
			||||||
    ROLE_NOT_EXISTS(1002004000, "角色不存在"),
 | 
					    ROLE_NOT_EXISTS(1002004000, "角色不存在"),
 | 
				
			||||||
    ROLE_ASSIGN_RESOURCE_NOT_EXISTS(1002004001, "分配角色资源时,有资源不存在"),
 | 
					    ROLE_ASSIGN_RESOURCE_NOT_EXISTS(1002004001, "分配角色资源时,有资源不存在"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ========== 数据字典模块 1002005000 ==========
 | 
				
			||||||
 | 
					    DATA_DICT_EXISTS(1002005000, "该数据字典已经存在"),
 | 
				
			||||||
 | 
					    DATA_DICT_NOT_EXISTS(1002005001, "该数据字典已经存在"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ;
 | 
					    ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final int code;
 | 
					    private final int code;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.api.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotEmpty;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 数据字典添加 DTO
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DataDictAddDTO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 大类枚举值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotEmpty(message = "大类枚举值不能为空")
 | 
				
			||||||
 | 
					    private String enumValue;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 小类数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotEmpty(message = "小类数值不能为空")
 | 
				
			||||||
 | 
					    private String value;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 展示名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotEmpty(message = "展示名不能为空")
 | 
				
			||||||
 | 
					    private String displayName;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotNull(message = "排序值不能为空")
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String memo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getEnumValue() {
 | 
				
			||||||
 | 
					        return enumValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictAddDTO setEnumValue(String enumValue) {
 | 
				
			||||||
 | 
					        this.enumValue = enumValue;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getValue() {
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictAddDTO setValue(String value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getDisplayName() {
 | 
				
			||||||
 | 
					        return displayName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictAddDTO setDisplayName(String displayName) {
 | 
				
			||||||
 | 
					        this.displayName = displayName;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictAddDTO setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getMemo() {
 | 
				
			||||||
 | 
					        return memo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictAddDTO setMemo(String memo) {
 | 
				
			||||||
 | 
					        this.memo = memo;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.api.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotEmpty;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 数据字典更新 DTO
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DataDictUpdateDTO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 编号
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotNull(message = "编号不能为空")
 | 
				
			||||||
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 小类数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotEmpty(message = "小类数值不能为空")
 | 
				
			||||||
 | 
					    private String value;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 展示名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotEmpty(message = "展示名不能为空")
 | 
				
			||||||
 | 
					    private String displayName;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @NotNull(message = "排序值不能为空")
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String memo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getId() {
 | 
				
			||||||
 | 
					        return id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictUpdateDTO setId(Integer id) {
 | 
				
			||||||
 | 
					        this.id = id;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getValue() {
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictUpdateDTO setValue(String value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getDisplayName() {
 | 
				
			||||||
 | 
					        return displayName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictUpdateDTO setDisplayName(String displayName) {
 | 
				
			||||||
 | 
					        this.displayName = displayName;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictUpdateDTO setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getMemo() {
 | 
				
			||||||
 | 
					        return memo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictUpdateDTO setMemo(String memo) {
 | 
				
			||||||
 | 
					        this.memo = memo;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.convert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.bo.DataDictBO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.dataobject.DataDictDO;
 | 
				
			||||||
 | 
					import org.mapstruct.Mapper;
 | 
				
			||||||
 | 
					import org.mapstruct.factory.Mappers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface DataDictConvert {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictConvert INSTANCE = Mappers.getMapper(DataDictConvert.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictDO convert(DataDictAddDTO dataDictAddDTO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictDO convert(DataDictUpdateDTO dataDictUpdateDTO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictBO convert(DataDictDO dataDictDO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<DataDictBO> convert(List<DataDictDO> dataDictDOs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.dataobject.DataDictDO;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Param;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Repository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Repository
 | 
				
			||||||
 | 
					public interface DataDictMapper {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictDO selectById(@Param("id") Integer id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DataDictDO selectByEnumValueAndValue(@Param("enumValue") String enumValue,
 | 
				
			||||||
 | 
					                                         @Param("value") String value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<DataDictDO> selectList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void insert(DataDictDO dataDict);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int update(DataDictDO dataDict);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,94 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.dataobject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.dataobject.BaseDO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 数据字典
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * 使用 {@link #enumValue} 作为聚合。例如说:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * enumValue :gender 性别
 | 
				
			||||||
 | 
					 *      value:1 男
 | 
				
			||||||
 | 
					 *      value:2 女
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DataDictDO extends BaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 编号
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 大类枚举值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String enumValue;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 小类数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String value;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 展示名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String displayName;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String memo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getEnumValue() {
 | 
				
			||||||
 | 
					        return enumValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictDO setEnumValue(String enumValue) {
 | 
				
			||||||
 | 
					        this.enumValue = enumValue;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getValue() {
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictDO setValue(String value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getDisplayName() {
 | 
				
			||||||
 | 
					        return displayName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictDO setDisplayName(String displayName) {
 | 
				
			||||||
 | 
					        this.displayName = displayName;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictDO setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getMemo() {
 | 
				
			||||||
 | 
					        return memo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictDO setMemo(String memo) {
 | 
				
			||||||
 | 
					        this.memo = memo;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getId() {
 | 
				
			||||||
 | 
					        return id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public DataDictDO setId(Integer id) {
 | 
				
			||||||
 | 
					        this.id = id;
 | 
				
			||||||
 | 
					        return this;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@ import java.util.Set;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
@com.alibaba.dubbo.config.annotation.Service
 | 
					@com.alibaba.dubbo.config.annotation.Service(validation = "true")
 | 
				
			||||||
public class AdminServiceImpl implements AdminService {
 | 
					public class AdminServiceImpl implements AdminService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,89 @@
 | 
				
			||||||
 | 
					package cn.iocoder.mall.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.dataobject.BaseDO;
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.util.ServiceExceptionUtil;
 | 
				
			||||||
 | 
					import cn.iocoder.common.framework.vo.CommonResult;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.DataDictService;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.bo.DataDictBO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.convert.DataDictConvert;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.dao.DataDictMapper;
 | 
				
			||||||
 | 
					import cn.iocoder.mall.admin.dataobject.DataDictDO;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 数据字典 Service
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					@com.alibaba.dubbo.config.annotation.Service(validation = "true")
 | 
				
			||||||
 | 
					public class DataDictServiceImpl implements DataDictService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private DataDictMapper dataDictMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public CommonResult<List<DataDictBO>> selectDataDictList() {
 | 
				
			||||||
 | 
					        List<DataDictDO> dataDicts = dataDictMapper.selectList();
 | 
				
			||||||
 | 
					        return CommonResult.success(DataDictConvert.INSTANCE.convert(dataDicts));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public CommonResult<DataDictBO> addDataDict(Integer adminId, DataDictAddDTO dataDictAddDTO) {
 | 
				
			||||||
 | 
					        // 校验数据字典重复
 | 
				
			||||||
 | 
					        if (dataDictMapper.selectByEnumValueAndValue(dataDictAddDTO.getEnumValue(), dataDictAddDTO.getValue()) != null) {
 | 
				
			||||||
 | 
					            return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_EXISTS.getCode());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // 保存到数据库
 | 
				
			||||||
 | 
					        DataDictDO dataDict = DataDictConvert.INSTANCE.convert(dataDictAddDTO);
 | 
				
			||||||
 | 
					        dataDict.setCreateTime(new Date()).setDeleted(BaseDO.DELETED_NO);
 | 
				
			||||||
 | 
					        dataDictMapper.insert(dataDict);
 | 
				
			||||||
 | 
					        // TODO 插入操作日志
 | 
				
			||||||
 | 
					        // 返回成功
 | 
				
			||||||
 | 
					        return CommonResult.success(DataDictConvert.INSTANCE.convert(dataDict));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public CommonResult<Boolean> updateDataDict(Integer adminId, DataDictUpdateDTO dataDictUpdateDTO) {
 | 
				
			||||||
 | 
					        // 校验数据字典不存在
 | 
				
			||||||
 | 
					        DataDictDO existsDataDict = dataDictMapper.selectById(dataDictUpdateDTO.getId());
 | 
				
			||||||
 | 
					        if (existsDataDict == null) {
 | 
				
			||||||
 | 
					            return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_NOT_EXISTS.getCode());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // 校验数据字典重复
 | 
				
			||||||
 | 
					        DataDictDO duplicateDataDict = dataDictMapper.selectByEnumValueAndValue(existsDataDict.getEnumValue(), dataDictUpdateDTO.getValue());
 | 
				
			||||||
 | 
					        if (duplicateDataDict != null && duplicateDataDict.getId().equals(dataDictUpdateDTO.getId())) {
 | 
				
			||||||
 | 
					            return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_EXISTS.getCode());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // 更新到数据库
 | 
				
			||||||
 | 
					        DataDictDO updateDataDict = DataDictConvert.INSTANCE.convert(dataDictUpdateDTO);
 | 
				
			||||||
 | 
					        dataDictMapper.update(updateDataDict);
 | 
				
			||||||
 | 
					        // TODO 插入操作日志
 | 
				
			||||||
 | 
					        // 返回成功
 | 
				
			||||||
 | 
					        return CommonResult.success(true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 一般情况下,不要删除数据字典。
 | 
				
			||||||
 | 
					    // 因为,业务数据正在使用该数据字典,删除后,可能有不可预知的问题。
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public CommonResult<Boolean> deleteDataDict(Integer adminId, Integer dataDictId) {
 | 
				
			||||||
 | 
					        // 校验数据字典不存在
 | 
				
			||||||
 | 
					        DataDictDO existsDataDict = dataDictMapper.selectById(dataDictId);
 | 
				
			||||||
 | 
					        if (existsDataDict == null) {
 | 
				
			||||||
 | 
					            return ServiceExceptionUtil.error(AdminErrorCodeEnum.DATA_DICT_NOT_EXISTS.getCode());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // 更新到数据库
 | 
				
			||||||
 | 
					        DataDictDO updateDataDict = new DataDictDO().setId(dataDictId);
 | 
				
			||||||
 | 
					        updateDataDict.setDeleted(BaseDO.DELETED_YES);
 | 
				
			||||||
 | 
					        dataDictMapper.update(updateDataDict);
 | 
				
			||||||
 | 
					        // TODO 插入操作日志
 | 
				
			||||||
 | 
					        // 返回成功
 | 
				
			||||||
 | 
					        return CommonResult.success(true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@ import java.util.Set;
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
@com.alibaba.dubbo.config.annotation.Service
 | 
					@com.alibaba.dubbo.config.annotation.Service(validation = "true")
 | 
				
			||||||
public class OAuth2ServiceImpl implements OAuth2Service {
 | 
					public class OAuth2ServiceImpl implements OAuth2Service {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ import java.util.Set;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
@com.alibaba.dubbo.config.annotation.Service
 | 
					@com.alibaba.dubbo.config.annotation.Service(validation = "true")
 | 
				
			||||||
public class RoleServiceImpl implements RoleService {
 | 
					public class RoleServiceImpl implements RoleService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,70 @@
 | 
				
			||||||
 | 
					<?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="cn.iocoder.mall.admin.dao.DataDictMapper">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <sql id="FIELDS">
 | 
				
			||||||
 | 
					        id, enum_value, value, display_name, sort,
 | 
				
			||||||
 | 
					        memo, create_time
 | 
				
			||||||
 | 
					    </sql>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <select id="selectByEnumValueAndValue" resultType="DataDictDO">
 | 
				
			||||||
 | 
					        SELECT
 | 
				
			||||||
 | 
					          <include refid="FIELDS"/>
 | 
				
			||||||
 | 
					        FROM data_dict
 | 
				
			||||||
 | 
					        WHERE enum_value = #{enumValue}
 | 
				
			||||||
 | 
					        AND value = #{value}
 | 
				
			||||||
 | 
					        AND deleted = 0
 | 
				
			||||||
 | 
					        LIMIT 1
 | 
				
			||||||
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <select id="selectById" resultType="DataDictDO">
 | 
				
			||||||
 | 
					        SELECT
 | 
				
			||||||
 | 
					            <include refid="FIELDS"/>
 | 
				
			||||||
 | 
					        FROM data_dict
 | 
				
			||||||
 | 
					        WHERE id = #{id}
 | 
				
			||||||
 | 
					        AND deleted = 0
 | 
				
			||||||
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <select id="selectList" resultType="DataDictDO">
 | 
				
			||||||
 | 
					        SELECT
 | 
				
			||||||
 | 
					            <include refid="FIELDS"/>
 | 
				
			||||||
 | 
					        FROM data_dict
 | 
				
			||||||
 | 
					        WHERE deleted = 0
 | 
				
			||||||
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <insert id="insert" parameterType="DataDictDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 | 
				
			||||||
 | 
					        INSERT INTO data_dict (
 | 
				
			||||||
 | 
					          id, enum_value, value, display_name, sort,
 | 
				
			||||||
 | 
					          memo, create_time, deleted
 | 
				
			||||||
 | 
					        ) VALUES (
 | 
				
			||||||
 | 
					          #{id}, #{enumValue}, #{value}, #{displayName}, #{sort},
 | 
				
			||||||
 | 
					          #{memo}, #{createTime}, #{deleted}
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    </insert>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <update id="update" parameterType="DataDictDO">
 | 
				
			||||||
 | 
					        UPDATE data_dict
 | 
				
			||||||
 | 
					        <set>
 | 
				
			||||||
 | 
					            <if test="enumValue != null">
 | 
				
			||||||
 | 
					                enum_value = #{enumValue},
 | 
				
			||||||
 | 
					            </if>
 | 
				
			||||||
 | 
					            <if test="value != null">
 | 
				
			||||||
 | 
					                value = #{value},
 | 
				
			||||||
 | 
					            </if>
 | 
				
			||||||
 | 
					            <if test="displayName != null">
 | 
				
			||||||
 | 
					                display_name = #{displayName},
 | 
				
			||||||
 | 
					            </if>
 | 
				
			||||||
 | 
					            <if test="sort != null">
 | 
				
			||||||
 | 
					                sort = #{sort},
 | 
				
			||||||
 | 
					            </if>
 | 
				
			||||||
 | 
					            <if test="memo != null">
 | 
				
			||||||
 | 
					                memo = #{memo},
 | 
				
			||||||
 | 
					            </if>
 | 
				
			||||||
 | 
					            <if test="deleted != null">
 | 
				
			||||||
 | 
					                deleted = #{deleted}
 | 
				
			||||||
 | 
					            </if>
 | 
				
			||||||
 | 
					        </set>
 | 
				
			||||||
 | 
					        WHERE id = #{id}
 | 
				
			||||||
 | 
					    </update>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</mapper>
 | 
				
			||||||
		Loading…
	
		Reference in New Issue