Commit 1c8b3d6c authored by wangquan  wangquan's avatar wangquan wangquan
Browse files

22

parent 440ddd1b
package com.zxr.demos.mapper;
import com.zxr.demos.common.entity.BaseServiceType;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
@Repository
public interface BaseServiceTypeMapper extends Mapper<BaseServiceType> {
}
package com.zxr.demos.mapper;
import com.zxr.demos.common.entity.BaseTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BaseTaskMapper extends tk.mybatis.mapper.common.Mapper<BaseTask> {
List<BaseTask> getTaskListByUserPhone(@Param("userPhone") String userPhone, @Param("tenantId")String tenantId);
}
package com.zxr.demos.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zxr.demos.common.entity.RbDeliveryFailRetry;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface RbDeliveryFailRetryMapper extends BaseMapper<RbDeliveryFailRetry> {
}
package com.zxr.demos.mapper;
import com.zxr.demos.common.entity.KunKun;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface TestMapper {
@Select("SELECT * from `department`")
List<KunKun> iKuns();
}
package com.zxr.demos.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zxr.demos.common.param.UdspQueryCarSeriesListParam;
import com.zxr.demos.common.entity.CarSeriesList;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.List;
/*
* @Description:
* @Author: 张先冉
* @date: 2024/9/3 10:52
*/
@Component
public interface UdspCarSeriesListApiMapper extends BaseMapper<CarSeriesList> {
int insertBatch(@Param("carSerList") List<CarSeriesList> carSerList);
void deleteCarSerTable();
List<CarSeriesList> queryPagCarSeriesList(UdspQueryCarSeriesListParam param);
int updateMustVisit(@Param("id") int id, @Param("modelCode") String modelCode, @Param("modelName") String modelName);
@Select("select * from car_series_list")
List<CarSeriesList> queryPage();
}
package com.zxr.demos.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zxr.demos.common.param.UdspQueryPartsParam;
import com.zxr.demos.common.entity.PartsData;
import com.zxr.demos.common.response.UdspPartsResult;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* <p>
* 零件数据表 Mapper 接口
* </p>
*
* @author zxr
* @since 2024-09-05
*/
@Component
public interface UdspPartsDataMapper extends BaseMapper<PartsData> {
List<UdspPartsResult> queryPageParts(UdspQueryPartsParam param);
int insertBatch(@Param("partsDataList") List<PartsData> partsDataList);
void deleteparts();
}
package com.zxr.demos.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zxr.demos.common.response.UdspWorkHourResult;
import com.zxr.demos.common.param.UdspQueryWorkHourParam;
import com.zxr.demos.common.entity.WorkHourData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/*
* @Description:
* @Author: 张先冉
* @date: 2024/9/3 10:52
*/
@Mapper
public interface UdspWorkHourApiMapper extends BaseMapper<WorkHourData> {
int insertBatch(@Param("workHourList") List<WorkHourData> workHourList);
void deleteWorkHourTable();
List<UdspWorkHourResult> queryPageWorkHour(UdspQueryWorkHourParam param);
}
package com.zxr.demos.service;
import com.zxr.demos.common.enums.EsCreateViewEnum;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.stereotype.Service;
@Service
public class CommonService {
public QueryBuilder buildCreateViewQuery(EsCreateViewEnum conditionEnum, BoolQueryBuilder boolQuery) {
if (EsCreateViewEnum.MY_CREATED.getCode().equals(conditionEnum.getCode())) {
boolQuery.must(QueryBuilders.matchQuery("info", "一条"));
return boolQuery;
} else if (EsCreateViewEnum.MY_CONCERN.getCode().equals(conditionEnum.getCode())) {
boolQuery.must(QueryBuilders.matchQuery("info", "二条"));
return boolQuery;
}
return QueryBuilders.boolQuery();
}
}
package com.zxr.demos.service;
import org.springframework.stereotype.Service;
@Service
public class MyServiceMethodRuntime {
public void methodA() {
try {
Thread.sleep(100); // 模拟执行时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void methodB() {
try {
Thread.sleep(200); // 模拟执行时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
package com.zxr.demos.service;
import com.github.pagehelper.PageInfo;
import com.zxr.demos.common.param.UdspQueryCarSeriesListParam;
import com.zxr.demos.common.response.UdspCarSeriesListResult;
public interface UdspCarSeriesListService {
PageInfo<UdspCarSeriesListResult> queryPagCarSeriesList(UdspQueryCarSeriesListParam param);
}
package com.zxr.demos.service;
import com.github.pagehelper.PageInfo;
import com.zxr.demos.common.param.UdspQueryPartsParam;
import com.zxr.demos.common.response.UdspPartsResult;
public interface UdspPartsService {
PageInfo<UdspPartsResult> queryPageParts(UdspQueryPartsParam param);
}
package com.zxr.demos.service;
import com.github.pagehelper.PageInfo;
import com.zxr.demos.common.param.UdspQueryWorkHourParam;
import com.zxr.demos.common.response.UdspWorkHourResult;
public interface UdspWorkHourDataService {
PageInfo<UdspWorkHourResult> queryPageWorkHour(UdspQueryWorkHourParam param);
}
package com.zxr.demos.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.PageInfo;
import com.zxr.demos.common.entity.CarSeriesList;
import com.zxr.demos.common.param.UdspQueryCarSeriesListParam;
import com.zxr.demos.common.response.UdspCarSeriesListResult;
import com.zxr.demos.common.utils.PageUtil;
import com.zxr.demos.mapper.UdspCarSeriesListApiMapper;
import com.zxr.demos.service.UdspCarSeriesListService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class UdspCarSeriesListServiceImpl implements UdspCarSeriesListService {
@Autowired
private UdspCarSeriesListApiMapper carSeriesListApiMapper;
@Override
public PageInfo<UdspCarSeriesListResult> queryPagCarSeriesList(UdspQueryCarSeriesListParam param) {
log.info("param:{}", param);
PageInfo info = PageUtil.build(param.getPageNo(), param.getPageSize());
List<CarSeriesList> carSeriesList = carSeriesListApiMapper.queryPagCarSeriesList(param);
log.info("carSeriesList:{}",carSeriesList);
List<UdspCarSeriesListResult> resultList =new ArrayList<>();
for (CarSeriesList seriesList : carSeriesList) {
UdspCarSeriesListResult result = BeanUtil.copyProperties(seriesList, UdspCarSeriesListResult.class);
result.setCode(seriesList.getModelCode());
resultList.add(result);
}
log.info("carSeriesListResultList:{}", resultList);
return PageUtil.paging(info, resultList);
}
}
package com.zxr.demos.service.impl;
import com.github.pagehelper.PageInfo;
import com.zxr.demos.common.param.UdspQueryPartsParam;
import com.zxr.demos.common.response.UdspPartsResult;
import com.zxr.demos.common.utils.PageUtil;
import com.zxr.demos.mapper.UdspPartsDataMapper;
import com.zxr.demos.service.UdspPartsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class UdspPartsServiceImpl implements UdspPartsService {
@Autowired
private UdspPartsDataMapper partsDataMapper;
@Override
public PageInfo<UdspPartsResult> queryPageParts(UdspQueryPartsParam param) {
log.info("param:{}",param);
PageInfo info = PageUtil.build(param.getPageNo(), param.getPageSize());
List<UdspPartsResult> udspPartsResults = partsDataMapper.queryPageParts(param);
log.info("udspPartsResults:{}",udspPartsResults);
return PageUtil.paging(info,udspPartsResults);
}
}
package com.zxr.demos.service.impl;
import com.github.pagehelper.PageInfo;
import com.zxr.demos.service.UdspWorkHourDataService;
import com.zxr.demos.common.param.UdspQueryWorkHourParam;
import com.zxr.demos.common.utils.PageUtil;
import com.zxr.demos.mapper.UdspWorkHourApiMapper;
import com.zxr.demos.common.response.UdspWorkHourResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class UdspWorkHourDataServiceImpl implements UdspWorkHourDataService {
@Autowired
private UdspWorkHourApiMapper workHourApiMapper;
@Override
public PageInfo<UdspWorkHourResult> queryPageWorkHour(UdspQueryWorkHourParam param) {
log.info("param:{}",param);
PageInfo info = PageUtil.build(param.getPageNo(), param.getPageSize());
List<UdspWorkHourResult> workHourResultList=workHourApiMapper.queryPageWorkHour(param);
return PageUtil.paging(info,workHourResultList);
}
}
package com.zxr.demos.service.impl;
import com.zxr.demos.common.entity.CarSeriesList;
import com.zxr.demos.common.response.UdspCarSeriesListResult;
import com.zxr.demos.mapper.UdspCarSeriesListApiMapper;
import com.zxr.demos.mapper.UdspPartsDataMapper;
import com.zxr.demos.mapper.UdspWorkHourApiMapper;
import com.zxr.demos.service.UdspCarSeriesListService;
import com.zxr.demos.service.UdspPartsService;
import com.zxr.demos.service.UdspWorkHourDataService;
import com.zxr.demos.service.myService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class myServiceImpl implements myService {
@Autowired
private UdspWorkHourDataService workHourDataService;
@Autowired
private UdspCarSeriesListService carSeriesListService;
@Autowired
private UdspPartsService partsService;
@Autowired
private UdspPartsDataMapper partsDataMapper;
@Autowired
private UdspWorkHourApiMapper workHourApiMapper;
@Autowired
private UdspCarSeriesListApiMapper carSeriesListApiMapper;
@Transactional(rollbackFor = Exception.class)
public void myInsert() {
insert();
}
public void insert() {
try {
List<CarSeriesList> carSeriesLists = makeInsertData();
carSeriesListApiMapper.insertBatch(carSeriesLists);
throw new RuntimeException("模拟错误");
} catch (Exception e) {
e.printStackTrace();
log.error("删除和插入失败,任务回滚,错误信息: {}", e.getMessage());
throw new RuntimeException("向上抛出错误: " + e.getMessage());
}
}
private static List<CarSeriesList> makeInsertData() {
UdspCarSeriesListResult result1 = new UdspCarSeriesListResult();
result1.setCode("123");
result1.setModelName("zxr");
UdspCarSeriesListResult result2 = new UdspCarSeriesListResult();
result2.setCode("123");
result2.setModelName("zxr");
List<UdspCarSeriesListResult> resultList = new ArrayList<>();
resultList.add(result2);
resultList.add(result1);
//模拟接收数据
List<CarSeriesList> carSeriesLists = new ArrayList<>();
for (int i = 0; i < resultList.size(); i++) {
CarSeriesList carSeriesList = new CarSeriesList();
carSeriesList.setModelCode(resultList.get(i).getCode());
carSeriesList.setModelName(resultList.get(i).getModelName());
carSeriesList.setId((long) i + 1);
carSeriesLists.add(carSeriesList);
}
return carSeriesLists;
}
}
package com.zxr.demos.service;
public interface myService {
void myInsert();
}
package com.zxr.demos.workTest;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import lombok.extern.slf4j.Slf4j;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.*;
@Slf4j
public class JdApiSignature {
public static String generateJdSignature(String appKey, String appSecret, String method, Map<String, Object> paramJson, String version) throws Exception {
// 获取当前时间戳
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSXXX");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
String timestamp = sdf.format(new Date());
// JSON 序列化,确保 JSON 格式紧凑
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true); // 确保 JSON 字段有序
String paramJsonStr = objectMapper.writeValueAsString(paramJson);
// 组装参数
Map<String, String> params = new TreeMap<>(); // TreeMap 自动按照 key 排序
params.put("360buy_param_json", paramJsonStr);
params.put("app_key", appKey);
params.put("method", method);
params.put("timestamp", timestamp);
params.put("v", version);
// 拼接签名字符串
StringBuilder signBuilder = new StringBuilder(appSecret);
for (Map.Entry<String, String> entry : params.entrySet()) {
signBuilder.append(entry.getKey()).append(entry.getValue());
}
signBuilder.append(appSecret);
// 计算 MD5 签名
String sign = md5(signBuilder.toString()).toUpperCase();
// 返回最终签名
return sign;
}
private static String md5(String input) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digest = md.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
hexString.append(String.format("%02x", b));
}
return hexString.toString();
}
public static void main(String[] args) throws Exception {
String appKey = "CE3360330396998664698BADF532C298";
String appSecret = "9d87285c00df44b3be2ffa1d2c9be572";
String method = "jingdong.jd3cs.order.queryOrderEvaluate";
String version = "2.0";
// 360buy_param_json 参数
Map<String, Object> paramJson = new LinkedHashMap<>();
paramJson.put("appId", appKey);
paramJson.put("venderCode", "");
Map<String, Object> data = new LinkedHashMap<>();
data.put("startTime", 1640966400);
data.put("endTime", 1641052800);
data.put("pageNo", 1);
data.put("serviceTypeId", 501);
data.put("orderNos", Arrays.asList("PH0121121900004842", "PH0122030800165609"));
paramJson.put("data", data);
paramJson.put("createBy", "张三");
// 生成签名
String sign = generateJdSignature(appKey, appSecret, method, paramJson, version);
System.out.println("签名:" + sign);
}
}
package com.zxr.moduleTest01.annotation.myAnnotation;
import java.lang.annotation.*;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TimeLog {
String value() default "";
}
package com.zxr.moduleTest01.annotation.myAspect;
import com.zxr.moduleTest01.annotation.myAnnotation.TimeLog;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
@Aspect
@Component
public class TimeLogAspect {
@Around("@annotation(com.zxr.moduleTest01.annotation.myAnnotation.TimeLog)")
public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{
long start = System.currentTimeMillis();
Object result = proceedingJoinPoint.proceed();
long end = System.currentTimeMillis();
MethodSignature signature = (MethodSignature) proceedingJoinPoint.getSignature();
Method method = signature.getMethod();
TimeLog timeLog = method.getAnnotation(TimeLog.class);
System.out.println("⏱ 方法 [" + method.getName() + "] 执行耗时: " + (end - start) + " ms");
if (!timeLog.value().isEmpty()) {
System.out.println("📌 说明: " + timeLog.value());
}
return result;
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment