zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -68,12 +68,15 @@ @Value("${static_resource_url}") private String nginxUrl; @Value("${login_public_key}") private String publicKey; @ApiOperation(value = "登陆接口", notes = "手机端登陆接口") @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = UserInfoVo.class) }) @PostMapping(value = "/login") public AjaxResult login(@RequestBody @Validated LoginDto loginDto) { public AjaxResult login(@RequestBody @Validated LoginDto loginDto) throws Exception { SysUsers user = new SysUsers(); user.setSuAccount(loginDto.getUsername()); @@ -97,10 +100,12 @@ userInfoVo.setRoleName(user.getRoleName()); userInfoVo.setPhoto(user.getSuPhoto()); String sb = token + "_1" + "_/api/vip/findVipInfoById/972"; AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功"); authorityManager.initUserPower(result,user); result.putInMap("user", userInfoVo); result.putInMap("token", token); result.putInMap("rasToken", RSAUtils.encryptByPublicKey(sb, publicKey)); return result; } zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java
@@ -12,10 +12,7 @@ import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; /** * @author jyy @@ -44,4 +41,13 @@ return result; } @ApiOperation(value = "根据code获取配置", notes = "根据code获取配置") @GetMapping(value = "/findAppSettingsByCode") public AjaxResult findAppSettingsByCode(String code) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); AjaxResult result = AjaxResult.buildSuccessInstance("查询成功"); result.putInMap(code, busParameterSettingsDao.selectCompanyParamByCode(code,user.getCompanyId())); return result; } } zq-erp/src/main/java/com/matrix/system/app/vo/VipInfoVo.java
@@ -42,6 +42,16 @@ @ApiModelProperty(value = "累计消费") private BigDecimal totalShopping; @ApiModelProperty(value = "欠款") private BigDecimal arrears; public BigDecimal getArrears() { return arrears; } public void setArrears(BigDecimal arrears) { this.arrears = arrears; } public String getPhoto() { return photo; zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java
@@ -261,6 +261,7 @@ vips.get(0).setLabels(sysVipLabelDao.selectByVipId(vips.get(0).getId())); vips.get(0).setAge(DateUtil.getAgeForBirthDay(vips.get(0).getBirthday1())); vips.get(0).setBalance(moneyCardUseDao.selectVipCardTotalMoney(vips.get(0).getId())); vips.get(0).setArrears(sysOrderService.findVipArrearsByVipId(vips.get(0).getId())); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, vips, 0); return result; } else { zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java
@@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -437,8 +438,7 @@ private String name; private BigDecimal arrears; } zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
@@ -9,6 +9,7 @@ import com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -54,4 +55,6 @@ List<ErpOrderDetailVo> selectErpOrderList(ErpOrderListDto erpOrderListDto); ErpOrderDetailVo findUserOrderById(Long orderId); BigDecimal selectArrearsByVipId(Long vipId); } zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpSession; import java.math.BigDecimal; import java.util.List; /** @@ -142,4 +143,6 @@ List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder); BigDecimal findVipArrearsByVipId(Long vipId); } zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -174,8 +174,7 @@ boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE); Set<Long> beautyIds = new HashSet<>(); for (SysBeauticianState beauticianState : beauticianStateList) { // 是否第一次计算改美疗师 boolean isFirst = true; @@ -222,13 +221,13 @@ // } } List<AchieveNew> beautyList = achieveNewDao.selectBeautyManAchieveList(beauticianState.getStaffId(), projServices.getVipId(), new Date()); if (CollUtil.isEmpty(beautyList)) { achieveNew.setNumberOfPeople(1D / size); } else { achieveNew.setNumberOfPeople(1D / (size + beautyList.size())); achieveNewDao.updateAchieveNumOfPeople(beautyList, achieveNew.getNumberOfPeople()); } // List<AchieveNew> beautyList = achieveNewDao.selectBeautyManAchieveList(beauticianState.getStaffId(), projServices.getVipId(), new Date()); // if (CollUtil.isEmpty(beautyList)) { // achieveNew.setNumberOfPeople(1D / size); // } else { // achieveNew.setNumberOfPeople(1D / (size + beautyList.size())); // achieveNewDao.updateAchieveNumOfPeople(beautyList, achieveNew.getNumberOfPeople()); // } achieveNew.setProjNum(1); if (StringUtils.isNotBlank(beauticianState.getExtract())) { @@ -244,11 +243,14 @@ achieveNew.setProjTime(beauticianState.getExcTime()); isFirst = false; } beautyIds.add(achieveNew.getBeaultId()); achieveNewList.add(achieveNew); } if (CollectionUtils.isNotEmpty(achieveNewList)) { achieveNewDao.batchInsert(achieveNewList); achieveNumOfPeople(beautyIds, projServices.getVipId()); } } @@ -297,9 +299,31 @@ } } /** * * 合并订单与服务单人头逻辑,即每一个客户对美疗师/顾问来说,每一天同一个客户只算一个人头。 * 如若A给客户X下订单,并给客户X服务,对A来说只算一个人头 */ private void achieveNumOfPeople(Set<Long> beautyIds, Long vipId) { for (Long userId : beautyIds) { double num; List<AchieveNew> achieveNewList = achieveNewDao.selectBeautyManAchieveList(userId, vipId, new Date()); if (CollUtil.isEmpty(achieveNewList)) { num = 1D; } else { num = 1D / achieveNewList.size(); } achieveNewDao.updateAchieveNumOfPeople(achieveNewList, num); } } @Override public void addAchaeveByOrder(SysOrder pageOrder) { List<AchieveNew> achieveNewList = new ArrayList<>(); Set<Long> beautyIds = new HashSet<>(); if (CollectionUtils.isNotEmpty(pageOrder.getItems())) { for (SysOrderItem orderItem : pageOrder.getItems()) { @@ -309,13 +333,19 @@ if (achieveNew !=null && achieveNew.getGoodsCash()!=null) { buildAchieve(pageOrder, orderItem, achieveNew); achieveNewList.add(achieveNew); beautyIds.add(achieveNew.getBeaultId()); } } } } } if (CollectionUtils.isNotEmpty(achieveNewList)) { achieveNewDao.batchInsert(achieveNewList); if (!beautyIds.isEmpty()) { achieveNumOfPeople(beautyIds, pageOrder.getVipId()); } } } @@ -354,7 +384,7 @@ } // 设置顾问人头业绩 saleAchieveNumOfPeople(achieveNew); // saleAchieveNumOfPeople(achieveNew); achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL); achieveNew.setOrderId(pageOrder.getId()); zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1853,4 +1853,9 @@ sysInstoreInfoService.check(instoreInfo); } @Override public BigDecimal findVipArrearsByVipId(Long vipId) { return sysOrderDao.selectArrearsByVipId(vipId); } } zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -79,6 +79,9 @@ @Autowired ScoreVipDetailService scoreVipDetailService; @Autowired private SysOrderDao sysOrderDao; /** * 新增会员储值卡 @@ -440,7 +443,9 @@ @Override public com.matrix.system.app.vo.VipInfoVo findApiVipInfoById(Long id) { return sysVipInfoDao.selectVipInfoById(id); com.matrix.system.app.vo.VipInfoVo result = sysVipInfoDao.selectVipInfoById(id); result.setArrears(sysOrderDao.selectArrearsByVipId(id)); return result; } @Override zq-erp/src/main/resources/config/application.properties
@@ -4,9 +4,13 @@ #线上测试环境 # #spring.datasource.username=ct_test #spring.datasource.password=123456 #spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 spring.datasource.username=ct_test spring.datasource.password=123456 spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 #spring.datasource.username=xc_shop #spring.datasource.password=xc_shop123!@# zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -494,7 +494,7 @@ MAX(pay_time) payTime, GROUP_CONCAT(DISTINCT t2.shop_short_name) shopName from sys_order t1 left join sys_order_flow b on t1.id=b.ORDER_ID and pay_method!='储值卡' left join sys_order_flow b on t1.id=b.ORDER_ID and pay_method!='储值卡' and pay_method!='欠款' left join sys_shop_info t2 on t1.SHOP_ID=t2.ID where t1.VIP_ID=#{vipId} and STATU='已付款'; </select> @@ -690,4 +690,8 @@ </select> <select id="selectArrearsByVipId" resultType="java.math.BigDecimal"> select sum(arrears) from sys_order where vip_id=#{vipId} and statu='欠款' </select> </mapper> zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
@@ -150,6 +150,7 @@ <el-row style="padding: 10px 20px;"> <p>余额:<span v-if="vipInfo.balance != null">{{vipInfo.balance}}元</span></p> <p>积分:<span v-if="vipInfo.pointAll != null">{{vipInfo.pointAll}}</span></p> <p>欠款金额:<span v-if="vipInfo.arrears != null">{{vipInfo.arrears}} 元</span></p> <p>累计消费金额:<span v-if="vipInfo.totalMoney != null">{{vipInfo.totalMoney.toFixed(2)}} 元</span></p> <p>累计消费次数:<span v-if="vipInfo.totalTimes != null">{{vipInfo.totalTimes}} 次</span></p> <p>上次消费时间:<span v-if="vipInfo.payTime">{{vipInfo.payTime}}</span></p>