package com.matrix.system.hive.action; 
 | 
  
 | 
import com.matrix.core.pojo.AjaxResult; 
 | 
import com.matrix.core.pojo.PaginationVO; 
 | 
import com.matrix.core.tools.WebUtil; 
 | 
import com.matrix.system.constance.Dictionary; 
 | 
import com.matrix.system.hive.bean.MoneyCardUse; 
 | 
import com.matrix.system.hive.bean.SysProjUse; 
 | 
import com.matrix.system.hive.dao.SysProjUseDao; 
 | 
import com.matrix.system.hive.service.MoneyCardUseService; 
 | 
import com.matrix.system.hive.service.SysProjUseService; 
 | 
import com.matrix.system.hive.service.SysProjuseFreezeService; 
 | 
import org.apache.commons.collections.CollectionUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Controller; 
 | 
import org.springframework.web.bind.annotation.RequestMapping; 
 | 
import org.springframework.web.bind.annotation.ResponseBody; 
 | 
  
 | 
import javax.annotation.Resource; 
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
  
 | 
/** 
 | 
 * 会员套餐管理 
 | 
 * 
 | 
 * @author guchunxia 
 | 
 * @date 2016-09-03 
 | 
 */ 
 | 
@Controller 
 | 
@RequestMapping(value = "admin/taoCanUser") 
 | 
public class TaocanController extends BaseController { 
 | 
    @Resource 
 | 
    private SysProjUseService sysProjUseService; 
 | 
  
 | 
    @Autowired 
 | 
    private SysProjUseDao projUseDao; 
 | 
  
 | 
    @Resource 
 | 
    private SysProjuseFreezeService sysProjuseFreezeService; 
 | 
  
 | 
    @Resource 
 | 
    private MoneyCardUseService moneyCardUseService; 
 | 
  
 | 
  
 | 
    public static final String fnCode = "projUse"; 
 | 
    public static final String search = fnCode + ":search"; 
 | 
    public static final String edit = fnCode + ":edit"; 
 | 
    public static final String del = fnCode + ":del"; 
 | 
    public static final String add = fnCode + ":add"; 
 | 
  
 | 
    /** 
 | 
     * 查看会员套餐使用情况 
 | 
     * 
 | 
     * @author guchunxia 
 | 
     * @date 2016-09-03 
 | 
     */ 
 | 
    @RequestMapping(value = "/showTc") 
 | 
    public @ResponseBody 
 | 
    AjaxResult showTc(PaginationVO pageVo, SysProjUse sysProjUse) { 
 | 
  
 | 
        sysProjUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC); 
 | 
        List<SysProjUse> projUseList =sysProjUseService.findInPage(sysProjUse,null); 
 | 
        //设置套餐中的项目 
 | 
        projUseList.forEach(taocanProjUse -> { 
 | 
            taocanProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(taocanProjUse.getId())); 
 | 
        }); 
 | 
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, projUseList, sysProjUseService.findTotal(sysProjUse)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 将套餐设置为有效 
 | 
     * 
 | 
     * @author guchunxia 
 | 
     * @date 2016-09-03 
 | 
     */ 
 | 
    @RequestMapping(value = "/activeTc") 
 | 
    public @ResponseBody 
 | 
    AjaxResult activeTc(SysProjUse sysProjUse) { 
 | 
  
 | 
        return sysProjUseService.activeTc(sysProjUse); 
 | 
  
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 将套餐设置为无效 
 | 
     * 
 | 
     * @author guchunxia 
 | 
     * @date 2016-09-03 
 | 
     */ 
 | 
    @RequestMapping(value = "/invalidTc") 
 | 
    public @ResponseBody 
 | 
    AjaxResult invalidTc(SysProjUse sysProjUse) { 
 | 
  
 | 
  
 | 
        int i = sysProjUseService.invalidTc(sysProjUse); 
 | 
        if (i > 0) { 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已设置为无效"); 
 | 
        } else { 
 | 
            return new AjaxResult(AjaxResult.STATUS_FAIL, "设置失败"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 转让套餐 
 | 
     * 
 | 
     * @param sysProjUse 转让信息 
 | 
     *                   被转让的会员id 
 | 
     * @return 
 | 
     * @author guchunxia 
 | 
     * @date 2016-09-04 
 | 
     */ 
 | 
    @RequestMapping(value = "/transferTc") 
 | 
    public @ResponseBody 
 | 
    AjaxResult transferTc(SysProjUse sysProjUse, Long vipId2) { 
 | 
  
 | 
        int i = sysProjUseService.transferTc(sysProjUse, vipId2); 
 | 
        if (i > 0) { 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "套餐转让成功"); 
 | 
        } 
 | 
        return new AjaxResult(AjaxResult.STATUS_FAIL, "套餐转让失败"); 
 | 
    } 
 | 
  
 | 
    @RequestMapping(value = "/returnTc") 
 | 
    public @ResponseBody 
 | 
    AjaxResult returnTc(SysProjUse sysProjUse, Long moneyCardUseId, String tcRemark, Long shopId, Double money, String tcName) { 
 | 
  
 | 
        System.out.println("moneyCardUseId = " + moneyCardUseId); 
 | 
        MoneyCardUse card = moneyCardUseService.findById(moneyCardUseId); 
 | 
        System.out.println("card = " + card); 
 | 
        int i = sysProjUseService.returnMoneyTc(sysProjUse, card, moneyCardUseId); 
 | 
        if (i > 0) { 
 | 
  
 | 
  
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "退款成功"); 
 | 
        } 
 | 
        return new AjaxResult(AjaxResult.STATUS_FAIL, "退款失败"); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 冻结会员套餐 
 | 
     * 
 | 
     * @param sysProjUse 
 | 
     * @return 
 | 
     */ 
 | 
    @RequestMapping(value = "/freezeTc") 
 | 
    public @ResponseBody 
 | 
    AjaxResult freezeTc(SysProjUse sysProjUse) { 
 | 
  
 | 
        int i = sysProjUseService.freezeTc(sysProjUse); 
 | 
        if (i > 0) { 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "冻结成功"); 
 | 
        } 
 | 
        return new AjaxResult(AjaxResult.STATUS_FAIL, "冻结失败"); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 退款 
 | 
     * 
 | 
     * @return 
 | 
     */ 
 | 
    @RequestMapping(value = "/getEffectCard") 
 | 
    public @ResponseBody 
 | 
    AjaxResult getEffectCard(SysProjUse sysProjUse) { 
 | 
        MoneyCardUse cardUse = null; 
 | 
        cardUse = moneyCardUseService.findByVipId(sysProjUse.getVipId()); 
 | 
        double money = sysProjUseService.getTotalMoneyTc(sysProjUse); 
 | 
        if (cardUse != null) { 
 | 
            cardUse.setRealMoney(money); 
 | 
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>(); 
 | 
            list.add(cardUse); 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "有有效会籍卡", list, null); 
 | 
        } else { 
 | 
            //无会员卡则new一个,为了把钱传递到前台 
 | 
            cardUse = new MoneyCardUse(); 
 | 
            cardUse.setRealMoney(money); 
 | 
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>(); 
 | 
            list.add(cardUse); 
 | 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "无有效会籍卡", list, null); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 进入套餐修改页面 
 | 
     * 
 | 
     * @return 
 | 
     */ 
 | 
    @RequestMapping(value = "/editForm") 
 | 
    public String editForm(Long id) { 
 | 
        if (id != null) { 
 | 
            SysProjUse sysProjUse = sysProjUseService.findById(id); 
 | 
            sysProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(sysProjUse.getId())); 
 | 
            WebUtil.getRequest().setAttribute("obj", sysProjUse); 
 | 
        } 
 | 
        return "admin/hive/vip/tc-form"; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 添加或修改会员套餐信息 
 | 
     */ 
 | 
    @RequestMapping(value = "/addOrModify") 
 | 
    public @ResponseBody 
 | 
    AjaxResult addOrModify(SysProjUse sysProjUse) { 
 | 
        if (sysProjUse.getId() != null) { 
 | 
            int modifyResult = sysProjUseService.modify(sysProjUse); 
 | 
  
 | 
            List<SysProjUse> modifyUse = sysProjUse.getTaocanProjUse(); 
 | 
  
 | 
            if (modifyResult > 0) { 
 | 
                if (CollectionUtils.isNotEmpty(modifyUse)) { 
 | 
                    for (SysProjUse use : modifyUse) { 
 | 
                        sysProjUseService.modify(use); 
 | 
                    } 
 | 
                } 
 | 
                return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); 
 | 
            } else { 
 | 
                return new AjaxResult(AjaxResult.STATUS_FAIL, "修改失败"); 
 | 
            } 
 | 
        } else { 
 | 
            return add(sysProjUseService, sysProjUse, "套餐"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |