addFeedback static method

Future<String> addFeedback(
  1. String userId,
  2. String content,
  3. String contactDetail,
  4. List<File>? files,
)

新增意见反馈 userId 用户id content 反馈内容 contactDetail 联系方式 files 图片文件数组 可空

Implementation

static Future<String> addFeedback(String userId,String content,String contactDetail,List<File>? files) async {
  Map<String,String> headers = {
    'tenantId': '10002',
    'token': SpUtil().getString(SpUtil.SP_KEY_ACCESS_TOKEN) ?? '',
    'appSource': 'Maxims',
    'reqSource': '1',
  };
  int timestamp = DateTime.now().millisecondsSinceEpoch;
  String randomStr = CipherUtil.generateRandomString(6);
  List<MultipartFile> multipartFileList = [];
  if(files != null && files.isNotEmpty) {
    for(File file in files) {
      String suffix = file.path.substring(file.path.lastIndexOf('.') + 1);
      MultipartFile multipartFile = await MultipartFile.fromFile(file.path,contentType: MediaType('image',suffix));
      multipartFileList.add(multipartFile);
      log("multipartFile: ${multipartFile.filename}");
    }
  }
  Map<String,dynamic> data = {
    'timestamp': timestamp,
    'appKey': BaseHttpConstant.APP_BUSINESS_KEY,
    'nonceStr': randomStr,
    'signVersion': '1',
    'userId': userId,
    'content': content,
    'contactDetail': contactDetail,
    'files': multipartFileList,
  };
  if(files == null || files.isEmpty) {
    data.remove('files');
  }
  String sign = CipherUtil.generateSignature2(data, ["content", "contactDetail", "files","userId"], BaseHttpConstant.APP_BUSINESS_SECRET);
  data['sign'] = sign;
  Options options = Options(
    headers: headers,
    contentType: Headers.multipartFormDataContentType,
  );
  var result = await HttpUtils.post(true, Api.PATH_ADD_FEEDBACK,
      data: FormData.fromMap(data),
      options: options);
  return formatResponse(result);
}