package com.yeshi.fanli.controller.admin; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.dto.dynamic.ActivityUserRule; import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.service.inter.activity.ActivityUserService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.FilePathEnum; import com.yeshi.fanli.util.StringUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @Controller @RequestMapping("admin/new/api/v1/activityuser") public class ActivityUserAdminController { @Resource private ActivityUserService activityUserService; private String uploadPic(MultipartFile file) { // 文件解析 try { InputStream inputStream = file.getInputStream(); String contentType = file.getContentType(); String type = contentType.substring(contentType.indexOf("/") + 1); // 文件路径 String filePath = FilePathEnum.activityUserPortrait.getPath() + UUID.randomUUID().toString().replace("-", "") + "." + type; // 执行上传 String fileLink = COSManager.getInstance().uploadFile(inputStream, filePath).getUrl(); return fileLink; } catch (IOException e) { e.printStackTrace(); } return null; } /** * 获取活动用户列表 * * @param callback * @param out */ @RequestMapping(value = "listActivityUserRules") public void listActivityUserRules(String callback, PrintWriter out) { ActivityUserRule[] rules = ActivityRuleUser.RULES; JSONArray array = new JSONArray(); for (ActivityUserRule rule : rules) { array.add(rule); } out.print(callback + "(" + JsonUtil.loadTrueResult(array) + ")"); } /** * 获取用户列表 * * @param callback * @param rule * @param out */ @RequestMapping(value = "listActivityUser") public void listActivityUser(String callback, Integer rule, int pageIndex, int pageSize, PrintWriter out) { List list = activityUserService.listByRuleCode(rule, 1, 100); long count = activityUserService.countByRuleCode(rule); JSONObject data = new JSONObject(); JSONArray dataArray = new JSONArray(); Map ruleMap = new HashMap<>(); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm").create(); for (ActivityUserRule r : ActivityRuleUser.RULES) ruleMap.put(r.getRuleCode(), r); for (ActivityRuleUser r : list) { if (r.getRuleCode() != null) r.setRule(ruleMap.get(r.getRuleCode())); dataArray.add(gson.toJson(r)); } data.put("data", dataArray); data.put("pe", new PageEntity(pageIndex, pageSize, count, (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1))); if (StringUtil.isNullOrEmpty(callback)) { out.print(JsonUtil.loadTrueResult(data)); } else { out.print(callback + "(" + JsonUtil.loadTrueResult(data) + ")"); } } @RequestMapping(value = "deleteActivityUser") public void deleteActivityUsers(String callback, String ids, PrintWriter out) { JSONArray array = JSONArray.fromObject(ids); for (int i = 0; i < array.size(); i++) { // 删除 if (array.optLong(i) != 1L) { activityUserService.deleteByRuleUserId(array.optLong(i)); } } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("删除成功")); } @RequestMapping(value = "saveActivityUser") public void save(String callback, ActivityRuleUser user, HttpServletRequest request, PrintWriter out) { if (user == null || user.getRuleCode() == null || user.getActivityUser() == null) { out.print(callback + "(" + JsonUtil.loadFalseResult("数据不完整") + ")"); return; } String picUrl = null; if (request instanceof MultipartHttpServletRequest) { MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request; MultipartFile multipartFile = fileRequest.getFile("file"); if (multipartFile != null) picUrl = uploadPic(multipartFile); } if (user.getId() != null)// 更改 { ActivityRuleUser old = activityUserService.selectRuleUserByPrimaryKey(user.getId()); if (old != null) { // 更改里面的用户与昵称 if (old.getActivityUser() != null) { ActivityUser update = new ActivityUser(old.getActivityUser().getId()); update.setNickName(user.getActivityUser().getNickName()); update.setPortrait(picUrl); activityUserService.updateActivityUser(update); } } user.setActivityUser(null); activityUserService.updateActivityRuleUser(user); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("保存成功")); } else {// 新增 user.getActivityUser().setPortrait(picUrl); activityUserService.addActivityRuleUser(user); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("保存成功")); } } }