From 7cc9f49abfdab5426c63d7e2a6e59c3e1ce45214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=90?= <419641032@qq.com> Date: Wed, 19 Aug 2020 18:23:49 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8D=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86bug=202=E3=80=81=E4=BC=98=E5=8C=96=E4=BA=86=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93sql=E6=96=87=E4=BB=B6=203=E3=80=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BA=86=E9=83=A8=E5=88=86=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/api/distribution.js | 13 +- admin/src/utils/request.js | 6 +- admin/src/views/distribution/config/index.vue | 23 ++-- .../views/marketing/integral/config/index.vue | 3 +- .../src/views/systemSetting/setting/index.vue | 2 +- admin/src/views/user/list/index.vue | 58 ++++---- .../main/java/com/constants/Constants.java | 12 +- crmeb/src/main/java/com/utils/CrmebUtil.java | 12 ++ .../crmeb/article/request/ArticleRequest.java | 12 +- .../controller/CategoryController.java | 6 + .../category/service/CategoryService.java | 2 + .../service/impl/CategoryServiceImpl.java | 16 +++ .../controller/StoreOrderController.java | 5 - .../front/controller/WeChatController.java | 7 +- .../crmeb/front/request/RegisterRequest.java | 3 +- .../front/service/UserCenterService.java | 4 +- .../front/service/impl/IndexServiceImpl.java | 15 +- .../front/service/impl/OrderServiceImpl.java | 43 +++--- .../service/impl/UserCenterServiceImpl.java | 10 +- .../service/impl/OrderPayServiceImpl.java | 11 ++ .../service/impl/RechargePayServiceImpl.java | 3 + .../service/StoreProductCouponService.java | 5 - .../service/impl/StoreOrderServiceImpl.java | 6 +- .../impl/StoreProductCouponServiceImpl.java | 26 ---- .../impl/StoreProductRelationServiceImpl.java | 19 ++- .../service/impl/StoreProductServiceImpl.java | 3 +- .../crmeb/store/utilService/OrderUtils.java | 28 ++-- .../system/request/SystemUserTaskRequest.java | 130 +++++++++--------- .../SystemWriteOffOrderSearchRequest.java | 6 +- .../system/service/SystemConfigService.java | 4 +- .../service/impl/SystemAdminServiceImpl.java | 29 ++-- .../impl/SystemAttachmentServiceImpl.java | 2 +- .../service/impl/SystemConfigServiceImpl.java | 30 +++- .../zbkj/crmeb/task/AsyncSmsSendResult.java | 43 ++++++ .../upload/service/impl/AsyncServiceImpl.java | 10 +- .../java/com/zbkj/crmeb/user/model/User.java | 6 + .../com/zbkj/crmeb/user/model/UserBill.java | 2 +- .../request/RegisterThirdUserRequest.java | 2 +- .../crmeb/user/request/UserSearchRequest.java | 10 +- .../crmeb/user/response/UserResponse.java | 8 +- .../zbkj/crmeb/user/service/UserService.java | 6 +- .../user/service/impl/UserServiceImpl.java | 85 +++++++++++- .../service/impl/UserSignServiceImpl.java | 1 + crmeb/start.sh | 4 +- domain.json | 2 +- 45 files changed, 470 insertions(+), 263 deletions(-) create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/task/AsyncSmsSendResult.java diff --git a/admin/src/api/distribution.js b/admin/src/api/distribution.js index 338319ab..df6433fd 100644 --- a/admin/src/api/distribution.js +++ b/admin/src/api/distribution.js @@ -14,18 +14,7 @@ export function configApi() { /** * @description 分销设置 -- 表单提交 */ -export function configUpdateApi(params) { - return request({ - url: '/admin/marketing/coupon/list', - method: 'get', - params - }) -} - -/** - * @description 分销设置 -- 表单提交 - */ -export function productCheckApi(data) { +export function configUpdateApi(data) { return request({ url: '/admin/store/retail/spread/manage/set', method: 'post', diff --git a/admin/src/utils/request.js b/admin/src/utils/request.js index 0f6ec3ea..ea8f9d26 100644 --- a/admin/src/utils/request.js +++ b/admin/src/utils/request.js @@ -59,9 +59,9 @@ service.interceptors.response.use( // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; if (res.code === 401) { // to re-login - MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or integralLog in again', 'Confirm logout', { - confirmButtonText: 'Re-Login', - cancelButtonText: 'Cancel', + MessageBox.confirm('您已经登出,您可以取消停留在这个页面,或重新登录', '退出', { + confirmButtonText: '或重新登录', + cancelButtonText: '取消', type: 'warning' }).then(() => { store.dispatch('user/resetToken').then(() => { diff --git a/admin/src/views/distribution/config/index.vue b/admin/src/views/distribution/config/index.vue index 368f618c..d9fec47b 100644 --- a/admin/src/views/distribution/config/index.vue +++ b/admin/src/views/distribution/config/index.vue @@ -46,7 +46,7 @@ - + % @@ -56,7 +56,7 @@ - + % @@ -91,14 +91,14 @@ - + 满额分销最低金额: - + 立即创建 @@ -146,13 +146,14 @@ this.loading = true configUpdateApi(this.promoterForm).then(res => { this.loading = false - this.$modalSure('提交成功,是否自动下架商户低于此佣金比例的商品').then(() => { - productCheckApi().then(({ message }) => { - this.$message.success(message) - }).catch(({ message }) => { - this.$message.error(message) - }) - }) + this.$message.success('提交成功') + // this.$modalSure('提交成功,是否自动下架商户低于此佣金比例的商品').then(() => { + // productCheckApi().then(({ message }) => { + // this.$message.success(message) + // }).catch(({ message }) => { + // this.$message.error(message) + // }) + // }) }).catch((res) => { this.$message.error(res.message) this.loading = false diff --git a/admin/src/views/marketing/integral/config/index.vue b/admin/src/views/marketing/integral/config/index.vue index 223de692..0ffe94b6 100644 --- a/admin/src/views/marketing/integral/config/index.vue +++ b/admin/src/views/marketing/integral/config/index.vue @@ -6,6 +6,7 @@ :is-create="isCreate" :edit-data="editData" @submit="handlerSubmit" + v-if="isShow" /> @@ -19,6 +20,7 @@ components: { zbParser }, data() { return { + isShow: false, isCreate: 0, editData: {}, formId: 109 @@ -43,7 +45,6 @@ 'sort': 0, 'status': true } - console.log(_pram) configSaveForm(_pram).then(res => { this.getFormInfo() this.$message.success('操作成功') diff --git a/admin/src/views/systemSetting/setting/index.vue b/admin/src/views/systemSetting/setting/index.vue index c5210035..b84a3b98 100644 --- a/admin/src/views/systemSetting/setting/index.vue +++ b/admin/src/views/systemSetting/setting/index.vue @@ -208,7 +208,7 @@ export default { }) }, handlerGetTreeList() { - const _pram = { type: constants.categoryType[5].value, status: -1 } + const _pram = { type: constants.categoryType[5].value, status: 1 } this.loading = true categoryApi.treeCategroy(_pram).then(data => { this.treeList = this.handleAddArrt(data) diff --git a/admin/src/views/user/list/index.vue b/admin/src/views/user/list/index.vue index d7bc1afa..95cafdf2 100644 --- a/admin/src/views/user/list/index.vue +++ b/admin/src/views/user/list/index.vue @@ -51,12 +51,12 @@ - - + + - + @@ -69,13 +69,16 @@ 全部 + + 未知 + - + 保密 @@ -101,10 +104,10 @@ - - - - + + + + @@ -180,7 +183,7 @@ {{ props.row.createTime | filterEmpty }} - {{ props.row.lastLoginTime | filterEmpty }} + {{ props.row.updateTime | filterEmpty }} {{ props.row.cardId | filterEmpty }} @@ -232,8 +235,14 @@ > + + + arrayUnique(Integer[] arr){ + List list = new ArrayList<>(); + for (Integer integer : arr) { + if (!list.contains(integer)) { + list.add(integer); + } + } + + return list; + } } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/article/request/ArticleRequest.java b/crmeb/src/main/java/com/zbkj/crmeb/article/request/ArticleRequest.java index 6c070ec0..128b40d9 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/article/request/ArticleRequest.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/article/request/ArticleRequest.java @@ -1,17 +1,14 @@ package com.zbkj.crmeb.article.request; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import java.io.Serializable; -import java.time.LocalDateTime; /** *

@@ -35,10 +32,12 @@ public class ArticleRequest implements Serializable { @ApiModelProperty(value = "文章标题", required = true) @NotBlank(message = "请填写文章标题") + @Length(max = 200, message = "文章标题最多200个字符") private String title; @ApiModelProperty(value = "文章作者", required = true) - @NotBlank(message = "请填写文章标题") + @NotBlank(message = "请填写文章作者") + @Length(max = 50, message = "文章作者最多50个字符") private String author; @ApiModelProperty(value = "文章图片", required = true) @@ -46,15 +45,18 @@ public class ArticleRequest implements Serializable { private String imageInput; @ApiModelProperty(value = "文章简介", required = true) + @Length(max = 200, message = "文章简介最多200个字符") @NotBlank(message = "请填写文章简介") private String synopsis; @ApiModelProperty(value = "文章分享标题", required = true) @NotBlank(message = "请填写文章分享标题") + @Length(max = 200, message = "文章分享标题最多200个字符") private String shareTitle; @ApiModelProperty(value = "文章分享简介", required = true) @NotBlank(message = "请填写文章分享简介") + @Length(max = 200, message = "文章分享简介最多200个字符") private String shareSynopsis; @ApiModelProperty(value = "排序", example = "0", required = true) diff --git a/crmeb/src/main/java/com/zbkj/crmeb/category/controller/CategoryController.java b/crmeb/src/main/java/com/zbkj/crmeb/category/controller/CategoryController.java index 65d95266..08b0000f 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/category/controller/CategoryController.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/category/controller/CategoryController.java @@ -64,6 +64,12 @@ import java.util.List; @RequestMapping(value = "/save", method = RequestMethod.POST) public CommonResult save(@Validated CategoryRequest categoryRequest){ Category category = new Category(); + + //检测标题是否存在 + if(categoryService.checkName(categoryRequest.getName(), category.getType()) > 0){ + throw new CrmebException("此分类已存在"); + } + BeanUtils.copyProperties(categoryRequest, category); category.setPath(categoryService.getPathByPId(category.getPid())); category.setExtra(systemAttachmentService.clearPrefix(category.getExtra())); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/category/service/CategoryService.java b/crmeb/src/main/java/com/zbkj/crmeb/category/service/CategoryService.java index 773cdfce..e1118895 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/category/service/CategoryService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/category/service/CategoryService.java @@ -36,4 +36,6 @@ public interface CategoryService extends IService { boolean update(CategoryRequest request, Integer id); List getChildVoListByPid(Integer pid); + + int checkName(String name, Integer type); } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/category/service/impl/CategoryServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/category/service/impl/CategoryServiceImpl.java index b7ef56a7..c74ffd12 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/category/service/impl/CategoryServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/category/service/impl/CategoryServiceImpl.java @@ -341,5 +341,21 @@ public class CategoryServiceImpl extends ServiceImpl impl objectQueryWrapper.like("path", "/"+pid+"/"); return dao.selectList(objectQueryWrapper); } + + /** + * 检测分类码是否存在 + * @param name String 分类名 + * @param type int 类型 + * @author Mr.Zhang + * @since 2020-04-16 + * @return int + */ + @Override + public int checkName(String name, Integer type) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Category::getName, name) + .eq(Category::getType, type); + return dao.selectCount(lambdaQueryWrapper); + } } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/controller/StoreOrderController.java b/crmeb/src/main/java/com/zbkj/crmeb/front/controller/StoreOrderController.java index f49fdcad..40b141b4 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/controller/StoreOrderController.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/controller/StoreOrderController.java @@ -1,6 +1,5 @@ package com.zbkj.crmeb.front.controller; -import com.common.CommonPage; import com.common.CommonResult; import com.common.PageParamRequest; import com.utils.CrmebUtil; @@ -9,7 +8,6 @@ import com.zbkj.crmeb.front.response.ConfirmOrderResponse; import com.zbkj.crmeb.front.service.OrderService; import com.zbkj.crmeb.front.vo.OrderAgainVo; import com.zbkj.crmeb.store.request.StoreProductReplyAddRequest; -import com.zbkj.crmeb.store.response.StoreOrderListResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -21,8 +19,6 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; /** * @Classname StoreOrderController @@ -205,7 +201,6 @@ public class StoreOrderController { @ApiOperation(value = "退款订单验证") @RequestMapping(value = "/refund/verify", method = RequestMethod.POST) public CommonResult refundVerify(@RequestBody @Validated OrderRefundVerifyRequest request){ - return CommonResult.success(orderService.refundVerify(request)); } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/controller/WeChatController.java b/crmeb/src/main/java/com/zbkj/crmeb/front/controller/WeChatController.java index 547b1ea9..84886e10 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/controller/WeChatController.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/controller/WeChatController.java @@ -3,8 +3,8 @@ package com.zbkj.crmeb.front.controller; import com.common.CommonResult; import com.zbkj.crmeb.front.response.LoginResponse; import com.zbkj.crmeb.front.service.UserCenterService; +import com.zbkj.crmeb.user.request.RegisterThirdUserRequest; import com.zbkj.crmeb.wechat.model.TemplateMessage; -import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest; import com.zbkj.crmeb.wechat.service.TemplateMessageService; import com.zbkj.crmeb.wechat.service.WeChatService; import io.swagger.annotations.Api; @@ -55,8 +55,9 @@ public class WeChatController { */ @ApiOperation(value = "微信登录公共号授权登录") @RequestMapping(value = "/authorize/login", method = RequestMethod.GET) - public CommonResult login(@RequestParam String code){ - return CommonResult.success(userCenterService.weChatAuthorizeLogin(code)); + public CommonResult login(@RequestParam(value = "spread_spid", defaultValue = "0", required = false) Integer spreadUid, + @RequestParam(value = "code") String code){ + return CommonResult.success(userCenterService.weChatAuthorizeLogin(code, spreadUid)); } /** diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/request/RegisterRequest.java b/crmeb/src/main/java/com/zbkj/crmeb/front/request/RegisterRequest.java index 64173787..f0ba2721 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/request/RegisterRequest.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/request/RegisterRequest.java @@ -44,7 +44,8 @@ public class RegisterRequest implements Serializable { private String validateCode; @ApiModelProperty(value = "推广人id") - private Integer spread; + @JsonProperty(value = "spread_spid") + private Integer spread = 0; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/service/UserCenterService.java b/crmeb/src/main/java/com/zbkj/crmeb/front/service/UserCenterService.java index 158733f1..866db144 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/service/UserCenterService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/service/UserCenterService.java @@ -10,7 +10,7 @@ import com.zbkj.crmeb.front.response.*; import com.zbkj.crmeb.system.model.SystemUserLevel; import com.zbkj.crmeb.user.model.User; import com.zbkj.crmeb.user.model.UserBill; -import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest; +import com.zbkj.crmeb.user.request.RegisterThirdUserRequest; import java.math.BigDecimal; import java.util.List; @@ -48,7 +48,7 @@ public interface UserCenterService extends IService { UserRechargePaymentResponse recharge(UserRechargeRequest request); - LoginResponse weChatAuthorizeLogin(String code); + LoginResponse weChatAuthorizeLogin(String code, Integer spreadUid); String getLogo(); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/IndexServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/IndexServiceImpl.java index a7c917bd..cf537d12 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/IndexServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/IndexServiceImpl.java @@ -54,28 +54,41 @@ public class IndexServiceImpl implements IndexService { IndexProductBannerResponse indexProductBannerResponse = new IndexProductBannerResponse(); IndexStoreProductSearchRequest request = new IndexStoreProductSearchRequest(); - int gid = 0; + int gid; + String key; switch (type){ case Constants.INDEX_RECOMMEND_BANNER: //精品推荐 gid = Constants.GROUP_DATA_ID_INDEX_RECOMMEND_BANNER; + key = Constants.INDEX_BAST_LIMIT; request.setIsBest(true); break; case Constants.INDEX_HOT_BANNER: //热门榜单 gid = Constants.GROUP_DATA_ID_INDEX_HOT_BANNER; + key = Constants.INDEX_HOT_LIMIT; request.setIsHot(true); break; case Constants.INDEX_NEW_BANNER: //首发新品 gid = Constants.GROUP_DATA_ID_INDEX_NEW_BANNER; + key = Constants.INDEX_FIRST_LIMIT; request.setIsNew(true); break; case Constants.INDEX_BENEFIT_BANNER: //促销单品 gid = Constants.GROUP_DATA_ID_INDEX_BENEFIT_BANNER; + key = Constants.INDEX_SALES_LIMIT; request.setIsBenefit(true); break; default: return null; } + if(StringUtils.isNotBlank(key)){ + String num = systemConfigService.getValueByKey(Constants.INDEX_BAST_LIMIT); + if(pageParamRequest.getLimit() == 0){ + //首页limit传0,则读取默认数据, 否则后台设置的首页配置不起作用 + pageParamRequest.setLimit(Integer.parseInt(num)); + } + } + indexProductBannerResponse.setBanner(systemGroupDataService.getListMapByGid(gid)); indexProductBannerResponse.setList(productService.getIndexProduct(request, pageParamRequest).getList()); return indexProductBannerResponse; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java index 9ea24afc..c97f7cc9 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java @@ -37,7 +37,6 @@ import com.zbkj.crmeb.user.model.UserAddress; import com.zbkj.crmeb.user.service.UserAddressService; import com.zbkj.crmeb.user.service.UserService; import org.apache.commons.lang3.StringUtils; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPageOrder; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -139,7 +138,7 @@ public class OrderServiceImpl implements OrderService { // other HashMap otherMap = new HashMap<>(); otherMap.put("offlinePostage",systemConfigService.getValueByKey("offline_postage")); - otherMap.put("integralRatio",systemConfigService.getValueByKey("integralRatio")); + otherMap.put("integralRatio",systemConfigService.getValueByKey("integral_ratio")); // 获取有效优惠券 List canUseUseCouponList = orderUtils.getCanUseCouponList(storeCartResponse); @@ -358,8 +357,8 @@ public class OrderServiceImpl implements OrderService { existStoreOrder.setRefundReasonTime(DateUtil.nowDateTime()); existStoreOrder.setRefundReasonWap(request.getText()); existStoreOrder.setRefundReasonWapExplain(request.getRefund_reason_wap_explain()); - existStoreOrder.setRefundReasonWapImg(request.getRefund_reason_wap_img()); - boolean updateOrderResult = storeOrderService.updateByEntity(existStoreOrder); + existStoreOrder.setRefundReasonWapImg(systemAttachmentService.clearPrefix(request.getRefund_reason_wap_img())); + boolean updateOrderResult = storeOrderService.updateById(existStoreOrder); if(!updateOrderResult) throw new CrmebException("申请退款失败"); HashMap smsInfo = new HashMap<>(); @@ -455,21 +454,21 @@ public class OrderServiceImpl implements OrderService { } // todo 营销活动 二期 // if(existStoreOrder.getPinkId()>0) - if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT)){ - if(existStoreOrder.getIsChannel() == 1 || existStoreOrder.getIsChannel() == 2){ - existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId()); - } - } - if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_H5)){ - if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 1){ - existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId()); - } - } - if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_PROGRAM)){ - if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 2){ - existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId()); - } - } +// if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT)){ +// if(existStoreOrder.getIsChannel() == 1 || existStoreOrder.getIsChannel() == 2){ +// existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId()); +// } +// } +// if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_H5)){ +// if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 1){ +// existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId()); +// } +// } +// if(request.getFrom().equals(Constants.PAY_TYPE_WE_CHAT_FROM_PROGRAM)){ +// if(existStoreOrder.getIsChannel() == 0 || existStoreOrder.getIsChannel() == 2){ +// existStoreOrder.setOrderId(CrmebUtil.randomCount(100,999)+existStoreOrder.getOrderId()); +// } +// } // 支付 if (doPayOrder(request, ip, resultMap, existStoreOrder)) return resultMap; throw new CrmebException("支付方式错误"); @@ -616,12 +615,10 @@ public class OrderServiceImpl implements OrderService { */ @Override public List getRefundReason(){ - List result = new ArrayList<>(); String reasonString = systemConfigService.getValueByKey("stor_reason"); reasonString = CrmebUtil.UnicodeToCN(reasonString); reasonString = reasonString.replace("rn", "n"); - result.addAll(Arrays.asList(reasonString.split("n"))); - return result; + return Arrays.asList(reasonString.split("\\n")); } /** @@ -744,7 +741,7 @@ public class OrderServiceImpl implements OrderService { StoreOrder existOrder = storeOrderService.getByEntityOne(storeOrderPram); if(null == existOrder) throw new CrmebException("未找到订单信息"); existOrder.setPayType(payType); - return storeOrderService.updateByEntity(existOrder); + return storeOrderService.updateById(existOrder); } ///////////////////////////////////////////////////////////////////// 自定义方法 diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/UserCenterServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/UserCenterServiceImpl.java index 793d98bc..c18012a6 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/UserCenterServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/UserCenterServiceImpl.java @@ -31,12 +31,12 @@ import com.zbkj.crmeb.user.dao.UserDao; import com.zbkj.crmeb.user.model.User; import com.zbkj.crmeb.user.model.UserBill; import com.zbkj.crmeb.user.model.UserToken; +import com.zbkj.crmeb.user.request.RegisterThirdUserRequest; import com.zbkj.crmeb.user.request.UserOperateFundsRequest; import com.zbkj.crmeb.user.service.UserAddressService; import com.zbkj.crmeb.user.service.UserBillService; import com.zbkj.crmeb.user.service.UserService; import com.zbkj.crmeb.user.service.UserTokenService; -import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest; import com.zbkj.crmeb.wechat.response.WeChatAuthorizeLoginGetOpenIdResponse; import com.zbkj.crmeb.wechat.response.WeChatAuthorizeLoginUserInfoResponse; import com.zbkj.crmeb.wechat.response.WeChatProgramAuthorizeLoginGetOpenIdResponse; @@ -434,7 +434,7 @@ public class UserCenterServiceImpl extends ServiceImpl implements */ @Override @Transactional(rollbackFor = {RuntimeException.class, Error.class, CrmebException.class}) - public LoginResponse weChatAuthorizeLogin(String code) { + public LoginResponse weChatAuthorizeLogin(String code, Integer spreadUid) { try{ WeChatAuthorizeLoginGetOpenIdResponse response = weChatService.authorizeLogin(code); User user = publicLogin(response.getOpenId(), response.getAccessToken()); @@ -442,6 +442,8 @@ public class UserCenterServiceImpl extends ServiceImpl implements LoginResponse loginResponse = new LoginResponse(); loginResponse.setToken(userService.token(user)); user.setPwd(null); + //绑定推广关系 + userService.bindSpread(user, spreadUid); loginResponse.setUser(user); return loginResponse; @@ -482,6 +484,7 @@ public class UserCenterServiceImpl extends ServiceImpl implements //TODO 是否需要强制注册用户,1 强制注册,2 需要返回数据给前端,让其输入手机号和验证码 User user = userService.registerByThird(registerThirdUserRequest, Constants.USER_LOGIN_TYPE_PUBLIC); + userTokenService.bind(openId, Constants.THIRD_LOGIN_TOKEN_TYPE_PUBLIC, user.getUid()); if(StringUtils.isNotBlank(unionId)) { //有就绑定 @@ -526,6 +529,8 @@ public class UserCenterServiceImpl extends ServiceImpl implements LoginResponse loginResponse = new LoginResponse(); loginResponse.setToken(userService.token(user)); user.setPwd(null); + //绑定推广关系 + userService.bindSpread(user, request.getSpreadPid()); loginResponse.setUser(user); return loginResponse; @@ -705,6 +710,7 @@ public class UserCenterServiceImpl extends ServiceImpl implements //TODO 是否需要强制注册用户,1 强制注册,2 需要返回数据给前端,让其输入手机号和验证码 User user = userService.registerByThird(request, Constants.USER_LOGIN_TYPE_PROGRAM); + userTokenService.bind(openId, Constants.THIRD_LOGIN_TOKEN_TYPE_PROGRAM, user.getUid()); if(StringUtils.isNotBlank(unionId)) { //有就绑定 diff --git a/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/OrderPayServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/OrderPayServiceImpl.java index e0b1de02..913da23d 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/OrderPayServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/OrderPayServiceImpl.java @@ -218,6 +218,17 @@ public class OrderPayServiceImpl extends PayService implements OrderPayService { // 更新用户下单数量 updateUserPayCount(); + + //增加经验、积分 + updateFounds(); + + } + + /** + * 更新用户积分经验 + */ + private void updateFounds() { + userService.consumeAfterUpdateUserFounds(getOrder().getUid(), getOrder().getPayPrice(), Constants.USER_BILL_TYPE_PAY_ORDER); } /** diff --git a/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/RechargePayServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/RechargePayServiceImpl.java index c4585386..1062ca20 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/RechargePayServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/payment/service/impl/RechargePayServiceImpl.java @@ -167,6 +167,9 @@ public class RechargePayServiceImpl extends PayService implements RechargePaySer getUserRecharge().setPayTime(DateUtil.nowDateTime()); userRechargeService.updateById(getUserRecharge()); + //增加经验、积分 + userService.consumeAfterUpdateUserFounds(getUserRecharge().getUid(), getUserRecharge().getPrice(), Constants.USER_BILL_TYPE_PAY_RECHARGE); + //下发模板通知 pushTempMessage(); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductCouponService.java b/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductCouponService.java index cb56f14f..53dcf85a 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductCouponService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductCouponService.java @@ -1,9 +1,7 @@ package com.zbkj.crmeb.store.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.common.PageParamRequest; import com.zbkj.crmeb.store.model.StoreProductCoupon; -import com.zbkj.crmeb.store.request.StoreProductCouponSearchRequest; import java.util.List; @@ -13,9 +11,6 @@ import java.util.List; * @date 2020-08-07 */ public interface StoreProductCouponService extends IService { - - List getList(StoreProductCouponSearchRequest request, PageParamRequest pageParamRequest); - /** * 根据产品id删除 优惠券关联信息 * @param productId 产品id diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreOrderServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreOrderServiceImpl.java index d109cef8..889a83f9 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreOrderServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreOrderServiceImpl.java @@ -1157,7 +1157,7 @@ public class StoreOrderServiceImpl extends ServiceImpl - */ - @Override - public List getList(StoreProductCouponSearchRequest request, PageParamRequest pageParamRequest) { - PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); - - //带 StoreProductCoupon 类的多条件查询 - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - StoreProductCoupon model = new StoreProductCoupon(); - BeanUtils.copyProperties(request, model); - lambdaQueryWrapper.setEntity(model); - return dao.selectList(lambdaQueryWrapper); - } - /** * * @param productId 产品id diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductRelationServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductRelationServiceImpl.java index 4a190704..cfa32c11 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductRelationServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductRelationServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.common.PageParamRequest; import com.exception.CrmebException; +import com.utils.CrmebUtil; import com.zbkj.crmeb.front.request.UserCollectAllRequest; import com.zbkj.crmeb.front.request.UserCollectRequest; import com.zbkj.crmeb.store.dao.StoreProductRelationDao; @@ -20,6 +21,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -118,15 +120,18 @@ public class StoreProductRelationServiceImpl extends ServiceImpl list = CrmebUtil.arrayUnique(arr); + Integer uid = userService.getUserIdException(); - deleteAll(request); //先删除所有已存在的 + deleteAll(request, uid, "collect"); //先删除所有已存在的 ArrayList storeProductRelationList = new ArrayList<>(); - for (Integer productId: request.getProductId()) { + for (Integer productId: list) { StoreProductRelation storeProductRelation = new StoreProductRelation(); storeProductRelation.setUid(uid); storeProductRelation.setType("collect"); @@ -158,10 +163,12 @@ public class StoreProductRelationServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.in(StoreProductRelation::getProductId, (Object) request.getProductId()). - eq(StoreProductRelation::getCategory, request.getCategory()); + lambdaQueryWrapper.in(StoreProductRelation::getProductId, Arrays.asList(request.getProductId())) + .eq(StoreProductRelation::getCategory, request.getCategory()) + .eq(StoreProductRelation::getUid, uid) + .eq(StoreProductRelation::getType, type); dao.delete(lambdaQueryWrapper); } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java index 2fd53fa2..88f749ad 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java @@ -185,13 +185,14 @@ public class StoreProductServiceImpl extends ServiceImpl i + .or().eq(StoreProduct::getId, request.getKeywords()) .or().like(StoreProduct::getStoreName, request.getKeywords()) .or().like(StoreProduct::getStoreInfo, request.getKeywords()) .or().like(StoreProduct::getKeyword, request.getKeywords()) .or().like(StoreProduct::getBarCode, request.getKeywords())); } if(StringUtils.isNotBlank(request.getCateId())){ - lambdaQueryWrapper.eq(StoreProduct::getCateId, request.getCateId()); + lambdaQueryWrapper.apply(CrmebUtil.getFindInSetSql("cate_id", request.getCateId())); } lambdaQueryWrapper.orderByDesc(StoreProduct::getSort).orderByDesc(StoreProduct::getId); List storeProducts = dao.selectList(lambdaQueryWrapper); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/utilService/OrderUtils.java b/crmeb/src/main/java/com/zbkj/crmeb/store/utilService/OrderUtils.java index 17c5e775..d77d1041 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/utilService/OrderUtils.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/utilService/OrderUtils.java @@ -254,6 +254,9 @@ public class OrderUtils { User currentUser = userService.getInfo(); Integer offliePayStatus = Integer.valueOf(systemConfigService.getValueByKey("offline_pay_status")); + + PriceGroupResponse currentOrderPriceGroup = getOrderPriceGroup(cor.getCartInfo(), null); + List exsitPayType = getPayType().stream().filter(e->{ if(offliePayStatus == 2 && e == Constants.PAY_TYPE_OFFLINE){ return false; @@ -276,7 +279,7 @@ public class OrderUtils { ua.setUid(currentUser.getUid()); ua.setId(request.getAddressId()); UserAddress currentUserAddress = userAddressService.getUserAddress(ua); - PriceGroupResponse currentOrderPriceGroup = getOrderPriceGroup(cor.getCartInfo(), currentUserAddress); + currentOrderPriceGroup = getOrderPriceGroup(cor.getCartInfo(), currentUserAddress); payPostage = currentOrderPriceGroup.getStorePostage(); } @@ -319,17 +322,22 @@ public class OrderUtils { // 积分 if(null != request.getUseIntegral() && currentUser.getIntegral().compareTo(BigDecimal.ZERO) > 0){ deductionPrice = currentUser.getIntegral().multiply(BigDecimal.valueOf(Double.valueOf(cor.getOther().get("integralRatio").toString()))); - if(deductionPrice.compareTo(payPrice) < 0){ - payPrice = payPrice.subtract(deductionPrice); - usedIntegral = currentUser.getIntegral(); - }else{ - deductionPrice = payPrice; - if(payPrice.compareTo(BigDecimal.ZERO) > 0 && usedIntegral.compareTo(BigDecimal.ZERO) > 0){ - usedIntegral = payPrice.divide(usedIntegral); - surPlusIntegral = currentUser.getIntegral().subtract(usedIntegral); + if(request.getUseIntegral()){ + if(deductionPrice.compareTo(payPrice) < 0){ + payPrice = payPrice.subtract(deductionPrice); + usedIntegral = currentUser.getIntegral(); + }else{ + deductionPrice = payPrice; + if(payPrice.compareTo(BigDecimal.ZERO) > 0 && usedIntegral.compareTo(BigDecimal.ZERO) > 0){ + usedIntegral = payPrice.divide(usedIntegral); + surPlusIntegral = currentUser.getIntegral().subtract(usedIntegral); + } + payPrice = BigDecimal.ZERO; } - payPrice = BigDecimal.ZERO; + }else{ + payPrice = currentOrderPriceGroup.getPayPrice(); } + }else{ deductionPrice = BigDecimal.ZERO; usedIntegral = BigDecimal.ZERO; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemUserTaskRequest.java b/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemUserTaskRequest.java index 00d4ed56..261812c1 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemUserTaskRequest.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemUserTaskRequest.java @@ -1,65 +1,65 @@ -package com.zbkj.crmeb.system.request; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serializable; - -/** - *

- * 等级任务设置 - *

- * - * @author Mr.Zhang - * @since 2020-04-13 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -@TableName("eb_system_user_task") -@ApiModel(value="SystemUserTask对象", description="等级任务设置") -public class SystemUserTaskRequest implements Serializable { - - private static final long serialVersionUID=1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - @ApiModelProperty(value = "任务名称") - private String name; - - @ApiModelProperty(value = "配置原名") - private String realName; - - @ApiModelProperty(value = "任务类型") - private String taskType; - - @ApiModelProperty(value = "限定数") - private Integer number; - - @ApiModelProperty(value = "等级id") - private Integer levelId; - - @ApiModelProperty(value = "排序") - private Integer sort; - - @ApiModelProperty(value = "是否显示") - private Boolean isShow; - - @ApiModelProperty(value = "是否务必达成任务,1务必达成,0=满足其一") - private Boolean isMust; - - @ApiModelProperty(value = "任务说明") - private String illustrate; - - @ApiModelProperty(value = "新增时间") - private Integer addTime; - - -} +package com.zbkj.crmeb.system.request; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 等级任务设置 + *

+ * + * @author Mr.Zhang + * @since 2020-04-13 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("eb_system_user_task") +@ApiModel(value="SystemUserTask对象", description="等级任务设置") +public class SystemUserTaskRequest implements Serializable { + + private static final long serialVersionUID=1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "任务名称") + private String name; + + @ApiModelProperty(value = "配置原名") + private String realName; + + @ApiModelProperty(value = "任务类型") + private String taskType; + + @ApiModelProperty(value = "限定数") + private Integer number; + + @ApiModelProperty(value = "等级id") + private Integer levelId; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "是否显示") + private Boolean isShow; + + @ApiModelProperty(value = "是否务必达成任务,1务必达成,0=满足其一") + private Boolean isMust; + + @ApiModelProperty(value = "任务说明") + private String illustrate; + + @ApiModelProperty(value = "新增时间") + private Integer addTime; + + +} diff --git a/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemWriteOffOrderSearchRequest.java b/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemWriteOffOrderSearchRequest.java index e800ae02..69e6af8d 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemWriteOffOrderSearchRequest.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/system/request/SystemWriteOffOrderSearchRequest.java @@ -1,6 +1,5 @@ package com.zbkj.crmeb.system.request; -import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,12 +10,11 @@ import java.io.Serializable; /** *

- * 微信用户表 + * 核销 *

* * @author Mr.Zhang - * @since 2020-04-11 - */ + * @since 2020-*/ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) diff --git a/crmeb/src/main/java/com/zbkj/crmeb/system/service/SystemConfigService.java b/crmeb/src/main/java/com/zbkj/crmeb/system/service/SystemConfigService.java index 75859d0e..c7624482 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/system/service/SystemConfigService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/system/service/SystemConfigService.java @@ -36,7 +36,9 @@ public interface SystemConfigService extends IService { boolean updateOrSaveValueByName(String name, String value); - String getValueByKeyException(String uploadUrl); + String getValueByKeyException(String key); + + String getValueByKeyNotStatus(String key); boolean saveForm(SystemFormCheckRequest systemFormCheckRequest); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAdminServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAdminServiceImpl.java index 81f418d3..07985ffa 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAdminServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAdminServiceImpl.java @@ -22,7 +22,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestBody; import javax.annotation.Resource; import java.util.ArrayList; @@ -91,23 +90,21 @@ public class SystemAdminServiceImpl extends ServiceImpl roleList = systemRoleService.getList(new SystemRoleSearchRequest(), pageRole); -// for (SystemRole systemRole : roleList) { - for (SystemAdmin admin : systemAdmins) { - SystemAdminResponse sar = new SystemAdminResponse(); - BeanUtils.copyProperties(admin, sar); - if(StringUtils.isBlank(admin.getRoles())) break; - List roleIds = CrmebUtil.stringToArrayInt(admin.getRoles()); - List roleNames = new ArrayList<>(); - for (Integer roleId : roleIds) { - List hasRoles = roleList.stream().filter(e -> e.getId() == roleId).collect(Collectors.toList()); - if(hasRoles.size()> 0){ - roleNames.add(hasRoles.stream().map(SystemRole::getRoleName).collect(Collectors.joining(","))); - } + for (SystemAdmin admin : systemAdmins) { + SystemAdminResponse sar = new SystemAdminResponse(); + BeanUtils.copyProperties(admin, sar); + if(StringUtils.isBlank(admin.getRoles())) continue; + List roleIds = CrmebUtil.stringToArrayInt(admin.getRoles()); + List roleNames = new ArrayList<>(); + for (Integer roleId : roleIds) { + List hasRoles = roleList.stream().filter(e -> e.getId().equals(roleId)).collect(Collectors.toList()); + if(hasRoles.size()> 0){ + roleNames.add(hasRoles.stream().map(SystemRole::getRoleName).collect(Collectors.joining(","))); } - sar.setRoleNames(StringUtils.join(roleNames,",")); - systemAdminResponses.add(sar); } -// } + sar.setRoleNames(StringUtils.join(roleNames,",")); + systemAdminResponses.add(sar); + } return systemAdminResponses; } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAttachmentServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAttachmentServiceImpl.java index 8573eb99..f23d5938 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAttachmentServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemAttachmentServiceImpl.java @@ -65,7 +65,7 @@ public class SystemAttachmentServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(SystemConfig::getValue).eq(SystemConfig::getName, key); + + SystemConfig systemConfig = dao.selectOne(lambdaQueryWrapper); + if(StringUtils.isBlank(systemConfig.getValue())){ + systemConfig.setValue(null); + } + return systemConfig.getValue(); + } + /** * 整体保存表单数据 * @param systemFormCheckRequest SystemFormCheckRequest 数据保存 @@ -151,11 +166,18 @@ public class SystemConfigServiceImpl extends ServiceImpl systemConfigList = new ArrayList<>(); + //批量添加 for (SystemFormItemCheckRequest systemFormItemCheckRequest : systemFormCheckRequest.getFields()) { SystemConfig systemConfig = new SystemConfig(); systemConfig.setName(systemFormItemCheckRequest.getName()); - systemConfig.setValue(systemAttachmentService.clearPrefix(systemFormItemCheckRequest.getValue())); + + String value = systemAttachmentService.clearPrefix(systemFormItemCheckRequest.getValue()); + if(StringUtils.isBlank(value)){ + //去掉图片域名之后没有数据则说明当前数据就是图片域名 + value = systemFormItemCheckRequest.getValue(); + } + systemConfig.setValue(value); systemConfig.setFormId(systemFormCheckRequest.getId()); systemConfig.setTitle(systemFormItemCheckRequest.getTitle()); systemConfigList.add(systemConfig); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/task/AsyncSmsSendResult.java b/crmeb/src/main/java/com/zbkj/crmeb/task/AsyncSmsSendResult.java new file mode 100644 index 00000000..523a9b65 --- /dev/null +++ b/crmeb/src/main/java/com/zbkj/crmeb/task/AsyncSmsSendResult.java @@ -0,0 +1,43 @@ +package com.zbkj.crmeb.task; + +import com.utils.DateUtil; +import com.zbkj.crmeb.sms.model.SmsRecord; +import com.zbkj.crmeb.sms.service.SmsRecordService; +import com.zbkj.crmeb.sms.service.SmsService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +/** + * @Classname AsyncSmsSendResult + * @Description 发送短信 + * @Date 2020/8/18 + * @Created by stivepeim + */ +//@Component +//@Configuration //读取配置 +//@EnableScheduling // 2.开启定时任务 +public class AsyncSmsSendResult { +// //日志 +// private static final Logger logger = LoggerFactory.getLogger(AsyncSmsSendResult.class); +// +// @Autowired +// private SmsRecordService smsRecordsService; +// +// @Scheduled(fixedDelay = 1000 * 10L) // todo 后面更改为 一分钟同步一次数据 +// public void init(){ +// logger.info("---AsyncSmsResult task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDate()); +// try { +// smsRecordsService.consumeSmsStatus(); +// +// }catch (Exception e){ +// e.printStackTrace(); +// logger.error("AsyncSmsSend.task" + " | msg : " + e.getMessage()); +// } +// +// } +} diff --git a/crmeb/src/main/java/com/zbkj/crmeb/upload/service/impl/AsyncServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/upload/service/impl/AsyncServiceImpl.java index 8cf9433a..e4d09875 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/upload/service/impl/AsyncServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/upload/service/impl/AsyncServiceImpl.java @@ -89,6 +89,7 @@ public class AsyncServiceImpl implements AsyncService { setConf(type); cos(systemAttachmentList); default: + pre = "local"; break; } }catch (Exception e){ @@ -97,14 +98,13 @@ public class AsyncServiceImpl implements AsyncService { } private void setConf(Integer uploadType) { - -// if(uploadType > 1){ - cloudVo.setDomain(systemConfigService.getValueByKeyException(pre+"UploadUrl")); + cloudVo.setDomain(systemConfigService.getValueByKeyException(pre+"UploadUrl")); + if(uploadType > 1){ cloudVo.setAccessKey(systemConfigService.getValueByKeyException(pre+"AccessKey")); cloudVo.setSecretKey(systemConfigService.getValueByKeyException(pre+"SecretKey")); cloudVo.setBucketName(systemConfigService.getValueByKeyException(pre+"StorageName")); cloudVo.setRegion(systemConfigService.getValueByKeyException(pre+"StorageRegion")); -// } + } } /** @@ -231,7 +231,7 @@ public class AsyncServiceImpl implements AsyncService { break; } - return systemConfigService.getValueByKeyException(pre+"UploadUrl"); + return systemConfigService.getValueByKeyNotStatus(pre+"UploadUrl"); } } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/model/User.java b/crmeb/src/main/java/com/zbkj/crmeb/user/model/User.java index d0d2a591..cb4f38d5 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/model/User.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/model/User.java @@ -72,6 +72,12 @@ public class User implements Serializable { @ApiModelProperty(value = "手机号码") private String phone; + @ApiModelProperty(value = "性别") + private int sex; + + @ApiModelProperty(value = "国家") + private String country; + @ApiModelProperty(value = "添加ip") private String addIp; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/model/UserBill.java b/crmeb/src/main/java/com/zbkj/crmeb/user/model/UserBill.java index 7ac2735c..03991928 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/model/UserBill.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/model/UserBill.java @@ -65,7 +65,7 @@ public class UserBill implements Serializable { private String mark; @ApiModelProperty(value = "0 = 带确定 1 = 有效 -1 = 无效") - private int status; + private Integer status; @ApiModelProperty(value = "创建时间") private Date updateTime; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/request/RegisterThirdUserRequest.java b/crmeb/src/main/java/com/zbkj/crmeb/user/request/RegisterThirdUserRequest.java index e69b148b..f00c0ea0 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/request/RegisterThirdUserRequest.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/request/RegisterThirdUserRequest.java @@ -1,4 +1,4 @@ -package com.zbkj.crmeb.wechat.response; +package com.zbkj.crmeb.user.request; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/request/UserSearchRequest.java b/crmeb/src/main/java/com/zbkj/crmeb/user/request/UserSearchRequest.java index 71ce32de..ac8dc44d 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/request/UserSearchRequest.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/request/UserSearchRequest.java @@ -62,15 +62,9 @@ public class UserSearchRequest implements Serializable { @NotNull(message = "访问情况不能为空") private Integer accessType = 0; - @ApiModelProperty(value = "国家") + @ApiModelProperty(value = "国家,中国CN,其他OTHER") private String country; - @ApiModelProperty(value = "省份") - private String province; - - @ApiModelProperty(value = "城市") - private String city; - - @ApiModelProperty(value = "性别") + @ApiModelProperty(value = "性别,0未知,1男,2女,3保密") private String sex; } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/response/UserResponse.java b/crmeb/src/main/java/com/zbkj/crmeb/user/response/UserResponse.java index 05315754..c897fb7e 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/response/UserResponse.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/response/UserResponse.java @@ -52,6 +52,12 @@ public class UserResponse { @ApiModelProperty(value = "用户头像") private String avatar; + @ApiModelProperty(value = "性别") + private int sex; + + @ApiModelProperty(value = "国家") + private String country; + @ApiModelProperty(value = "手机号码") private String phone; @@ -112,7 +118,7 @@ public class UserResponse { @ApiModelProperty(value = "用户登陆类型,h5,wechat,routine") private String loginType; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "更新时间") private Date updateTime; @ApiModelProperty(value = "创建时间") diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/service/UserService.java b/crmeb/src/main/java/com/zbkj/crmeb/user/service/UserService.java index 7472d9c4..d3762097 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/service/UserService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/service/UserService.java @@ -14,12 +14,12 @@ import com.zbkj.crmeb.front.response.UserSpreadPeopleItemResponse; import com.zbkj.crmeb.store.model.StoreOrder; import com.zbkj.crmeb.store.request.RetailShopStairUserRequest; import com.zbkj.crmeb.user.model.User; +import com.zbkj.crmeb.user.request.RegisterThirdUserRequest; import com.zbkj.crmeb.user.request.UserOperateFundsRequest; import com.zbkj.crmeb.user.request.UserOperateIntegralMoneyRequest; import com.zbkj.crmeb.user.request.UserSearchRequest; import com.zbkj.crmeb.user.response.TopDetail; import com.zbkj.crmeb.user.response.UserResponse; -import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest; import java.math.BigDecimal; import java.util.HashMap; @@ -133,4 +133,8 @@ public interface UserService extends IService { Integer getCountByPayCount(int minPayCount, int maxPayCount); List getUserByEntity(User user); + + void consumeAfterUpdateUserFounds(Integer uid, BigDecimal price, String type); + + void bindSpread(User user, Integer spreadPid); } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserServiceImpl.java index c3362b60..1ba4067d 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserServiceImpl.java @@ -41,6 +41,7 @@ import com.zbkj.crmeb.user.model.User; import com.zbkj.crmeb.user.model.UserBill; import com.zbkj.crmeb.user.model.UserLevel; import com.zbkj.crmeb.user.model.UserSign; +import com.zbkj.crmeb.user.request.RegisterThirdUserRequest; import com.zbkj.crmeb.user.request.UserOperateFundsRequest; import com.zbkj.crmeb.user.request.UserOperateIntegralMoneyRequest; import com.zbkj.crmeb.user.request.UserSearchRequest; @@ -48,7 +49,6 @@ import com.zbkj.crmeb.user.response.TopDetail; import com.zbkj.crmeb.user.response.UserResponse; import com.zbkj.crmeb.user.service.*; import com.zbkj.crmeb.user.vo.UserOperateFundsVo; -import com.zbkj.crmeb.wechat.response.RegisterThirdUserRequest; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -143,11 +143,18 @@ public class UserServiceImpl extends ServiceImpl implements UserS lambdaQueryWrapper.eq(User::getUserType, request.getUserType()); } + if(StringUtils.isNotBlank(request.getSex())){ + lambdaQueryWrapper.eq(User::getSex, request.getSex()); + } + + if(StringUtils.isNotBlank(request.getCountry())){ + lambdaQueryWrapper.eq(User::getCountry, request.getCountry()); + } + if(request.getStatus() != null){ lambdaQueryWrapper.eq(User::getStatus, request.getStatus()); } - dateLimitUtilVo dateLimit = DateUtil.getDateLimit(request.getData()); if(!StringUtils.isBlank(dateLimit.getStartTime())){ @@ -427,6 +434,10 @@ public class UserServiceImpl extends ServiceImpl implements UserS //生成token LoginResponse loginResponse = new LoginResponse(); loginResponse.setToken(token(user)); + + //绑定推广关系 + bindSpread(user, request.getSpread()); + loginResponse.setUser(user); long time = Constants.TOKEN_EXPRESS_MINUTES * 60; @@ -460,8 +471,8 @@ public class UserServiceImpl extends ServiceImpl implements UserS loginResponse.setToken(token(user)); user.setPwd(null); - //TODO 看分销类型 - + //绑定推广关系 + bindSpread(user, request.getSpreadPid()); loginResponse.setUser(user); @@ -801,7 +812,7 @@ public class UserServiceImpl extends ServiceImpl implements UserS tagIdValue = user.getTagId() + tagIdValue; } //清除已经删除或者去掉的id - tagIdValue = userGroupService.clean(tagIdValue); + tagIdValue = userTagService.clean(tagIdValue); if(StringUtils.isBlank(tagIdValue)){ continue; } @@ -980,7 +991,7 @@ public class UserServiceImpl extends ServiceImpl implements UserS break; } - return Constants.USER_BILL_OPERATE_LOG_TITLE.replace("{title}", request.getTitle()).replace("{$operate}", operate).replace("{$founds}", founds); + return Constants.USER_BILL_OPERATE_LOG_TITLE.replace("{$title}", request.getTitle()).replace("{$operate}", operate).replace("{$founds}", founds); } @@ -1162,6 +1173,8 @@ public class UserServiceImpl extends ServiceImpl implements UserS user.setNickname(thirdUserRequest.getNickName()); user.setAvatar(thirdUserRequest.getAvatar()); user.setSpreadUid(thirdUserRequest.getSpreadPid()); + user.setSpreadTime(DateUtil.nowDateTime()); + user.setSex(Integer.parseInt(thirdUserRequest.getSex())); user.setAddres(thirdUserRequest.getCountry() + "," + thirdUserRequest.getProvince() + "," + thirdUserRequest.getCity()); save(user); return user; @@ -1394,4 +1407,64 @@ public class UserServiceImpl extends ServiceImpl implements UserS lambdaUpdateWrapper.setEntity(user); return userDao.selectList(lambdaUpdateWrapper); } + + /** + * 消费金钱之后增加经验和积分 + * @param uid Integer 用户id + * @param price BigDecimal 实际支付金额 + * @return void + */ + @Override + public void consumeAfterUpdateUserFounds(Integer uid, BigDecimal price, String type) { + //赠送积分比例 + String integralStr = systemConfigService.getValueByKey(Constants.CONFIG_KEY_INTEGRAL_RATE); + BigDecimal integral = new BigDecimal(integralStr); + + //更新用户积分信息 + UserOperateFundsRequest founds = new UserOperateFundsRequest(); + founds.setFoundsType(type); + founds.setTitle(Constants.ORDER_LOG_MESSAGE_PAY_SUCCESS); + + founds.setUid(uid); + founds.setFoundsCategory(Constants.USER_BILL_CATEGORY_INTEGRAL); + founds.setType(1); + + //参考 CrmebUtil getRate说明 + founds.setValue(integral.multiply(price).setScale(0, BigDecimal.ROUND_DOWN)); + updateFounds(founds, true); + + //更新用户经验信息 + founds.setUid(uid); + founds.setFoundsCategory(Constants.USER_BILL_CATEGORY_EXPERIENCE); + founds.setType(1); + founds.setValue(price.setScale(0, BigDecimal.ROUND_DOWN)); + updateFounds(founds, true); + } + + /** + * 绑定分销关系 + * @param user User 用户user类 + * @param spreadUid Integer 推广人id + * @return void + */ + @Override + public void bindSpread(User user, Integer spreadUid) { + //新用户会在注册的时候单独绑定,此处只处理登录用户 + if(spreadUid == 0){ + return; + } + //如果当前用户没有绑定,并且后台配置人人分销,那么需要邦迪 + if(user.getSpreadUid() > 0){ + return; + } + + String distribution = systemConfigService.getValueByKey(Constants.CONFIG_KEY_DISTRIBUTION_TYPE); + + //人人分销 + 当前已绑定的id和推广人id不一样 + if(distribution.equals("0") && !user.getSpreadUid().equals(spreadUid)){ + user.setSpreadUid(spreadUid); + user.setSpreadTime(DateUtil.nowDateTime()); + } + updateById(user); + } } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserSignServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserSignServiceImpl.java index 09cbf947..8aaaae32 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserSignServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserSignServiceImpl.java @@ -384,6 +384,7 @@ public class UserSignServiceImpl extends ServiceImpl impl public List getListByCondition(UserSign sign, PageParamRequest pageParamRequest) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.setEntity(sign); + lqw.orderByDesc(UserSign::getCreateTime); return dao.selectList(lqw); } } diff --git a/crmeb/start.sh b/crmeb/start.sh index 9ea63c4f..1ea0c58c 100755 --- a/crmeb/start.sh +++ b/crmeb/start.sh @@ -4,8 +4,8 @@ startTime=`date +'%Y-%m-%d %H:%M:%S'` #接口项目站点路径(目录按照各自配置) -#APP_PATH=/www/wwwroot/api.java.crmeb.net/ -APP_PATH=/Library/WebServer/Documents/zhongbang/java/crmeb +APP_PATH=/www/wwwroot/api.java.crmeb.net/ #线上地址 +#APP_PATH=/Library/WebServer/Documents/zhongbang/java/crmeb #本地地址 #jar包文件名称 APP_NAME=$APP_PATH/target/Crmeb.jar diff --git a/domain.json b/domain.json index 577e5bce..d76868e0 100644 --- a/domain.json +++ b/domain.json @@ -1,3 +1,3 @@ { - "domain":"https://api.java.crmeb.net" + "domain":"https://localhost:8080" } \ No newline at end of file