addFeedback static method
新增意见反馈
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);
}