Browse Source

日志开启mq,修改规则接口

master
刘忱 2 years ago
parent
commit
ffbde0debc
  1. 8
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/logger/ApiAccessLogApiImpl.java
  2. 8
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/logger/ApiErrorLogApiImpl.java
  3. 8
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/trends/TrendsApiImpl.java
  4. 115
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java
  5. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RulePageReqVO.java
  6. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java
  7. 46
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java
  8. 2
      win-server/src/main/resources/application.yaml

8
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/logger/ApiAccessLogApiImpl.java

@ -1,6 +1,8 @@
package com.win.module.infra.api.logger;
import com.win.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
import com.win.module.infra.convert.logger.ApiAccessLogConvert;
import com.win.module.infra.mq.message.logger.ApiAccessLogMessage;
import com.win.module.infra.mq.producer.logger.ApiAccessLogProducer;
import com.win.module.infra.service.logger.ApiAccessLogService;
import org.springframework.stereotype.Service;
@ -25,9 +27,9 @@ public class ApiAccessLogApiImpl implements ApiAccessLogApi {
@Override
public void createApiAccessLog(ApiAccessLogCreateReqDTO createDTO) {
apiAccessLogService.createApiAccessLog(createDTO);
// ApiAccessLogMessage accessLogMessage = ApiAccessLogConvert.INSTANCE.convertMessage(createDTO);
// apiAccessLogProducer.sendMessage(accessLogMessage);
//apiAccessLogService.createApiAccessLog(createDTO);
ApiAccessLogMessage accessLogMessage = ApiAccessLogConvert.INSTANCE.convertMessage(createDTO);
apiAccessLogProducer.sendMessage(accessLogMessage);
}
}

8
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/logger/ApiErrorLogApiImpl.java

@ -1,6 +1,8 @@
package com.win.module.infra.api.logger;
import com.win.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO;
import com.win.module.infra.convert.logger.ApiErrorLogConvert;
import com.win.module.infra.mq.message.logger.ApiErrorLogMessage;
import com.win.module.infra.mq.producer.logger.ApiErrorLogProducer;
import com.win.module.infra.service.logger.ApiErrorLogService;
import org.springframework.stereotype.Service;
@ -25,9 +27,9 @@ public class ApiErrorLogApiImpl implements ApiErrorLogApi {
@Override
public void createApiErrorLog(ApiErrorLogCreateReqDTO createDTO) {
apiErrorLogService.createApiErrorLog(createDTO);
// ApiErrorLogMessage errorLogMessage = ApiErrorLogConvert.INSTANCE.convertMessage(createDTO);
// apiErrorLogProducer.sendMessage(errorLogMessage);
//apiErrorLogService.createApiErrorLog(createDTO);
ApiErrorLogMessage errorLogMessage = ApiErrorLogConvert.INSTANCE.convertMessage(createDTO);
apiErrorLogProducer.sendMessage(errorLogMessage);
}
}

8
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/trends/TrendsApiImpl.java

@ -1,6 +1,8 @@
package com.win.module.infra.api.trends;
import com.win.module.infra.api.trends.dto.TrendsCreateReqDTO;
import com.win.module.infra.convert.trends.TrendsConvert;
import com.win.module.infra.mq.message.trends.TrendsMessage;
import com.win.module.infra.mq.producer.trends.TrendsProducer;
import com.win.module.infra.service.trends.TrendsService;
import org.springframework.stereotype.Service;
@ -25,9 +27,9 @@ public class TrendsApiImpl implements TrendsApi {
@Override
public void createTrends(TrendsCreateReqDTO createDTO) {
trendsService.createTrends(createDTO);
// TrendsMessage trendsMessage = TrendsConvert.INSTANCE.convertMessage(createDTO);
// trendsProducer.sendMessage(trendsMessage);
//trendsService.createTrends(createDTO);
TrendsMessage trendsMessage = TrendsConvert.INSTANCE.convertMessage(createDTO);
trendsProducer.sendMessage(trendsMessage);
}
}

115
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java

@ -1,42 +1,27 @@
package com.win.module.wms.controller.rule;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.controller.rule.vo.RuleImportExcelVo;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import com.win.module.wms.controller.rule.vo.RuleCreateReqVO;
import com.win.module.wms.controller.rule.vo.RulePageReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.rule.vo.RuleUpdateReqVO;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.service.rule.RuleService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.io.IOException;
import javax.annotation.Resource;
import javax.validation.Valid;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.service.rule.RuleService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 规则")
@RestController
@RequestMapping("/wms/rule")
@ -82,15 +67,6 @@ public class RuleController {
return success(RuleConvert.INSTANCE.convert(rule));
}
@GetMapping("/list")
@Operation(summary = "获得规则列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('wms:rule:query')")
public CommonResult<List<RuleRespVO>> getRuleList(@RequestParam("ids") Collection<Long> ids) {
List<RuleDO> list = ruleService.getRuleList(ids);
return success(RuleConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得规则分页")
@PreAuthorize("@ss.hasPermission('wms:rule:query')")
@ -99,63 +75,4 @@ public class RuleController {
return success(RuleConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出规则 Excel")
@PreAuthorize("@ss.hasPermission('wms:rule:export')")
@OperateLog(type = EXPORT)
public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<RuleDO> list = ruleService.getRuleList(exportReqVO);
// 导出 Excel
List<RuleExcelVO> datas = RuleConvert.INSTANCE.convertList02(list);
for(RuleExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "规则.xls", "数据", RuleExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入规则信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<RuleImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
// 输出
// 输出
ExcelUtils.write(response, "规则导入模板.xls", "规则列表", RuleImportExcelVo.class, list,mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入规则信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:rule:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<RuleImportExcelVo> list = ExcelUtils.read(file, RuleImportExcelVo.class);
List<RuleImportExcelVo> errorList = ruleService.importRuleList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("规则导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RulePageReqVO.java

@ -1,9 +1,12 @@
package com.win.module.wms.controller.rule.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 规则分页 Request VO")
@Data
@ -18,6 +21,7 @@ public class RulePageReqVO extends PageParam {
private Integer priority;
@Schema(description = "代码")
@NotNull(message = "代码不能为空")
private String code;
@Schema(description = "名称")

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java

@ -1,15 +1,15 @@
package com.win.module.wms.service.rule;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.rule.vo.RuleCreateReqVO;
import com.win.module.wms.controller.rule.vo.RuleExportReqVO;
import com.win.module.wms.controller.rule.vo.RulePageReqVO;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.controller.saleprice.vo.SalepriceImportExcelVo;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.rule.vo.RuleUpdateReqVO;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.framework.common.pojo.PageResult;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 规则 Service 接口
@ -64,17 +64,6 @@ public interface RuleService {
*/
PageResult<RuleDO> getRulePage(RulePageReqVO pageReqVO);
/**
* 获得规则列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 规则列表
*/
List<RuleDO> getRuleList(RuleExportReqVO exportReqVO);
List<RuleImportExcelVo> importRuleList(List<RuleImportExcelVo> importTeam, Integer mode, boolean updatePart);
/**************** 规则接口 ****************/
/**

46
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java

@ -1,22 +1,21 @@
package com.win.module.wms.service.rule;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.controller.rule.vo.RuleCreateReqVO;
import com.win.module.wms.controller.rule.vo.RulePageReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.rule.vo.RuleUpdateReqVO;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.dal.mysql.rule.RuleMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
@ -80,43 +79,6 @@ public class RuleServiceImpl implements RuleService {
return ruleMapper.selectPage(pageReqVO);
}
@Override
public List<RuleDO> getRuleList(RuleExportReqVO exportReqVO) {
return ruleMapper.selectList(exportReqVO);
}
public List<RuleImportExcelVo> importRuleList(List<RuleImportExcelVo> rules, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(rules)) {
throw exception(RULE_IMPORT_LIST_IS_EMPTY);
}
List<RuleImportExcelVo> errorList = new ArrayList<>();
rules.forEach(rule -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateRuleForCreateOrUpdate(null,rule.getCode(),rule.getStrategyCode(),rule.getPriority());
}
} catch (ServiceException ex) {
errorList.add(rule);
return;
}
// 判断如果不存在,在进行插入
RuleDO existRule = ruleMapper.selectByCode(rule.getCode());
if (existRule == null&& mode != 3) {
ruleMapper.insert(RuleConvert.INSTANCE.convert(rule));
} else if (existRule != null && mode != 2) {// 如果存在,判断是否允许更新
RuleDO ruleDO = RuleConvert.INSTANCE.convert(rule);
ruleDO.setId(existRule.getId());
ruleMapper.updateById(ruleDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateRuleForCreateOrUpdate(Long id, String code, String strategyCode,Integer priority) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {

2
win-server/src/main/resources/application.yaml

@ -139,7 +139,7 @@ win:
pubsub:
enable: false # 是否开启 Redis pubsub 广播消费,默认为 true。这里设置成 false,可以按需开启
stream:
enable: false # 是否开启 Redis stream 集群消费,默认为 true。这里设置成 false,可以按需开启
enable: true # 是否开启 Redis stream 集群消费,默认为 true。这里设置成 false,可以按需开启
tenant: # 多租户相关配置项
enable: true
ignore-urls:

Loading…
Cancel
Save