Pu Zhibing
2025-05-08 5b64f31f1d35b38b51935b5fa7f4b8cf46fbf4cf
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
@@ -1,16 +1,29 @@
package com.ruoyi.other.controller;
import java.time.LocalDateTime;
import java.util.Date;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.THtml;
import com.ruoyi.other.api.domain.TIntegralRule;
import com.ruoyi.other.api.dto.SaveIntegralDTO;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.dto.SaveHtml;
import com.ruoyi.other.service.THtmlService;
import com.ruoyi.other.service.TIntegralRuleService;
import com.ruoyi.other.service.TVipService;
import com.ruoyi.system.api.model.LoginUserApplet;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -32,18 +45,87 @@
    private THtmlService htmlService;
    @Autowired
    private TIntegralRuleService integralRuleService;
    @Autowired
    private AppUserClient appUserClient;
    /**
     * 远程调用 获取首次添加车辆可获得积分
     * @return
     */
    @PostMapping("/getAddCarIntegral")
    public R<Integer> getAddCarIntegral() {
        TIntegralRule one = integralRuleService.getOne(null);
        String addVehiclesEarnsPoints = one.getAddVehiclesEarnsPoints();
        JSONObject jsonObject = JSON.parseObject(addVehiclesEarnsPoints);
        Integer point = 0;
        //增加车牌50分,必填
        point += jsonObject.getInteger("num1");
        point += jsonObject.getInteger("num2");
        point += jsonObject.getInteger("num3");
        point += jsonObject.getInteger("num4");
        return R.ok(point);
    }
    @Autowired
    private TokenService tokenService;
    @Autowired
    private TVipService vipService;
    @RequiresPermissions(value = {"/IntegralSetting"}, logical = Logical.OR)
    @GetMapping("/getSet")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "获取积分设置")
    public R<TIntegralRule> getSet() {
        TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>());
        return R.ok(res);
    }
    @PostMapping("/getSet2")
    public R<TIntegralRule> getSet2() {
        TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>());
        return R.ok(res);
    }
    @GetMapping("/getSet1")
    @ApiOperation(tags = {"小程序-个人中心-签到"},value = "获取积分设置")
    public R<TIntegralRule> getSet1() {
        TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>());
        LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
        res.setIsDouble(0);
        if (loginUserApplet!=null){
            TAppUser data = appUserClient.getUserById(loginUserApplet.getUserId()).getData();
            if (data.getVipEndTime()!=null && data.getVipEndTime().isAfter(LocalDateTime.now())){
                TVip byId = vipService.getById(data.getVipId());
                Integer doubleIntegration = byId.getDoubleIntegration();
                if (doubleIntegration!=null&&doubleIntegration==1){
                    res.setIsDouble(1);
                }
            }
        }
        return R.ok(res);
    }
    @RequiresPermissions(value = {"/IntegralSetting"}, logical = Logical.OR)
    @PostMapping("/saveSet")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分设置")
    @Log(title = "【积分管理】保存积分设置", businessType = BusinessType.INSERT)
    public R saveSet(@RequestBody TIntegralRule dto) {
        integralRuleService.updateById(dto);
        TIntegralRule one = integralRuleService.getOne(null);
        if (one!=null){
            dto.setId(one.getId());
            integralRuleService.saveOrUpdate(dto);
        }else{
            integralRuleService.saveOrUpdate(dto);
        }
        return R.ok();
    }
    @RequiresPermissions(value = {"/vipSetting/html"}, logical = Logical.OR)
    @GetMapping("/getInfo")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "type 1=积分规则说明," +
            "2=会员折扣说明," +
@@ -58,41 +140,59 @@
            "11=开票说明")
    public R<String> getInfo(Integer type) {
        THtml g = htmlService.getOne(new QueryWrapper<THtml>().eq("type",type));
        if (g == null){
            return R.ok("");
        }
        return R.ok(g.getContent());
    }
    @GetMapping("/saveInfo")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分说明")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "info", value = "内容", required = true),
            @ApiImplicitParam(name = "type", value = "type 1=积分规则说明,\" +\n" +
                    "            \"2=会员折扣说明,\" +\n" +
                    "            \"3=优惠券说明,\" +\n" +
                    "            \"4=双倍积分说明,\" +\n" +
                    "            \"5=商城专享价说明,\" +\n" +
                    "            \"6=会员协议,\" +\n" +
                    "            \"7=用户协议,\" +\n" +
                    "            \"8=隐私协议,\" +\n" +
                    "            \"9=邀请好友说明,\" +\n" +
                    "            \"10=资质证明,\" +\n" +
                    "            \"11=开票说明\"", required = true),
    })
    public R saveInfo(String info,Integer type) {
    @GetMapping("/getInfo1")
    @ApiOperation(tags = {"小程序-积分管理"},value = "type 1=积分规则说明," +
            "2=会员折扣说明," +
            "3=优惠券说明," +
            "4=双倍积分说明," +
            "5=商城专享价说明," +
            "6=会员协议," +
            "7=用户协议," +
            "8=隐私协议," +
            "9=邀请好友说明," +
            "10=资质证明," +
            "11=开票说明")
    public R<String> getInfo1(Integer type) {
        THtml g = htmlService.getOne(new QueryWrapper<THtml>().eq("type",type));
        if (g == null){
            return R.ok("");
        }
        return R.ok(g.getContent());
    }
    @RequiresPermissions(value = {"/vipSetting/html"}, logical = Logical.OR)
    @PostMapping("/saveInfo")
    @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分说明")
    @Log(title = "【积分管理】保存积分说明", businessType = BusinessType.INSERT)
    public R saveInfo(@RequestBody SaveHtml dto) {
        THtml g = htmlService.getOne(new QueryWrapper<THtml>().eq("type",dto.getType()));
        if (g == null){
            THtml tHtml = new THtml();
            tHtml.setType(type);
            tHtml.setContent(info);
            tHtml.setCreateTime(LocalDateTime.now());
            tHtml.setDelFlag(false);
            tHtml.setType(dto.getType());
            tHtml.setContent(dto.getInfo());
            htmlService.save(tHtml);
        }else{
            g.setContent(info);
            g.setContent(dto.getInfo());
            htmlService.updateById(g);
        }
        return R.ok();
    }
    @GetMapping("/getIntegralRule")
    @ApiOperation(tags = {"小程序-充电记录"},value = "获取积分规则设置")
    public AjaxResult<String> getIntegralRule(){
        TIntegralRule one = integralRuleService.getOne(null);
        return AjaxResult.success(one);
    }
}