AdminRegisteInviteCodeController.java 3.8 KB
Newer Older
街头小贩's avatar
街头小贩 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
package com.apobates.forum.thrones.admin.controller;

import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.apobates.forum.member.entity.RegisteInviteCode;
import com.apobates.forum.member.service.RegisteInviteCodeService;
import com.apobates.forum.member.storage.core.MemberSessionBean;
import com.apobates.forum.thrones.admin.controller.form.RegisterInvitecodeForm;
import com.apobates.forum.utils.Commons;
import com.apobates.forum.utils.FrontPageURL;
import com.apobates.forum.utils.TipMessage;
import com.apobates.forum.utils.persistence.Page;
import com.apobates.forum.utils.persistence.PageRequest;
import com.apobates.forum.utils.persistence.Pageable;

/**
 * 会员注册邀请码控制器
 *
 * @author xiaofanku@live.cn
 * @since 20190718
 */
@Controller
@RequestMapping(value = "/member/invitecode")
public class AdminRegisteInviteCodeController {
    @Autowired
    private RegisteInviteCodeService registeInviteCodeService;
    @Value("${site.pageSize}")
    private int pageSize;
    
    @GetMapping(path = "/")
    public String listPage(
            @RequestParam(value = "p", required = false, defaultValue = "1") int page,
            HttpServletRequest request,
            Model model) {
        FrontPageURL fpbuild = new FrontPageURL(request.getContextPath() + "/member/invitecode/").addPageSize("number", pageSize);
        Pageable pr = new PageRequest(page, fpbuild.getPageSize());
        Page<RegisteInviteCode> rs = registeInviteCodeService.get(pr);
        model.addAttribute("rs", rs.getResult().collect(Collectors.toList()));
        model.addAttribute("pageData", fpbuild.toPageData(pr, rs.getTotalElements()));
        return "admin/member_invitecode/index";
    }
    //创建
    @GetMapping(path = "/create")
    public String createForm(
            HttpServletRequest request,
            Model model) {
        RegisterInvitecodeForm form = new RegisterInvitecodeForm();
        form.setCode(Commons.randomAlphaNumeric(10));
        //
        form.setToken(Commons.randomAlphaNumeric(8));
        model.addAttribute("form", form);
        return "admin/member_invitecode/create";
    }
    
    @PostMapping(path = "/create")
    public String createAction(
            @ModelAttribute("form") RegisterInvitecodeForm form,
            MemberSessionBean mbean,
            HttpServletRequest request,
            Model model) {
        Long primaryKey = registeInviteCodeService.create(mbean.getNickname(), form.getCode()).orElse(0L);
        if (primaryKey > 0) {
            return "redirect:/member/invitecode/";
        }
        form.setToken(Commons.randomAlphaNumeric(8));
        model.addAttribute("form", form);
        return "admin/member_invitecode/create";
    }
    //禁用
    @PostMapping(path = "/remove", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public TipMessage removeInvitecodeAction(
            @RequestParam("id") long id,
            MemberSessionBean mbean,
            HttpServletRequest request,
            Model model) {
        boolean symbol = registeInviteCodeService.remove(id).orElse(false);
        if (symbol) {
            return TipMessage.ofSuccess("邀请码删除成功");
        }
        return TipMessage.ofError("操作失败");
    }
}