doum
10 小时以前 eec6d612475e5080a9d3148d9c6ef20104a77b13
经销商管理
已修改14个文件
205 ■■■■ 文件已修改
admin/src/api/business/integral.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/member.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaChangeIntegralWindow.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberDetail.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/integral.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/integral.js
@@ -14,3 +14,7 @@
    download: true
  })
}
export function updateIntegral (data) {
  return request.post('/business/integral/updateIntegral', data)
}
admin/src/api/business/member.js
@@ -17,10 +17,6 @@
export function updateShop (data) {
  return request.post('/business/member/updateShop', data)
}
export function updateIntegral (data) {
  return request.post('/business/member/updateIntegral', data)
}
export function updateById (data) {
  return request.post('/business/member/updateById', data)
}
admin/src/components/business/OperaChangeIntegralWindow.vue
@@ -30,7 +30,6 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { allList as shopList } from '@/api/business/shop'
export default {
  name: 'OperaChangeShopWindow',
  extends: BaseOpera,
@@ -43,6 +42,7 @@
      form: {
        memberId: null,
        remark: null,
        userType:null,
        num: null,
        type: 0
      },
@@ -58,7 +58,7 @@
  },
  created () {
    this.config({
      api: '/business/member',
      api: '/business/integral',
      'field.id': 'id'
    })
  },
@@ -83,11 +83,12 @@
          })
      })
    },
    open (title, target) {
    open (title, target,userType) {
      this.title = title
      this.visible = true
      this.info = target
      this.form.type = 0
      this.form.userType = 0
      this.form.memberId = target.id
      this.form.num = null
      this.form.remark = null
admin/src/components/business/OperaMemberDetail.vue
@@ -60,6 +60,7 @@
              </el-table-column>
              <el-table-column prop="num" label="数量" fixed align="center" min-width="100px">  </el-table-column>
              <el-table-column prop="strObjType" label="消费类型" align="center" min-width="100px"></el-table-column>
              <el-table-column prop="content" label="消费内容" align="center" min-width="150px" show-overflow-tooltip></el-table-column>
              <el-table-column prop="orderCode" label="关联订单" align="center" min-width="150px"></el-table-column>
              <el-table-column prop="remark" label="备注" align="center" min-width="200px"></el-table-column>
              <el-table-column prop="createDate" label="变动时间" align="center" min-width="200px"></el-table-column>
@@ -92,7 +93,7 @@
export default {
  name: 'OperaShopGoodsWindow',
  extends: BaseTable,
  components: { GlobalWindow, TableLayout, Pagination, OperaChangeShopRecordWindow,OperaChangeIntegralWindow },
  components: { GlobalWindow, TableLayout, Pagination, OperaChangeShopRecordWindow, OperaChangeIntegralWindow },
  data () {
    return {
      title: '',
@@ -117,19 +118,15 @@
    })
  },
  methods: {
    successBiz(){
    successBiz () {
      this.handlePageChange()
      this.loadInfo()
      this.$emit('success')
    },
    loadInfo(){
    loadInfo () {
      detail(this.info.id).then(res => {
        this.info =res || this.info
        this.info = res || this.info
      })
    },
    loadInfo(){
      this.handlePageChange()
      this.$emit('success')
    },
    showChangeRecord () {
      if (this.info) {
@@ -138,7 +135,7 @@
    },
    changeIntegral () {
      if (this.info) {
        this.$refs.OperaChangeIntegralWindow.open('客户积分调整', this.info)
        this.$refs.OperaChangeIntegralWindow.open('客户积分调整', this.info, 0)
      }
    },
    open (title, goods) {
admin/src/views/business/integral.vue
@@ -73,9 +73,7 @@
          </template>
        </el-table-column>
        <el-table-column prop="num" align="center" label="数量" min-width="100px"></el-table-column>
<!--
        <el-table-column prop="totalNum" align="center" label="当前余额" min-width="100px"></el-table-column>
-->
        <el-table-column prop="strObjType" align="center" label="消费类型" min-width="100px"></el-table-column>
        <el-table-column prop="orderCode" align="center" label="交易单号" min-width="100px"></el-table-column>
        <el-table-column prop="content" align="center" label="收支说明" min-width="100px"></el-table-column>
@@ -134,7 +132,7 @@
      this.searchForm.endDate = ''
      this.$refs.searchForm.resetFields()
      this.search()
    },
  },
    }
  }
}
</script>
server/dmmall_admin/src/main/java/com/doumee/api/business/IntegralController.java
@@ -61,7 +61,13 @@
        integralService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("调整积分")
    @PostMapping("/updateIntegral")
    @RequiresPermissions("business:member:update")
    public ApiResponse updateIntegral(@RequestBody Integral param) {
        integralService.updateIntegral(param);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:integral:update")
server/dmmall_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -80,13 +80,6 @@
        memberService.updateShop(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("调整积分")
    @PostMapping("/updateIntegral")
    @RequiresPermissions("business:member:update")
    public ApiResponse updateIntegral(@RequestBody Integral param) {
        memberService.updateIntegral(param);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -866,13 +866,13 @@
        SHOP_YEAR_SETTLEMENT(18,"积分过期","积分过期,消耗${param}积分",0,0),
        ORDER_DONE_AMOUNT(16,"订单结算金额","订单结算金额",0,1),
        WITHDRAW_APPLY(17,"提现","提现",0,1),
        WITHDRAW_APPLY_BACK(19,"提现取消","余额提现取消退回",0,1),
        ORDER_DONE_AMOUNT_BACK(20,"订单结算退回","订单结算退回退回",0,1),
        ORDER_DONE_AMOUNT(16,"订单结算","${param}订单结算成功,获得¥${param1}元",0,1),//${param}订单编号,${param1}金额
        WITHDRAW_APPLY(17,"余额提现","余额提现已提交,消耗¥${param}元",0,1),
        WITHDRAW_APPLY_BACK(19,"提现退回","余额提现失败,获得¥${param}元",0,1),
        ORDER_DONE_AMOUNT_BACK(20,"订单结算退回","${param}订单结算退回,消耗¥${param1}元",0,1),//${param}订单编号,${param1}金额
        SHOP_ORDER(21,"消费返积分","会员${param}交易成功,获得${param1}积分",0,0),
        SHOP_ORDER(21,"消费返积分","会员${param}交易成功,获得${param1}积分",0,0),//${param}昵称-手机号
        SHOP_ORDER_CANCEL(22,"退单扣除","交易退款退回,消耗100积分",0,0),
        SHOP_SYSTEM_RECHARGE(23,"积分发放","平台奖励,获得${param}积分",0,0),
        SHOP_SYSTEM_DEDUCT(24,"积分扣除","平台扣减,消耗${param}积分",0,0),
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
@@ -152,5 +152,7 @@
     * @return
     */
    IntegralDataResponse getIntegralData(IntegralRecordDTO model);
    void updateIntegral(Integral param);
}
server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -197,5 +197,4 @@
    void updateShop(Member member);
    void updateIntegral(Integral param);
}
server/dmmall_service/src/main/java/com/doumee/service/business/ShopService.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Integral;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.web.dto.MemberDTO;
@@ -212,4 +213,5 @@
    String setGoodsPrice(Shop shop);
}
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -422,7 +422,86 @@
        return PageData.from(result);
    }
    @Override
    @Transactional
    public void updateIntegral(Integral param) {
        if(param.getMemberId()==null || param.getType()==null
                || param.getType()<0
                || param.getType()>2
                || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Date date = new Date();
        Integral integral = new Integral();
        Constants.IntegralObjType integralObjType =null;
        if(Constants.equalsInteger(param.getUserType(), Constants.ZERO)){
            MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>();
            queryWrapper.selectAll(Member.class);
            queryWrapper.selectAs(Shop::getName,Member::getShopName);
            queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId);
            queryWrapper.eq(Member::getId,param.getMemberId());
            Member model = memberMapper.selectJoinOne(Member.class,queryWrapper);
            if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户信息查询无效!");
            }
            BigDecimal num = param.getNum();
            if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){
                //如果是减少,判断用户余额是否满足
                num = num.multiply(new BigDecimal(-1));//减少
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!");
            }
            //账户余额
            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                    .eq(Member::getId,model.getId())
                    .set(Member::getEditDate,date)
                    .set(Member::getEditor,user.getId())
                    .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
                    .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
                    .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
            integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
            integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum()));
        }else{
            Shop model = shopMapper.selectById(param.getMemberId());
            if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"经销商信息查询无效!");
            }
            BigDecimal num = param.getNum();
            if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){
                //如果是减少,判断用户余额是否满足
                num = num.multiply(new BigDecimal(-1));//减少
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"经销商账户积分余额不足!");
            }
            //账户余额
            shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
                    .eq(Shop::getId,model.getId())
                    .set(Shop::getEditDate,date)
                    .set(Shop::getEditor,user.getId())
                    .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
                    .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
                    .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
             integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT;
            integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum()));
        }
        integral.setCreateDate(new Date());
        integral.setCreator(user.getId());
        integral.setIsdeleted(Constants.ZERO);
        integral.setNum(param.getNum());
        integral.setTitle(integralObjType.getName());
        integral.setContent(integralObjType.getNoteinfo().replace("${param}",integral.getNum().toString()));
        integral.setMemberId(param.getMemberId());
        integral.setObjId(param.getMemberId());
        integral.setObjType(integralObjType.getKey());
        integral.setType(param.getType());
        integral.setRemark(param.getRemark());
        integral.setOrderCode(null);
        integral.setUserType(Constants.ZERO);
        integralMapper.insert(integral);
    }
    @Override
    public IntegralDataResponse getIntegralData(IntegralRecordDTO model){
        IntegralDataResponse integralDataResponse = new IntegralDataResponse();
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -188,65 +188,6 @@
                JSONObject.toJSONString(member) ,
                model.getShopName(), shop.getName());
    }
    @Override
    @Transactional
    public void updateIntegral(Integral param) {
        if(param.getMemberId()==null || param.getType()==null
                || param.getType()<0
                || param.getType()>2
                || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Member.class);
        queryWrapper.selectAs(Shop::getName,Member::getShopName);
        queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId);
        queryWrapper.eq(Member::getId,param.getMemberId());
        Member model = memberMapper.selectJoinOne(Member.class,queryWrapper);
        if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户信息查询无效!");
        }
        BigDecimal num = param.getNum();
        if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){
            //如果是减少,判断用户余额是否满足
            num = num.multiply(new BigDecimal(-1));//减少
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!");
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Date date = new Date();
        //账户余额
        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                .eq(Member::getId,model.getId())
                .set(Member::getEditDate,date)
                .set(Member::getEditor,user.getId())
                .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
                .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
                .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
        Constants.IntegralObjType integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
        Integral integral = new Integral();
        integral.setMemberId(model.getId());
        integral.setCreateDate(new Date());
        integral.setCreator(user.getId());
        integral.setIsdeleted(Constants.ZERO);
        integral.setTitle(integralObjType.getName());
        integral.setContent(integralObjType.getNoteinfo());
        integral.setObjId(model.getId());
        integral.setObjType(integralObjType.getKey());
        integral.setType(param.getType());
        integral.setRemark(param.getRemark());
        integral.setNum(param.getNum());
        integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum()));
        integral.setOrderCode(null);
        integral.setUserType(Constants.ZERO);
        integralMapper.insert(integral);
    }
    @Override
    public void updateByIdInBatch(List<Member> members) {
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -337,6 +337,7 @@
        return shop;
    }
    @Override
    public Shop findOne(Shop shop) {
        QueryWrapper<Shop> wrapper = new QueryWrapper<>(shop);