| | |
| | | package com.yeshi.fanli.controller.client.v1;
|
| | |
|
| | | import java.io.IOException;
|
| | | import java.io.PrintWriter;
|
| | | import java.lang.reflect.Type;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | 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.entity.FileUploadResult;
|
| | | import org.yeshi.utils.tencentcloud.COSManager;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | | import com.google.gson.GsonBuilder;
|
| | | import com.google.gson.JsonElement;
|
| | | import com.google.gson.JsonPrimitive;
|
| | | import com.google.gson.JsonSerializationContext;
|
| | | import com.google.gson.JsonSerializer;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.GiveVIPApplyInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
|
| | | import com.yeshi.fanli.exception.ParamsException;
|
| | | import com.yeshi.fanli.exception.user.vip.GiveVIPApplyInfoException;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.vip.GiveVIPApplyInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.FilePathEnum;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.factory.user.vip.GiveVIPApplyInfoRecordVOFactory;
|
| | | import com.yeshi.fanli.vo.user.vip.GiveVIPApplyInfoRecordVO;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | /**
|
| | | * 会员
|
| | | * @author Administrator
|
| | | *
|
| | | */
|
| | | @Controller
|
| | | @RequestMapping("api/v1/user/vip")
|
| | | public class UserVipController {
|
| | |
|
| | | // 会员申请
|
| | | @Resource
|
| | | private GiveVIPApplyInfoService giveVIPApplyInfoService;
|
| | |
|
| | | @Resource
|
| | | private UserVipConfigService userVipConfigService;
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleDetailService threeSaleDetailService;
|
| | |
|
| | | @RequestMapping(value = "applyVip")
|
| | | public void applyVip(AcceptData acceptData, GiveVIPApplyInfo info, String callback, PrintWriter out) {
|
| | | // TODO 查询开通人是否为他的下级
|
| | |
|
| | | try {
|
| | | info = giveVIPApplyInfoService.addGiveVIPApplyInfo(info);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("申请成功"));
|
| | | } catch (ParamsException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请将信息填写完整"));
|
| | | } catch (GiveVIPApplyInfoException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
|
| | | }
|
| | | }
|
| | |
|
| | | // 提交申请信息
|
| | | @RequestMapping(value = "uploadApplyInfo")
|
| | | public void uploadApplyInfo(AcceptData acceptData, GiveVIPApplyInfo info, String callback,
|
| | | HttpServletRequest request, PrintWriter out) {
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(info.getId())) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请ID为空"));
|
| | | return;
|
| | | }
|
| | |
|
| | | GiveVIPApplyInfo oldInfo = giveVIPApplyInfoService.selectByPrimaryKey(info.getId());
|
| | | if (oldInfo == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请记录不存在"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (oldInfo.getState() != GiveVIPApplyInfo.STATE_NO_INFO) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("资料以及提交"));
|
| | | return;
|
| | | }
|
| | |
|
| | | List<MultipartFile> files = new ArrayList<MultipartFile>();
|
| | | // 有文件
|
| | | if (request instanceof MultipartHttpServletRequest) {
|
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
| | | Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
| | | for (String key : fileMap.keySet()) {
|
| | | MultipartFile file = fileMap.get(key);
|
| | | files.add(file);
|
| | | }
|
| | | }
|
| | |
|
| | | // 保存成功后再上传文件
|
| | | if (files.size() > 0) {
|
| | | List<String> imgList = new ArrayList<>();
|
| | | for (MultipartFile file : files) {
|
| | | String fileName = info.getSourceUid() + "_" + System.currentTimeMillis() + "_"
|
| | | + file.getOriginalFilename();
|
| | | fileName = FilePathEnum.vipApply.getPath() + fileName;
|
| | | try {
|
| | | FileUploadResult result = COSManager.getInstance().uploadFile(file.getInputStream(), fileName);
|
| | | imgList.add(result.getUrl());
|
| | | } catch (IOException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | // 设置图片
|
| | | if (imgList.size() > 0)
|
| | | info.setImgList(imgList);
|
| | | info.setState(GiveVIPApplyInfo.STATE_NOT_VERIFY);
|
| | | giveVIPApplyInfoService.updateGiveVIPApplyInfo(info);
|
| | | }
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("资料提交成功"));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "getApplyRecordList")
|
| | | public void getApplyRecordList(AcceptData acceptData, Long uid, int page, String callback, PrintWriter out) {
|
| | | if (uid == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (Constant.IS_TEST) {
|
| | | page = 1;
|
| | | }
|
| | | List<GiveVIPApplyInfo> list = giveVIPApplyInfoService.listByTargetUid(uid, page, Constant.PAGE_SIZE);
|
| | | long count = giveVIPApplyInfoService.countByTargetUid(uid);
|
| | | String uploadInfoLink = userVipConfigService.getValueByKey("apply_vip_upload_info_link");
|
| | | String vipLink = userVipConfigService.getValueByKey("vip_link");
|
| | |
|
| | | List<GiveVIPApplyInfoRecordVO> recordList = new ArrayList<>();
|
| | | for (GiveVIPApplyInfo info : list) {
|
| | | recordList.add(GiveVIPApplyInfoRecordVOFactory.create(info, uploadInfoLink, vipLink));
|
| | | }
|
| | |
|
| | | GsonBuilder gb = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new JsonSerializer<Date>() {
|
| | |
|
| | | public JsonElement serialize(Date arg0, Type arg1, JsonSerializationContext arg2) {
|
| | | return new JsonPrimitive(TimeUtil.getGernalTime(arg0.getTime(), "yyyy.MM.dd HH:mm"));
|
| | | }
|
| | | }).registerTypeAdapter(UserLevelEnum.class, new JsonSerializer<UserLevelEnum>() {
|
| | |
|
| | | public JsonElement serialize(UserLevelEnum arg0, Type arg1, JsonSerializationContext arg2) {
|
| | | return new JsonPrimitive(arg0.getName());
|
| | | }
|
| | | });
|
| | |
|
| | | Gson gson = gb.create();
|
| | |
|
| | | if (Constant.IS_TEST) {
|
| | | count = 100;
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", gson.toJson(recordList));
|
| | | data.put("count", count);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.controller.client.v1; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.lang.reflect.Type; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | 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.entity.FileUploadResult; |
| | | import org.yeshi.utils.tencentcloud.COSManager; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.JsonElement; |
| | | import com.google.gson.JsonPrimitive; |
| | | import com.google.gson.JsonSerializationContext; |
| | | import com.google.gson.JsonSerializer; |
| | | import com.yeshi.fanli.entity.accept.AcceptData; |
| | | import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail; |
| | | import com.yeshi.fanli.entity.bus.user.vip.GiveVIPApplyInfo; |
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; |
| | | import com.yeshi.fanli.exception.ParamsException; |
| | | import com.yeshi.fanli.exception.user.vip.GiveVIPApplyInfoException; |
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService; |
| | | import com.yeshi.fanli.service.inter.user.vip.GiveVIPApplyInfoService; |
| | | import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.FilePathEnum; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import org.yeshi.utils.TimeUtil; |
| | | import com.yeshi.fanli.util.factory.user.vip.GiveVIPApplyInfoRecordVOFactory; |
| | | import com.yeshi.fanli.vo.user.vip.GiveVIPApplyInfoRecordVO; |
| | | |
| | | import net.sf.json.JSONObject; |
| | | |
| | | /** |
| | | * 会员 |
| | | * @author Administrator |
| | | * |
| | | */ |
| | | @Controller |
| | | @RequestMapping("api/v1/user/vip") |
| | | public class UserVipController { |
| | | |
| | | // 会员申请 |
| | | @Resource |
| | | private GiveVIPApplyInfoService giveVIPApplyInfoService; |
| | | |
| | | @Resource |
| | | private UserVipConfigService userVipConfigService; |
| | | |
| | | @Resource |
| | | private ThreeSaleDetailService threeSaleDetailService; |
| | | |
| | | @RequestMapping(value = "applyVip") |
| | | public void applyVip(AcceptData acceptData, GiveVIPApplyInfo info, String callback, PrintWriter out) { |
| | | // 查询开通人是否为他的下级 |
| | | ThreeSaleDetail detail = threeSaleDetailService.getByBossUidAndWorkerUid(info.getSourceUid(), |
| | | info.getTargetUid()); |
| | | if (detail == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户不是您的粉丝")); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | info = giveVIPApplyInfoService.addGiveVIPApplyInfo(info); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("申请成功")); |
| | | } catch (ParamsException e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请将信息填写完整")); |
| | | } catch (GiveVIPApplyInfoException e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "getApplyInfo") |
| | | public void getApplyInfo(AcceptData acceptData, String id, Long uid, String callback, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请上传id")); |
| | | return; |
| | | } |
| | | |
| | | GiveVIPApplyInfo info = giveVIPApplyInfoService.selectByPrimaryKey(id); |
| | | if (info == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请信息不存在")); |
| | | return; |
| | | } |
| | | |
| | | // 查询开通人是否为他的下级 |
| | | ThreeSaleDetail detail = threeSaleDetailService.getByBossUidAndWorkerUid(info.getSourceUid(), |
| | | info.getTargetUid()); |
| | | if (detail == null && info.getTargetUid().longValue() != uid) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该用户不是您的粉丝")); |
| | | return; |
| | | } |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(info))); |
| | | |
| | | } |
| | | |
| | | // 提交申请信息 |
| | | @RequestMapping(value = "uploadApplyInfo") |
| | | public void uploadApplyInfo(AcceptData acceptData, GiveVIPApplyInfo info, String callback, |
| | | HttpServletRequest request, PrintWriter out) { |
| | | |
| | | if (StringUtil.isNullOrEmpty(info.getId())) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请ID为空")); |
| | | return; |
| | | } |
| | | |
| | | GiveVIPApplyInfo oldInfo = giveVIPApplyInfoService.selectByPrimaryKey(info.getId()); |
| | | if (oldInfo == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("申请记录不存在")); |
| | | return; |
| | | } |
| | | |
| | | if (oldInfo.getState() != GiveVIPApplyInfo.STATE_NO_INFO) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("资料以及提交")); |
| | | return; |
| | | } |
| | | |
| | | List<MultipartFile> files = new ArrayList<MultipartFile>(); |
| | | // 有文件 |
| | | if (request instanceof MultipartHttpServletRequest) { |
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
| | | for (String key : fileMap.keySet()) { |
| | | MultipartFile file = fileMap.get(key); |
| | | files.add(file); |
| | | } |
| | | } |
| | | |
| | | // 保存成功后再上传文件 |
| | | if (files.size() > 0) { |
| | | List<String> imgList = new ArrayList<>(); |
| | | for (MultipartFile file : files) { |
| | | String fileName = info.getSourceUid() + "_" + System.currentTimeMillis() + "_" |
| | | + file.getOriginalFilename(); |
| | | fileName = FilePathEnum.vipApply.getPath() + fileName; |
| | | try { |
| | | FileUploadResult result = COSManager.getInstance().uploadFile(file.getInputStream(), fileName); |
| | | imgList.add(result.getUrl()); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | // 设置图片 |
| | | if (imgList.size() > 0) |
| | | info.setImgList(imgList); |
| | | info.setState(GiveVIPApplyInfo.STATE_NOT_VERIFY); |
| | | |
| | | } |
| | | giveVIPApplyInfoService.updateGiveVIPApplyInfo(info); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("资料提交成功")); |
| | | } |
| | | |
| | | @RequestMapping(value = "getApplyRecordList") |
| | | public void getApplyRecordList(AcceptData acceptData, Long uid, int page, String callback, PrintWriter out) { |
| | | if (uid == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (Constant.IS_TEST) { |
| | | page = 1; |
| | | } |
| | | List<GiveVIPApplyInfo> list = giveVIPApplyInfoService.listBySourceUid(uid, page, Constant.PAGE_SIZE); |
| | | long count = giveVIPApplyInfoService.countBySourceUid(uid); |
| | | String uploadInfoLink = userVipConfigService.getValueByKey("apply_vip_upload_info_link"); |
| | | String vipLink = userVipConfigService.getValueByKey("vip_link"); |
| | | |
| | | List<GiveVIPApplyInfoRecordVO> recordList = new ArrayList<>(); |
| | | for (GiveVIPApplyInfo info : list) { |
| | | recordList.add(GiveVIPApplyInfoRecordVOFactory.create(info, uploadInfoLink, vipLink)); |
| | | } |
| | | |
| | | GsonBuilder gb = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new JsonSerializer<Date>() { |
| | | |
| | | public JsonElement serialize(Date arg0, Type arg1, JsonSerializationContext arg2) { |
| | | return new JsonPrimitive(TimeUtil.getGernalTime(arg0.getTime(), "yyyy.MM.dd HH:mm")); |
| | | } |
| | | }).registerTypeAdapter(UserLevelEnum.class, new JsonSerializer<UserLevelEnum>() { |
| | | |
| | | public JsonElement serialize(UserLevelEnum arg0, Type arg1, JsonSerializationContext arg2) { |
| | | return new JsonPrimitive(arg0.getName()); |
| | | } |
| | | }); |
| | | |
| | | Gson gson = gb.create(); |
| | | |
| | | // if (Constant.IS_TEST) { |
| | | // count = 100; |
| | | // } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("list", gson.toJson(recordList)); |
| | | data.put("count", count); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | } |