123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- package com.caimei.controller.admin.vip;
- import com.alibaba.fastjson.JSONObject;
- import com.caimei.annotation.CurrentUser;
- import com.caimei.model.ResponseJson;
- import com.caimei.model.po.SysMenu;
- import com.caimei.model.po.SysUser;
- import com.caimei.model.vo.*;
- import com.caimei.service.vip.VipService;
- import com.github.pagehelper.PageInfo;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import lombok.RequiredArgsConstructor;
- import org.springframework.web.bind.annotation.*;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * 用户公共API
- *
- * @author : Aslee
- * @date : 2021/5/11
- */
- @Api(tags = "会员API")
- @RestController
- @RequiredArgsConstructor
- @RequestMapping("/vip")
- public class VipApi {
- private final VipService vipService;
- @ApiOperation("会员套餐/订制服务配置")
- @ApiImplicitParam(name = "params", value = "packageList([{duration:2;unit:1;orginalPrice:999;price:888}]):套餐列表;serviceList([{name:111}]):订制服务列表;", required = true)
- @PostMapping("/configure")
- public ResponseJson configureVip(@RequestBody String params) {
- JSONObject parseObject = JSONObject.parseObject(params);
- List<Map<String,Object>> packageList = (List<Map<String,Object>>) parseObject.get("packageList");
- List<Map<String,String>> serviceList = (List<Map<String,String>>) parseObject.get("serviceList");
- if (null == packageList || packageList.size() <= 0) {
- return ResponseJson.error("参数异常,套餐列表不能为空");
- }
- if (null == serviceList || serviceList.size() <= 0) {
- return ResponseJson.error("参数异常,订制服务列表不能为空");
- }
- return vipService.configureVip(packageList, serviceList);
- }
- @ApiOperation("会员套餐/订制服务回显数据")
- @GetMapping("/configure/form")
- public ResponseJson<VipConfigurationVo> configureVipForm() {
- return vipService.configureVipForm();
- }
- @ApiOperation("在线支付开通会员")
- @ApiImplicitParams({
- @ApiImplicitParam(required = false, name = "packageId", value = "会员套餐id"),
- @ApiImplicitParam(required = false, name = "services", value = "订制服务id,以,分开")
- })
- @GetMapping("/pay")
- public ResponseJson<Integer> payVip(@CurrentUser SysUser sysUser, Integer packageId, String services) {
- if (null == sysUser) {
- return ResponseJson.error("用户信息异常", null);
- }
- // 获取供应商用户id
- Integer userIdentity = sysUser.getUserIdentity();
- Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
- if (null == authUserId) {
- return ResponseJson.error("供应商用户id不能为空", null);
- }
- if (null == packageId) {
- return ResponseJson.error("参数异常,套餐id不能为空", null);
- }
- return vipService.payVip(authUserId, packageId, services, 1, 0, null);
- }
- @ApiOperation("会员列表")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "shopName", required = false, value = "供应商名称"),
- @ApiImplicitParam(name = "shopType", required = false, value = "供应商类型:1品牌方,2代理商"),
- @ApiImplicitParam(name = "vipStatus", required = false, value = "会员状态:0已过期,1生效中"),
- @ApiImplicitParam(name = "mobile", required = false, value = "手机号"),
- @ApiImplicitParam(name = "linkMan", required = false, value = "联系人"),
- @ApiImplicitParam(name = "pageNum", required = false, value = "第几页"),
- @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
- })
- @GetMapping("/list")
- public ResponseJson<PageInfo<VipListVo>> vipList(String shopName, Integer shopType,Integer vipStatus, String mobile, String linkMan,
- @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
- @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
- return vipService.vipList(shopName, shopType, vipStatus, mobile, linkMan, pageNum, pageSize);
- }
- @ApiOperation("供应商会员购买记录")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "authUserId", required = false, value = "供应商用户id"),
- @ApiImplicitParam(name = "vipPackageId", required = false, value = "会员套餐id"),
- @ApiImplicitParam(name = "vipStatus", required = false, value = "会员状态:0已过期,1生效中,2待生效"),
- @ApiImplicitParam(name = "payBeginTime", required = false, value = "购买开始时间"),
- @ApiImplicitParam(name = "payEndTime", required = false, value = "购买结束时间"),
- @ApiImplicitParam(name = "endBeginTime", required = false, value = "到期开始时间"),
- @ApiImplicitParam(name = "endEndTime", required = false, value = "到期结束时间"),
- @ApiImplicitParam(name = "pageNum", required = false, value = "第几页"),
- @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
- })
- @GetMapping("/history/list")
- public ResponseJson<PageInfo<VipHistoryListVo>> vipHistoryList(@CurrentUser SysUser sysUser, Integer authUserId, Integer vipPackageId, Integer vipStatus, String payBeginTime,
- String payEndTime, String endBeginTime, String endEndTime,
- @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
- @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
- // 管理员/供应商公用接口,管理员调用时传authUserId,供应商调用不传
- if (null != sysUser && 1 != sysUser.getId()) {
- // 获取供应商用户id
- Integer userIdentity = sysUser.getUserIdentity();
- authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
- if (null == authUserId) {
- return ResponseJson.error("供应商用户id不能为空", null);
- }
- } else if (null == authUserId) {
- return ResponseJson.error("供应商用户id不能为空", null);
- }
- return vipService.vipHistoryList(authUserId, vipPackageId, vipStatus, payBeginTime, payEndTime, endBeginTime, endEndTime, pageNum, pageSize);
- }
- @ApiOperation("会员数据")
- @GetMapping("/info")
- public ResponseJson<VipInfoVo> vipInfo(@CurrentUser SysUser sysUser) {
- if (null == sysUser) {
- return ResponseJson.error("用户信息异常", null);
- }
- // 获取供应商用户id
- Integer userIdentity = sysUser.getUserIdentity();
- Integer authUserId = 2 == userIdentity ? sysUser.getId() : 3 == userIdentity ? sysUser.getParentId() : null;
- if (null == authUserId) {
- return ResponseJson.error("供应商用户id不能为空", null);
- }
- return vipService.getVipInfo(authUserId);
- }
- @ApiOperation("会员套餐列表")
- @GetMapping("/package/list")
- public ResponseJson<List<VipPackageVo>> packageList() {
- return vipService.vipPackageList();
- }
- @ApiOperation("赠送会员")
- @ApiImplicitParam(name = "params", value = "authUserId:用户id;packageId:会员套餐id;", required = true)
- @PostMapping("/send")
- public ResponseJson sendVip(@RequestBody String params) {
- JSONObject parseObject = JSONObject.parseObject(params);
- Integer authUserId = parseObject.getInteger("authUserId");
- Integer packageId = parseObject.getInteger("packageId");
- if (null == authUserId) {
- return ResponseJson.error("参数异常,套餐列表不能为空");
- }
- if (null == packageId) {
- return ResponseJson.error("参数异常,会员套餐id不能为空");
- }
- return vipService.payVip(authUserId, packageId, "", 2, 1, new Date());
- }
- @ApiOperation("会员服务配置表单数据")
- @GetMapping("/menus/form")
- public ResponseJson<Map<String,Object>> vipMenusForm(){
- return vipService.vipMenusForm();
- }
- @ApiOperation("会员服务配置")
- @PostMapping("/menus/configure")
- public ResponseJson vipMenusConfigure(@RequestBody String params){
- JSONObject parseObject = JSONObject.parseObject(params);
- List<Map<String,Object>> baseMenuList = (List<Map<String,Object>>) parseObject.get("baseMenuList");
- List<Map<String,Object>> upMenuList = (List<Map<String,Object>>) parseObject.get("upMenuList");
- return vipService.vipMenusConfigure(baseMenuList,upMenuList);
- }
- @ApiOperation("会员订制化服务配置表单")
- @ApiImplicitParam(name = "authUserId", value = "authUserId:用户id", required = true)
- @GetMapping("/services/form")
- public ResponseJson<List<SysMenu>> vipServicesForm(Integer authUserId){
- return vipService.vipServicesForm(authUserId);
- }
- @ApiOperation("会员订制化服务配置")
- @ApiImplicitParam(name = "params", value = "authUserId:用户id;roleIds:配置的角色id,以,隔开", required = true)
- @PostMapping("/services/configure")
- public ResponseJson vipServicesConfigure(@RequestBody String params){
- JSONObject parseObject = JSONObject.parseObject(params);
- Integer authUserId = parseObject.getInteger("authUserId");
- String roleIds = parseObject.getString("roleIds");
- return vipService.vipServicesConfigure(authUserId, roleIds);
- }
- }
|